:root{--court-green-dark: #0b3d24;--court-green: #1e7a3c;--court-green-light: #2f9e52;--ball-yellow: #d7e100;--ball-yellow-dark: #b8c400;--cream: #f7f7ef;--white: #ffffff;--ink: #16241c;--ink-soft: #4a5a4f;--border: #d9e2da;--danger: #b3261e;--danger-bg: #fdecea;--font-heading: "Poppins", "Segoe UI", sans-serif;--font-body: "Inter", "Segoe UI", sans-serif;--radius: 10px;--shadow: 0 2px 10px rgba(11, 61, 36, .08);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);background-image:radial-gradient(circle at top right,rgba(215,225,0,.08),transparent 45%),radial-gradient(circle at bottom left,rgba(30,122,60,.06),transparent 40%);background-attachment:fixed;color:var(--ink);font-family:var(--font-body);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--court-green-dark);font-weight:600;line-height:1.25;margin:0 0 .6em}h1{font-size:1.9rem;letter-spacing:-.01em}p{margin:0 0 1em;color:var(--ink-soft)}a{color:var(--court-green);font-weight:600;text-decoration:none}a:hover{color:var(--court-green-dark);text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.page-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:2rem 1.5rem 3rem}.navbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.85rem 1.5rem;background:linear-gradient(120deg,var(--court-green-dark),var(--court-green));box-shadow:var(--shadow);position:sticky;top:0;z-index:10}.navbar-brand{font-family:var(--font-heading);font-weight:700;font-size:1.2rem;color:var(--white);letter-spacing:-.01em;white-space:nowrap}.navbar-brand:before{content:"🎾";margin-right:.5rem}.navbar-links{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;margin-left:auto}.navbar a,.navbar button{font-family:var(--font-body)}.navbar-links a{color:#ffffffd9;font-weight:500;font-size:.92rem;padding:.5rem .85rem;border-radius:999px;transition:background .15s ease,color .15s ease}.navbar-links a:hover{background:#ffffff1f;color:var(--white);text-decoration:none}.navbar-links a.active{background:var(--ball-yellow);color:var(--court-green-dark);font-weight:700}.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--ball-yellow);color:var(--court-green-dark);font-family:var(--font-heading);font-size:.85rem;font-weight:700;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;padding:0;border-radius:50%;background:transparent;box-shadow:0 0 0 2px #ffffff73}.user-menu-trigger:hover,.user-menu-trigger[aria-expanded=true]{background:transparent;box-shadow:0 0 0 2px var(--white)}.user-menu-panel{position:absolute;top:calc(100% + .6rem);right:0;z-index:20;display:flex;flex-direction:column;width:max-content;min-width:14rem;max-width:calc(100vw - 2rem);padding:.5rem;background:var(--white);border-radius:var(--radius);box-shadow:0 10px 24px #0b3d2433}.user-menu-identity{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .65rem .65rem;margin-bottom:.35rem;border-bottom:1px solid var(--border)}.user-menu-identity strong{color:var(--court-green-dark)}.user-menu-identity span{color:var(--ink-soft);font-size:.85rem;overflow-wrap:anywhere}.user-menu-panel a,.user-menu-logout{display:block;width:100%;padding:.55rem .65rem;border-radius:6px;color:var(--ink);font-size:.92rem;font-weight:500;text-align:left}.user-menu-panel a:hover,.user-menu-logout:hover{background:#1e7a3c14;color:var(--court-green-dark);text-decoration:none}.user-menu-logout{background:transparent;box-shadow:none}.navbar-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.4);color:var(--white);font-size:1.1rem;line-height:1;padding:.45rem .7rem;box-shadow:none}.navbar-toggle:hover{background:#ffffff1f}@media (max-width: 48rem){.navbar-toggle{display:inline-flex;margin-left:auto}.navbar-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:.25rem;padding:.75rem 1.5rem 1rem;background:var(--court-green-dark);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);box-shadow:0 10px 20px #0b3d2440}.navbar-links.is-open{display:flex}.navbar-links a{padding:.6rem .85rem;border-radius:var(--radius)}}form{display:flex;flex-direction:column;gap:.9rem;max-width:420px}label{font-weight:600;font-size:.9rem;color:var(--ink)}input,select,textarea{font-family:var(--font-body);font-size:.98rem;padding:.65rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}input[type=checkbox],input[type=radio]{width:auto;padding:0;border:none;border-radius:0;accent-color:var(--court-green)}input::placeholder{color:#94a39a}input:focus,select:focus,textarea:focus{border-color:var(--court-green);box-shadow:0 0 0 3px #1e7a3c26}small{color:var(--ink-soft);font-size:.82rem;margin-top:-.5rem}.password-field{position:relative;display:flex}.password-field input{flex:1;min-width:0;padding-right:4.5rem}.password-toggle{position:absolute;top:50%;right:.35rem;transform:translateY(-50%);padding:.3rem .65rem;border-radius:6px;background:transparent;box-shadow:none;color:var(--court-green);font-size:.85rem;font-weight:600}.password-toggle:hover{background:#1e7a3c14;color:var(--court-green-dark)}.password-toggle:active{transform:translateY(-50%)}.password-toggle:focus-visible{outline:2px solid var(--court-green);outline-offset:1px}button{font-family:var(--font-body);font-weight:700;font-size:.95rem;padding:.65rem 1.3rem;border-radius:var(--radius);border:none;cursor:pointer;background:var(--ball-yellow);color:var(--court-green-dark);transition:background .15s ease,transform .05s ease,box-shadow .15s ease;box-shadow:0 1px 2px #0b3d2426}button:hover{background:var(--ball-yellow-dark)}button:active{transform:translateY(1px)}button:disabled{background:#e5e5e5;color:#9a9a9a;cursor:not-allowed}[role=alert]{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(179,38,30,.25);border-radius:var(--radius);padding:.6rem .9rem;font-size:.9rem;font-weight:500;margin:0}table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}thead{background:var(--court-green-dark)}th{text-align:left;color:var(--white);font-family:var(--font-heading);font-weight:600;font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;padding:.75rem 1rem}td{padding:.7rem 1rem;border-bottom:1px solid var(--border);color:var(--ink)}tbody tr:last-child td{border-bottom:none}tbody tr:nth-child(2n){background:#1e7a3c0a}tbody tr:hover{background:#d7e10024}tbody tr.row-me,tbody tr.row-me:hover{background:#d7e1004d}tbody tr.row-me td{font-weight:700;color:var(--court-green-dark)}tbody tr.row-me td:first-child{box-shadow:inset 4px 0 0 var(--court-green)}.challenge-link{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:var(--court-green);box-shadow:0 1px 2px #0b3d2426;font-size:.95rem;line-height:1;text-decoration:none;transition:background .15s ease,transform .05s ease}.challenge-link:hover{background:var(--court-green-dark);text-decoration:none}.challenge-link:active{transform:translateY(1px)}.result-badge{display:inline-block;margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}.result-won{background:var(--ball-yellow);color:var(--court-green-dark)}.result-tied{background:#1e7a3c1f;color:var(--court-green-dark)}.you-badge{display:inline-block;margin-left:.5rem;padding:.05rem .45rem;border-radius:999px;background:var(--court-green);color:var(--white);font-family:var(--font-body);font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:3rem 1.5rem;text-align:center}.auth-card{width:100%;max-width:420px;background:var(--white);border-radius:16px;box-shadow:var(--shadow);padding:2.25rem 2rem;text-align:left;border-top:6px solid var(--ball-yellow)}.auth-card h1{text-align:center}.auth-card form{max-width:none}.auth-page>p{max-width:380px}.auth-links{display:flex;flex-direction:column;gap:.6rem;align-items:center}.status-with-note{text-decoration:underline dotted;text-underline-offset:.2em;cursor:help}.filter-bar{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.filter-group{display:flex;gap:.5rem;flex-wrap:wrap}.filter-bar button[aria-pressed=false]{background:transparent;border:1px solid var(--border);color:var(--ink-soft);box-shadow:none}.filter-bar button[aria-pressed=false]:hover{background:#1e7a3c0f;border-color:var(--court-green);color:var(--court-green-dark)}.datetime-picker{display:flex;gap:.6rem;flex-wrap:wrap}.datetime-picker input{flex:1 1 10rem}.datetime-picker select{flex:0 1 9rem}.weather-forecast{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem .6rem}.weather-forecast-heading{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.55rem;font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}.weather-forecast-period{font-family:var(--font-body);letter-spacing:0;text-transform:none;color:var(--court-green-dark)}.weather-forecast-note{margin:0 0 .4rem;font-size:.88rem;color:var(--ink-soft)}.weather-slots{list-style:none;margin:0 0 .4rem;padding:0 0 .2rem;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(2.3rem,1fr);gap:.25rem;overflow-x:auto}.weather-slot{display:flex;flex-direction:column;align-items:center;gap:.05rem;padding:.4rem .1rem;border-radius:8px;text-align:center;white-space:nowrap}.weather-slot-match{background:#d7e10038;box-shadow:inset 0 0 0 1px var(--ball-yellow-dark)}.weather-slot-label{font-size:.75rem;font-weight:600;color:var(--ink-soft)}.weather-slot-match .weather-slot-label{color:var(--court-green-dark)}.weather-slot-icon{font-size:1.35rem;line-height:1.3}.weather-slot-temp{font-weight:700;font-size:.9rem;color:var(--court-green-dark)}.weather-slot-low{display:block;font-weight:400;color:var(--ink-soft)}.weather-slot-detail{font-size:.72rem;color:var(--ink-soft)}.weather-attribution{display:block;text-align:right;font-size:.7rem;color:var(--ink-soft);text-decoration:none}.form-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}.button-secondary{background:transparent;border:1px solid var(--border);color:var(--ink-soft);box-shadow:none}.button-secondary:hover{background:#1e7a3c0f;border-color:var(--court-green);color:var(--court-green-dark)}.button-danger{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(179,38,30,.3);box-shadow:none}.button-danger:hover{background:var(--danger);color:var(--white)}.match-detail{display:grid;grid-template-columns:max-content 1fr;gap:.65rem 2rem;align-items:baseline;margin:0 0 1.75rem;padding:1.25rem 1.5rem;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}.match-detail dt{font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}.match-detail dd{margin:0;font-weight:600;color:var(--court-green-dark)}.match-detail-address{display:block;margin-top:.15rem;font-weight:400;font-size:.88rem;color:var(--ink-soft)}@media (max-width: 30rem){.match-detail{grid-template-columns:1fr;gap:.15rem}.match-detail dd{margin-bottom:.6rem}}.invite-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.invite-actions button{align-self:flex-end}.invite-account-type{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600}.invite-form{flex-direction:row;align-items:center;gap:.6rem;max-width:520px;margin-bottom:1rem}.invite-form input{flex:1}.invite-type{white-space:nowrap}.invite-sent{color:var(--court-green);font-weight:600}.team-type{display:flex;gap:.6rem;align-items:center}.team-type select{flex:1;min-width:11rem}.team-commit{flex:none;align-self:stretch;width:2.75rem;padding:0;font-size:1.15rem;line-height:1}.team-remove{flex:none;align-self:stretch;padding:0 .9rem}.team-remove:disabled,.team-remove:disabled:hover{background:#e5e5e5;color:#9a9a9a;border-color:transparent}.team-remove-confirm{max-width:19rem}.team-remove-confirm p:not([role=alert]){margin:0 0 .6rem;font-size:.9rem}.team-remove-inline{display:none}.team-remove-actions{display:flex;gap:.6rem;flex-wrap:wrap}.team-email,.team-email-inline{overflow-wrap:anywhere}.team-email-inline{display:none}@media (max-width: 40rem){.team-table th,.team-table td{padding:.6rem .5rem}.team-table .team-email{display:none}.team-email-inline{display:block;margin-top:.2rem;font-size:.82rem;font-weight:400;color:var(--ink-soft)}.team-type select{min-width:0}.team-remove{display:none}.team-remove-inline{display:block;margin-top:.45rem;padding:.3rem .7rem;font-size:.8rem}}.location-list{list-style:none;margin:0 0 2rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.location-item{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1.1rem}.location-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.location-address{margin:.15rem 0 0;font-size:.88rem;color:var(--ink-soft)}.location-actions{display:flex;align-items:center;gap:.5rem}.location-indoor-toggle{background:var(--white);color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--border)}.location-indoor-toggle:hover{background:var(--cream)}.location-indoor-toggle[aria-pressed=true]{background:var(--court-green);color:var(--white);box-shadow:inset 0 0 0 1px var(--court-green)}.location-indoor-toggle[aria-pressed=true]:hover{background:var(--court-green-light)}.location-indoor{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-size:.85rem;color:var(--ink-soft);white-space:nowrap}.location-indoor input{margin:0}.location-tag{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;border-radius:999px;background:var(--ball-yellow);color:var(--court-green-dark);font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:.1em}.location-actions button{padding:.4rem .85rem;font-size:.85rem}.location-map{width:100%;height:280px;margin-top:.9rem;border:1px solid var(--border);border-radius:var(--radius);display:block}.address-autocomplete,gmp-place-autocomplete{width:100%}gmp-place-autocomplete{color-scheme:light}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.profile-summary{margin:0 0 2rem;padding:1.5rem;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);max-width:560px}.profile-summary h2{margin:0 0 .6rem}.profile-details{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:0}.profile-details dt{font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}.profile-details dd{margin:0;overflow-wrap:anywhere}.profile-page [role=status]{background:#1e7a3c14;color:var(--court-green-dark);border:1px solid rgba(30,122,60,.25);border-radius:var(--radius);padding:.6rem .9rem;font-size:.9rem;font-weight:500;margin:0}.profile-addresses{max-width:560px;margin-top:2.5rem}.profile-section-hint{margin:-.25rem 0 1.25rem;font-size:.9rem;color:var(--ink-soft)}.saved-address-list{margin-bottom:1.25rem}.saved-address-form,.register-addresses,.travel-origin-field{display:flex;flex-direction:column;gap:.9rem;max-width:420px}.saved-address-form small{overflow-wrap:anywhere}.saved-address-form-heading{font-weight:600;font-size:.9rem;color:var(--ink)}.saved-address-form button{align-self:flex-start}.register-addresses{margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.register-addresses h2{margin:0;font-size:1.05rem}.register-addresses small{margin-top:-.5rem}.register-addresses .saved-address-list{margin-bottom:0}.travel-origin-field{margin-bottom:1rem}.travel-origin-field select{max-width:100%}
