PageSourceSearch

https://www.teamstats.net/pricing

html teamstats.net collected 2026-10-02 03:09:16 UTC 190,399 bytes, 487 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="light"> <head><meta charset="UTF-8"><meta name="description" content="Compare TeamStats pricing for football teams, from core team management to advanced organisation, communication and payment tools."><meta name="robots" content="index, follow"><link rel="canonical" href="https://www.teamstats.net/pricing"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://www.teamstats.net/pricing"><meta property="og:title" content="TeamStats Pricing | Football Team App Plans"><meta property="og:description" content="Compare TeamStats pricing for football teams, from core team management to advanced organisation, communication and payment tools."><meta property="og:image" content="https://assets.teamstats.net/img-m-960-100/device-mockups/teamstats-7-screens2.jpg"><meta property="og:site_name" content="TeamStats"><!-- Twitter --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:url" content="https://www.teamstats.net/pricing"><meta name="twitter:title" content="TeamStats Pricing | Football Team App Plans"><meta name="twitter:description" content="Compare TeamStats pricing for football teams, from core team management to advanced organisation, communication and payment tools."><meta name="twitter:image" content="https://assets.teamstats.net/img-m-960-100/device-mockups/teamstats-7-screens2.jpg"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="color-scheme" content="light only"><title>TeamStats Pricing | Football Team App Plans</title>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https://www.teamstats.net/pricing#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.teamstats.net"},{"@type":"ListItem","position":2,"name":"Pricing","item":"https://www.teamstats.net/pricing"}]},{"@type":"WebPage","@id":"https://www.teamstats.net/pricing#webpage","url":"https://www.teamstats.net/pricing","name":"TeamStats Pricing | Football Team App Plans","description":"Compare TeamStats pricing for football teams, from core team management to advanced organisation, communication and payment tools.","isPartOf":{"@id":"https://www.teamstats.net#website"},"about":{"@id":"https://www.teamstats.net#software"},"provider":{"@id":"https://www.teamstats.net#organization"},"breadcrumb":{"@id":"https://www.teamstats.net/pricing#breadcrumb"},"inLanguage":"en","dateModified":"2026-02-17"},{"@type":"SoftwareApplication","@id":"https://www.teamstats.net#software","name":"TeamStats","applicationCategory":"SportsApplication","operatingSystem":"Web, iOS, Android","url":"https://www.teamstats.net","offers":[{"@type":"AggregateOffer","priceCurrency":"GBP","lowPrice":"0","highPrice":"120","offerCount":"8","availability":"https://schema.org/InStock","url":"https://www.teamstats.net/pricing","description":"Flexible monthly and annual plans for teams and clubs.","offers":[{"@type":"Offer","name":"Free (Monthly)","price":"0.00","priceCurrency":"GBP","description":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Free (Annual)","price":"0.00","priceCurrency":"GBP","description":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Plus (Monthly)","price":"5.00","priceCurrency":"GBP","description":"Monthly subscription"},{"@type":"Offer","name":"Plus (Annual)","price":"50.00","priceCurrency":"GBP","description":"Annual subscription"},{"@type":"Offer","name":"Pro (Monthly)","price":"7.00","priceCurrency":"GBP","description":"Monthly subscription"},{"@type":"Offer","name":"Pro (Annual)","price":"70.00","priceCurrency":"GBP","description":"Annual subscription"},{"@type":"Offer","name":"Elite (Monthly)","price":"12.00","priceCurrency":"GBP","description":"Monthly subscription"},{"@type":"Offer","name":"Elite (Annual)","price":"120.00","priceCurrency":"GBP","description":"Annual subscription"}]},{"@type":"AggregateOffer","priceCurrency":"EUR","lowPrice":"0","highPrice":"150","offerCount":"8","availability":"https://schema.org/InStock","url":"https://www.teamstats.net/pricing","description":"Flexible monthly and annual plans for teams and clubs.","offers":[{"@type":"Offer","name":"Free (Monthly)","price":"0.00","priceCurrency":"EUR","description":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Free (Annual)","price":"0.00","priceCurrency":"EUR","description":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Plus (Monthly)","price":"6.00","priceCurrency":"EUR","description":"Monthly subscription"},{"@type":"Offer","name":"Plus (Annual)","price":"60.00","priceCurrency":"EUR","description":"Annual subscription"},{"@type":"Offer","name":"Pro (Monthly)","price":"9.00","priceCurrency":"EUR","description":"Monthly subscription"},{"@type":"Offer","name":"Pro (Annual)","price":"90.00","priceCurrency":"EUR","description":"Annual subscription"},{"@type":"Offer","name":"Elite (Monthly)","price":"15.00","priceCurrency":"EUR","description":"Monthly subscription"},{"@type":"Offer","name":"Elite (Annual)","price":"150.00","priceCurrency":"EUR","description":"Annual subscription"}]},{"@type":"AggregateOffer","priceCurrency":"USD","lowPrice":"0","highPrice":"150","offerCount":"8","availability":"https://schema.org/InStock","url":"https://www.teamstats.net/pricing","description":"Flexible monthly and annual plans for teams and clubs.","offers":[{"@type":"Offer","name":"Free (Monthly)","price":"0.00","priceCurrency":"USD","description":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Free (Annual)","price":"0.00","priceCurrency":"USD","de
1scription":"Core team-management plan for grassroots teams"},{"@type":"Offer","name":"Plus (Monthly)","price":"6.00","priceCurrency":"USD","description":"Monthly subscription"},{"@type":"Offer","name":"Plus (Annual)","price":"60.00","priceCurrency":"USD","description":"Annual subscription"},{"@type":"Offer","name":"Pro (Monthly)","price":"9.00","priceCurrency":"USD","description":"Monthly subscription"},{"@type":"Offer","name":"Pro (Annual)","price":"90.00","priceCurrency":"USD","description":"Annual subscription"},{"@type":"Offer","name":"Elite (Monthly)","price":"15.00","priceCurrency":"USD","description":"Monthly subscription"},{"@type":"Offer","name":"Elite (Annual)","price":"150.00","priceCurrency":"USD","description":"Annual subscription"}]}]}]}</script>
1<script>(function(){const siteId = "team-stats";
2
3  (function() {
4    if (typeof window === 'undefined') return;
5    if (window.mvLoaded) return;
6
7    const loadMediavine = () => {
8      if (window.mvLoaded) return;
9      window.mvLoaded = true;
10
11      clearTimeout(fallbackTimer);
12
13      const script = document.createElement('script');
14      script.src = `https://scripts.mediavine.com/tags/${siteId}.js`;
15      script.async = true;
16      script.type = 'text/javascript';
17      script.setAttribute('data-noptimize', '1');
18      script.setAttribute('data-cfasync', 'false');
19      document.head.appendChild(script);
20
21      // Only load Crisp chat on allowed routes
22      try {
23        const path = window.location && window.location.pathname ? window.location.pathname : '';
24        const shouldExcludeCrisp =          
25          path.startsWith('/directory') ||          
26          path.startsWith('/league') ||          
27          path.startsWith('/team') ||          
28          path.startsWith('/match-report');
29        const shouldLoadCrisp = !shouldExcludeCrisp;
30
31        if (shouldLoadCrisp) {
32          if (!window.$crisp) {
33            window.$crisp = [];
34          }
35          window.CRISP_WEBSITE_ID = "5af2bc25-165c-4cb1-b9e9-a56f55a70791";
36          var d = document;
37          var s = d.createElement("script");
38          s.src = "https://client.crisp.chat/l.js";
39          s.async = 1;
40          s.type = "text/javascript";
41          s.setAttribute('data-noptimize', '1');
42          s.setAttribute('data-cfasync', 'false');
43          d.getElementsByTagName("head")[0].appendChild(s);
44        }
45      } catch (e) {
46        // Fail silently if something goes wrong with Crisp route detection
47      }
48
49      activityEvents.forEach(e => window.removeEventListener(e, loadMediavine));
50    };
51
52    const fallbackTimer = setTimeout(loadMediavine, 5000);
53
54    const activityEvents = ['mousedown', 'mousemove', 'keydown', 'scroll', 'touchstart'];
55    activityEvents.forEach(event => {
56      window.addEventListener(event, loadMediavine, { passive: true, once: true });
57    });
58  })();
59})();</script>
59 <style>body{overflow:auto !important;}#fides-overlay, .sc-gJhJTp, .fsLDHq, .sc-gueYoa {display:none !important;}</style> 
59<script>
60	if (window.location.hash === '#!') {
61		window.location.replace(
62			window.location.href.replace(/#!$/, '')
63		);
64	}
65</script>
65<!-- Force mytheme -->
65<script>
66		document.documentElement.setAttribute('data-theme', 'mytheme');
67	</script>
67<!-- DNS hints / preconnect to critical origins --><link rel="dns-prefetch" href="https://cdn.zaraz.com"><!-- TeamStats assets CDN: LCP-critical images and video posters --><link rel="dns-prefetch" href="https://assets.teamstats.net"><link rel="preconnect" href="https://assets.teamstats.net" crossorigin><link rel="dns-prefetch" href="https://staging-api.teamstats.net"><!-- Modal Styles - non-render-blocking --><link rel="stylesheet" href="/styles/modals.css?v=1" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/styles/modals.css?v=1"></noscript><link rel="stylesheet" href="/_astro/_slug_.DZjWcTqG.css">
68<style>.video-hero-section[data-astro-cid-ux2kju4p]{position:relative;width:100%;min-height:320px;height:auto;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;background:#000;z-index:0;padding:3rem 0}@media(min-width:768px){.video-hero-section[data-astro-cid-ux2kju4p]{min-height:380px;padding:4rem 0}}.video-bg[data-astro-cid-ux2kju4p]{position:absolute;inset:0;z-index:0}.video-poster[data-astro-cid-ux2kju4p]{position:absolute;inset:0;background-size:cover;background-position:center;z-index:1;opacity:0;animation:fadeOut 1s ease-in 2s forwards}@keyframes fadeOut{to{opacity:0;pointer-events:none}}.content-with-mockup[data-astro-cid-ux2kju4p]{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;gap:2rem;width:100%}.content-wrapper[data-astro-cid-ux2kju4p]{position:relative;z-index:10;padding:2rem 1rem;max-width:700px;text-align:center}.mockup-wrapper[data-astro-cid-ux2kju4p]{display:none;position:relative;z-index:10}.video-hero-section[data-astro-cid-ux2kju4p] h1[data-astro-cid-ux2kju4p].hero-title{padding-top:60px}.mockup-wrapper[data-astro-cid-ux2kju4p]:empty{display:none}@media(min-width:1024px){.content-wrapper[data-astro-cid-ux2kju4p]{text-align:center;flex:1}.mockup-wrapper[data-astro-cid-ux2kju4p]{display:block;flex-shrink:0}.mockup-wrapper[data-astro-cid-ux2kju4p]:empty{display:none}}.hero-title[data-astro-cid-ux2kju4p]{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin-bottom:1.5rem;text-shadow:0 4px 12px rgba(0,0,0,.8);line-height:1.2}.hero-description[data-astro-cid-ux2kju4p]{font-size:clamp(1rem,2vw,1.25rem);margin-bottom:2.5rem;text-shadow:0 2px 8px rgba(0,0,0,.8);line-height:1.6;max-width:800px;margin-left:auto;margin-right:auto}.play-btn[data-astro-cid-ux2kju4p]{background:none;border:none;cursor:pointer;transition:transform .3s ease,filter .3s ease;padding:0;display:inline-flex;align-items:center;justify-content:center}.play-btn[data-astro-cid-ux2kju4p]:hover{transform:scale(1.15);filter:drop-shadow(0 8px 16px rgba(220,38,38,.5))}.play-btn[data-astro-cid-ux2kju4p]:active{transform:scale(1.05)}.play-icon[data-astro-cid-ux2kju4p]{filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.sr-only[data-astro-cid-ux2kju4p]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.modal-content[data-astro-cid-ux2kju4p]{position:relative;width:100%;background:#000;border-radius:16px;overflow:hidden}.modal-content[data-astro-cid-ux2kju4p] .close-btn[data-astro-cid-ux2kju4p]{position:absolute;top:.75rem;right:.75rem;width:3rem;height:3rem;background:#dc2626f2;color:#fff;border:2px solid #fff;border-radius:50%;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 12px #0000004d}.close-btn[data-astro-cid-ux2kju4p]:hover{background:#b91c1c;transform:scale(1.1)}.close-btn[data-astro-cid-ux2kju4p] svg[data-astro-cid-ux2kju4p]{width:20px;height:20px}@media(max-width:768px){.video-hero-section[data-astro-cid-ux2kju4p]{min-height:400px;height:400px}.content-wrapper[data-astro-cid-ux2kju4p]{padding:1.5rem 1rem}.play-btn[data-astro-cid-ux2kju4p]:hover{transform:scale(1.1)}.video-modal[data-astro-cid-ux2kju4p]{width:95vw;max-width:95vw}.close-btn[data-astro-cid-ux2kju4p]{top:.5rem;right:.5rem;width:2.5rem;height:2.5rem}}@media(prefers-reduced-motion:reduce){.play-btn[data-astro-cid-ux2kju4p],.close-btn[data-astro-cid-ux2kju4p]{transition:none}.play-btn[data-astro-cid-ux2kju4p]:hover{transform:scale(1.05)}}
69</style>
70<link rel="stylesheet" href="/_astro/page-not-found.DlFNpQL5.css">
71<link rel="stylesheet" href="/_astro/pricing.B1k9IHRx.css"><style>[data-astro-transition-scope="astro-7k4xbl3z-1"] { view-transition-name: astro-7k4xbl3z-1; }@layer astro { ::view-transition-old(astro-7k4xbl3z-1) { 
72	animation-duration: 180ms;
73	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
74	animation-fill-mode: both;
75	animation-name: astroFadeOut; }::view-transition-new(astro-7k4xbl3z-1) { 
76	animation-duration: 180ms;
77	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
78	animation-fill-mode: both;
79	animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(astro-7k4xbl3z-1) { 
80	animation-duration: 180ms;
81	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
82	animation-fill-mode: both;
83	animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(astro-7k4xbl3z-1) { 
84	animation-duration: 180ms;
85	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
86	animation-fill-mode: both;
87	animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-7k4xbl3z-1"],
88			[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-7k4xbl3z-1"] { 
89	animation-duration: 180ms;
90	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
91	animation-fill-mode: both;
92	animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-7k4xbl3z-1"],
93			[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-7k4xbl3z-1"] { 
94	animation-duration: 180ms;
95	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
96	animation-fill-mode: both;
97	animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-7k4xbl3z-1"],
98			[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-7k4xbl3z-1"] { 
99	animation-duration: 180ms;
100	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
101	animation-fill-mode: both;
102	animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-7k4xbl3z-1"],
103			[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-7k4xbl3z-1"] { 
104	animation-duration: 180ms;
105	animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
106	animation-fill-mode: both;
107	animation-name: astroFadeIn; }</style></head> <body> <div id="mediavine-settings" data-blocklist-all="1" style="display:none"></div> <div data-astro-transition-scope="astro-7k4xbl3z-1">  <nav class="bg-white border-b border-gray-100 fixed top-0 left-0 right-0 z-50 w-full transition-all duration-300" data-astro-cid-5blmo7yk> <div class="navbar w-full max-w-6xl mx-auto h-16 lg:h-20 px-4" data-astro-cid-5blmo7yk> <div class="navbar-start" data-astro-cid-5blmo7yk> <a href="/" class="hover:opacity-90 transition-opacity py-1" data-astro-cid-5blmo7yk> <picture> <source srcset="https://assets.teamstats.net/img-m-400-100/logos/teamstats/teamstats-logo-text-400.png?f=avif&v=130126-1" type="image/avif"><source srcset="https://assets.teamstats.net/img-m-400-100/logos/teamstats/teamstats-logo-text-400.png?f=webp&v=130126-1" type="image/webp"> <img src="https://assets.teamstats.net/img-m-400-100/logos/teamstats/teamstats-logo-text-400.png" alt="TeamStats" loading="eager" fetchpriority="high" class="max-w-[120px] lg:max-w-[150px]"> </picture> </a> </div> <div class="navbar-center hidden lg:flex" data-astro-cid-5blmo7yk> <ul class="flex items-center gap-9 xl:gap-12" data-astro-cid-5blmo7yk> <li class="static menu-item" data-astro-cid-5blmo7yk> <a tabindex="0" role="button" class="flex items-center gap-1 font-semibold text-gray-700 hover:text-primary transition-colors py-2 px-1 cursor-pointer" data-astro-cid-5blmo7yk> Features <span class="menu-icon-container" data-astro-cid-5blmo7yk> <svg class="chevron-down w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> <svg class="chevron-x w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-5blmo7yk></path> </svg> </span> </a> <div class="dropdown-content mega-menu-glass" data-astro-cid-5blmo7yk> <div class="py-12 mega-menu-inner" data-astro-cid-5blmo7yk> <div class="container mx-auto max-w-7xl px-8" data-astro-cid-5blmo7yk>  <div class="grid grid-cols-4 gap-12" data-astro-cid-5blmo7yk> <div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Team Organisation &amp; Scheduling</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/organise" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Organise your team </a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/schedule-matches-training" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Arrange matches and training </a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/track-player-availability" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Track player availability </a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/line-up-planner" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Plan your line-ups </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Team Statistics &amp; Match Reports</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/analyse" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Analyse your performances </a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/write-match-reports" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Publish match reports </a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/generate-team-stats" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Generate team stats </a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/track-player-performance" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Track player performance </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Team Finances &amp; Payment Management</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/finances" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Manage team finances </a> </li><li data-astro-cid-5blmo7yk> <a href="/finances/payment-tracking" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Record every payment </a> </li><li data-astro-cid-5blmo7yk> <a href="/finances/financial-reports" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Team and player reporting </a> </li><li data-astro-cid-5blmo7yk>
107 <a href="/finances/receive-player-payments" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Receive player payments </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Team Communication App &amp; Website</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/communicate" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Improve team communication </a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/team-website-app" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Create a team website and app </a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/team-news-media" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Share news, docs, photos and video </a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/send-messages" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Send messages to team members </a> </li> </ul> </div> </div> <div class="mt-12 pt-8 border-t border-gray-100 text-center" data-astro-cid-5blmo7yk> <a href="/all-teamstats-features" class="inline-flex items-center text-primary font-bold hover:gap-2 transition-all group" data-astro-cid-5blmo7yk> View all features <svg class="w-4 h-4 ml-1 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" data-astro-cid-5blmo7yk></path> </svg> </a> </div> </div> </div> </div> </li><li class="static menu-item" data-astro-cid-5blmo7yk> <a tabindex="0" role="button" class="flex items-center gap-1 font-semibold text-gray-700 hover:text-primary transition-colors py-2 px-1 cursor-pointer" data-astro-cid-5blmo7yk> Who it&#39;s for <span class="menu-icon-container" data-astro-cid-5blmo7yk> <svg class="chevron-down w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> <svg class="chevron-x w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-5blmo7yk></path> </svg> </span> </a> <div class="dropdown-content mega-menu-glass" data-astro-cid-5blmo7yk> <div class="py-12 mega-menu-inner" data-astro-cid-5blmo7yk> <div class="container mx-auto max-w-7xl px-8" data-astro-cid-5blmo7yk>  <div class="grid grid-cols-4 gap-12" data-astro-cid-5blmo7yk> <div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Clubs and Teams</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/team-management-app" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Teams and Clubs </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#kids-teams" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Junior teams </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#adult-teams" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Adult teams </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#multi-team-clubs" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Multi-team clubs </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Team Members</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/team-communication-app" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Team Members </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#management-staff-officials" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Coaches, managers &amp; staff </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#players" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Players </a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#parents-supporters" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Parents &amp; supporters </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Success Stories</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/success-stories" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> User Feedback </a> </li><li data-astro-cid-5blmo7yk> <a href="/success-stories#testimonials" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Testimonials </a> </li><li data-astro-cid-5blmo7yk> <a href="/teamstats-top-50-football-teams" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> TeamStats Top 50 </a> </li><li data-astro-cid-5blmo7yk> <a href="/blog" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Grassroots Football Blog </a> </li> </ul> </div><div class="mega-menu-col" data-astro-cid-5blmo7yk> <h3 class="font-bold text-gray-900 text-base uppercase tracking-wider mb-6" data-astro-cid-5blmo7yk>Directory</h3> <ul class="space-y-4" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/directory" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Directory Home </a> </li><li data-astro-cid-5blmo7yk> <a href="/teams" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Team Directory </a> </li><li data-astro-cid-5blmo7yk> <a href="/leagues" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> League Directory </a> </li><li data-astro-cid-5blmo7yk> <a href="/match-reports" class="text-gray-600 hover:text-primary transition-colors text-sm font-medium flex items-center group" data-astro-cid-5blmo7yk> <span class="w-1.5 h-1.5 rounded-full bg-primary opacity-0 group-hover:opacity-100 transition-opacity mr-2" data-astro-cid-5blmo7yk></span> Match Reports </a> </li> </ul> </div> </div>  </div> </div> </div> </li><li data-astro-cid-5blmo7yk> <a href="/pricing" class="font-semibold text-gray-700 hover:text-primary transition-colors nav-link-hover py-2 px-1" data-astro-cid-5blmo7yk> Pricing </a> </li><li data-astro-cid-5blmo7yk> <a href="#" class="font-semibold text-gray-700 hover:text-primary transition-colors nav-link-hover py-2 px-1 contact-trigger" data-astro-cid-5blmo7yk> Contact </a> </li> </ul> </div> <div class="navbar-end gap-5" data-astro-cid-5blmo7yk> <div id="user-nav-container" class="hidden lg:block" data-astro-cid-5blmo7yk> <!-- Dynamically populated by login.js --> </div> <!-- Desktop login/signup --> <div class="hidden lg:flex items-center gap-4" data-astro-cid-5blmo7yk> <button type="button" id="desktop-login-button" class="open-login-modal btn btn-outline border-gray-300 bg-transparent text-gray-700 hover:bg-gray-50 rounded-lg h-11 min-h-auto font-semibold w-32 justify-center" data-astro-cid-5blmo7yk>
108Login
109</button> <a href="#" id="signup-nav-item" class="trigger-signup btn btn-primary rounded-lg shadow-md hover:shadow-lg transition-all h-11 min-h-auto w-32 justify-center" data-astro-cid-5blmo7yk>
110Sign Up
111</a> </div> <!-- Mobile primary CTA (directory uses drawer Search button instead) --> <a href="#" id="mobile-signup-btn" class="trigger-signup btn btn-primary btn-sm uppercase lg:hidden rounded-md h-9 min-h-auto font-bold mr-2" data-astro-cid-5blmo7yk>
112Sign Up
113</a> <!-- Mobile search icon (directory pages only) -->  <!-- Mobile avatar (shown when logged in, hidden by default) --> <a href="#" id="mobile-navbar-avatar" class="hidden lg:hidden! items-center mr-2" data-astro-cid-5blmo7yk> <img src="" alt="" class="w-8 h-8 rounded-full object-cover border border-gray-200" data-astro-cid-5blmo7yk> </a> <!-- Mobile menu button (morphing hamburger/X) --> <label for="mobile-drawer" id="mobile-menu-toggle" class="menu-toggle lg:hidden text-gray-700" aria-label="Toggle menu" data-astro-cid-5blmo7yk> <div class="hamburger hamburger3" data-astro-cid-5blmo7yk> <span class="bar bar1" data-astro-cid-5blmo7yk></span> <span class="bar bar2" data-astro-cid-5blmo7yk></span> <span class="bar bar3" data-astro-cid-5blmo7yk></span> <span class="bar bar4" data-astro-cid-5blmo7yk></span> </div> </label> </div> </div> </nav> <div class="drawer drawer-end lg:hidden" data-astro-cid-5blmo7yk>
113 <input id="mobile-drawer" type="checkbox" class="drawer-toggle" data-astro-cid-5blmo7yk> <div class="drawer-side z-60" data-astro-cid-5blmo7yk> <label for="mobile-drawer" class="drawer-overlay" data-astro-cid-5blmo7yk></label> <div class="p-6 w-80 min-h-full bg-white flex flex-col" data-astro-cid-5blmo7yk> <!-- Mobile menu header (logo removed; navbar logo remains visible above) --> <div class="mb-4" data-astro-cid-5blmo7yk></div> <ul class="space-y-2" data-astro-cid-5blmo7yk> <li class="mobile-nav-item" data-astro-cid-5blmo7yk> <a href="/" class="flex items-center justify-between py-3 px-4 font-bold text-gray-900 hover:bg-gray-50 rounded-lg" data-astro-cid-5blmo7yk>Home</a> </li> <li class="mobile-nav-item" data-astro-cid-5blmo7yk> <details class="group" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-3 px-4 font-bold text-gray-900 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open:bg-gray-50" data-astro-cid-5blmo7yk> Features <svg class="w-4 h-4 transition-transform group-open:rotate-180 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-2 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Team Organisation &amp; Scheduling <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/organise" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Organise your team</a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/schedule-matches-training" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Arrange matches and training</a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/track-player-availability" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Track player availability</a> </li><li data-astro-cid-5blmo7yk> <a href="/organise/line-up-planner" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Plan your line-ups</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Team Statistics &amp; Match Reports <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/analyse" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Analyse your performances</a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/write-match-reports" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Publish match reports</a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/generate-team-stats" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Generate team stats</a> </li><li data-astro-cid-5blmo7yk> <a href="/analyse/track-player-performance" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Track player performance</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Team Finances &amp; Payment Management <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/finances" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Manage team finances</a> </li><li data-astro-cid-5blmo7yk> <a href="/finances/payment-tracking" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Record every payment</a> </li><li data-astro-cid-5blmo7yk> <a href="/finances/financial-reports" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Team and player reporting</a> </li><li data-astro-cid-5blmo7yk>
113 <a href="/finances/receive-player-payments" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Receive player payments</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Team Communication App &amp; Website <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/communicate" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Improve team communication</a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/team-website-app" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Create a team website and app</a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/team-news-media" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Share news, docs, photos and video</a> </li><li data-astro-cid-5blmo7yk> <a href="/communicate/send-messages" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Send messages to team members</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <a href="/all-teamstats-features" class="block py-2 px-4 font-semibold text-gray-700 hover:text-primary rounded-lg" data-astro-cid-5blmo7yk>View all features</a> </li> </ul> </details> </li><li class="mobile-nav-item" data-astro-cid-5blmo7yk> <details class="group" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-3 px-4 font-bold text-gray-900 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open:bg-gray-50" data-astro-cid-5blmo7yk> Who it&#39;s for <svg class="w-4 h-4 transition-transform group-open:rotate-180 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-2 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Clubs and Teams <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/team-management-app" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Teams and Clubs</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#kids-teams" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Junior teams</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#adult-teams" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Adult teams</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-management-app#multi-team-clubs" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Multi-team clubs</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Team Members <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/team-communication-app" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Team Members</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#management-staff-officials" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Coaches, managers &amp; staff</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#players" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Players</a> </li><li data-astro-cid-5blmo7yk> <a href="/team-communication-app#parents-supporters" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Parents &amp; supporters</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Success Stories <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/success-stories" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>User Feedback</a> </li><li data-astro-cid-5blmo7yk> <a href="/success-stories#testimonials" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Testimonials</a> </li><li data-astro-cid-5blmo7yk> <a href="/teamstats-top-50-football-teams" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>TeamStats Top 50</a> </li><li data-astro-cid-5blmo7yk> <a href="/blog" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Grassroots Football Blog</a> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <details class="group/sub" data-astro-cid-5blmo7yk> <summary class="flex items-center justify-between py-2 px-4 font-semibold text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg list-none group-open/sub:text-primary" data-astro-cid-5blmo7yk> Directory <svg class="w-3 h-3 transition-transform group-open/sub:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-5blmo7yk> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-astro-cid-5blmo7yk></path> </svg> </summary> <ul class="pl-4 mt-1 space-y-1" data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/directory" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>
113Directory Home</a> </li><li data-astro-cid-5blmo7yk> <a href="/teams" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Team Directory</a> </li><li data-astro-cid-5blmo7yk> <a href="/leagues" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>League Directory</a> </li><li data-astro-cid-5blmo7yk> <a href="/match-reports" class="block py-2 px-4 text-sm text-gray-600 hover:text-primary transition-colors" data-astro-cid-5blmo7yk>Match Reports</a> </li> </ul> </details> </li> </ul> </details> </li><li data-astro-cid-5blmo7yk> <a href="/pricing" class="block py-3 px-4 font-bold text-gray-900 hover:bg-gray-50 rounded-lg transition-colors" data-astro-cid-5blmo7yk> Pricing </a> </li><li data-astro-cid-5blmo7yk> <a href="#" class="block py-3 px-4 font-bold text-gray-900 hover:bg-gray-50 rounded-lg transition-colors contact-trigger" data-astro-cid-5blmo7yk> Contact </a> </li>  <li class="pt-6 space-y-6" data-astro-cid-5blmo7yk> <!-- Populated by login.js: either Login/Get Started buttons (logged out) or avatar + Log Out (logged in) --> <div id="mobile-user-nav" class="space-y-3" data-astro-cid-5blmo7yk></div> <div class="pt-4 flex flex-col items-center" data-astro-cid-5blmo7yk> <p class="text-[11px] font-bold text-gray-400 uppercase tracking-[0.18em] mb-2" data-astro-cid-5blmo7yk>Download the TeamStats app</p> <div class="flex gap-5 justify-center"> <div class="flex flex-col items-center"> <a href="https://apps.apple.com/gb/app/teamstats-football-team-app/id1275644100" target="_blank" rel="noopener noreferrer" class="block w-40 sm:w-44"> <img src="https://assets.teamstats.net/img-m-320-100/logos/app-stores/app-store-badge.png?f=avif" alt="Download on the Apple App Store" loading="lazy" width="320" height="95" class="w-full h-auto shadow-lg"> </a> <div class="text-xs mt-1">⭐⭐⭐⭐⭐</div> </div> <div class="flex flex-col items-center"> <a href="https://play.google.com/store/apps/details?id=net.teamstats.app" target="_blank" rel="noopener noreferrer" class="block w-40 sm:w-44"> <img src="https://assets.teamstats.net/img-m-320-100/logos/app-stores/google-play-badge.png?f=avif" alt="Get it on Google Play" loading="lazy" width="320" height="95" class="w-full h-auto shadow-lg"> </a> <div class="text-xs mt-1">⭐⭐⭐⭐⭐</div> </div> </div> </div> </li>  </ul> </div> </div> </div> 
113<script type="module">const w=window.blurManager;document.addEventListener("click",t=>{const e=t.target;if(!e)return;const n=e.closest(".open-login-modal"),a=e.closest(".trigger-signup");if(!n&&!a)return;if(!!e.closest(".drawer-side")){const r=document.getElementById("mobile-drawer"),l=document.getElementById("mobile-menu-toggle");r?.checked&&(r.checked=!1,l&&l.classList.remove("open"),w&&w.disable("mobile-drawer"))}n&&(t.preventDefault(),window.dispatchEvent(new CustomEvent("openLoginModal")))});const u=window.disableMobileDrawerBlur,g=()=>{const t=document.getElementById("directory-search-section"),e=document.getElementById("directory-search-input");t&&(t.scrollIntoView({behavior:"smooth",block:"start"}),window.setTimeout(()=>{if(e){e.focus();const n=e.value.length;try{e.setSelectionRange(n,n)}catch{}}},400))},h=()=>{const t=document.documentElement;if(t.__tsNavbarInit)return;t.__tsNavbarInit=!0;const e=document.getElementById("mobile-drawer"),n=document.getElementById("mobile-menu-toggle");e&&n&&e.addEventListener("change",()=>{e.checked?n.classList.add("open"):n.classList.remove("open")});const a=document.querySelector(".drawer-side");a&&e&&a.addEventListener("click",o=>{const d=o.target;!d||!d.closest("a[href]")||(e.checked=!1,n&&n.classList.remove("open"),u&&u("mobile-drawer"))}),(()=>{const{pathname:o}=window.location,d=c=>{if(!c)return"/";try{let s=new URL(c,window.location.origin).pathname;return s.length>1&&s.endsWith("/")&&(s=s.slice(0,-1)),s||"/"}catch{return c}},v=d(o);document.querySelectorAll(".drawer-side .mobile-nav-item a[href]").forEach(c=>{const m=c.getAttribute("href");if(!m||m.startsWith("http")||m.startsWith("#"))return;d(m)===v&&c.classList.add("text-primary")})})();const r=document.getElementById("directory-search-nav-item");r&&r.addEventListener("click",o=>{o.preventDefault(),g()});const l=document.getElementById("directory-search-mobile-nav-item");l&&e&&l.addEventListener("click",o=>{o.preventDefault(),e.checked=!1,n&&n.classList.remove("open"),u&&u("mobile-drawer"),window.setTimeout(()=>{g()},150)});const b=document.getElementById("mobile-directory-search-btn");b&&b.addEventListener("click",o=>{o.preventDefault(),g()})},y=document.querySelectorAll("li.menu-item"),f=()=>{y.forEach(t=>{const e=t.querySelector(".dropdown-content");e&&(e.classList.remove("block"),e.style.display="none"),t.classList.remove("active")}),document.body.classList.remove("dropdown-open")};y.forEach(t=>{const e=t.querySelector("a"),n=t.querySelector(".dropdown-content");if(!e||!n)return;e.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation();const r=t.classList.contains("active");f(),r||(t.classList.add("active"),n.classList.add("block"),n.style.display="block",document.body.classList.add("dropdown-open"))}),n.querySelectorAll("a[href]").forEach(i=>{i.addEventListener("click",()=>{f()})})});document.addEventListener("click",t=>{t.target.closest("li.menu-item")||f()});document.addEventListener("keydown",t=>{t.key==="Escape"&&f()});document.readyState==="loading"?document.addEventListener("DOMContentLoaded",h,{once:!0}):h();document.addEventListener("astro:after-swap",()=>{const t=document.documentElement;t.__tsNavbarInit=!1,h()});</script>
113  <section class="relative pt-24 pb-10 text-center bg-gray-900 overflow-visible"> <div class="absolute inset-0 overflow-hidden opacity-50 hero-kenburns"> <picture class="block w-full h-full"> <source srcset="https://assets.teamstats.net/img-m-1920-75/assets/backgrounds/directory-hero.jpg?f=avif" type="image/avif"><source srcset="https://assets.teamstats.net/img-m-1920-75/assets/backgrounds/directory-hero.jpg?f=webp" type="image/webp"> <img src="https://assets.teamstats.net/img-m-1920-75/assets/backgrounds/directory-hero.jpg" alt="Grassroots football pricing background" loading="lazy" width="1920" class="w-full h-full object-cover"> </picture> </div> <div class="absolute inset-0 bg-linear-to-t from-black/70 via-black/30 to-transparent"></div> <div class="absolute inset-0 hero-dots-overlay"></div> <div class="relative container mx-auto px-4 max-w-7xl text-white"> <div class="max-w-3xl mx-auto mb-12"> <h1 class="text-4xl md:text-5xl font-bold mb-6 mt-16">TeamStats pricing plans</h1> <p class="text-lg text-white/90 mb-4">
114Start with the free TeamStats plan and use a broad set of football team organisation, reporting and website features for as long as you need.
115</p> <p class="text-lg text-white/90">
116Compare Plus, Pro and Elite when you need more advanced availability, messaging, finance, payment or automation tools.
117</p> </div> <!-- Currency Selector --> <div class="mb-12"> <p class="text-white/80 mb-3">Choose your currency:</p> <div class="join pricing-currency-selector primary-selector" id="currency-selector"> <button class="join-item btn btn-active btn-GBP" data-currency="GBP" data-currency-symbol="£">£ GBP</button> <button class="join-item btn btn-USD" data-currency="USD" data-currency-symbol="$">$ USD</button> <button class="join-item btn btn-EUR" data-currency="EUR" data-currency-symbol="€">€ EUR</button> </div> </div> <!-- Pricing Cards --> <div class="relative z-10 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 pricing-costs mt-10 lg:mt-16 -mb-20 lg:-mb-24"> <div class="card bg-base-100 shadow-xl pricing-box free ">  <div class="card-body text-center pt-8"> <h3 class="card-title justify-center text-2xl text-gray-900">Free</h3> <p class="text-sm text-gray-600 min-h-[80px]">Get a team website and app where you can plan matches, add reports and generate stats for your team and players.</p> <div class="my-6"> <div class="flex items-baseline justify-center gap-1"> <span class="pricing-currency-month text-2xl font-bold text-gray-700">£</span> <span class="pricing-amount-month text-5xl font-bold GBP text-gray-900" data-gbp="0" data-usd="0" data-eur="0"> 0 </span> <span class="pricing-amount-month text-5xl font-bold USD hidden text-gray-900">0</span> <span class="pricing-amount-month text-5xl font-bold EUR hidden text-gray-900">0</span> </div> <p class="text-sm text-gray-600 mt-1">Per month, per team</p> <p class="text-sm mt-4 text-success">Completely free of charge to use for as long as you want.</p> </div> <div class="card-actions justify-center"> <button class="btn btn-neutral btn-block view-features-table" data-plan="free">
118View all Free features
119</button> </div> </div> </div><div class="card bg-base-100 shadow-xl pricing-box plus ">  <div class="card-body text-center pt-8"> <h3 class="card-title justify-center text-2xl text-gray-900">Plus</h3> <p class="text-sm text-gray-600 min-h-[80px]">Includes all core-plan features and adds useful team management features including availability tracking, financial reporting and messaging.</p> <div class="my-6"> <div class="flex items-baseline justify-center gap-1"> <span class="pricing-currency-month text-2xl font-bold text-gray-700">£</span> <span class="pricing-amount-month text-5xl font-bold GBP text-gray-900" data-gbp="5" data-usd="6" data-eur="6"> 5 </span> <span class="pricing-amount-month text-5xl font-bold USD hidden text-gray-900">6</span> <span class="pricing-amount-month text-5xl font-bold EUR hidden text-gray-900">6</span> </div> <p class="text-sm text-gray-600 mt-1">Per month, per team</p> <p class="text-sm mt-4 text-gray-700">
120or <span class="pricing-currency-year">£</span> <span class="pricing-amount-year font-semibold GBP text-gray-900">50</span> <span class="pricing-amount-year font-semibold USD hidden text-gray-900">60</span> <span class="pricing-amount-year font-semibold EUR hidden text-gray-900">60</span>
121per year
122<br> <span class="text-success text-xs">two months free</span> </p> </div> <div class="card-actions justify-center"> <button class="btn btn-info btn-block view-features-table" data-plan="plus">
123View all Plus features
124</button> </div> </div> </div><div class="card bg-base-100 shadow-xl pricing-box pro ring-2 ring-primary"> <div class="absolute -top-3 left-1/2 -translate-x-1/2"> <span class="badge badge-primary badge-lg">Most Popular</span> </div> <div class="card-body text-center pt-8"> <h3 class="card-title justify-center text-2xl text-gray-900">Pro</h3> <p class="text-sm text-gray-600 min-h-[80px]">Includes every &quot;Plus&quot; feature and also gives you online payments, automated alerts, social media feeds and removes all ads. Our most popular plan.</p> <div class="my-6"> <div class="flex items-baseline justify-center gap-1"> <span class="pricing-currency-month text-2xl font-bold text-gray-700">
124£</span> <span class="pricing-amount-month text-5xl font-bold GBP text-gray-900" data-gbp="7" data-usd="9" data-eur="9"> 7 </span> <span class="pricing-amount-month text-5xl font-bold USD hidden text-gray-900">9</span> <span class="pricing-amount-month text-5xl font-bold EUR hidden text-gray-900">9</span> </div> <p class="text-sm text-gray-600 mt-1">Per month, per team</p> <p class="text-sm mt-4 text-gray-700">
125or <span class="pricing-currency-year">£</span> <span class="pricing-amount-year font-semibold GBP text-gray-900">70</span> <span class="pricing-amount-year font-semibold USD hidden text-gray-900">90</span> <span class="pricing-amount-year font-semibold EUR hidden text-gray-900">90</span>
126per year
127<br> <span class="text-success text-xs">two months free</span> </p> </div> <div class="card-actions justify-center"> <button class="btn btn-primary btn-block view-features-table" data-plan="pro">
128View all Pro features
129</button> </div> </div> </div><div class="card bg-base-100 shadow-xl pricing-box elite ">  <div class="card-body text-center pt-8"> <h3 class="card-title justify-center text-2xl text-gray-900">Elite</h3> <p class="text-sm text-gray-600 min-h-[80px]">Includes all &quot;Pro&quot; features plus unlimited SMS text messaging - for those teams that want the ultimate way of contacting team members.</p> <div class="my-6"> <div class="flex items-baseline justify-center gap-1"> <span class="pricing-currency-month text-2xl font-bold text-gray-700">£</span> <span class="pricing-amount-month text-5xl font-bold GBP text-gray-900" data-gbp="12" data-usd="15" data-eur="15"> 12 </span> <span class="pricing-amount-month text-5xl font-bold USD hidden text-gray-900">15</span> <span class="pricing-amount-month text-5xl font-bold EUR hidden text-gray-900">15</span> </div> <p class="text-sm text-gray-600 mt-1">Per month, per team</p> <p class="text-sm mt-4 text-gray-700">
130or <span class="pricing-currency-year">£</span> <span class="pricing-amount-year font-semibold GBP text-gray-900">120</span> <span class="pricing-amount-year font-semibold USD hidden text-gray-900">150</span> <span class="pricing-amount-year font-semibold EUR hidden text-gray-900">150</span>
131per year
132<br> <span class="text-success text-xs">two months free</span> </p> </div> <div class="card-actions justify-center">
132 <button class="btn btn-error btn-block view-features-table" data-plan="elite">
133View all Elite features
134</button> </div> </div> </div> </div> </div> </section>  <section class="text-center mt-24 lg:mt-40 pricing-free-trial-cta"> <div class="container mx-auto px-4 max-w-3xl"> <h2 class="text-3xl md:text-4xl font-bold mb-6">
135Get full access to every feature,<br>completely free for 30 days
136</h2> <p class="text-lg text-base-content/80 mb-8">
137When your free trial ends you can either upgrade to the plan of your choice or continue with the free plan for as long as you'd like.
138</p> <button class="trigger-signup btn btn-primary btn-lg shadow-lg">
139Start my 30 day free trial
140</button> <p class="text-sm text-base-content/60 mt-4 scrollToFeatures">No payment details required</p> </div> </section>  <section class="py-16 lg:py-16pricing-table-section"> <div class="container mx-auto px-0 lg:px-4 max-w-7xl"> <div class="overflow-x-auto lg:overflow-x-visible rounded-xl shadow-lg bg-white"> <table class="w-full pricing-table text-sm lg:text-base bg-white"> <colgroup> <col> <col class="free-table-column"> <col class="plus-table-column"> <col class="pro-table-column"> <col class="elite-table-column"> </colgroup> <thead class="pricing-table-header bg-white"> <tr class="bg-white"> <th class="align-middle"> <h3 class="p-0 m-0 text-lg lg:text-2xl font-medium text-gray-900">Compare features</h3> <p class="text-xs ml-4 mt-4">Tap on a feature to view more</p> </th> <th class="free-table-column align-middle"> <button class="view-features-table free-chooser" data-plan="free" data-colbgcolor="#6c757d"> <span class="plan-name">Free</span> </button> </th> <th class="plus-table-column align-middle"> <button class="view-features-table plus-chooser" data-plan="plus" data-colbgcolor="#00aced"> <span class="plan-name">Plus</span> </button> </th> <th class="pro-table-column align-middle"> <button class="view-features-table pro-chooser" data-plan="pro" data-colbgcolor="#3b5998"> <span class="plan-name">Pro</span> </button> </th> <th class="elite-table-column align-middle"> <button class="view-features-table elite-chooser" data-plan="elite" data-colbgcolor="#cb2027"> <span class="plan-name">Elite</span> </button> </th> </tr> </thead> <tbody>  <tr> <td colspan="5" class="seperator">Event Organisation</td> </tr> <tr class="pricing-feature-row" data-file-name="arrange-matches"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="arrange-matches"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="arrange-matches">Arrange matches</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="arrange-training-events"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="arrange-training-events"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="arrange-training-events">Arrange training and events</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="recurring-sessions"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="recurring-sessions"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="recurring-sessions">Recurring sessions</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="organise-plan-lineups"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="organise-plan-lineups"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="organise-plan-lineups">Plan and share line-ups</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="maps-directions"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="maps-directions"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="maps-directions">Maps and directions</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="organise-track-availability"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="organise-track-availability"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="organise-track-availability">Availability tracking</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="availability-requests-email"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="availability-requests-email"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="availability-requests-email">Availability requests by Push Alerts and Email</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="availability-requests-sms"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="availability-requests-sms"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="availability-requests-sms">Availability requests by SMS text</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="automated-scheduled-requests"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="automated-scheduled-requests"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="automated-scheduled-requests">Automated scheduled requests</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr> <tr> <td colspan="5" class="seperator">Performance Analysis</td> </tr> <tr class="pricing-feature-row" data-file-name="analyse-publish-match-reports"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="analyse-publish-match-reports"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="analyse-publish-match-reports">Generate match reports</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="advanced-match-reporting"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="advanced-match-reporting"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="advanced-match-reporting">Advanced match reporting</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="match-reports-newspaper-report"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="match-reports-newspaper-report"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="match-reports-newspaper-report">AI Match Reports</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="team-statistics"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-statistics"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-statistics">Team Statistics</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="analyse-player-stats"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="analyse-player-stats"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="analyse-player-stats">Player Statistics</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="advanced-stats"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="advanced-stats"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="advanced-stats">Advanced team and player stats</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="historical-stats"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="historical-stats"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="historical-stats">Historical statistics</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="teammate-rating"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="teammate-rating"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="teammate-rating">Teammate rating</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="export-stats"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="export-stats"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="export-stats">Export stats </span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr> <tr> <td colspan="5" class="seperator">Team Finances</td> </tr> <tr class="pricing-feature-row" data-file-name="team-finances"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-finances"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-finances">Manage team finances</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="player-finances"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="player-finances"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="player-finances">Manage player finances</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="automatic-charges"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="automatic-charges"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="automatic-charges">Automatic player charges</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="finances-receive-payments"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="finances-receive-payments"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="finances-receive-payments">Receive payments</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="payment-fees"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="payment-fees"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="payment-fees">Receive payment fees</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="cross">✘</span> </td> </tr><tr class="pricing-feature-row" data-file-name="export-payments"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="export-payments"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="export-payments">Export financial data</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr> <tr> <td colspan="5" class="seperator">Communication</td> </tr> <tr class="pricing-feature-row" data-file-name="team-website"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-website"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-website">Team website on all devices</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="team-app-android-ios"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-app-android-ios"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-app-android-ios">Team app (iOS and Android)</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="club-features"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="club-features"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="club-features">Multi-team club features</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="send-messages-email"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="send-messages-email"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="send-messages-email">Send messages by push alerts and email</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="send-messages-sms"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="send-messages-sms"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="send-messages-sms">Send messages by SMS text </span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="social-media"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="social-media"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="social-media">Facebook and Twitter feeds</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="team-member-profiles"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-member-profiles"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-member-profiles">Team member profiles</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="team-news-chat"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="team-news-chat"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="team-news-chat">Team news and chat</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="media-galleries"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="media-galleries"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="media-galleries">Team media galleries</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="photo-uploads"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="photo-uploads"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="photo-uploads">Photo uploads</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="video-uploads"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="video-uploads"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="video-uploads">Video uploads</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="custom-content-pages"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="custom-content-pages"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="custom-content-pages">Custom content pages</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr> <tr> <td colspan="5" class="seperator">Extras</td> </tr> <tr class="pricing-feature-row" data-file-name="safeguarding-privacy"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="safeguarding-privacy"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="safeguarding-privacy">Safeguarding and privacy options</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="content-access-controls"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="content-access-controls"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="content-access-controls">Content access controls</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="multiple-admin-users"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800">
140 <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="multiple-admin-users"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="multiple-admin-users">Multiple admin users</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="priority-support"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="priority-support"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="priority-support">Priority support</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr><tr class="pricing-feature-row" data-file-name="no-advertising"> <td class="text-xs lg:text-base px-4 lg:px-6 py-2 lg:py-3 text-gray-800"> <button type="button" class="text-primary cursor-pointer hover:underline flex items-center gap-1 show-feature-modal w-full justify-start text-left" data-file-name="no-advertising"> <svg class="w-3.5 h-3.5 text-primary feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="6"></circle> <line x1="16" y1="16" x2="20" y2="20"></line> </svg> <span class="featureName" data-file-name="no-advertising">Ad-Free</span> </button> </td> <td class="text-center free-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center plus-feature-value align-middle"> <span class="cross">✘</span> </td> <td class="text-center pro-feature-value align-middle"> <span class="tick">✔︎</span> </td> <td class="text-center elite-feature-value align-middle"> <span class="tick">✔︎</span> </td> </tr> <!-- Pricing Row --> <tr> <td colspan="5" class="seperator">Pricing</td> </tr> <tr class="pricing-feature-row costs"> <td class="px-4 lg:px-6 py-2 lg:py-3"> <span>Pay every month <span class="pricing-currency-month">£</span></span> </td> <td class="text-center font-semibold free-feature-value align-middle"> <span class="pricing-currency-month">£</span><span class="pricing-table-cost-month-free">0</span> </td> <td class="text-center font-semibold plus-feature-value align-middle"> <span class="pricing-currency-month">£</span><span class="pricing-table-cost-month-plus">5</span> </td> <td class="text-center font-semibold pro-feature-value align-middle"> <span class="pricing-currency-month">£</span><span class="pricing-table-cost-month-pro">7</span> </td> <td class="text-center font-semibold elite-feature-value align-middle"> <span class="pricing-currency-month">£</span><span class="pricing-table-cost-month-elite">12</span> </td> </tr> <tr class="pricing-feature-row costs"> <td class="px-4 lg:px-6 py-2 lg:py-3"> <span>Pay annually (two months free) <span class="pricing-currency-year">£</span></span> </td> <td class="text-center font-semibold free-feature-value align-middle"> <span class="pricing-currency-year">£</span><span class="pricing-table-cost-year-free">0</span> </td> <td class="text-center font-semibold plus-feature-value align-middle"> <span class="pricing-currency-year">£</span><span class="pricing-table-cost-year-plus">50</span> </td> <td class="text-center font-semibold pro-feature-value align-middle"> <span class="pricing-currency-year">£</span><span class="pricing-table-cost-year-pro">70</span> </td> <td class="text-center font-semibold elite-feature-value align-middle"> <span class="pricing-currency-year">£</span><span class="pricing-table-cost-year-elite">120</span> </td> </tr> </tbody> </table> </div> <!-- Currency Selector (bottom) --> <div class="text-center mt-8"> <p class="text-base-content/70 mb-3">
140Choose your currency:</p> <div class="join pricing-currency-selector" id="currency-selector-bottom"> <button class="join-item btn btn-active btn-GBP" data-currency="GBP" data-currency-symbol="£">£ GBP</button> <button class="join-item btn btn-USD" data-currency="USD" data-currency-symbol="$">$ USD</button> <button class="join-item btn btn-EUR" data-currency="EUR" data-currency-symbol="€">€ EUR</button> </div> </div> </div> </section>  <section class="mt-8 mb-8 text-center  pricing-free-trial-cta"> <div class="container mx-auto px-4 max-w-3xl"> <h2 class="text-3xl md:text-4xl font-bold mb-6">
141Get full access to every feature
142</h2> <button class="trigger-signup btn btn-primary btn-lg shadow-lg">
143Start my 30 day free trial
144</button> <p class="text-sm text-base-content/60 mt-4 scrollToFeatures">No payment details required</p> </div> </section>  <section class="py-8 lg:py-12 bg-base-200"> <div class="container mx-auto px-4 max-w-6xl"> <div class="flex flex-col lg:flex-row gap-8 lg:gap-12 items-center justify-center "> <div class="shrink-0 text-center"> <picture> <source srcset="https://assets.teamstats.net/img-m-800-80/photos/teams/Silverstone-Racers-FC.jpg?f=avif" type="image/avif" media="(min-width: 768px)"><source srcset="https://assets.teamstats.net/img-m-800-80/photos/teams/Silverstone-Racers-FC.jpg?f=webp" type="image/webp" media="(min-width: 768px)"><source srcset="https://assets.teamstats.net/img-m-500-75/photos/teams/Silverstone-Racers-FC.jpg?f=avif" type="image/avif"><source srcset="https://assets.teamstats.net/img-m-500-75/photos/teams/Silverstone-Racers-FC.jpg?f=webp" type="image/webp"> <img src="https://assets.teamstats.net/img-m-500-75/photos/teams/Silverstone-Racers-FC.jpg" alt="Nick Ashby - Silverstone Racers Football Club" loading="lazy" width="500" height="500" class="rounded-lg shadow-2xl w-64 lg:w-72 mx-auto"> </picture> </div> <div class="text-center lg:text-left max-w-2xl"> <blockquote class="text-xl md:text-2xl lg:text-3xl font-semibold mb-4 lg:mb-6 leading-relaxed">
145"We recouped the cost of TeamStats by collecting registration fees from players we didn&#39;t know we had."
146</blockquote> <div class="mt-4 lg:mt-6"> <p class="font-bold text-base lg:text-lg">Nick Ashby</p> <p class="text-base-content/70 text-sm lg:text-base">Silverstone Racers Football Club</p> </div> </div> </div> </div> </section>  <section class="video-hero-section" id="video" data-astro-cid-ux2kju4p> <!-- Background video (muted, autoplay, loop) --> <div class="video-bg" data-astro-cid-ux2kju4p>  <video data-lazy-src="https://assets.teamstats.net/mainsite/assets/video/promo/Teamstats-Promo-No-Text-Screens-Only-2.mp4" preload="none" muted loop playsinline class="bg-video-element video-hero-bg" aria-label="Background video" data-astro-cid-ux2kju4p></video> <!-- Dark overlay for readability --> <div class="video-overlay" data-astro-cid-ux2kju4p></div> </div> <!-- Content overlay --> <div class="container mx-auto px-4 max-w-7xl" data-astro-cid-ux2kju4p> <div class="content-with-mockup" data-astro-cid-ux2kju4p> <div class="content-wrapper" data-astro-cid-ux2kju4p> <h2 class="hero-title" data-astro-cid-ux2kju4p>Discover more with our video tour</h2> <p class="hero-description" data-astro-cid-ux2kju4p>In just one minute, you&#39;ll find out how TeamStats can transform your team.</p> <!-- Play button -->
147          <button id="openVideoModal" class="play-btn" aria-label="Play video in fullscreen" data-astro-cid-ux2kju4p> <svg viewBox="0 0 80 80" width="80" height="80" class="play-icon" data-astro-cid-ux2kju4p> <circle cx="40" cy="40" r="38" fill="rgba(220, 38, 38, 0.9)" stroke="#fff" stroke-width="2" data-astro-cid-ux2kju4p></circle> <path d="M32 26v28l24-14z" fill="#fff" data-astro-cid-ux2kju4p></path> </svg> <span class="sr-only" data-astro-cid-ux2kju4p>Play video</span> </button> </div> <!-- Optional phone mockup slot --> <div class="mockup-wrapper" data-astro-cid-ux2kju4p>  </div> </div> </div> <!-- Modal (native dialog) -->
148    <dialog id="videoModal" class="video-modal" data-astro-cid-ux2kju4p> <div class="modal-content" data-astro-cid-ux2kju4p> <button id="closeVideoModal" class="close-btn" aria-label="Close video" data-astro-cid-ux2kju4p> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-ux2kju4p> <line x1="18" y1="6" x2="6" y2="18" data-astro-cid-ux2kju4p></line> <line x1="6" y1="6" x2="18" y2="18" data-astro-cid-ux2kju4p></line> </svg> </button> <div class="modal-video-wrapper" data-astro-cid-ux2kju4p> <iframe id="modalVideoElement" src="" title="TeamStats video tour" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-astro-cid-ux2kju4p></iframe> </div> </div> </dialog> </section>  
148<script>(function(){const modalVideoUrl = "https://www.youtube.com/embed/r8SvuQnKoYE?autoplay=1&rel=0&modestbranding=1";
149const isModalYouTube = true;
150const buttonMode = "video";
151
152  // Only run video modal logic if in video mode
153  if (buttonMode !== 'video') {
154    // CTA mode - button is handled by signup-modal.js via trigger-signup class
155    console.log('VideoHeroSection in CTA mode - signup handled by signup-modal.js');
156  } else {
157    // Video mode - setup modal
158    // Wait for DOM to be fully loaded
159    document.addEventListener('DOMContentLoaded', () => {
160      // Use global BlurManager (loaded from blur-manager.js)
161      const blurManager = window.blurManager;
162        const modal = document.getElementById('videoModal');
163        const openBtn = document.getElementById('openVideoModal');
164        const closeBtn = document.getElementById('closeVideoModal');
165        const videoElement = document.getElementById('modalVideoElement');
166        
167        // Debug: Check if elements exist
168        if (!modal) {
169          console.error('Video modal not found');
170          return;
171        }
172        if (!openBtn) {
173          console.error('Open button not found');
174          return;
175        }
176        if (!videoElement) {
177          console.error('Modal video element not found');
178          return;
179        }
180      
181      // Check if browser supports <dialog>
182      if (typeof modal.showModal !== 'function') {
183        console.warn('Browser does not support <dialog> element. Using fallback.');
184        modal.style.display = 'none';
185      }
186      
187      console.log('Modal video URL:', modalVideoUrl);
188      console.log('Is YouTube:', isModalYouTube);
189
190      // Open modal
191      openBtn.addEventListener('click', (e) => {
192        e.preventDefault();
193        console.log('Play button clicked');
194        
195        try {
196          // Set video source based on type
197          if (isModalYouTube) {
198            videoElement.src = modalVideoUrl;
199            console.log('YouTube iframe src set to:', videoElement.src);
200          } else {
201            // For local video, just play it (src is already set in HTML)
202            videoElement.play();
203            console.log('Local video playing');
204          }
205          
206          // Use showModal if supported, otherwise fallback
207          if (typeof modal.showModal === 'function') {
208            modal.showModal();
209          } else {
210            modal.style.display = 'flex';
211            modal.setAttribute('open', '');
212          }
213          
214          // Enable blur effect
215          if (blurManager) {
216            blurManager.enable('video-modal');
217            console.log('Modal opened with blur effect');
218          }
219        } catch (error) {
220          console.error('Error opening modal:', error);
221          modal.style.display = 'flex';
222          modal.setAttribute('open', '');
223        }
224      });
225
226      // Close modal function
227      const closeModal = () => {
228        try {
229          if (typeof modal.close === 'function') {
230            modal.close();
231          } else {
232            modal.style.display = 'none';
233            modal.removeAttribute('open');
234          }
235          
236          // Stop video based on type
237          if (isModalYouTube) {
238            videoElement.src = '';
239          } else {
240            videoElement.pause();
241            videoElement.currentTime = 0;
242          }
243          
244          // Disable blur effect
245          if (blurManager) {
246            blurManager.disable('video-modal');
247            console.log('Modal closed, blur disabled');
248          }
249        } catch (error) {
250          console.error('Error closing modal:', error);
251          modal.style.display = 'none';
252          if (blurManager) {
253            blurManager.disable('video-modal');
254          }
255        }
256      };
257
258      // Close button
259      if (closeBtn) {
260        closeBtn.addEventListener('click', (e) => {
261          e.preventDefault();
262          closeModal();
263        });
264      }
265
266      // Close on backdrop click
267      modal.addEventListener('click', (e) => {
268        const rect = modal.getBoundingClientRect();
269        const isInDialog = (
270          rect.top <= e.clientY &&
271          e.clientY <= rect.top + rect.height &&
272          rect.left <= e.clientX &&
273          e.clientX <= rect.left + rect.width
274        );
275        
276        if (!isInDialog) {
277          closeModal();
278        }
279      });
280
281      // Close on Escape key
282      document.addEventListener('keydown', (e) => {
283        if (e.key === 'Escape' && modal.hasAttribute('open')) {
284          closeModal();
285        }
286      });
287
288      // Native close event
289      modal.addEventListener('close', () => {
290        if (isModalYouTube) {
291          videoElement.src = '';
292        } else {
293          videoElement.pause();
294          videoElement.currentTime = 0;
295        }
296        if (blurManager) {
297          blurManager.disable('video-modal');
298        }
299      });
300    }); // Close DOMContentLoaded
301  } // Close else (video mode)
302})();</script>
302  <section class="py-16 bg-base-200"> <div class="container mx-auto px-4 max-w-7xl"> <div class="grid grid-cols-1 lg:grid-cols-3 gap-8"> <div> <h2 class="text-2xl font-bold mb-6">Frequently Asked Questions</h2> </div> <div class="space-y-6"> <div> <h3 class="font-bold text-lg mb-2">I&#39;m not sure which plan is right for me?</h3> <p class="text-base-content/80">You don&#39;t have to decide now - sign up for our free 30 day trial of all features and you can try them all out.</p> </div><div> <h3 class="font-bold text-lg mb-2">Do I need to provide payment details to start the trial?</h3> <p class="text-base-content/80">No - we only ever ask for your payment details if you decide to upgrade to a paid plan at the end of your trial.</p> </div><div> <h3 class="font-bold text-lg mb-2">What happens at the end of the free trial?</h3> <p class="text-base-content/80">You can either upgrade to the plan of your choice or continue on our free plan for as long as you want.</p> </div><div> <h3 class="font-bold text-lg mb-2">What payment methods do you accept?</h3> <p class="text-base-content/80">You can use any debit or credit card - All card payments are handled by Stripe, one of the largest and most secure payment processors in the world. Bank transfers are available for UK users wanting to upgrade to any annual plan.</p> </div><div> <h3 class="font-bold text-lg mb-2">What&#39;s your refund policy?</h3> <p class="text-base-content/80">We deal with refunds on a case-by-case basis and we&#39;re very fair - just get in touch and we&#39;ll try our best to help.</p> </div> </div> <div class="space-y-6"> <div> <h3 class="font-bold text-lg mb-2">How long does it take to upgrade?</h3> <p class="text-base-content/80">Upgrades are instant - as soon as you make payment you&#39;ll have full access to the plan you&#39;ve chosen.</p> </div><div> <h3 class="font-bold text-lg mb-2">Will I have to remember to renew every month or year?</h3> <p class="text-base-content/80">No - payments are taken automatically for your chosen subscription period to ensure you always have full access to the plan you&#39;ve chosen.</p> </div><div> <h3 class="font-bold text-lg mb-2">Can I upgrade or downgrade my plan as needed?</h3> <p class="text-base-content/80">Of course! If your needs change then just contact us and we can quickly switch you to a different plan.</p> </div><div> <h3 class="font-bold text-lg mb-2">Is there a minimum-term contract for the paid plans?</h3> <p class="text-base-content/80">There&#39;s no contract - you only pay for the period you choose and are free to cancel at any time.</p> </div><div> <h3 class="font-bold text-lg mb-2">Do you offer discounts?</h3> <p class="text-base-content/80">We&#39;re happy to offer substantial discounts for clubs with multiple teams - please contact us to discuss further.</p> </div> </div> </div> </div> </section>  <section class="video-hero-section" id="video" data-astro-cid-ux2kju4p> <!-- Background video (muted, autoplay, loop) --> <div class="video-bg" data-astro-cid-ux2kju4p>  <video data-lazy-src="https://assets.teamstats.net/mainsite/assets/video/backgrounds/Drone-Match-2.mp4" preload="none" muted loop playsinline class="bg-video-element video-hero-bg" aria-label="Background video" data-astro-cid-ux2kju4p></video> <!-- Dark overlay for readability --> <div class="video-overlay" data-astro-cid-ux2kju4p></div> </div> <!-- Content overlay --> <div class="container mx-auto px-4 max-w-7xl" data-astro-cid-ux2kju4p> <div class="content-with-mockup" data-astro-cid-ux2kju4p> <div class="content-wrapper" data-astro-cid-ux2kju4p> <h2 class="hero-title" data-astro-cid-ux2kju4p>Are you ready to kick off?</h2> <p class="hero-description" data-astro-cid-ux2kju4p>Registering your team is quick and easy. Just enter a few basic details and we&#39;ll do the rest.</p> <!-- CTA button - uses same classes as other Get Started buttons -->
303          <button class="trigger-signup btn btn-primary btn-lg uppercase font-semibold" data-astro-cid-ux2kju4p> GET STARTED FOR FREE </button> </div> <!-- Optional phone mockup slot --> <div class="mockup-wrapper" data-astro-cid-ux2kju4p>
303  </div> </div> </div>  </section>  
303<script>(function(){const modalVideoUrl = "https://www.youtube.com/embed/undefined?autoplay=1&rel=0&modestbranding=1";
304const isModalYouTube = true;
305const buttonMode = "cta";
306
307  // Only run video modal logic if in video mode
308  if (buttonMode !== 'video') {
309    // CTA mode - button is handled by signup-modal.js via trigger-signup class
310    console.log('VideoHeroSection in CTA mode - signup handled by signup-modal.js');
311  } else {
312    // Video mode - setup modal
313    // Wait for DOM to be fully loaded
314    document.addEventListener('DOMContentLoaded', () => {
315      // Use global BlurManager (loaded from blur-manager.js)
316      const blurManager = window.blurManager;
317        const modal = document.getElementById('videoModal');
318        const openBtn = document.getElementById('openVideoModal');
319        const closeBtn = document.getElementById('closeVideoModal');
320        const videoElement = document.getElementById('modalVideoElement');
321        
322        // Debug: Check if elements exist
323        if (!modal) {
324          console.error('Video modal not found');
325          return;
326        }
327        if (!openBtn) {
328          console.error('Open button not found');
329          return;
330        }
331        if (!videoElement) {
332          console.error('Modal video element not found');
333          return;
334        }
335      
336      // Check if browser supports <dialog>
337      if (typeof modal.showModal !== 'function') {
338        console.warn('Browser does not support <dialog> element. Using fallback.');
339        modal.style.display = 'none';
340      }
341      
342      console.log('Modal video URL:', modalVideoUrl);
343      console.log('Is YouTube:', isModalYouTube);
344
345      // Open modal
346      openBtn.addEventListener('click', (e) => {
347        e.preventDefault();
348        console.log('Play button clicked');
349        
350        try {
351          // Set video source based on type
352          if (isModalYouTube) {
353            videoElement.src = modalVideoUrl;
354            console.log('YouTube iframe src set to:', videoElement.src);
355          } else {
356            // For local video, just play it (src is already set in HTML)
357            videoElement.play();
358            console.log('Local video playing');
359          }
360          
361          // Use showModal if supported, otherwise fallback
362          if (typeof modal.showModal === 'function') {
363            modal.showModal();
364          } else {
365            modal.style.display = 'flex';
366            modal.setAttribute('open', '');
367          }
368          
369          // Enable blur effect
370          if (blurManager) {
371            blurManager.enable('video-modal');
372            console.log('Modal opened with blur effect');
373          }
374        } catch (error) {
375          console.error('Error opening modal:', error);
376          modal.style.display = 'flex';
377          modal.setAttribute('open', '');
378        }
379      });
380
381      // Close modal function
382      const closeModal = () => {
383        try {
384          if (typeof modal.close === 'function') {
385            modal.close();
386          } else {
387            modal.style.display = 'none';
388            modal.removeAttribute('open');
389          }
390          
391          // Stop video based on type
392          if (isModalYouTube) {
393            videoElement.src = '';
394          } else {
395            videoElement.pause();
396            videoElement.currentTime = 0;
397          }
398          
399          // Disable blur effect
400          if (blurManager) {
401            blurManager.disable('video-modal');
402            console.log('Modal closed, blur disabled');
403          }
404        } catch (error) {
405          console.error('Error closing modal:', error);
406          modal.style.display = 'none';
407          if (blurManager) {
408            blurManager.disable('video-modal');
409          }
410        }
411      };
412
413      // Close button
414      if (closeBtn) {
415        closeBtn.addEventListener('click', (e) => {
416          e.preventDefault();
417          closeModal();
418        });
419      }
420
421      // Close on backdrop click
422      modal.addEventListener('click', (e) => {
423        const rect = modal.getBoundingClientRect();
424        const isInDialog = (
425          rect.top <= e.clientY &&
426          e.clientY <= rect.top + rect.height &&
427          rect.left <= e.clientX &&
428          e.clientX <= rect.left + rect.width
429        );
430        
431        if (!isInDialog) {
432          closeModal();
433        }
434      });
435
436      // Close on Escape key
437      document.addEventListener('keydown', (e) => {
438        if (e.key === 'Escape' && modal.hasAttribute('open')) {
439          closeModal();
440        }
441      });
442
443      // Native close event
444      modal.addEventListener('close', () => {
445        if (isModalYouTube) {
446          videoElement.src = '';
447        } else {
448          videoElement.pause();
449          videoElement.currentTime = 0;
450        }
451        if (blurManager) {
452          blurManager.disable('video-modal');
453        }
454      });
455    }); // Close DOMContentLoaded
456  } // Close else (video mode)
457})();</script>
457 <footer class="bg-neutral-900 text-neutral-100 pt-10 pb-8"> <div class="max-w-6xl mx-auto px-6"> <div class="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-10"> <div> <ul class="space-y-2 text-sm md:text-base"> <li> <a href="/" class="hover:text-white">Home</a> </li> <li> <a href="/all-teamstats-features" class="hover:text-white">Features</a> </li> <li> <a href="/pricing" class="hover:text-white">Pricing</a> </li> <li> <button class="signup-trigger hover:text-white">Sign Up</button> </li> <li> <a class="pt-3 hover:text-white" href="#" data-fancybox="" data-type="iframe" data-src="https://www.youtube.com/embed/r8SvuQnKoYE?autoplay=1&modestbranding=1&rel=0&iv_load_policy=3&controls=0">
458Video Tour
459</a> </li> <li> <a href="/advertise-to-football-teams-players" class="hover:text-white">Advertise</a> </li> </ul> </div> <div> <ul class="space-y-2 text-sm md:text-base"> <li> <a href="/teamstats-top-50-football-teams" class="hover:text-white">Top 50 Teams</a> </li> <li> <a href="/teams" class="hover:text-white">Team Directory</a> </li> <li> <a href="/leagues" class="hover:text-white">League Directory</a> </li> <li> <a href="/match-reports" class="hover:text-white">Match Reports</a> </li> <li> <a href="/football-coaching" class="hover:text-white">Football Coaching</a> </li> <li> <a href="/blog" class="hover:text-white">Grassroots Football Blog</a> </li> </ul> </div> <div> <ul class="space-y-2 text-sm md:text-base"> <li> <a class="external-link social-media hover:text-white" target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/teamstats">
460Like us on Facebook
461</a> </li> <li> <a class="external-link social-media hover:text-white" target="_blank" rel="noopener noreferrer" href="https://x.com/teamstats">
462Follow us on X
463</a> </li> <li> <a class="external-link social-media hover:text-white" target="_blank" rel="noopener noreferrer" href="https://instagram.com/teamstatsapp">
464Follow us on Instagram
465</a> </li> <li> <a class="external-link social-media hover:text-white" target="_blank" rel="noopener noreferrer" href="https://youtube.com/teamstats">
466Watch us on YouTube
467</a> </li> <li> <a class="external-link social-media hover:text-white" target="_blank" rel="noopener noreferrer" href="https://www.tiktok.com/@teamstats.net">
468Follow us on TikTok
469</a> </li> <li> <a href="/blog/write-for-us" class="hover:text-white">Write for us</a> </li> </ul> </div> <div class="flex flex-col items-start justify-start"> <div class="space-y-3"> <a class="external-link app-store inline-block" href="https://apps.apple.com/gb/app/teamstats-football-team-app/id1275644100?mt=8" target="_blank" rel="noopener noreferrer"> <img alt="Download the TeamStats iOS app" class="mb-3 shadow-lg max-w-[160px] w-full h-auto" src="https://assets.teamstats.net/img-m-250-70/logos/app-stores/app-store-badge.png" width="160" height="48"> </a> <a class="external-link app-store inline-block" href="https://play.google.com/store/apps/details?id=net.teamstats.app" target="_blank" rel="noopener noreferrer"> <img alt="Download the TeamStats Android app" class="shadow-lg max-w-[160px] w-full h-auto" src="https://assets.teamstats.net/img-m-250-70/logos/app-stores/google-play-badge.png" width="160" height="48"> </a> </div> </div> </div> <div class="mt-8 pt-4 border-t border-neutral-800 text-xs md:text-sm text-neutral-300"> <div class="mb-1">
470&copy; <span class="update-year">2026</span> Teamstats.net Limited
471</div> <div class="flex flex-wrap items-center gap-3"> <a href="/teamstats-privacy-policy" class="hover:text-white">Privacy Policy</a> <a href="/teamstats-terms-of-use" class="hover:text-white">Terms of Use</a> </div> </div> </div> </footer>  <dialog id="feature-modal" class="modal"> <div class="modal-box w-11/12 max-w-5xl p-6 lg:p-8 feature-modal-box bg-white"> <div class="feature-modal-header flex items-start justify-between gap-2"> <h3 id="feature-modal-title" class="font-bold text-xl lg:text-2xl flex-1 mr-4"></h3> <form method="dialog"> <button class="btn btn-sm btn-circle btn-ghost shrink-0">✕</button> </form> </div> <div class="feature-modal-body"> <p id="feature-modal-description" class="text-base-content/80 mb-4"></p> <ul id="feature-modal-features" class="space-y-2 mb-6"></ul> <div id="feature-modal-devices" class="flex justify-center items-center mb-6 min-h-[300px] lg:min-h-[400px]"></div> <div id="feature-modal-cta" class="text-center mt-16 mb-16"></div> </div> </div> <form method="dialog" class="modal-backdrop"> <button>close</button> </form> </dialog>  </div> <div id="login-modal" role="dialog" aria-modal="true" aria-labelledby="login-modal-title" class="fixed inset-0 z-[9999] hidden items-center justify-center bg-black/50 backdrop-blur-sm" data-astro-cid-4iwzqplc> <div class="card w-full max-w-md bg-white shadow-2xl mx-4 max-h-[90vh] flex flex-col overflow-hidden" data-astro-cid-4iwzqplc> <!-- Header --> <div class="flex items-center justify-between px-4 py-4 border-b bg-white" data-astro-cid-4iwzqplc> <h2 id="login-modal-title" class="text-lg font-semibold tracking-tight" data-astro-cid-4iwzqplc>Log in to TeamStats</h2> <button id="close-login-modal" class="btn btn-xs btn-circle btn-ghost" aria-label="Close" data-astro-cid-4iwzqplc> <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" data-astro-cid-4iwzqplc> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-4iwzqplc></path> </svg> </button> </div> <div class="card-body flex-1 flex flex-col overflow-y-auto" data-astro-cid-4iwzqplc> <!-- Error Message --> <div id="login-error" class="alert alert-error hidden mb-4" role="alert" aria-live="polite" data-astro-cid-4iwzqplc> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24" data-astro-cid-4iwzqplc> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" data-astro-cid-4iwzqplc></path> </svg> <span id="login-error-text" data-astro-cid-4iwzqplc></span> </div> <!-- Success Message --> <div id="login-success" class="hidden mb-4" data-astro-cid-4iwzqplc></div> <!-- Step 1: Login Form --> <div id="login-step-1" class="login-step flex flex-col flex-1" data-astro-cid-4iwzqplc> <form id="login-form" autocomplete="on" class="space-y-5" data-astro-cid-4iwzqplc> <div class="form-control" data-astro-cid-4iwzqplc> <label class="label pb-1" for="login-username" data-astro-cid-4iwzqplc> <span class="label-text text-sm font-semibold uppercase tracking-wide" data-astro-cid-4iwzqplc>Username or email address</span> </label> <input type="text" id="login-username" name="username" autocomplete="username" class="input input-bordered w-full bg-slate-50 text-base" required data-astro-cid-4iwzqplc> </div> <div class="form-control" data-astro-cid-4iwzqplc> <label class="label pb-1" for="login-password" data-astro-cid-4iwzqplc> <span class="label-text text-sm font-semibold uppercase tracking-wide" data-astro-cid-4iwzqplc>Password</span> </label> <input type="password" id="login-password" name="password" autocomplete="current-password" class="input input-bordered w-full bg-slate-50 text-base" required data-astro-cid-4iwzqplc> </div> <div class="form-control mt-6 mb-16" data-astro-cid-4iwzqplc> <button type="submit" class="btn btn-success w-full text-white text-base font-semibold tracking-wide" data-astro-cid-4iwzqplc>
472LOG IN
473</button> </div> </form> </div> <!-- Step: Team Selection (dynamically populated by login.js) --> <div id="login-step-teams" class="login-step hidden" data-astro-cid-4iwzqplc> <!-- Content injected by login.js after successful authentication --> </div> <!-- Step 2: Forgot Password --> <div id="login-step-2" class="login-step hidden" data-astro-cid-4iwzqplc> <div class="space-y-4" data-astro-cid-4iwzqplc> <p class="text-base-content/70" data-astro-cid-4iwzqplc>
474Please enter your username OR your registered email address below - any matching account details will be emailed to you with further instructions
475</p> <form id="forgot-password-form" class="space-y-4" data-astro-cid-4iwzqplc> <div class="form-control" data-astro-cid-4iwzqplc> <label class="label" for="forgot-username-email" data-astro-cid-4iwzqplc> <span class="label-text font-medium" data-astro-cid-4iwzqplc>Username or Email</span> </label> <input type="text" id="forgot-username-email" name="usernameOrEmail" autocomplete="username" placeholder="Enter your username or email" class="input input-bordered w-full" required data-astro-cid-4iwzqplc> </div> <div class="form-control mt-6 mb-16" data-astro-cid-4iwzqplc> <button type="submit" class="btn btn-primary w-full text-sm font-semibold tracking-wide" data-astro-cid-4iwzqplc>
476SUBMIT
477</button> <p id="forgot-password-status" class="text-sm text-base-content/80 hidden" data-astro-cid-4iwzqplc></p> </div> </form> </div> </div> <!-- Footer: Forgot password link --> <div class="mt-auto pt-4 border-t text-center text-xs font-semibold tracking-wide text-primary" data-astro-cid-4iwzqplc> <a href="#" id="show-forgot-password" data-astro-cid-4iwzqplc>FORGOT PASSWORD?</a> </div> </div> </div> </div> 
477<script type="module">let m=1;function r(t){m=t,document.querySelectorAll(".login-step").forEach(l=>l.classList.add("hidden"));const o=document.getElementById(`login-step-${t}`);o&&o.classList.remove("hidden");const n=document.querySelector("#login-modal h2");t===2?n&&(n.textContent="Forgot Password"):n&&(n.textContent="Log in to TeamStats");const e=document.getElementById("show-forgot-password"),s=e?.parentElement;e&&(e.textContent=t===2?"BACK TO LOG IN":"FORGOT PASSWORD?"),s&&(s.style.display=t===1||t===2?"":"none")}document.getElementById("show-forgot-password")?.addEventListener("click",t=>{t.preventDefault(),r(m===2?1:2)});document.getElementById("switch-to-signup")?.addEventListener("click",async t=>{t.preventDefault();const o=window.blurManager,n=document.getElementById("login-modal"),e=document.getElementById("full-page-overlay");n&&(n.classList.add("hidden"),n.classList.remove("flex")),e&&(e.classList.remove("hidden"),e.classList.add("flex")),o?.disable("login-modal"),o?.enable("signup-modal"),r(1)});document.getElementById("forgot-password-form")?.addEventListener("submit",async t=>{t.preventDefault();const o=t.target,n=document.getElementById("forgot-username-email"),e=document.getElementById("forgot-password-status"),s=o.querySelector('button[type="submit"]'),d=(n?.value||"").trim();if(d){e&&(e.classList.remove("hidden"),e.textContent="Sending reset instructions..."),s&&(s.disabled=!0,s.textContent="SENDING...");try{const i=window.getTeamStatsBaseUrl,u=`${(i?i():"https://www.teamstats.net").replace(/\/$/,"")}/api/user/forgottenPassword.asp?searchFor=${encodeURIComponent(d)}`,f=await fetch(u,{method:"GET",credentials:"include"});let c="If an account exists with that username or email, you will receive password reset instructions shortly.";try{const a=await f.json();a&&a.response&&typeof a.response.statusText=="string"&&(c=a.response.statusText)}catch{}e&&(e.textContent=c)}catch{e&&(e.textContent="There was a problem sending the reset email. Please try again in a moment.")}finally{s&&(s.disabled=!1,s.textContent="SUBMIT")}}});</script>
477 <div id="full-page-overlay" role="dialog" aria-modal="true" aria-labelledby="signup-title" class="fixed inset-0 z-9999 hidden items-center justify-center bg-black/50 backdrop-blur-sm" data-astro-cid-uc2ui6qy> <div class="card w-full max-w-lg bg-white shadow-2xl mx-4 max-h-[90vh] overflow-y-auto" data-astro-cid-uc2ui6qy> <div class="card-body" data-astro-cid-uc2ui6qy> <!-- Header --> <div class="flex items-start justify-between mb-6" data-astro-cid-uc2ui6qy> <div data-astro-cid-uc2ui6qy> <h2 id="signup-title" class="card-title text-3xl font-bold" data-astro-cid-uc2ui6qy>Sign Up</h2> <p id="signup-subtitle" class="text-base text-base-content/70 mt-1" data-astro-cid-uc2ui6qy>Free to join. No payment details required.</p> </div> <button class="btn btn-sm btn-circle btn-ghost" id="close-full-overlay" aria-label="Close" data-astro-cid-uc2ui6qy> <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" data-astro-cid-uc2ui6qy> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-uc2ui6qy></path> </svg> </button> </div> <!-- Error Message --> <div id="signup-error" class="alert alert-error hidden mb-4" role="alert" aria-live="polite" data-astro-cid-uc2ui6qy> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24" data-astro-cid-uc2ui6qy> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" data-astro-cid-uc2ui6qy></path> </svg> <span data-astro-cid-uc2ui6qy></span> </div> <!-- Step 1: Choose option --> <div id="step-1" class="signup-step space-y-5" data-astro-cid-uc2ui6qy> <button type="button" class="btn btn-success btn-lg w-full text-lg font-semibold tracking-wide" id="create-team-option" data-astro-cid-uc2ui6qy>
478CREATE NEW TEAM
479</button> <p class="text-base text-base-content/70 text-center max-w-md mx-auto" data-astro-cid-uc2ui6qy>Select this option if you are a team admin and want to set up a new team.</p> <div class="divider" data-astro-cid-uc2ui6qy>OR</div> <button type="button" class="btn btn-primary btn-lg w-full text-lg font-semibold tracking-wide" id="join-team-option" data-astro-cid-uc2ui6qy>
480EXISTING TEAM
481</button> <p class="text-base text-base-content/70 text-center max-w-md mx-auto" data-astro-cid-uc2ui6qy>Select this option if you want to be added to a team that is already registered.</p> </div> <!-- Step 2: Create new team --> <div id="step-2" class="signup-step hidden" data-astro-cid-uc2ui6qy> <form id="create-team-form" autocomplete="off" class="space-y-4" data-astro-cid-uc2ui6qy> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="create-team-name" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>Club/Team Name</span> </label> <input id="create-team-name" name="teamName" type="text" autocomplete="organization" placeholder="Enter team name" class="input input-bordered w-full focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="create-email" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>Your Email Address</span> </label> <input id="create-email" name="email" type="email" autocomplete="email" placeholder="Enter your email" class="input input-bordered w-full lowercase focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="create-fullname" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>Your Full Name</span> </label> <input id="create-fullname" name="fullName" type="text" autocomplete="name" placeholder="Enter your full name" class="input input-bordered w-full focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="create-password" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>
481Choose a Password</span> </label> <input id="create-password" name="newPassword" type="password" autocomplete="new-password" placeholder="Enter password" class="input input-bordered w-full focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="flex flex-col gap-3 pt-4" data-astro-cid-uc2ui6qy> <button id="signup-button" type="submit" class="btn btn-primary btn-lg w-full text-base" data-astro-cid-uc2ui6qy>Sign Up</button> <div id="loading-anim" class="hidden flex items-center justify-center gap-2 text-base-content/70" data-astro-cid-uc2ui6qy> <span class="loading loading-spinner loading-md" data-astro-cid-uc2ui6qy></span> <span data-astro-cid-uc2ui6qy>Creating your team...</span> </div> </div> </form> </div> <!-- Step 3: Join team - Enter details --> <div id="step-3" class="signup-step hidden" data-astro-cid-uc2ui6qy> <h3 class="text-2xl font-semibold mb-4 flex items-center gap-2" data-astro-cid-uc2ui6qy> <span class="text-2xl" data-astro-cid-uc2ui6qy>👤</span> Please enter your details
482</h3> <form id="join-details-form" class="space-y-4" data-astro-cid-uc2ui6qy> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="join-email" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>What's your email address?</span> </label> <input type="email" id="join-email" name="joinEmail" autocomplete="email" placeholder="Enter your email" class="input input-bordered w-full focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="join-fullname" data-astro-cid-uc2ui6qy> <span class="label-text font-medium text-base" data-astro-cid-uc2ui6qy>What's your full name?</span> </label> <input type="text" id="join-fullname" name="joinFullName" autocomplete="name" placeholder="Enter your full name" class="input input-bordered w-full focus:input-primary text-base" required data-astro-cid-uc2ui6qy> </div> <div class="flex gap-3 pt-4" data-astro-cid-uc2ui6qy> <button type="button" class="btn btn-outline flex-1" id="back-to-step-1" data-astro-cid-uc2ui6qy>Back</button> <button type="submit" class="btn btn-primary flex-1" data-astro-cid-uc2ui6qy>Continue</button> </div> </form> </div> <!-- Step 4: Search for team --> <div id="step-4" class="signup-step hidden" data-astro-cid-uc2ui6qy> <h3 class="text-xl font-semibold mb-4 flex items-center gap-2" data-astro-cid-uc2ui6qy> <span class="text-2xl" data-astro-cid-uc2ui6qy>👕</span> What is your team called?
483</h3> <form id="search-team-form" class="space-y-4" data-astro-cid-uc2ui6qy> <div class="form-control" data-astro-cid-uc2ui6qy> <label class="label" for="team-search" data-astro-cid-uc2ui6qy> <span class="label-text font-medium" data-astro-cid-uc2ui6qy>Search for and select your team</span> </label> <input type="text" id="team-search" name="teamSearch" autocomplete="off" placeholder="Minimum 3 characters" class="input input-bordered w-full focus:input-primary" data-astro-cid-uc2ui6qy> </div> <div id="team-results" class="space-y-2 max-h-64 overflow-y-auto" data-astro-cid-uc2ui6qy></div> <div class="pt-4" data-astro-cid-uc2ui6qy> <button type="button" class="btn btn-outline w-full" id="back-to-step-3" data-astro-cid-uc2ui6qy>Back</button> </div> </form> </div> <!-- Step 5: Confirm details --> <div id="step-5" class="signup-step hidden" data-astro-cid-uc2ui6qy> <h3 class="text-xl font-semibold mb-4" data-astro-cid-uc2ui6qy>Please check the following details are correct:</h3> <div class="bg-base-200 rounded-lg p-4 space-y-3 mb-6" data-astro-cid-uc2ui6qy> <div data-astro-cid-uc2ui6qy> <p class="text-sm font-medium text-base-content/70" data-astro-cid-uc2ui6qy>Your name:</p> <p class="text-base font-semibold" id="confirm-name" data-astro-cid-uc2ui6qy></p> </div> <div data-astro-cid-uc2ui6qy> <p class="text-sm font-medium text-base-content/70" data-astro-cid-uc2ui6qy>Your email:</p> <p class="text-base font-semibold" id="confirm-email" data-astro-cid-uc2ui6qy></p> </div> <div data-astro-cid-uc2ui6qy> <p class="text-sm font-medium text-base-content/70" data-astro-cid-uc2ui6qy>Your team name:</p> <p class="text-base font-semibold" id="confirm-team" data-astro-cid-uc2ui6qy></p> </div> </div> <div class="flex gap-3" data-astro-cid-uc2ui6qy> <button type="button" class="btn btn-outline flex-1" id="back-to-step-4" data-astro-cid-uc2ui6qy>Back</button> <button type="button" class="btn btn-primary flex-1" id="confirm-signup" data-astro-cid-uc2ui6qy>Confirm Details</button> </div> </div> </div> </div> </div> <!-- Team Selector Modal - Matches Login/Signup Modal Structure --><div id="team-selector-modal" role="dialog" aria-modal="true" aria-labelledby="team-selector-title" class="fixed inset-0 z-[9999] hidden items-center justify-center bg-black/50 backdrop-blur-sm"> <div class="card w-full max-w-2xl bg-base-100 shadow-2xl mx-4 max-h-[90vh] overflow-y-auto"> <div class="card-body"> <div class="flex items-start justify-between mb-4"> <h3 id="team-selector-title" class="card-title text-2xl font-bold">Select Your Team</h3> <button id="close-team-selector-modal" class="btn btn-sm btn-circle btn-ghost" aria-label="Close"> <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </div>
483 <ul id="team-selector-content" class="menu bg-base-200 rounded-box w-full"> <!-- Team items will be dynamically inserted here --> </ul> </div> </div> </div> <!-- BlurObserver - automatic blur management (deferred to not block render) --> 
483<script src="/scripts/blur-observer.js?v=1" defer></script>
483 <!-- URL Helpers + global page view tracking -->
483<script src="/scripts/url-helpers.js?v=1" defer></script>
483 <!-- Video lazy loading and viewport playback -->
483<script src="/scripts/video-lazy-load.js?v=1" defer></script>
483 
483<script src="/scripts/video-hero-lazy-load.js?v=1" defer></script>
483 <!-- Global contact-trigger handler for Crisp chat -->
483<script src="/scripts/contact-trigger.js?v=1" defer></script>
483 <!-- Cloudflare Zaraz script (global) --><!-- Cloudflare Zaraz script (shared header component) -->
483<script src="/cdn-cgi/zaraz/i.js" referrerpolicy="origin"></script>
483 <!-- localForage for IndexedDB storage (Angular app compatibility) --> 
483<script src="/scripts/vendor/localforage-1.10.0.min.js" defer></script>
483 <!-- Login and Signup Scripts --> 
483<script src="/scripts/login.js?v=1" defer></script>
483 
483<script src="/scripts/signup-modal.js?v=1" defer></script>
483 
483<script src="/scripts/modal-handlers.js?v=1" defer></script>
483 
483<script src="/scripts/signup-button-handlers.js?v=1" defer></script>
483 
483<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a44081e0ed0be828',t:'MTc5MDkxMDU1Ng=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
483<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"30fb6db4ee0d4706b5913c0c01e5f0d1","spa":2}' crossorigin="anonymous"></script>
483
484</body> </html> <!-- Feature sections data for client-side JS --> 
484<script>(function(){const featureSectionsForClient = {"arrange-matches":{"title":"Schedule football matches across your season","description":"Add opponents, kick-off times, venues and competition details so the complete fixture information is available to your team.","features":["Quickly schedule your league, cup, friendly and tournament matches","Simply add your opponents, location, referee, and match fees","Easily make changes to your details","Plan weeks or months in advance as needed"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"organise-schedule-matches-training-2","deviceName":"laptopPhone","device1":{"media":"image","alt":"Arrange your matches easier and faster - laptop view","type":"laptop","src":"arrange-matches-desktop.png"},"blockName":"arrange-matches","device2":{"media":"image","alt":"Arrange your matches easier and faster - phone view","type":"phone","src":"arrange-matches.png"}},"arrange-training-events":{"title":"Organise training sessions and all other team events","description":"NULL","features":["Add regular or one-off training sessions to your team's schedule","Other team related events can also be organised including presentation evenings, tours, meetings and social events","Simply add your event details with dates and locations","Quickly update details as needed","Schedule your events, weeks or months in advance"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"organise-schedule-matches-training-3","deviceName":"twoPhones","device1":{"media":"image","alt":"Organise training sessions and all other team events - phone view","type":"phone","src":"organise-training-location.png"},"blockName":"arrange-training-events","device2":{"media":"image","alt":"Organise training sessions and all other team events - phone view","type":"phone","src":"organise-training.png"}},"recurring-sessions":{"title":"Manage regular or repeating events","description":"NULL","features":["Add multiple sessions in one batch","Team members can then confirm availability months in advance","Make changes to a single session or update every session"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"organise-schedule-matches-training-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Manage regular or repeating events - phone view","type":"phone","src":"repeating-event-when.png"},"blockName":"recurring-sessions","device2":{"media":"image","alt":"Manage regular or repeating events - phone view","type":"phone","src":"schedule-list-regular-training.png"}},"organise-plan-lineups":{"title":"Build and share your line-ups","description":"Choose a formation, place your players and share the selected line-up with your squad before the next match.","features":["Every formation you can think of","Easily switch between formations","Support for all teams of any size","Save and share your line up on Twitter, Facebook, WhatsApp or anywhere else"],"ctaText":"Get started for free","ctaLink":"/organise/line-up-planner","learnMoreText":"or learn more about our line-up builder","reverse":true,"bgClass":"bg-base-100","sectionId":"organise-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Plan your line-ups - phone view","type":"phone","src":"admin-schedule-formations.png"},"blockName":"organise-plan-lineups","device2":{"media":"image","alt":"Plan your line-ups - phone view","type":"phone","src":"admin-schedule-line-up.png"}},"maps-directions":{"title":"Maps and directions for every venue","description":"NULL","features":["Make sure everyone knows where to go, and how to get there","Ideal for those awkward away games in the middle-of-nowhere","Huge database of locations and maps"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"organise-schedule-matches-training-5","deviceName":"twoPhones","device1":{"media":"image","alt":"Maps and directions for every venue - phone view","type":"phone","src":"schedule-directions.png"},"blockName":"maps-directions","device2":{"media":"image","alt":"Maps and directions for every venue - phone view","type":"phone","src":"schedule-map.png"}},"organise-track-availability":{"title":"Track player availability before every event","description":"Request responses in advance and see who is available for each match, training session or team event without chasing separate message threads.","features":["Easily check who's available (and who isn't)","Send your team members messages to request their availability","Team members can respond in a couple of clicks","Availability can be set months in advance"],"ctaText":"Get started for free","ctaLink":"/organise/track-player-availability","learnMoreText":"or learn more about availability tracking","reverse":false,"bgClass":"bg-base-200","sectionId":"organise-3","deviceName":"twoPhones","device1":{"media":"image","alt":"Track who's available - phone view","type":"phone","src":"admin-availability-list.png"},"blockName":"organise-track-availability","device2":{"media":"image","alt":"Track who's available - phone view","type":"phone","src":"choose-availability.png"}},"availability-requests-email":{"title":"Send availability requests by email","description":"NULL","features":["Prompt your team members to 
484set their avaialbility","Team members can respond with a couple of clicks","Full details of the match or event included"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about sending messages","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Send availability requests by email - phone view","type":"phone","src":"choose-availability.png"},"blockName":"availability-requests-email","device2":{"media":"image","alt":"Send availability requests by email - phone view","type":"phone","src":"email-availability-alert.png"}},"availability-requests-sms":{"title":"Send availability requests by SMS text message","description":"* SMS texting is currently only available to UK teams","features":["Prompt your team members to set their avaialbility","Higher open, read and response rate than email","Team members respond with a couple of clicks"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about sending messages","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Send availability requests by SMS text message - phone view","type":"phone","src":"choose-availability.png?A=1"},"blockName":"availability-requests-sms","device2":{"media":"image","alt":"Send availability requests by SMS text message - phone view","type":"phone","src":"availability-sms-message.png?A=1"}},"automated-scheduled-requests":{"title":"Request availability for matches and training","description":"Schedule an availability request for each event and let players or parents respond from the message they receive.","features":["Messages requesting availability are automatically sent to your team members by email, SMS text messages and/or in-app notifications","You can choose exactly when the messages are sent","Send to everyone or choose specific team members"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"organise-track-player-availability-2","deviceName":"twoPhones","device1":{"media":"image","alt":"Schedule automated alerts for all matches, training and events - phone view","type":"phone","src":"scheduled-alerts-time.png"},"blockName":"automated-scheduled-requests","device2":{"media":"image","alt":"Schedule automated alerts for all matches, training and events - phone view","type":"phone","src":"scheduled-alerts-recipients.png"}},"analyse-publish-match-reports":{"title":"Create and publish football match reports","description":"Record line-ups and match events, then publish a clear report that preserves the story of every game and season.","features":["Report on your matches in as much detail as you want","Record details in real-time or after the match has ended","Extensive \"match events\" to choose from (goals, subs, attempts, key passes etc)","Use Artificial Intelligence (AI) to generate a newspaper style report in seconds (or add your own).","Share with your team members and on social media"],"ctaText":"Get started for free","ctaLink":"/analyse/write-match-reports","learnMoreText":"or learn more about match reports","reverse":true,"bgClass":"bg-base-100","sectionId":"analyse-2","deviceName":"laptopPhone","device1":{"media":"image","alt":"Publish match reports - laptop view","type":"laptop","src":"match-report-desktop.png"},"blockName":"analyse-publish-match-reports","device2":{"media":"image","alt":"Publish match reports - phone view","type":"phone","src":"no-ads-match-report-mobile.png"}},"advanced-match-reporting":{"title":"Advanced match reporting","description":"NULL","features":["Easily record a huge range of match events","Record in real-time with built in stop watch to automatically capture timings","Relive the match action with an accurate version of events in chronological order"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about sending messages","reverse":true,"bgClass":"bg-base-100","
484sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Advanced match reporting - phone view","type":"phone","src":"match-report-timeline-advanced-events.png"},"blockName":"advanced-match-reporting","device2":{"media":"image","alt":"Advanced match reporting - phone view","type":"phone","src":"advanced-match-events.png"}},"match-reports-newspaper-report":{"title":"Use AI to draft a newspaper-style match report","description":"Turn the match events you recorded into an editable headline and narrative without writing the first draft from scratch.","features":["Bring your match report to life with the power of Artificial Intelligence","Generate a detailed AI newspaper-style headline and report in seconds with one click!","Saves a huge amount of time and gives a consistently professional result"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"analyse-write-match-reports-6","deviceName":"twoPhones","device1":{"media":"image","alt":"Use AI to generate a newspaper-style report - phone view","type":"phone","src":"match-report-overview-mobile.png"},"blockName":"match-reports-newspaper-report","device2":{"media":"image","alt":"Use AI to generate a newspaper-style report - phone view","type":"phone","src":"match-report-report-mobile.png"}},"team-statistics":{"title":"Analyse performance with team statistics","description":"TeamStats uses your match reports to automatically generate a wide range of statistics.","features":["Comprehensive team stats split into multiple sections","Gain important performance insights and use to improve","Automatically updated with every match report","Filters to drill-down into the data"],"ctaText":"Get started for free","ctaLink":"/analyse/generate-team-stats","learnMoreText":"or learn more about team statistics","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Analyse performance with team statistics - phone view","type":"phone","src":"stats-team-overview-mobile.png"},"blockName":"team-statistics","device2":{"media":"image","alt":"Analyse performance with team statistics - phone view","type":"phone","src":"stats-team-home-mobile.png"}},"analyse-player-stats":{"title":"Review individual football player stats","de
484scription":"Build an automatically updated performance record from every match played by each member of your squad.","features":["Simply compare, sort and filter all player stats","A comprehensive stats profile for every player","Individual appearance and match stats","Detailed goals scored record","Manager and teammate average ratings"],"ctaText":"Get started for free","ctaLink":"/analyse/track-player-performance","learnMoreText":"or learn more about player stats","reverse":true,"bgClass":"bg-base-100","sectionId":"analyse-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Individual player stats - phone view","type":"phone","src":"player-stats-table.png"},"blockName":"analyse-player-stats","device2":{"media":"image","alt":"Individual player stats - phone view","type":"phone","src":"player-profile-stats.png"}},"advanced-stats":{"title":"Advanced team and player stats","description":"Even more stats to analyse!","features":["Extended goal statistics and graphs","Disciplinary related insights","Individual history of every match appearance and goal for each player","Goal and card time distribution charts","Half-Time/Full-Time Stats","Frequent Results"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about sending messages","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Advanced team and player stats - phone view","type":"phone","src":"advanced-stats-assists-graph.png"},"blockName":"advanced-stats","device2":{"media":"image","alt":"Advanced team and player stats - phone view","type":"phone","src":"advanced-stats-player-goals.png"}},"historical-stats":{"title":"Historical Stats","description":"NULL","features":["Maintain a full record of your performance history","Quickly access team and player stats for any of your previous seasons'","No limits to the amount of seasons you can add"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Historical Stats - phone view","type":"phone","src":"player-stats-table.png"},"blockName":"historical-stats","device2":{"media":"image","alt":"Historical Stats - phone view","type":"phone","src":"filters-seasons-list.png"}},"teammate-rating":{"title":"Teammate Rating","description":"NULL","features":["Every team member can rate their teammates' performances","Completely anonymous - individual ratings are not revealed to anyone else","Marks out of ten to a single decimal place","Average teammate ratings automatically calculated for each match and for the whole season","Potential to assist with player of the match and/or end of season awards"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Teammate Rating - phone view","type":"phone","src":"report-teammate-rating.png"},"blockName":"teammate-rating","device2":{"media":"image","alt":"Teammate Rating - phone view","type":"phone","src":"teammate-rating.png"}},"export-stats":{"title":"Export your stats for further analysis","description":"NULL","features":["Quickly download your statistics for analysis in other software","Universal CSV format supported by Excel, Google Sheets, Open Office and lots more","Export options available from every stats section"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"singlePhone","device1":{"media":"image","alt":"Export your stats for further analysis - phone view","type":"phone","src":"export-stats.png"},"blockName":"export-stats"},"team-finances":{"title":"Manage your team's finances","description":"We crunch the numbers so you don't have to.  TeamStats helps you keep on top of your team's financial activity.","features":["Record every team payment in and out with over 30 different categories","Simple reports quickly let you know 
484where you stand","Full exportable transaction history"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about sending messages","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Manage your team's finances - phone view","type":"phone","src":"finances-team-payment.png"},"blockName":"team-finances","device2":{"media":"image","alt":"Manage your team's finances - phone view","type":"phone","src":"finances-overview.png?a=1"}},"player-finances":{"title":"Player and team member finances","description":"NULL","features":["Quickly record team member payments","Assign charges for fees, kit and fines to individual or multiple members","Easily record cash given at matches, training and other team events","Instantly know who owes","Individual financial reports accessible by team members showing their payment and charge history"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"finances-payment-tracking-3","deviceName":"twoPhones","device1":{"media":"image","alt":"Player and team member finances - phone view","type":"phone","src":"finances-user-history.png"},"blockName":"player-finances","device2":{"media":"image","alt":"Player and team member finances - phone view","type":"phone","src":"finances-squad.png"}},"automatic-charges":{"title":"Automatically charge your players","description":"NULL","features":["Set up standard fees for match fees and card fines","Charges automatically assigned based on your match reports","Assign different charges for starters, substitutes on and substutes off","Yellow and red card fines can be charged to the players or the team account","Override charges on a per-match basis as needed"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"finances-payment-tracking-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Automatically charge your players - phone view","type":"phone","src":"financial-setup-match-charges.png"},"blockName":"automatic-charges","device2":{"media":"image","alt":"Automatically charge your players - phone view","type":"phone","src":"event-finances-players.png"}},"finances-receive-payments":{"title":"Collect football fees online by card","description":"Let players pay assigned fees by debit or credit card and keep the resulting financial records up to date.","features":["Members pay direct from their debit or credit card to your team/club bank account","All TeamStats financial records and reports are updated in real time","All card payments are handled by Stripe - one of the largest and most secure online payment processors in the world","TeamStats simply provides the platform to facilitate these transactions and does not have any access to your funds","Automatically send chasing messages - you set the triggers"],"ctaText":"Get started for free","ctaLink":"/finances/receive-player-payments","learnMoreText":"or learn more about receiving payments","reverse":true,"bgClass":"bg-base-100","sectionId":"finances-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Receive card payments from your team members - phone view","type":"phone","src":"mobile-payments-manage-cards.png"},"blockName":"finances-receive-payments","device2":{"media":"image","alt":"Receive card payments from your team members - phone view","type":"phone","src":"mobile-make-card-payment.png"}},"payment-fees":{"title":"Fees for receiving payments","description":"Each debit/credit card payment made is subject to a small processing fee - this is charged to the team:","features":["UK teams: 2.5% + 0.30 GBP per payment","European teams: 3.5% + 0.30 Euro per payment","Non-European teams: 4%  + 0.30 per payment"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"singlePhone","device1":{"media":"image","alt":"Fees for receiving payments - phone view","type":"phone","src":"mobile-make-card-payment.png"},"blockName":"payment-fees"},"export-payments":{"title":"Export your financial data for use elsewhere","description":"NULL","features":["Quickly download your financial records for analysis in other software","Universal CSV format supported by Excel, Google Sheets, Open Office and lots more","Export financial reports for the team, squad and events","Ideal for submitting records to your league and/or governing bodies"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","
484sectionId":"NULL-0","deviceName":"singlePhone","device1":{"media":"image","alt":"Export your financial data for use elsewhere - phone view","type":"phone","src":"export-finances.png"},"blockName":"export-payments"},"team-website":{"title":"Build a football club website without separate software","description":"Create a professional home for fixtures, results, reports, player profiles and club information, with updates shared across web and app.","features":["Professionally designed and easy to navigate - give your team the website it deserves","Access on any device - desktop, laptop, mobile and tablet - the same layout and content is available on everything","Easily customise with your team colours and badge","SSL Security ensures your data is completely safe","All pages optimised for speed - rapid loading times enhance user experience","Automatic indexing with Google and other search engines"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-website-app-2","deviceName":"laptopPhone","device1":{"media":"image","alt":"Your very own team website - laptop view","type":"laptop","src":"desktop-team-home-1440.png"},"blockName":"team-website","device2":{"media":"image","alt":"Your very own team website - phone view","type":"phone","src":"mobile-team-overview.png"}},"team-app-android-ios":{"title":"iOS and Android apps for team management and communication","description":"NULL","features":["Apps for use on all Apple iOS and/or Android phones and tablets","All features and functionality available","For use by everyone in the team - management, players, parents and all other team members","All team apps are instantly synchronised and updated with team websites"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-website-app-3","deviceName":"twoPhones","device1":{"media":"image","alt":"iOS and Android apps for team management and communication - phone view","type":"phone","src":"mobile-squad-list-mens.png"},"blockName":"team-app-android-ios","device2":{"media":"image","alt":"iOS and Android apps for team management and communication - phone view","type":"phone","src":"mobile-admin-menu.png"}},"club-features":{"title":"Features for clubs with multiple teams","description":"NULL","features":["Add and link unlimited club teams together","Club overview section with fixtures, results, news and stats for all teams","Every team has their own independent team profile, website and app","Assign different admin users to each team","Add, remove and deactivate teams from your club as needed","Mix and match plans/features between teams to meet their different needs"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-website-app-5","deviceName":"twoPhones","device1":{"media":"image","alt":"Features for clubs with multiple teams - phone view","type":"phone","src":"mobile-club-home-results.png"},"blockName":"club-features","device2":{"media":"image","alt":"Features for clubs with multiple teams - phone view","type":"phone","src":"mobile-club-team-list.png"}},"send-messages-email":{"title":"Send football team messages from one app","description":"Choose the relevant players, parents, coaches or contacts and send match updates, training changes and team news in seconds.","features":["Send messages about matches, training, events or general team updates","Send to your team members or create and send to other contacts such as opponents and referees","Send to everyone or choose specific recipients","Message templates for changes of match/event details, notifying opponents and/or referees","Option to automatically post your message to your team website and app as news","No limits to the number of messages you can send","Push alerts require the recipient to have the TeamStats iOS or Android app installed"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","
484sectionId":"communicate-send-messages-2","deviceName":"twoPhones","device1":{"media":"image","alt":"Quickly get in touch with team members and contacts with important messages - phone view","type":"phone","src":"email-mobile-match-details-change.png"},"blockName":"send-messages-email","device2":{"media":"image","alt":"Quickly get in touch with team members and contacts with important messages - phone view","type":"phone","src":"send-messages-email.png"}},"send-messages-sms":{"title":"Contact your members in seconds with SMS text messaging","description":"* Currently only available to UK teams *","features":["SMS messages arrive in seconds and have an extremely high open and read rate","The fastest and most reliable way to ensure your important messages reach your recipients","Combine with sending emails for multi-channel messaging","Send messages about matches, training or team news to your players, parents, opponents, referees and contacts","No limits to the number of SMS texts you can send"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-send-messages-3","deviceName":"twoPhones","device1":{"media":"image","alt":"Contact your members in seconds with SMS text messaging - phone view","type":"phone","src":"scheduled-alerts-recipients.png"},"blockName":"send-messages-sms","device2":{"media":"image","alt":"Contact your members in seconds with SMS text messaging - phone view","type":"phone","src":"sms-send-messages.png"}},"social-media":{"title":"Integrate your social feeds","description":"NULL","features":["Automatically show your Facebook and Twitter posts on your team website and app","Synchronised for you - new social posts will always show","Each post links to the original on the relevant social network","Link to different social accounts for each of your teams and club"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-website-app-8","deviceName":"laptopPhone","device1":{"media":"image","alt":"Integrate your social feeds - laptop view","type":"laptop","src":"social-feeds-desktop.png"},"blockName":"social-media","device2":{"media":"image","alt":"Integrate your social feeds - phone view","type":"phone","src":"social-feeds-mobile.png"}},"team-member-profiles":{"title":"Profiles and stats for every team member","description":"NULL","features":["All team members have their own account with unique login - they can add or update their own personal details","Their profiles can show a range of individual stats,  player details, news and photos","Options of multiple contact details for each member - ideal for parents/children"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-website-app-4","deviceName":"twoPhones","device1":{"media":"image","alt":"Profiles and stats for every team member - phone view","type":"phone","src":"mobile-player-profile-details.png"},"blockName":"team-member-profiles","device2":{"media":"image","alt":"Profiles and stats for every team member - phone view","type":"phone","src":"mobile-player-profile-boys.png"}},"team-news-chat":{"title":"Publish football team news and start conversations","description":"Share club announcements and match updates with your members, then encourage discussion around each post.","features":["Post important team news, announcements or general chat","Attach documents, files, links, and photos","Encourage discussion and chat with team member comments","Add news about specific team members and automatically update their personal profile"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-news-media-2","deviceName":"twoPhones","device1":{"media":"image","alt":"Team news and chat - phone view","type":"phone","src":"news-chat-comments-mobile.png?a=1"},"blockName":"team-news-chat","device2":{"media":"image","alt":"Team news and chat - phone view","type":"phone","src":"news-topics-mobile.png"}},"media-galleries":{"title":"Media Galleries","description":"NULL","features":["Add multiple galleries for your matches, training sessions, presentations and all other team events","Create a visual record of your team and members, all in one place","No restrictions on the number of galleries or uploaded media","All photos are automatically optimised for speed and quality as you upload","Thumbnail images make it easy to browse though large collections"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-news-media-5","deviceName":"twoPhones","device1":{"media":"image","alt":"Media Galleries - phone view","type":"phone","src":"mobile-gallery-list.png"},"blockName":"media-galleries","device2":{"media":"image","alt":"Media Galleries - phone view","type":"phone","src":"mobile-gallery-thumbn
484ails.png"}},"photo-uploads":{"title":"Add photos to enhance your team website and app","description":"NULL","features":["Bring to life your match reports and news items","Add team member profile and cover photos","Customise your website and app home pages with your favourite team photos","All photos are automatically optimised for speed and quality during upload"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-news-media-3","deviceName":"twoPhones","device1":{"media":"image","alt":"Add photos to enhance your team website and app - phone view","type":"phone","src":"news-photos-mobile.png"},"blockName":"photo-uploads","device2":{"media":"image","alt":"Add photos to enhance your team website and app - phone view","type":"phone","src":"report-photos-mobile.png"}},"video-uploads":{"title":"Add highlights of your matches with video uploads","description":"NULL","features":["Upload videos to your media galleries, match reports and news items","No limits on amount, size, quality or length","Privacy options to restrict who can view"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-news-media-4","deviceName":"laptopPhone","device1":{"media":"image","alt":"Add highlights of your matches with video uploads - laptop view","type":"laptop","src":"video-play-desktop.png?A=1"},"blockName":"video-uploads","device2":{"media":"image","alt":"Add highlights of your matches with video uploads - phone view","type":"phone","src":"video-play-mobile-landscape.png"}},"custom-content-pages":{"title":"Custom Content Pages","description":"NULL","features":["Add your own pages to your website and app","The content is up to you - add text, images, tables and web links","Present your content exactly how you want with custom layouts and formatting options","Privacy options to restrict who can view"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-website-app-6","deviceName":"laptopPhone","device1":{"media":"image","alt":"Custom Content Pages - laptop view","type":"laptop","src":"custom-page-desktop.png?A=2"},"blockName":"custom-content-pages","device2":{"media":"image","alt":"Custom Content Pages - phone view","type":"phone","src":"custom-page-mobile.png"}},"safeguarding-privacy":{"title":"Safeguarding and privacy options","description":"NULL","features":["You can decide who can see what on your team website and app","Re
484strict access to team member names, photos and/or profiles","Options include restricting content to logged in team members, admin users or other TeamStats users."],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-website-app-7","deviceName":"twoPhones","device1":{"media":"image","alt":"Safeguarding and privacy options - phone view","type":"phone","src":"safeguarding-members-list-mobile.png"},"blockName":"safeguarding-privacy","device2":{"media":"image","alt":"Safeguarding and privacy options - phone view","type":"phone","src":"safeguarding-options-mobile.png"}},"content-access-controls":{"title":"Content Access Controls","description":"NULL","features":["Decide who should be able to view your team's details and content","Hide your match results, outcomes and stats from the public","Every piece of content you add has options to restrict who can view it","Restrict access to logged in team members, logged in team admin users or logged in TeamStats users"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":false,"bgClass":"bg-base-200","sectionId":"communicate-team-website-app-9","deviceName":"twoPhones","device1":{"media":"image","alt":"Content Access Controls - phone view","type":"phone","src":"schedule-private-mobile.png"},"blockName":"content-access-controls","device2":{"media":"image","alt":"Content Access Controls - phone view","type":"phone","src":"match-access-controls-mobile.png"}},"multiple-admin-users":{"title":"Multiple Admin Users","description":"NULL","features":["Share admin responsibilities with other team members","Ideal for your manager, coach, secretary, treasurer, chairperson, captain etc","No limits to the number of admin users per team"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"communicate-team-website-app-10","deviceName":"twoPhones","device1":{"media":"image","alt":"Multiple Admin Users - phone view","type":"phone","src":"set-admin-users-mobile.png"},"blockName":"multiple-admin-users","device2":{"media":"image","alt":"Multiple Admin Users - phone view","type":"phone","src":"settings-admin-users-mobile.png"}},"priority-support":{"title":"Priority Support","description":"NULL","features":["Get help when you need it from our friendly and responsive support team","Two-way online chat facility for messages, screenshots and links","Conversation transcripts are emailed to you for your records","We pride ourselves on answering your queries and issues in a timely and helpful manner"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Priority Support - phone view","type":"phone","src":"crisp-chat-support-mobile.png?a=1"},"blockName":"priority-support","device2":{"media":"image","alt":"Priority Support - phone view","type":"phone","src":"crisp-chat-support-mobile2.png?A=3"}},"no-advertising":{"title":"Remove ads from your team website and apps","description":"NULL","features":["Advertising may be shown to you and your team members - the revenue we generate from this is used to make TeamStats even better","You can remove all advertising by upgrading your plan","Ad-free team websites and apps load faster, run smoother and look more professional"],"ctaText":"Get started for free","ctaLink":"NULL","learnMoreText":"NULL","reverse":true,"bgClass":"bg-base-100","sectionId":"NULL-0","deviceName":"twoPhones","device1":{"media":"image","alt":"Remove ads from your team website and apps - phone view","type":"phone","src":"ads-match-report-mobile.png?a=2"},"blockName":"no-advertising","device2":{"media":"image","alt":"Remove ads from your team website and apps - phone view","type":"phone","src":"no-ads-match-report-mobile.png"}}};
485
486  window.featureSections = featureSectionsForClient;
487})();</script>
487 
487<script type="module" src="/_astro/pricing.astro_astro_type_script_index_0_lang.BlChodY9.js"></script>
487 

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.