1<!DOCTYPE html><html lang="en" class="bg-background text-foreground __variable_c29908 __variable_246ccd font-sans"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/d4aad336d8fb569c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/83d7815267fdcf75.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-fedccc7edc41dc76.js"/>
1<script src="/_next/static/chunks/668fd31e-473a60a56fe315ce.js" async=""></script>
1<script src="/_next/static/chunks/3719-7d327663190e2a79.js" async=""></script>
1<script src="/_next/static/chunks/main-app-813c1f4a178be241.js" async=""></script>
1<script src="/_next/static/chunks/4ee4ee27-04c6928c9526645d.js" async=""></script>
1<script src="/_next/static/chunks/8436-bd9bb24c5aa0d509.js" async=""></script>
1<script src="/_next/static/chunks/1343-f49e8ac6fe7be3d5.js" async=""></script>
1<script src="/_next/static/chunks/1176-cd252aaea4d19073.js" async=""></script>
1<script src="/_next/static/chunks/9421-39f6c645fc443d61.js" async=""></script>
1<script src="/_next/static/chunks/5118-47cc8ce75b8d2c10.js" async=""></script>
1<script src="/_next/static/chunks/3506-2f3e3c418d90b3f0.js" async=""></script>
1<script src="/_next/static/chunks/6840-6e1246b059a9370a.js" async=""></script>
1<script src="/_next/static/chunks/5228-369658bd58a319ab.js" async=""></script>
1<script src="/_next/static/chunks/3327-4ab8d32e69e53b5d.js" async=""></script>
1<script src="/_next/static/chunks/2128-b1782326b4c0d87b.js" async=""></script>
1<script src="/_next/static/chunks/app/(dashboard)/layout-ae25a3be7b3794fe.js" async=""></script>
1<script src="/_next/static/chunks/4281-c9ae6ae11dab49ad.js" async=""></script>
1<script src="/_next/static/chunks/2141-4af58af37ad4265b.js" async=""></script>
1<script src="/_next/static/chunks/app/(auth)/login/page-ffcd737e28a3e317.js" async=""></script>
1<script src="/_next/static/chunks/6152-a3d9b7f1299d4751.js" async=""></script>
1<script src="/_next/static/chunks/5701-a710903b98f42df2.js" async=""></script>
1<script src="/_next/static/chunks/8165-87e17dbb768e7e9a.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-17eecb5ea729911f.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Fantasy Tennis Manager</title><meta name="description" content="Build your fantasy tennis team and compete with friends"/><meta name="generator" content="v0.dev"/><link rel="icon" href="/images/favicon_ball.png"/>
1<script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="min-h-svh bg-background">
1<script>((c,k,j,L,D,$,Q,le)=>{let de=document.documentElement,te=["light","dark"];function T(z){var X;(Array.isArray(c)?c:[c]).forEach(J=>{let oe=J==="class",re=oe&&$?D.map(F=>$[F]||F):D;oe?(de.classList.remove(...re),de.classList.add($&&$[z]?$[z]:z)):de.setAttribute(J,z)}),X=z,le&&te.includes(X)&&(de.style.colorScheme=X)}if(L)T(L);else try{let z=localStorage.getItem(k)||j,X=Q&&z==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":z;T(X)}catch{}})("class","tennis-theme","system",null,["light","dark"],null,true,true)</script>
1<style> 2 :root { 3 --accent-50: #f5f3ff; --accent-rgb-50: 245, 243, 255; --accent-50-5: rgba(var(--accent-rgb-50), 0.05); --accent-50-10: rgba(var(--accent-rgb-50), 0.1); --accent-50-20: rgba(var(--accent-rgb-50), 0.2); --accent-50-30: rgba(var(--accent-rgb-50), 0.3); --accent-50-40: rgba(var(--accent-rgb-50), 0.4); --accent-50-50: rgba(var(--accent-rgb-50), 0.5); --accent-50-60: rgba(var(--accent-rgb-50), 0.6); --accent-50-70: rgba(var(--accent-rgb-50), 0.7); --accent-50-80: rgba(var(--accent-rgb-50), 0.8); --accent-50-90: rgba(var(--accent-rgb-50), 0.9); --accent-50-95: rgba(var(--accent-rgb-50), 0.95); --accent-50-100: rgba(var(--accent-rgb-50), 1); 4 --accent-100: #ede9fe; --accent-rgb-100: 237, 233, 254; --accent-100-5: rgba(var(--accent-rgb-100), 0.05); --accent-100-10: rgba(var(--accent-rgb-100), 0.1); --accent-100-20: rgba(var(--accent-rgb-100), 0.2); --accent-100-30: rgba(var(--accent-rgb-100), 0.3); --accent-100-40: rgba(var(--accent-rgb-100), 0.4); --accent-100-50: rgba(var(--accent-rgb-100), 0.5); --accent-100-60: rgba(var(--accent-rgb-100), 0.6); --accent-100-70: rgba(var(--accent-rgb-100), 0.7); --accent-100-80: rgba(var(--accent-rgb-100), 0.8); --accent-100-90: rgba(var(--accent-rgb-100), 0.9); --accent-100-95: rgba(var(--accent-rgb-100), 0.95); --accent-100-100: rgba(var(--accent-rgb-100), 1); 5 --accent-200: #ddd6fe; --accent-rgb-200: 221, 214, 254; --accent-200-5: rgba(var(--accent-rgb-200), 0.05); --accent-200-10: rgba(var(--accent-rgb-200), 0.1); --accent-200-20: rgba(var(--accent-rgb-200), 0.2); --accent-200-30: rgba(var(--accent-rgb-200), 0.3); --accent-200-40: rgba(var(--accent-rgb-200), 0.4); --accent-200-50: rgba(var(--accent-rgb-200), 0.5); --accent-200-60: rgba(var(--accent-rgb-200), 0.6); --accent-200-70: rgba(var(--accent-rgb-200), 0.7); --accent-200-80: rgba(var(--accent-rgb-200), 0.8); --accent-200-90: rgba(var(--accent-rgb-200), 0.9); --accent-200-95: rgba(var(--accent-rgb-200), 0.95); --accent-200-100: rgba(var(--accent-rgb-200), 1); 6 --accent-300: #c4b5fd; --accent-rgb-300: 196, 181, 253; --accent-300-5: rgba(var(--accent-rgb-300), 0.05); --accent-300-10: rgba(var(--accent-rgb-300), 0.1); --accent-300-20: rgba(var(--accent-rgb-300), 0.2); --accent-300-30: rgba(var(--accent-rgb-300), 0.3); --accent-300-40: rgba(var(--accent-rgb-300), 0.4); --accent-300-50: rgba(var(--accent-rgb-300), 0.5); --accent-300-60: rgba(var(--accent-rgb-300), 0.6); --accent-300-70: rgba(var(--accent-rgb-300), 0.7); --accent-300-80: rgba(var(--accent-rgb-300), 0.8); --accent-300-90: rgba(var(--accent-rgb-300), 0.9); --accent-300-95: rgba(var(--accent-rgb-300), 0.95); --accent-300-100: rgba(var(--accent-rgb-300), 1); 7 --accent-400: #a78bfa; --accent-rgb-400: 167, 139, 250; --accent-400-5: rgba(var(--accent-rgb-400), 0.05); --accent-400-10: rgba(var(--accent-rgb-400), 0.1); --accent-400-20: rgba(var(--accent-rgb-400), 0.2); --accent-400-30: rgba(var(--accent-rgb-400), 0.3); --accent-400-40: rgba(var(--accent-rgb-400), 0.4); --accent-400-50: rgba(var(--accent-rgb-400), 0.5); --accent-400-60: rgba(var(--accent-rgb-400), 0.6); --accent-400-70: rgba(var(--accent-rgb-400), 0.7); --accent-400-80: rgba(var(--accent-rgb-400), 0.8); --accent-400-90: rgba(var(--accent-rgb-400), 0.9); --accent-400-95: rgba(var(--accent-rgb-400), 0.95); --accent-400-100: rgba(var(--accent-rgb-400), 1); 8 --accent-500: #8b5cf6; --accent-rgb-500: 139, 92, 246; --accent-500-5: rgba(var(--accent-rgb-500), 0.05); --accent-500-10: rgba(var(--accent-rgb-500), 0.1); --accent-500-20: rgba(var(--accent-rgb-500), 0.2); --accent-500-30: rgba(var(--accent-rgb-500), 0.3); --accent-500-40: rgba(var(--accent-rgb-500), 0.4); --accent-500-50: rgba(var(--accent-rgb-500), 0.5); --accent-500-60: rgba(var(--accent-rgb-500), 0.6); --accent-500-70: rgba(var(--accent-rgb-500), 0.7); --accent-500-80: rgba(var(--accent-rgb-500), 0.8); --accent-500-90: rgba(var(--accent-rgb-500), 0.9); --accent-500-95: rgba(var(--accent-rgb-500), 0.95); --accent-500-100: rgba(var(--accent-rgb-500), 1); --control: var(--accent-500); --control-rgb: var(--accent-rgb-500); --control-5: rgba(var(--control-rgb), 0.05); --control-10: rgba(var(--control-rgb), 0.1); --control-20: rgba(var(--control-rgb), 0.2); --control-30: rgba(var(--control-rgb), 0.3); --control-40: rgba(var(--control-rgb), 0.4); --control-50: rgba(var(--control-rgb), 0.5); --control-60: rgba(var(--control-rgb), 0.6); --control-70: rgba(var(--control-rgb), 0.7); --control-80: rgba(var(--control-rgb), 0.8); --control-90: rgba(var(--control-rgb), 0.9); --control-95: rgba(var(--control-rgb), 0.95); --control-100: rgba(var(--control-rgb), 1); --dark-control: var(--accent-500); --dark-control-rgb: var(--accent-rgb-500); --dark-control-5: rgba(var(--dark-control-rgb), 0.05); --dark-control-10: rgba(var(--dark-control-rgb), 0.1); --dark-control-20: rgba(var(--dark-control-rgb), 0.2); --dark-control-30: rgba(var(--dark-control-rgb), 0.3); --dark-control-40: rgba(var(--dark-control-rgb), 0.4); --dark-control-50: rgba(var(--dark-control-rgb), 0.5); --dark-control-60: rgba(var(--dark-control-rgb), 0.6); --dark-control-70: rgba(var(--dark-control-rgb), 0.7); --dark-control-80: rgba(var(--dark-control-rgb), 0.8); --dark-control-90: rgba(var(--dark-control-rgb), 0.9); --dark-control-95: rgba(var(--dark-control-rgb), 0.95); --dark-control-100: rgba(var(--dark-control-rgb), 1); 9 --accent-600: #7c3aed; --accent-rgb-600: 124, 58, 237; --accent-600-5: rgba(var(--accent-rgb-600), 0.05); --accent-600-10: rgba(var(--accent-rgb-600), 0.1); --accent-600-20: rgba(var(--accent-rgb-600), 0.2); --accent-600-30: rgba(var(--accent-rgb-600), 0.3); --accent-600-40: rgba(var(--accent-rgb-600), 0.4); --accent-600-50: rgba(var(--accent-rgb-600), 0.5); --accent-600-60: rgba(var(--accent-rgb-600), 0.6); --accent-600-70: rgba(var(--accent-rgb-600), 0.7); --accent-600-80: rgba(var(--accent-rgb-600), 0.8); --accent-600-90: rgba(var(--accent-rgb-600), 0.9); --accent-600-95: rgba(var(--accent-rgb-600), 0.95); --accent-600-100: rgba(var(--accent-rgb-600), 1); 10 --accent-700: #6d28d9; --accent-rgb-700: 109, 40, 217; --accent-700-5: rgba(var(--accent-rgb-700), 0.05); --accent-700-10: rgba(var(--accent-rgb-700), 0.1); --accent-700-20: rgba(var(--accent-rgb-700), 0.2); --accent-700-30: rgba(var(--accent-rgb-700), 0.3); --accent-700-40: rgba(var(--accent-rgb-700), 0.4); --accent-700-50: rgba(var(--accent-rgb-700), 0.5); --accent-700-60: rgba(var(--accent-rgb-700), 0.6); --accent-700-70: rgba(var(--accent-rgb-700), 0.7); --accent-700-80: rgba(var(--accent-rgb-700), 0.8); --accent-700-90: rgba(var(--accent-rgb-700), 0.9); --accent-700-95: rgba(var(--accent-rgb-700), 0.95); --accent-700-100: rgba(var(--accent-rgb-700), 1); 11 --accent-800: #5b21b6; --accent-rgb-800: 91, 33, 182; --accent-800-5: rgba(var(--accent-rgb-800), 0.05); --accent-800-10: rgba(var(--accent-rgb-800), 0.1); --accent-800-20: rgba(var(--accent-rgb-800), 0.2); --accent-800-30: rgba(var(--accent-rgb-800), 0.3); --accent-800-40: rgba(var(--accent-rgb-800), 0.4); --accent-800-50: rgba(var(--accent-rgb-800), 0.5); --accent-800-60: rgba(var(--accent-rgb-800), 0.6); --accent-800-70: rgba(var(--accent-rgb-800), 0.7); --accent-800-80: rgba(var(--accent-rgb-800), 0.8); --accent-800-90: rgba(var(--accent-rgb-800), 0.9); --accent-800-95: rgba(var(--accent-rgb-800), 0.95); --accent-800-100: rgba(var(--accent-rgb-800), 1); 12 --accent-900: #4c1d95; --accent-rgb-900: 76, 29, 149; --accent-900-5: rgba(var(--accent-rgb-900), 0.05); --accent-900-10: rgba(var(--accent-rgb-900), 0.1); --accent-900-20: rgba(var(--accent-rgb-900), 0.2); --accent-900-30: rgba(var(--accent-rgb-900), 0.3); --accent-900-40: rgba(var(--accent-rgb-900), 0.4); --accent-900-50: rgba(var(--accent-rgb-900), 0.5); --accent-900-60: rgba(var(--accent-rgb-900), 0.6); --accent-900-70: rgba(var(--accent-rgb-900), 0.7); --accent-900-80: rgba(var(--accent-rgb-900), 0.8); --accent-900-90: rgba(var(--accent-rgb-900), 0.9); --accent-900-95: rgba(var(--accent-rgb-900), 0.95);
12 --accent-900-100: rgba(var(--accent-rgb-900), 1); 13 --accent-950: #2e1065; --accent-rgb-950: 46, 16, 101; --accent-950-5: rgba(var(--accent-rgb-950), 0.05); --accent-950-10: rgba(var(--accent-rgb-950), 0.1); --accent-950-20: rgba(var(--accent-rgb-950), 0.2); --accent-950-30: rgba(var(--accent-rgb-950), 0.3); --accent-950-40: rgba(var(--accent-rgb-950), 0.4); --accent-950-50: rgba(var(--accent-rgb-950), 0.5); --accent-950-60: rgba(var(--accent-rgb-950), 0.6); --accent-950-70: rgba(var(--accent-rgb-950), 0.7); --accent-950-80: rgba(var(--accent-rgb-950), 0.8); --accent-950-90: rgba(var(--accent-rgb-950), 0.9); --accent-950-95: rgba(var(--accent-rgb-950), 0.95); --accent-950-100: rgba(var(--accent-rgb-950), 1); 14 --grayscale-50: #f9fafb; --grayscale-rgb-50: 249, 250, 251; --grayscale-50-5: rgba(var(--grayscale-rgb-50), 0.05); --grayscale-50-10: rgba(var(--grayscale-rgb-50), 0.1); --grayscale-50-20: rgba(var(--grayscale-rgb-50), 0.2); --grayscale-50-30: rgba(var(--grayscale-rgb-50), 0.3); --grayscale-50-40: rgba(var(--grayscale-rgb-50), 0.4); --grayscale-50-50: rgba(var(--grayscale-rgb-50), 0.5); --grayscale-50-60: rgba(var(--grayscale-rgb-50), 0.6); --grayscale-50-70: rgba(var(--grayscale-rgb-50), 0.7); --grayscale-50-80: rgba(var(--grayscale-rgb-50), 0.8); --grayscale-50-90: rgba(var(--grayscale-rgb-50), 0.9); --grayscale-50-95: rgba(var(--grayscale-rgb-50), 0.95); --grayscale-50-100: rgba(var(--grayscale-rgb-50), 1); --surface-primary: var(--grayscale-50); --surface-primary-rgb: var(--grayscale-rgb-50); --surface-primary-5: rgba(var(--surface-primary-rgb), 0.05); --surface-primary-10: rgba(var(--surface-primary-rgb), 0.1); --surface-primary-20: rgba(var(--surface-primary-rgb), 0.2); --surface-primary-30: rgba(var(--surface-primary-rgb), 0.3); --surface-primary-40: rgba(var(--surface-primary-rgb), 0.4); --surface-primary-50: rgba(var(--surface-primary-rgb), 0.5); --surface-primary-60: rgba(var(--surface-primary-rgb), 0.6); --surface-primary-70: rgba(var(--surface-primary-rgb), 0.7); --surface-primary-80: rgba(var(--surface-primary-rgb), 0.8); --surface-primary-90: rgba(var(--surface-primary-rgb), 0.9); --surface-primary-95: rgba(var(--surface-primary-rgb), 0.95); --surface-primary-100: rgba(var(--surface-primary-rgb), 1); --dark-text-primary: var(--grayscale-50); --dark-text-primary-rgb: var(--grayscale-rgb-50); --dark-text-primary-5: rgba(var(--dark-text-primary-rgb), 0.05); --dark-text-primary-10: rgba(var(--dark-text-primary-rgb), 0.1); --dark-text-primary-20: rgba(var(--dark-text-primary-rgb), 0.2); --dark-text-primary-30: rgba(var(--dark-text-primary-rgb), 0.3); --dark-text-primary-40: rgba(var(--dark-text-primary-rgb), 0.4); --dark-text-primary-50: rgba(var(--dark-text-primary-rgb), 0.5); --dark-text-primary-60: rgba(var(--dark-text-primary-rgb), 0.6); --dark-text-primary-70: rgba(var(--dark-text-primary-rgb), 0.7); --dark-text-primary-80: rgba(var(--dark-text-primary-rgb), 0.8); --dark-text-primary-90: rgba(var(--dark-text-primary-rgb), 0.9); --dark-text-primary-95: rgba(var(--dark-text-primary-rgb), 0.95); --dark-text-primary-100: rgba(var(--dark-text-primary-rgb), 1); 15 --grayscale-100: #f3f4f6; --grayscale-rgb-100: 243, 244, 246; --grayscale-100-5: rgba(var(--grayscale-rgb-100), 0.05); --grayscale-100-10: rgba(var(--grayscale-rgb-100), 0.1); --grayscale-100-20: rgba(var(--grayscale-rgb-100), 0.2); --grayscale-100-30: rgba(var(--grayscale-rgb-100), 0.3); --grayscale-100-40: rgba(var(--grayscale-rgb-100), 0.4); --grayscale-100-50: rgba(var(--grayscale-rgb-100), 0.5); --grayscale-100-60: rgba(var(--grayscale-rgb-100), 0.6); --grayscale-100-70: rgba(var(--grayscale-rgb-100), 0.7); --grayscale-100-80: rgba(var(--grayscale-rgb-100), 0.8); --grayscale-100-90: rgba(var(--grayscale-rgb-100), 0.9); --grayscale-100-95: rgba(var(--grayscale-rgb-100), 0.95); --grayscale-100-100: rgba(var(--grayscale-rgb-100), 1); --surface-secondary: var(--grayscale-100); --surface-secondary-rgb: var(--grayscale-rgb-100); --surface-secondary-5: rgba(var(--surface-secondary-rgb), 0.05); --surface-secondary-10: rgba(var(--surface-secondary-rgb), 0.1); --surface-secondary-20: rgba(var(--surface-secondary-rgb), 0.2); --surface-secondary-30: rgba(var(--surface-secondary-rgb), 0.3); --surface-secondary-40: rgba(var(--surface-secondary-rgb), 0.4); --surface-secondary-50: rgba(var(--surface-secondary-rgb), 0.5); --surface-secondary-60: rgba(var(--surface-secondary-rgb), 0.6); --surface-secondary-70: rgba(var(--surface-secondary-rgb), 0.7); --surface-secondary-80: rgba(var(--surface-secondary-rgb), 0.8); --surface-secondary-90: rgba(var(--surface-secondary-rgb), 0.9); --surface-secondary-95: rgba(var(--surface-secondary-rgb), 0.95); --surface-secondary-100: rgba(var(--surface-secondary-rgb), 1); 16 --grayscale-200: #e5e7eb; --grayscale-rgb-200: 229, 231, 235; --grayscale-200-5: rgba(var(--grayscale-rgb-200), 0.05); --grayscale-200-10: rgba(var(--grayscale-rgb-200), 0.1); --grayscale-200-20: rgba(var(--grayscale-rgb-200), 0.2); --grayscale-200-30: rgba(var(--grayscale-rgb-200), 0.3); --grayscale-200-40: rgba(var(--grayscale-rgb-200), 0.4); --grayscale-200-50: rgba(var(--grayscale-rgb-200), 0.5); --grayscale-200-60: rgba(var(--grayscale-rgb-200), 0.6); --grayscale-200-70: rgba(var(--grayscale-rgb-200), 0.7); --grayscale-200-80: rgba(var(--grayscale-rgb-200), 0.8); --grayscale-200-90: rgba(var(--grayscale-rgb-200), 0.9); --grayscale-200-95: rgba(var(--grayscale-rgb-200), 0.95); --grayscale-200-100: rgba(var(--grayscale-rgb-200), 1); --surface-tertiary: var(--grayscale-200); --surface-tertiary-rgb: var(--grayscale-rgb-200); --surface-tertiary-5: rgba(var(--surface-tertiary-rgb), 0.05); --surface-tertiary-10: rgba(var(--surface-tertiary-rgb), 0.1); --surface-tertiary-20: rgba(var(--surface-tertiary-rgb), 0.2); --surface-tertiary-30: rgba(var(--surface-tertiary-rgb), 0.3); --surface-tertiary-40: rgba(var(--surface-tertiary-rgb), 0.4); --surface-tertiary-50: rgba(var(--surface-tertiary-rgb), 0.5); --surface-tertiary-60: rgba(var(--surface-tertiary-rgb), 0.6); --surface-tertiary-70: rgba(var(--surface-tertiary-rgb), 0.7); --surface-tertiary-80: rgba(var(--surface-tertiary-rgb), 0.8); --surface-tertiary-90: rgba(var(--surface-tertiary-rgb), 0.9); --surface-tertiary-95: rgba(var(--surface-tertiary-rgb), 0.95); --surface-tertiary-100: rgba(var(--surface-tertiary-rgb), 1); 17 --grayscale-300: #d1d5db; --grayscale-rgb-300: 209, 213, 219; --grayscale-300-5: rgba(var(--grayscale-rgb-300), 0.05); --grayscale-300-10: rgba(var(--grayscale-rgb-300), 0.1); --grayscale-300-20: rgba(var(--grayscale-rgb-300), 0.2); --grayscale-300-30: rgba(var(--grayscale-rgb-300), 0.3); --grayscale-300-40: rgba(var(--grayscale-rgb-300), 0.4); --grayscale-300-50: rgba(var(--grayscale-rgb-300), 0.5); --grayscale-300-60: rgba(var(--grayscale-rgb-300), 0.6); --grayscale-300-70: rgba(var(--grayscale-rgb-300), 0.7); --grayscale-300-80: rgba(var(--grayscale-rgb-300), 0.8); --grayscale-300-90: rgba(var(--grayscale-rgb-300), 0.9); --grayscale-300-95: rgba(var(--grayscale-rgb-300), 0.95); --grayscale-300-100: rgba(var(--grayscale-rgb-300), 1); --border: var(--grayscale-300); --border-rgb: var(--grayscale-rgb-300); --border-5: rgba(var(--border-rgb), 0.05); --border-10: rgba(var(--border-rgb), 0.1); --border-20: rgba(var(--border-rgb), 0.2); --border-30: rgba(var(--border-rgb), 0.3); --border-40: rgba(var(--border-rgb), 0.4); --border-50: rgba(var(--border-rgb), 0.5); --border-60: rgba(var(--border-rgb), 0.6); --border-70: rgba(var(--border-rgb), 0.7); --border-80: rgba(var(--border-rgb), 0.8); --border-90: rgba(var(--border-rgb), 0.9); --border-95: rgba(var(--border-rgb), 0.95); --border-100: rgba(var(--border-rgb), 1); 18 --grayscale-400: #9ca3af; --grayscale-rgb-400: 156, 163, 175; --grayscale-400-5: rgba(var(--grayscale-rgb-400), 0.05); --grayscale-400-10: rgba(var(--grayscale-rgb-400), 0.1); --grayscale-400-20: rgba(var(--grayscale-rgb-400), 0.2); --grayscale-400-30: rgba(var(--grayscale-rgb-400), 0.3); --grayscale-400-40: rgba(var(--grayscale-rgb-400), 0.4); --grayscale-400-50: rgba(var(--grayscale-rgb-400), 0.5); --grayscale-400-60: rgba(var(--grayscale-rgb-400), 0.6); --grayscale-400-70: rgba(var(--grayscale-rgb-400), 0.7); --grayscale-400-80: rgba(var(--grayscale-rgb-400), 0.8); --grayscale-400-90: rgba(var(--grayscale-rgb-400), 0.9); --grayscale-400-95: rgba(var(--grayscale-rgb-400), 0.95); --grayscale-400-100: rgba(var(--grayscale-rgb-400), 1); --dark-text-secondary: var(--grayscale-400); --dark-text-secondary-rgb: var(--grayscale-rgb-400); --dark-text-secondary-5: rgba(var(--dark-text-secondary-rgb), 0.05); --dark-text-secondary-10: rgba(var(--dark-text-secondary-rgb), 0.1); --dark-text-secondary-20: rgba(var(--dark-text-secondary-rgb), 0.2); --dark-text-secondary-30: rgba(var(--dark-text-secondary-rgb), 0.3); --dark-text-secondary-40: rgba(var(--dark-text-secondary-rgb), 0.4); --dark-text-secondary-50: rgba(var(--dark-text-secondary-rgb), 0.5); --dark-text-secondary-60: rgba(var(--dark-text-secondary-rgb), 0.6); --dark-text-secondary-70: rgba(var(--dark-text-secondary-rgb), 0.7); --dark-text-secondary-80: rgba(var(--dark-text-secondary-rgb), 0.8); --dark-text-secondary-90: rgba(var(--dark-text-secondary-rgb), 0.9); --dark-text-secondary-95: rgba(var(--dark-text-secondary-rgb), 0.95); --dark-text-secondary-100: rgba(var(--dark-text-secondary-rgb), 1); 19 --grayscale-500: #6b7280; --grayscale-rgb-500: 107, 114, 128; --grayscale-500-5: rgba(var(--grayscale-rgb-500), 0.05); --grayscale-500-10: rgba(var(--grayscale-rgb-500), 0.1); --grayscale-500-20: rgba(var(--grayscale-rgb-500), 0.2); --grayscale-500-30: rgba(var(--grayscale-rgb-500), 0.3); --grayscale-500-40: rgba(var(--grayscale-rgb-500), 0.4); --grayscale-500-50: rgba(var(--grayscale-rgb-500), 0.5); --grayscale-500-60: rgba(var(--grayscale-rgb-500), 0.6); --grayscale-500-70: rgba(var(--grayscale-rgb-500), 0.7); --grayscale-500-80: rgba(var(--grayscale-rgb-500), 0.8); --grayscale-500-90: rgba(var(--grayscale-rgb-500), 0.9); --grayscale-500-95: rgba(var(--grayscale-rgb-500), 0.95); --grayscale-500-100: rgba(var(--grayscale-rgb-500), 1); --text-tertiary: var(--grayscale-500); --text-tertiary-rgb: var(--grayscale-rgb-500); --text-tertiary-5: rgba(var(--text-tertiary-rgb), 0.05); --text-tertiary-10: rgba(var(--text-tertiary-rgb), 0.1); --text-tertiary-20: rgba(var(--text-tertiary-rgb), 0.2); --text-tertiary-30: rgba(var(--text-tertiary-rgb), 0.3); --text-tertiary-40: rgba(var(--text-tertiary-rgb), 0.4); --text-tertiary-50: rgba(var(--text-tertiary-rgb), 0.5); --text-tertiary-60: rgba(var(--text-tertiary-rgb), 0.6); --text-tertiary-70: rgba(var(--text-tertiary-rgb), 0.7); --text-tertiary-80: rgba(var(--text-tertiary-rgb), 0.8); --text-tertiary-90: rgba(var(--text-tertiary-rgb), 0.9); --text-tertiary-95: rgba(var(--text-tertiary-rgb), 0.95); --text-tertiary-100: rgba(var(--text-tertiary-rgb), 1); --dark-text-tertiary: var(--grayscale-500); --dark-text-tertiary-rgb: var(--grayscale-rgb-500); --dark-text-tertiary-5: rgba(var(--dark-text-tertiary-rgb), 0.05); --dark-text-tertiary-10: rgba(var(--dark-text-tertiary-rgb), 0.1); --dark-text-tertiary-20: rgba(var(--dark-text-tertiary-rgb), 0.2); --dark-text-tertiary-30: rgba(var(--dark-text-tertiary-rgb), 0.3); --dark-text-tertiary-40: rgba(var(--dark-text-tertiary-rgb), 0.4); --dark-text-tertiary-50: rgba(var(--dark-text-tertiary-rgb), 0.5); --dark-text-tertiary-60: rgba(var(--dark-text-tertiary-rgb), 0.6); --dark-text-tertiary-70: rgba(var(--dark-text-tertiary-rgb), 0.7); --dark-text-tertiary-80: rgba(var(--dark-text-tertiary-rgb), 0.8); --dark-text-tertiary-90: rgba(var(--dark-text-tertiary-rgb), 0.9); --dark-text-tertiary-95: rgba(var(--dark-text-tertiary-rgb), 0.95); --dark-text-tertiary-100: rgba(var(--dark-text-tertiary-rgb), 1); 20 --grayscale-600: #4b5563; --grayscale-rgb-600: 75, 85, 99; --grayscale-600-5: rgba(var(--grayscale-rgb-600), 0.05); --grayscale-600-10: rgba(var(--grayscale-rgb-600), 0.1); --grayscale-600-20: rgba(var(--grayscale-rgb-600), 0.2); --grayscale-600-30: rgba(var(--grayscale-rgb-600), 0.3); --grayscale-600-40: rgba(var(--grayscale-rgb-600), 0.4); --grayscale-600-50: rgba(var(--grayscale-rgb-600), 0.5); --grayscale-600-60: rgba(var(--grayscale-rgb-600), 0.6); --grayscale-600-70: rgba(var(--grayscale-rgb-600), 0.7); --grayscale-600-80: rgba(var(--grayscale-rgb-600), 0.8); --grayscale-600-90: rgba(var(--grayscale-rgb-600), 0.9); --grayscale-600-95: rgba(var(--grayscale-rgb-600), 0.95); --grayscale-600-100: rgba(var(--grayscale-rgb-600), 1); --text-secondary: var(--grayscale-600); --text-secondary-rgb: var(--grayscale-rgb-600); --text-secondary-5: rgba(var(--text-secondary-rgb), 0.05); --text-secondary-10: rgba(var(--text-secondary-rgb), 0.1); --text-secondary-20: rgba(var(--text-secondary-rgb), 0.2); --text-secondary-30: rgba(var(--text-secondary-rgb), 0.3); --text-secondary-40: rgba(var(--text-secondary-rgb), 0.4); --text-secondary-50: rgba(var(--text-secondary-rgb), 0.5); --text-secondary-60: rgba(var(--text-secondary-rgb), 0.6); --text-secondary-70: rgba(var(--text-secondary-rgb), 0.7); --text-secondary-80: rgba(var(--text-secondary-rgb), 0.8); --text-secondary-90: rgba(var(--text-secondary-rgb), 0.9); --text-secondary-95: rgba(var(--text-secondary-rgb), 0.95); --text-secondary-100: rgba(var(--text-secondary-rgb), 1); 21 --grayscale-700: #374151; --grayscale-rgb-700: 55, 65, 81; --grayscale-700-5: rgba(var(--grayscale-rgb-700), 0.05); --grayscale-700-10: rgba(var(--grayscale-rgb-700), 0.1); --grayscale-700-20: rgba(var(--grayscale-rgb-700), 0.2); --grayscale-700-30: rgba(var(--grayscale-rgb-700), 0.3); --grayscale-700-40: rgba(var(--grayscale-rgb-700), 0.4); --grayscale-700-50: rgba(var(--grayscale-rgb-700), 0.5); --grayscale-700-60: rgba(var(--grayscale-rgb-700), 0.6); --grayscale-700-70: rgba(var(--grayscale-rgb-700), 0.7); --grayscale-700-80: rgba(var(--grayscale-rgb-700), 0.8); --grayscale-700-90: rgba(var(--grayscale-rgb-700), 0.9); --grayscale-700-95: rgba(var(--grayscale-rgb-700), 0.95); --grayscale-700-100: rgba(var(--grayscale-rgb-700), 1); 22 --grayscale-800: #1f2937; --grayscale-rgb-800: 31, 41, 55; --grayscale-800-5: rgba(var(--grayscale-rgb-800), 0.05); --grayscale-800-10: rgba(var(--grayscale-rgb-800), 0.1); --grayscale-800-20: rgba(var(--grayscale-rgb-800), 0.2); --grayscale-800-30: rgba(var(--grayscale-rgb-800), 0.3); --grayscale-800-40: rgba(var(--grayscale-rgb-800), 0.4); --grayscale-800-50: rgba(var(--grayscale-rgb-800), 0.5); --grayscale-800-60: rgba(var(--grayscale-rgb-800), 0.6); --grayscale-800-70: rgba(var(--grayscale-rgb-800), 0.7); --grayscale-800-80: rgba(var(--grayscale-rgb-800), 0.8); --grayscale-800-90: rgba(var(--grayscale-rgb-800), 0.9); --grayscale-800-95: rgba(var(--grayscale-rgb-800), 0.95); --grayscale-800-100: rgba(var(--grayscale-rgb-800), 1); --dark-surface-tertiary: var(--grayscale-800); --dark-surface-tertiary-rgb: var(--grayscale-rgb-800); --dark-surface-tertiary-5: rgba(var(--dark-surface-tertiary-rgb), 0.05); --dark-surface-tertiary-10: rgba(var(--dark-surface-tertiary-rgb), 0.1); --dark-surface-tertiary-20: rgba(var(--dark-surface-tertiary-rgb), 0.2); --dark-surface-tertiary-30: rgba(var(--dark-surface-tertiary-rgb), 0.3); --dark-surface-tertiary-40: rgba(var(--dark-surface-tertiary-rgb), 0.4); --dark-surface-tertiary-50: rgba(var(--dark-surface-tertiary-rgb), 0.5); --dark-surface-tertiary-60: rgba(var(--dark-surface-tertiary-rgb), 0.6); --dark-surface-tertiary-70: rgba(var(--dark-surface-tertiary-rgb), 0.7); --dark-surface-tertiary-80: rgba(var(--dark-surface-tertiary-rgb), 0.8); --dark-surface-tertiary-90: rgba(var(--dark-surface-tertiary-rgb), 0.9); --dark-surface-tertiary-95: rgba(var(--dark-surface-tertiary-rgb), 0.95); --dark-surface-tertiary-100: rgba(var(--dark-surface-tertiary-rgb), 1); --dark-border: var(--grayscale-800); --dark-border-rgb: var(--grayscale-rgb-800); --dark-border-5: rgba(var(--dark-border-rgb), 0.05); --dark-border-10: rgba(var(--dark-border-rgb), 0.1); --dark-border-20: rgba(var(--dark-border-rgb), 0.2); --dark-border-30: rgba(var(--dark-border-rgb), 0.3); --dark-border-40: rgba(var(--dark-border-rgb), 0.4); --dark-border-50: rgba(var(--dark-border-rgb), 0.5); --dark-border-60: rgba(var(--dark-border-rgb), 0.6); --dark-border-70: rgba(var(--dark-border-rgb), 0.7); --dark-border-80: rgba(var(--d
22ark-border-rgb), 0.8); --dark-border-90: rgba(var(--dark-border-rgb), 0.9); --dark-border-95: rgba(var(--dark-border-rgb), 0.95); --dark-border-100: rgba(var(--dark-border-rgb), 1); 23 --grayscale-900: #111827; --grayscale-rgb-900: 17, 24, 39; --grayscale-900-5: rgba(var(--grayscale-rgb-900), 0.05); --grayscale-900-10: rgba(var(--grayscale-rgb-900), 0.1); --grayscale-900-20: rgba(var(--grayscale-rgb-900), 0.2); --grayscale-900-30: rgba(var(--grayscale-rgb-900), 0.3); --grayscale-900-40: rgba(var(--grayscale-rgb-900), 0.4); --grayscale-900-50: rgba(var(--grayscale-rgb-900), 0.5); --grayscale-900-60: rgba(var(--grayscale-rgb-900), 0.6); --grayscale-900-70: rgba(var(--grayscale-rgb-900), 0.7); --grayscale-900-80: rgba(var(--grayscale-rgb-900), 0.8); --grayscale-900-90: rgba(var(--grayscale-rgb-900), 0.9); --grayscale-900-95: rgba(var(--grayscale-rgb-900), 0.95); --grayscale-900-100: rgba(var(--grayscale-rgb-900), 1); --dark-surface-secondary: var(--grayscale-900); --dark-surface-secondary-rgb: var(--grayscale-rgb-900); --dark-surface-secondary-5: rgba(var(--dark-surface-secondary-rgb), 0.05); --dark-surface-secondary-10: rgba(var(--dark-surface-secondary-rgb), 0.1); --dark-surface-secondary-20: rgba(var(--dark-surface-secondary-rgb), 0.2); --dark-surface-secondary-30: rgba(var(--dark-surface-secondary-rgb), 0.3); --dark-surface-secondary-40: rgba(var(--dark-surface-secondary-rgb), 0.4); --dark-surface-secondary-50: rgba(var(--dark-surface-secondary-rgb), 0.5); --dark-surface-secondary-60: rgba(var(--dark-surface-secondary-rgb), 0.6); --dark-surface-secondary-70: rgba(var(--dark-surface-secondary-rgb), 0.7); --dark-surface-secondary-80: rgba(var(--dark-surface-secondary-rgb), 0.8); --dark-surface-secondary-90: rgba(var(--dark-surface-secondary-rgb), 0.9); --dark-surface-secondary-95: rgba(var(--dark-surface-secondary-rgb), 0.95); --dark-surface-secondary-100: rgba(var(--dark-surface-secondary-rgb), 1); 24 --grayscale-950: #030712; --grayscale-rgb-950: 3, 7, 18; --grayscale-950-5: rgba(var(--grayscale-rgb-950), 0.05); --grayscale-950-10: rgba(var(--grayscale-rgb-950), 0.1); --grayscale-950-20: rgba(var(--grayscale-rgb-950), 0.2); --grayscale-950-30: rgba(var(--grayscale-rgb-950), 0.3); --grayscale-950-40: rgba(var(--grayscale-rgb-950), 0.4); --grayscale-950-50: rgba(var(--grayscale-rgb-950), 0.5); --grayscale-950-60: rgba(var(--grayscale-rgb-950), 0.6); --grayscale-950-70: rgba(var(--grayscale-rgb-950), 0.7); --grayscale-950-80: rgba(var(--grayscale-rgb-950), 0.8); --grayscale-950-90: rgba(var(--grayscale-rgb-950), 0.9); --grayscale-950-95: rgba(var(--grayscale-rgb-950), 0.95); --grayscale-950-100: rgba(var(--grayscale-rgb-950), 1); --text-primary: var(--grayscale-950); --text-primary-rgb: var(--grayscale-rgb-950); --text-primary-5: rgba(var(--text-primary-rgb), 0.05); --text-primary-10: rgba(var(--text-primary-rgb), 0.1); --text-primary-20: rgba(var(--text-primary-rgb), 0.2); --text-primary-30: rgba(var(--text-primary-rgb), 0.3); --text-primary-40: rgba(var(--text-primary-rgb), 0.4); --text-primary-50: rgba(var(--text-primary-rgb), 0.5); --text-primary-60: rgba(var(--text-primary-rgb), 0.6); --text-primary-70: rgba(var(--text-primary-rgb), 0.7); --text-primary-80: rgba(var(--text-primary-rgb), 0.8); --text-primary-90: rgba(var(--text-primary-rgb), 0.9); --text-primary-95: rgba(var(--text-primary-rgb), 0.95); --text-primary-100: rgba(var(--text-primary-rgb), 1); --dark-surface-primary: var(--grayscale-950); --dark-surface-primary-rgb: var(--grayscale-rgb-950); --dark-surface-primary-5: rgba(var(--dark-surface-primary-rgb), 0.05); --dark-surface-primary-10: rgba(var(--dark-surface-primary-rgb), 0.1); --dark-surface-primary-20: rgba(var(--dark-surface-primary-rgb), 0.2); --dark-surface-primary-30: rgba(var(--dark-surface-primary-rgb), 0.3); --dark-surface-primary-40: rgba(var(--dark-surface-primary-rgb), 0.4); --dark-surface-primary-50: rgba(var(--dark-surface-primary-rgb), 0.5); --dark-surface-primary-60: rgba(var(--dark-surface-primary-rgb), 0.6); --dark-surface-primary-70: rgba(var(--dark-surface-primary-rgb), 0.7); --dark-surface-primary-80: rgba(var(--dark-surface-primary-rgb), 0.8); --dark-surface-primary-90: rgba(var(--dark-surface-primary-rgb), 0.9); --dark-surface-primary-95: rgba(var(--dark-surface-primary-rgb), 0.95); --dark-surface-primary-100: rgba(var(--dark-surface-primary-rgb), 1); 25 --error: #ff453a; 26 --success: #14c9a2; 27 --text-on-accent-primary: var(--text-on-accent, var(--grayscale-50)); 28 --text-on-accent-secondary: var(--text-on-accent, var(--grayscale-950)); 29 --text-on-accent-primary-rgb: var(--text-on-accent-rgb, var(--grayscale-rgb-50)); 30 --text-on-accent-secondary-rgb: var(--text-on-accent-rgb, var(--grayscale-rgb-950)); 31 --error-rgb: 255, 69, 58; 32 --success-rgb: 20, 201, 162; 33 --error-5: rgba(var(--error-rgb), 0.05); 34 --error-10: rgba(var(--error-rgb), 0.1); 35 --error-20: rgba(var(--error-rgb), 0.2); 36 --error-30: rgba(var(--error-rgb), 0.3); 37 --error-40: rgba(var(--error-rgb), 0.4); 38 --error-50: rgba(var(--error-rgb), 0.5); 39 --error-60: rgba(var(--error-rgb), 0.6); 40 --error-70: rgba(var(--error-rgb), 0.7); 41 --error-80: rgba(var(--error-rgb), 0.8); 42 --error-90: rgba(var(--error-rgb), 0.9); 43 --error-95: rgba(var(--error-rgb), 0.95); 44 --error-100: rgba(var(--error-rgb), 1); 45 --success-5: rgba(var(--success-rgb), 0.05); 46 --success-10: rgba(var(--success-rgb), 0.1); 47 --success-20: rgba(var(--success-rgb), 0.2); 48 --success-30: rgba(var(--success-rgb), 0.3); 49 --success-40: rgba(var(--success-rgb), 0.4); 50 --success-50: rgba(var(--success-rgb), 0.5); 51 --success-60: rgba(var(--success-rgb), 0.6); 52 --success-70: rgba(var(--success-rgb), 0.7); 53 --success-80: rgba(var(--success-rgb), 0.8); 54 --success-90: rgba(var(--success-rgb), 0.9); 55 --success-95: rgba(var(--success-rgb), 0.95); 56 --success-100: rgba(var(--success-rgb), 1); 57 --text-on-accent-primary-5: rgba(var(--text-on-accent-primary-rgb), 0.05); 58 --text-on-accent-primary-10: rgba(var(--text-on-accent-primary-rgb), 0.1); 59 --text-on-accent-primary-20: rgba(var(--text-on-accent-primary-rgb), 0.2); 60 --text-on-accent-primary-30: rgba(var(--text-on-accent-primary-rgb), 0.3); 61 --text-on-accent-primary-40: rgba(var(--text-on-accent-primary-rgb), 0.4); 62 --text-on-accent-primary-50: rgba(var(--text-on-accent-primary-rgb), 0.5); 63 --text-on-accent-primary-60: rgba(var(--text-on-accent-primary-rgb), 0.6); 64 --text-on-accent-primary-70: rgba(var(--text-on-accent-primary-rgb), 0.7); 65 --text-on-accent-primary-80: rgba(var(--text-on-accent-primary-rgb), 0.8); 66 --text-on-accent-primary-90: rgba(var(--text-on-accent-primary-rgb), 0.9); 67 --text-on-accent-primary-95: rgba(var(--text-on-accent-primary-rgb), 0.95); 68 --text-on-accent-primary-100: rgba(var(--text-on-accent-primary-rgb), 1); 69 --text-on-accent-secondary-5: rgba(var(--text-on-accent-secondary-rgb), 0.05); 70 --text-on-accent-secondary-10: rgba(var(--text-on-accent-secondary-rgb), 0.1); 71 --text-on-accent-secondary-20: rgba(var(--text-on-accent-secondary-rgb), 0.2); 72 --text-on-accent-secondary-30: rgba(var(--text-on-accent-secondary-rgb), 0.3); 73 --text-on-accent-secondary-40: rgba(var(--text-on-accent-secondary-rgb), 0.4); 74 --text-on-accent-secondary-50: rgba(var(--text-on-accent-secondary-rgb), 0.5); 75 --text-on-accent-secondary-60: rgba(var(--text-on-accent-secondary-rgb), 0.6); 76 --text-on-accent-secondary-70: rgba(var(--text-on-accent-secondary-rgb), 0.7); 77 --text-on-accent-secondary-80: rgba(var(--text-on-accent-secondary-rgb), 0.8); 78 --text-on-accent-secondary-90: rgba(var(--text-on-accent-secondary-rgb), 0.9); 79 --text-on-accent-secondary-95: rgba(var(--text-on-accent-secondary-rgb), 0.95); 80 --text-on-accent-secondary-100: rgba(var(--text-on-accent-secondary-rgb), 1); 81 } 82 </style><div class="flex min-h-svh flex-col bg-background text-foreground"><header class="border-b border-border bg-background px-6 py-4"><div class="container mx-auto flex items-center justify-between"><a class="flex items-center gap-2" href="/"><img alt="Fantasy Tennis Manager" loading="lazy" width="60" height="42" decoding="async" data-nimg="1" class="h-10 w-auto" style="color:transparent" src="/images/logo_header_ftm.svg"/><span class="text-lg font-semibold">Fantasy Tennis Manager</span></a><a class="text-sm text-[--text-secondary] hover:text-[--text-primary] dark:text-[--dark-text-secondary] dark:hover:text-[--dark-text-primary]" href="/">Back to home</a></div></header><main class="flex flex-1 items-center justify-center px-6 py-12"><div class="w-full max-w-xl"><div class="min-h-[calc(100vh-var(--header-height))] flex items-center justify-center px-6 py-12 bg-background"><div class="w-full max-w-md"><div class="text-center mb-2"><div class="flex justify-center"><img alt="Fantasy Tennis Manager" loading="lazy" width="300" height="300" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=https%3A%2F%2Fhebbkx1anhila5yf.public.blob.vercel-storage.com%2FFull_Logo_FTM-jnIQNj4jOhs2jb9sXOX2IYnKQpCSpt.png&w=384&q=75 1x, /_next/image?url=https%3A%2F%2Fhebbkx1anhila5yf.public.blob.vercel-storage.com%2FFull_Logo_FTM-jnIQNj4jOhs2jb9sXOX2IYnKQpCSpt.png&w=640&q=75 2x" src="/_next/image?url=https%3A%2F%2Fhebbkx1anhila5yf.public.blob.vercel-storage.com%2FFull_Logo_FTM-jnIQNj4jOhs2jb9sXOX2IYnKQpCSpt.png&w=640&q=75"/></div></div><div class="text-center mb-6"><h1 class="text-2xl font-bold text-[--text-primary] dark:text-[--dark-text-primary] mb-2">Welcome Back</h1><p class="text-[--text-secondary] dark:text-[--dark-text-secondary]">Sign in to your Fantasy Tennis Manager account</p></div><div class="bg-[--surface-secondary] dark:bg-[--dark-surface-secondary] rounded-lg border border-[--border] dark:border-[--dark-border] p-6"><form class="space-y-4" action="" encType="multipart/form-data" method="POST"><input type="hidden" name="$ACTION_REF_2"/><input type="hidden" name="$ACTION_2:0" value="{"id":"60c800e29e47071a94a77311f7110a39ea4cb707fb","bound":"$@1"}"/><input type="hidden" name="$ACTION_2:1" value="[{"status":"idle"}]"/><input type="hidden" name="$ACTION_KEY" value="k3352762311"/><div><label for="email" class="block text-sm font-medium text-[--text-primary] dark:text-[--dark-text-primary] mb-2">Email Address</label><input id="email" type="email" required="" class="w-full px-3 py-2 border border-[--border] dark:border-[--dark-border] rounded-md bg-[--surface-primary] dark:bg-[--dark-surface-primary] text-[--text-primary] dark:text-[--dark-text-primary] placeholder-[--text-tertiary] dark:placeholder-[--dark-text-tertiary] focus:outline-none focus:ring-2 focus:ring-[--control] dark:focus:ring-[--dark-control] focus:border-transparent" placeholder="Enter your email" autoComplete="email" name="email" value=""/></div><div><label for="password" class="block text-sm font-medium text-[--text-primary] dark:text-[--dark-text-primary] mb-2">Password</label><input id="password" type="password" required="" class="w-full px-3 py-2 border border-[--border] dark:border-[--dark-border] rounded-md bg-[--surface-primary] dark:bg-[--dark-surface-primary] text-[--text-primary] dark:text-[--dark-text-primary] placeholder-[--text-tertiary] dark:placeholder-[--dark-text-tertiary] focus:outline-none focus:ring-2 focus:ring-[--control] dark:focus:ring-[--dark-control] focus:border-transparent" placeholder="Enter your password" autoComplete="current-password" name="password" value=""/></div><div class="flex items-center justify-between"><label class="flex items-center"><input type="checkbox" class="h-4 w-4 text-[--control] dark:text-[--dark-control] focus:ring-[--control] dark:focus:ring-[--dark-control] border-[--border] dark:border-[--dark-border] rounded"/><span class="ml-2 text-sm text-[--text-secondary] dark:text-[--dark-text-secondary]">Remember me</span></label><a class="text-sm text-[--control] dark:text-[--dark-control] hover:underline" href="/forgot-password">Forgot password?</a></div><div class="flex justify-center"><div id="cf-turnstile"></div></div><input type="hidden" name="captchaToken" value=""/><button class="inline-flex items-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-1 border border-transparent bg-[--accent-500] text-[--text-on-accent-primary] ring-[--control] focus-visible:ring-[--control] focus-visible:ring-offset-[--surface-primary] hover:bg-[--accent-600] dark:focus-visible:ring-offset-[--dark-surface-primary] h-9 rounded-full px-5 text-sm md:text-base w-full justify-center" type="submit">Sign In</button></form><div class="mt-6 border-t border-[--border] dark:border-[--dark-border] pt-6 space-y-4"><div><h2 class="text-sm font-semibold text-[--text-primary] dark:text-[--dark-text-primary] mb-3">Prefer a magic link?</h2><form class="space-y-4" action="" encType="multipart/form-data" method="POST"><input type="hidden" name="$ACTION_REF_3"/><input type="hidden" name="$ACTION_3:0" value="{"id":"6045c1ed6be2ef6815b4bb7c6ddfb47355fbf19742","bound":"$@1"}"/><input type="hidden" name="$ACTION_3:1" value="[{"status":"idle"}]"/><input type="hidden" name="$ACTION_KEY" value="k2130773900"/><input type="hidden" name="intent" value="send"/><input type="hidden" name="captchaToken" value=""/><div><label for="otpEmail" class="block text-sm font-medium text-[--text-primary] dark:text-[--dark-text-primary] mb-2">Email Address</label><input id="otpEmail" type="email" required="" class="w-full px-3 py-2 border border-[--border] dark:border-[--dark-border] rounded-md bg-[--surface-primary] dark:bg-[--dark-surface-primary] text-[--text-primary] dark:text-[--dark-text-primary] placeholder-[--text-tertiary] dark:placeholder-[--dark-text-tertiary] focus:outline-none focus:ring-2 focus:ring-[--control] dark:focus:ring-[--dark-control] focus:border-transparent" placeholder="Enter your email" autoComplete="email" name="otpEmail" value=""/></div><button class="inline-flex items-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-full px-5 text-sm md:text-base w-full justify-center" type="submit">Send Magic Link</button></form></div></div><div class="mt-6 text-center"><p class="text-sm text-[--text-secondary] dark:text-[--dark-text-secondary]">Donât have an account?<!-- --> <a class="text-[--control] dark:text-[--dark-control] hover:underline font-medium" href="/signup">Sign up</a></p></div></div></div></div><!--$--><!--/$--><!--$--><!--/$--></div></main><footer class="border-t border-[--border] px-6 py-8 text-center text-sm text-[--text-tertiary] dark:border-[--dark-border] dark:text-[--dark-text-tertiary]">© 2026 Fantasy Tennis Manager. All rights reserved.</footer></div>
82<script src="/_next/static/chunks/webpack-fedccc7edc41dc76.js" async=""></script>
82<script>(self.__next_f=self.__next_f||[]).push([0])</script>
82<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[29421,[\"9954\",\"static/chunks/4ee4ee27-04c6928c9526645d.js\",\"8436\",\"static/chunks/8436-bd9bb24c5aa0d509.js\",\"1343\",\"static/chunks/1343-f49e8ac6fe7be3d5.js\",\"1176\",\"static/chunks/1176-cd252aaea4d19073.js\",\"9421\",\"static/chunks/9421-39f6c645fc443d61.js\",\"5118\",\"static/chunks/5118-47cc8ce75b8d2c10.js\",\"3506\",\"static/chunks/3506-2f3e3c418d90b3f0.js\",\"6840\",\"static/chunks/6840-6e1246b059a9370a.js\",\"5228\",\"static/chunks/5228-369658bd58a319ab.js\",\"3327\",\"static/chunks/3327-4ab8d32e69e53b5d.js\",\"2128\",\"static/chunks/2128-b1782326b4c0d87b.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-ae25a3be7b3794fe.js\"],\"default\"]\n4:I[33506,[\"9954\",\"static/chunks/4ee4ee27-04c6928c9526645d.js\",\"8436\",\"static/chunks/8436-bd9bb24c5aa0d509.js\",\"1343\",\"static/chunks/1343-f49e8ac6fe7be3d5.js\",\"1176\",\"static/chunks/1176-cd252aaea4d19073.js\",\"9421\",\"static/chunks/9421-39f6c645fc443d61.js\",\"5118\",\"static/chunks/5118-47cc8ce75b8d2c10.js\",\"3506\",\"static/chunks/3506-2f3e3c418d90b3f0.js\",\"6840\",\"static/chunks/6840-6e1246b059a9370a.js\",\"5228\",\"static/chunks/5228-369658bd58a319ab.js\",\"3327\",\"static/chunks/3327-4ab8d32e69e53b5d.js\",\"2128\",\"static/chunks/2128-b1782326b4c0d87b.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-ae25a3be7b3794fe.js\"],\"Image\"]\n5:I[37548,[],\"default\"]\n6:I[53818,[],\"default\"]\n7:I[75241,[],\"ClientPageRoot\"]\n8:I[68424,[\"8436\",\"static/chunks/8436-bd9bb24c5aa0d509.js\",\"9421\",\"static/chunks/9421-39f6c645fc443d61.js\",\"5118\",\"static/chunks/5118-47cc8ce75b8d2c10.js\",\"3506\",\"static/chunks/3506-2f3e3c418d90b3f0.js\",\"6840\",\"static/chunks/6840-6e1246b059a9370a.js\",\"4281\",\"static/chunks/4281-c9ae6ae11dab49ad.js\",\"2141\",\"static/chunks/2141-4af58af37ad4265b.js\",\"72\",\"static/chunks/app/(auth)/login/page-ffcd737e28a3e317.js\"],\"default\"]\n9:I[53596,[],\"MetadataBoundary\"]\nb:I[53596,[],\"OutletBoundary\"]\ne:I[3924,[],\"AsyncMetadataOutlet\"]\n10:I[53596,[],\"ViewportBoundary\"]\n12:I[38835,[],\"default\"]\n13:\"$Sreact.suspense\"\n14:I[3924,[],\"AsyncMetadata\"]\n16:I[43041,[\"1343\",\"static/chunks/1343-f49e8ac6fe7be3d5.js\",\"6152\",\"static/chunks/6152-a3d9b7f1299d4751.js\",\"5118\",\"static/chunks/5118-47cc8ce75b8d2c10.js\",\"6840\",\"static/chunks/6840-6e1246b059a9370a.js\",\"5228\",\"static/chunks/5228-369658bd58a319ab.js\",\"5701\",\"static/chunks/5701-a710903b98f42df2.js\",\"8165\",\"static/chunks/8165-87e17dbb768e7e9a.js\",\"7177\",\"static/chunks/app/layout-17eecb5ea729911f.js\"],\"TestPeriodBanner\"]\n17:I[4431,[\"1343\",\"static/chunks/1343-f49e8ac6fe7be3d5.js\",\"6152\",\"static/chunks/6152-a3d9b7f1299d4751.js\",\"5118\",\"static/chunks/5118-47cc8ce75b8d2c10.js\",\"6840\",\"static/chunks/6840-6e1246b059a9370a.js\",\"5228\",\"static/chunks/5228-369658bd58a319ab.js\",\"5701\",\"static/chunks/5701-a710903b98f42df2.js\",\"8165\",\"static/chunks/8165-87e17dbb768e7e9a.js\",\"7177\",\"static/chunks/app/layout-17eecb5ea729911f.js\"],\"Providers\"]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/d4aad336d8fb569c.css\",\"style\"]\n:HL[\"/_next/static/css/83d7815267fdcf75.css\",\"style\"]\n0:{\"P\":null,\"b\":\"E2MmrshWEAcOtSLBmcZuC\",\"p\":\"\",\"c\":[\"\",\"login\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(auth)\",{\"children\":[\"login\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d4aad336d8fb569c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/83d7815267fdcf75.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"(auth)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"div\",null,{\"className\":\"flex min-h-svh flex-col bg-background text-foreground\",\"children\":[[\"$\",\"header\",null,{\"className\":\"border-b border-border bg-background px-6 py-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto flex items-center justify-between\",\"children\":[[\"$\",\"$L3\",null,{\"href\":\"/\",\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L4\",null,{\"sr"])</script>
82<script>self.__next_f.push([1,"c\":\"/images/logo_header_ftm.svg\",\"alt\":\"Fantasy Tennis Manager\",\"width\":60,\"height\":42,\"className\":\"h-10 w-auto\"}],[\"$\",\"span\",null,{\"className\":\"text-lg font-semibold\",\"children\":\"Fantasy Tennis Manager\"}]]}],[\"$\",\"$L3\",null,{\"href\":\"/\",\"className\":\"text-sm text-[--text-secondary] hover:text-[--text-primary] dark:text-[--dark-text-secondary] dark:hover:text-[--dark-text-primary]\",\"children\":\"Back to home\"}]]}]}],[\"$\",\"main\",null,{\"className\":\"flex flex-1 items-center justify-center px-6 py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-[--border] px-6 py-8 text-center text-sm text-[--text-tertiary] dark:border-[--dark-border] dark:text-[--dark-text-tertiary]\",\"children\":\"© 2026 Fantasy Tennis Manager. All rights reserved.\"}]]}]]}],{\"children\":[\"login\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{}}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",\"$Ld\",[\"$\",\"$Le\",null,{\"promise\":\"$@f\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"f0a354ca-2bcd-4fd4-ada9-4887e2eb2e0c\",{\"children\":[[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",\"$undefined\"],\"s\":false,\"S\":false}\na:[\"$\",\"$13\",null,{\"fallback\":null,\"children\":[\"$\",\"$L14\",null,{\"promise\":\"$@15\"}]}]\nd:null\n15:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Fantasy Tennis Manager\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Build your fantasy tennis team and compete with friends\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.dev\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/images/favicon_ball.png\"}]],\"error\":null,\"digest\":\"$undefined\"}\nf:{\"metadata\":\"$15:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n2:[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"bg-background text-foreground __variable_c29908 __variable_246ccd font-sans\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-svh bg-background\",\"children\":[[\"$\",\"$L16\",null,{}],[\"$\",\"$L17\",null,{\"initialUser\":null,\"initialProfile\":null,\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"className\":\"py-14 md:py-[72px] flex flex-col items-center gap-10 relative container mx-auto px-6 flex h-[calc(100vh-var(--header-height))] flex-col justify-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 items-center self-center\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"flex min-h-7 items-center justify-center gap-2 rounded-full bg-[--surface-secondary] px-3.5 pb-px text-sm font-medium text-[--text-tertiary] dark:bg-[--dark-surface-secondary] dark:text-[--dark-text-tertiary] md:text-base\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"className\":\"flex max-w-[800px] flex-col justify-center gap-1 items-center self-center [\u0026\u003e*]:text-pretty [\u0026\u003e*]:text-3xl [\u0026\u003e*]:font-medium md:[\u0026\u003e*]:text-4xl [\u0026\u003e*]:text-center\",\"children\":[\"$\",\"h2\",null,{\"children\":\"Page not found\",\"ref\":null}]}],[\"$\",\"p\",null,{\"className\":\"max-w-screen-md text-pretty tex"])</script>
82<script>self.__next_f.push([1,"t-lg font-light text-[--text-tertiary] dark:text-[--dark-text-tertiary] md:text-xl text-center\",\"children\":\"The page you're trying to access does not exist.\"}]]}],[\"$\",\"$L3\",null,{\"href\":\"/\",\"children\":\"Go back to Homepage\",\"className\":\"inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg]:size-4 [\u0026_svg]:shrink-0 gap-1 border border-transparent bg-[--accent-500] text-[--text-on-accent-primary] ring-[--control] focus-visible:ring-[--control] focus-visible:ring-offset-[--surface-primary] hover:bg-[--accent-600] dark:focus-visible:ring-offset-[--dark-surface-primary] h-9 rounded-full px-5 text-sm md:text-base\",\"ref\":null}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]\n"])</script>
82<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"922971c3932743eea7a11651857f7f2c","r":1,"spa":2}' crossorigin="anonymous"></script>
82 83</body></html>
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.