@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--forest:#143b31;--deep:#0c2923;--lime:#dfff73;--canvas:#f6f7f2;--paper:#fff;--ink:#172b25;--muted:#7c8981;--line:#e5eae3;--shadow:0 12px 34px #143b3110}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font-family:'DM Sans',sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.layout{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{background:var(--deep);padding:35px 22px;color:#eff7eb;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.8px;font-size:22px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:var(--lime);color:var(--deep);font-size:22px}.brand small{display:block;color:#a3bbb0;font:600 9px DM Sans,sans-serif;letter-spacing:2.9px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:6px;margin-top:53px}.nav button{border:0;text-align:left;padding:14px 15px;border-radius:12px;background:transparent;color:#9ab1a7;display:flex;align-items:center;gap:13px;font-weight:700;font-size:13px}.nav button.active,.nav button:hover{color:var(--deep);background:var(--lime)}.nav-icon{font-size:19px;width:22px;text-align:center}.side-footer{margin-top:auto;color:#8ca89a;font-size:12px;line-height:1.7}.side-footer strong{color:var(--lime)}main{max-width:1510px;width:100%;margin:auto;padding:34px 54px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2.3px;font-weight:800;color:#799083}.top-actions{display:flex;gap:11px;align-items:center}.avatar{height:38px;width:38px;border-radius:50%;background:#e3e8d3;color:var(--forest);display:grid;place-items:center;font-weight:800}.page-title{font:800 clamp(26px,3vw,38px) Manrope,sans-serif;letter-spacing:-1.5px;margin:0 0 10px}.sub{color:var(--muted);font-size:14px;line-height:1.6}.hero{position:relative;background:var(--forest);color:white;border-radius:25px;min-height:278px;overflow:hidden;padding:34px 39px;display:flex;align-items:center;margin-bottom:22px}.hero:before{content:'';position:absolute;width:450px;height:450px;border:2px solid #ffffff22;border-radius:50%;right:-92px;top:-120px;box-shadow:0 0 0 55px #ffffff07,0 0 0 114px #ffffff06}.hero:after{content:'';position:absolute;width:175px;height:300px;border:2px solid #dfff737a;transform:rotate(-36deg);right:115px;top:15px;border-radius:88px;background:repeating-linear-gradient(0deg,transparent 0px,transparent 24px,#dfff7325 25px,#dfff7325 26px),repeating-linear-gradient(90deg,transparent 0px,transparent 24px,#dfff7325 25px,#dfff7325 26px)}.hero-content{position:relative;z-index:1;max-width:520px}.hero-label{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--lime)}.hero h2{font:800 clamp(32px,4vw,51px)/1.12 Manrope,sans-serif;letter-spacing:-1.8px;margin:15px 0}.hero p{color:#c0d6ca;font-size:14px;line-height:1.7}.btn{border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);padding:11px 17px;font-weight:800;font-size:12px;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn.primary{background:var(--lime);border-color:var(--lime);color:var(--deep)}.btn.dark{background:var(--forest);color:white;border-color:var(--forest)}.btn.ghost{background:transparent;color:inherit;border-color:#ffffff65}.btn:disabled{opacity:.4;cursor:not-allowed}.hero .btn{margin-top:12px}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:var(--paper);border:1px solid var(--line);border-radius:19px;padding:24px;box-shadow:var(--shadow);min-width:0}.card h3{font:800 16px Manrope;margin:0}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:23px}.link{background:transparent;border:0;color:#397657;font-size:12px;font-weight:800}.stat{font:800 34px Manrope;letter-spacing:-1.5px;margin:13px 0 5px}.stat small{font:600 12px DM Sans;color:var(--muted)}.muted{color:var(--muted)}.score{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.score:last-child{border:0}.score strong{font-size:14px}.score small{display:block;color:var(--muted);margin-top:5px}.score-number{font:800 17px Manrope;white-space:nowrap}.pill{border-radius:99px;padding:5px 10px;background:#edf5e7;color:#477356;font-size:10px;font-weight:800;display:inline-block}.pill.orange{background:#fff1df;color:#916733}.section{margin-top:24px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px}.section-header h2{font:800 21px Manrope;margin:0;letter-spacing:-.6px}.table-wrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;text-align:left;min-width:500px}.tbl th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.1px;padding:13px 10px;border-bottom:1px solid var(--line)}.tbl td{padding:16px 10px;border-bottom:1px solid var(--line);font-size:13px}.tbl tr:last-child td{border:0}.initial{background:#eaf0df;width:33px;height:33px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:800;margin-right:9px}.row{display:flex;align-items:center;gap:10px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-day{min-height:82px;border-radius:10px;border:1px solid var(--line);background:#fff;padding:9px;text-align:left;color:var(--ink)}.cal-day.today{outline:2px solid var(--forest)}.cal-day.out{opacity:.35}.cal-day span{font-size:12px;font-weight:800}.cal-chip{display:block;border-radius:5px;background:#e5f3c6;color:var(--forest);font-size:10px;margin-top:5px;padding:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-header{text-align:center;color:var(--muted);font-weight:700;font-size:11px;padding:12px}.notice{padding:12px 16px;background:#edf3df;border:1px solid #d4dfbb;color:#4b6543;border-radius:11px;font-size:12px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;padding:12px;border-radius:10px;border:1px solid #dbe2d9;background:#fff;color:var(--ink);outline-color:var(--forest)}.field textarea{min-height:80px;resize:vertical}.modal-layer{position:fixed;inset:0;background:#051e18a8;display:flex;justify-content:center;align-items:center;z-index:20;padding:15px}.modal{background:#fff;border-radius:20px;padding:28px;width:min(600px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 80px #0004}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.modal-head h2{font:800 22px Manrope;margin:0}.close{border:0;background:#f3f5f0;border-radius:9px;padding:7px 11px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.empty{color:var(--muted);text-align:center;padding:40px 12px;line-height:1.7;font-size:13px}.big-icon{font-size:34px;display:block;margin-bottom:9px}.toast{position:fixed;bottom:25px;right:25px;background:var(--forest);color:white;padding:15px 20px;border-radius:12px;z-index:50;font-size:13px;box-shadow:var(--shadow)}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:white}.chip.active{background:var(--forest);color:white}.comment{padding:15px 0;border-bottom:1px solid var(--line)}.comment:last-child{border:0}.comment p{font-size:13px;margin:8px 0;color:#425c4e}.match-block{border-left:3px solid var(--lime);padding:5px 0 5px 15px;margin:10px 0}.mini{font-size:11px;color:var(--muted)}.hidden{display:none!important}.mobile-head{display:none}.btnbar{display:flex;flex-wrap:wrap;gap:8px}.permission{color:#ac633c;font-size:12px} @media(max-width:1000px){main{padding:26px}.layout{grid-template-columns:200px 1fr}.sidebar{padding:25px 14px}.grid.three{grid-template-columns:1fr 1fr}}@media(max-width:700px){.layout{display:block}.sidebar{height:auto;position:sticky;z-index:10;padding:12px 16px;top:0;flex-direction:row;align-items:center;justify-content:space-between}.sidebar .brand{font-size:17px}.sidebar .brand-mark{width:31px;height:31px;border-radius:9px}.sidebar .brand small{font-size:7px}.nav{position:fixed;bottom:0;left:0;right:0;margin:0;display:flex;flex-direction:row;background:var(--deep);padding:8px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -2px 20px #0002}.nav button{flex-direction:column;gap:3px;font-size:9px;padding:7px 6px;min-width:50px}.nav-icon{font-size:18px}.side-footer{display:none}main{padding:25px 16px 100px}.topbar{margin-bottom:20px}.topbar .eyebrow{font-size:10px}.hero{padding:27px;min-height:260px}.hero:after{right:-100px;opacity:.4}.hero h2{max-width:340px}.grid,.grid.three{grid-template-columns:1fr}.card{padding:20px}.cal-day{min-height:56px;padding:5px}.cal-chip{font-size:8px}.form-grid{grid-template-columns:1fr}.modal{padding:22px}.top-actions .btn{padding:8px 10px}}.check{display:flex;align-items:center;gap:10px;padding:8px}.check input{width:auto}.cal-chip{border:0;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis}.btnbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.wide{grid-column:1/-1}.modal{max-height:90dvh;overflow:auto}.top-actions select{max-width:180px}.score{gap:12px;flex-wrap:wrap}.field textarea{min-height:90px;width:100%}button:focus-visible,a:focus-visible{outline:3px solid #749c10;outline-offset:3px}input,select,textarea{font-size:16px}fieldset{border:1px solid #ddd;border-radius:12px}main{min-width:0}button{touch-action:manipulation}@media(max-width:600px){.calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(42px,1fr))}.cal-day{padding:4px;min-height:80px}.cal-chip{font-size:10px}.modal{width:96vw;padding:16px}.topbar{gap:8px}.hero h2{font-size:30px}.score-number{font-size:22px}}
.profile-photo{width:64px;height:64px;object-fit:cover;border-radius:50%;vertical-align:middle;margin-right:10px}.btn[href]{text-decoration:none;display:inline-flex;align-items:center}.tbl small{display:block;max-width:220px;font-size:11px;color:#52685b;margin-top:5px}

.account-badge{display:flex;align-items:center;gap:10px}.account-badge strong{font-size:14px}.account-badge small{display:block;color:#52685b;font-size:11px;margin-top:3px}.account-badge .btn{padding:8px 10px}.start-guide{margin-bottom:24px;border:1px solid #b8cc9e;background:#fbfdf6}.start-guide h3{font-size:24px;margin:8px 0}.start-guide p{line-height:1.6;color:#52685b}.setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}.setup-steps>div{border-top:1px solid #dce5cf;padding-top:18px}.step-number{display:inline-grid;place-items:center;background:#e7f3d0;border-radius:50%;height:28px;width:28px;margin-right:8px;color:#234c31;font-weight:800}.setup-steps .btn{margin:4px 4px 0 0}.module-card h3{font-size:18px;line-height:1.5}.module-card p{color:#52685b;line-height:1.5}.selected-module{border-color:#739c40}.hero .btn{margin-top:8px}.topbar{gap:18px;flex-wrap:wrap}.top-actions{flex-wrap:wrap}.nav{gap:8px}.nav button{min-height:44px}@media(max-width:900px){.setup-steps{grid-template-columns:1fr}.topbar{align-items:flex-start}.top-actions{width:100%;justify-content:space-between}.account-badge{flex:1}.account-badge .btn{margin-left:auto}.start-guide h3{font-size:22px}}
.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0}.dashboard-heading h1{font:800 clamp(28px,3vw,42px) Manrope,sans-serif;letter-spacing:-1.4px;margin:9px 0}.dashboard-heading p{color:#52685b;margin:0}.dashboard-heading>.btn{background:#dfff73;border-color:#c4dd67;font-size:14px;padding:16px 22px}.personal-hero{min-height:270px;border-radius:26px;background:#143b31;color:white;padding:36px;position:relative;overflow:hidden;margin-bottom:24px}.personal-intro{display:flex;align-items:center;gap:28px;position:relative;z-index:1}.dash-photo{width:112px;height:112px;border-radius:28px;object-fit:cover;border:4px solid #ffffff33;flex-shrink:0}.photo-placeholder{display:grid;place-items:center;background:#dfff73;color:#143b31;font:800 54px Manrope,sans-serif}.personal-hero h2{font:800 clamp(28px,3vw,42px)/1.15 Manrope,sans-serif;letter-spacing:-1px;margin:12px 0}.personal-hero p{color:#ceded6;line-height:1.6}.personal-hero .btn{background:#ffffff15;border-color:#ffffff55;color:white}.court-art{position:absolute;right:0;top:0;bottom:0;width:36%;background:#1f5142;transform:skew(-12deg);opacity:.6}.court-art>div{position:absolute;inset:28px 38px;border:2px solid #cde980;border-radius:2px;background:linear-gradient(90deg,transparent 49.5%,#cde980 49.5%,#cde980 50.5%,transparent 50.5%),linear-gradient(transparent 49.5%,#cde980 49.5%,#cde980 50.5%,transparent 50.5%)}.court-art span{position:absolute;bottom:44px;right:56px;font:800 54px Manrope,sans-serif;color:#dfff73}.personal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.personal-stats .card{padding:22px}.personal-stats strong{display:block;font:800 35px Manrope,sans-serif;margin:12px 0 5px}.personal-stats small{color:#52685b}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px;margin:28px 0}.dashboard-columns h2,.dashboard-clubs h2{font:800 24px Manrope,sans-serif;margin:8px 0}.friendly-empty{text-align:center;padding:30px 18px}.friendly-empty>span{display:inline-grid;place-items:center;width:52px;height:52px;background:#eff4e8;border-radius:18px;font-size:28px;color:#3c6c48}.friendly-empty h3{font-size:19px;line-height:1.4}.friendly-empty p{max-width:390px;margin:10px auto 20px;color:#52685b;line-height:1.7}.agenda-item{display:flex;align-items:center;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.agenda-item>div:nth-child(2){flex:1}.agenda-item p{margin:7px 0;font-size:13px;color:#52685b}.agenda-item small{color:#52685b}.date-tile{background:#edf3e6;border-radius:12px;min-width:55px;padding:9px;text-align:center}.date-tile strong{display:block;font-size:24px}.date-tile small{text-transform:uppercase}.ranking-preview{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}.ranking-preview>span{background:#edf3e6;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-weight:800}.ranking-preview strong{flex:1}.ranking-preview small{font-weight:700}.dashboard-ranking>.btn{margin-top:16px}.encouragement{font-size:13px;line-height:1.7;color:#52685b;background:#f2f6ea;padding:14px;border-radius:12px;margin-top:22px}.dashboard-clubs{margin-top:34px}.club-card{padding:14px 14px 22px}.club-card h3,.club-card p{margin:16px 8px}.club-card p{font-size:13px;line-height:1.6;color:#52685b}.club-card>.btn{margin-left:8px}.club-cover{height:120px;background:#d9e5c7;border-radius:15px;padding:18px;display:flex;align-items:flex-end;justify-content:space-between;background-image:linear-gradient(135deg,transparent 48%,#ffffff77 49%,transparent 50%)}.club-cover span{font-size:42px;font-weight:800}.club-cover small{padding:6px 9px;background:#ffffffbb;border-radius:20px;font-weight:700;font-size:11px}.cover-1{background-color:#edcbb8;color:#70432f}.cover-2{background-color:#c5ddde;color:#254b50}.community-empty{grid-column:1/-1;padding:28px;max-width:none}.community-empty p{line-height:1.8;max-width:680px;color:#52685b}.dashboard-clubs .grid{align-items:stretch}@media(max-width:1100px){.personal-stats{grid-template-columns:repeat(2,1fr)}.dashboard-columns{grid-template-columns:1fr}.court-art{width:28%;opacity:.25}}@media(max-width:600px){.dashboard-heading{display:block}.dashboard-heading>.btn{width:100%;margin-top:20px}.personal-hero{padding:25px 20px}.personal-intro{display:block}.dash-photo{width:74px;height:74px;border-radius:20px;font-size:36px;margin-bottom:18px}.personal-hero h2{font-size:30px}.personal-stats{gap:10px}.personal-stats .card{padding:16px}.personal-stats .eyebrow{font-size:9px;letter-spacing:1px}.personal-stats small{font-size:11px}.dashboard-columns{gap:18px}.agenda-item{flex-wrap:wrap}.agenda-item>.btn{margin-left:69px}.dashboard-heading h1{font-size:30px}.section-header{flex-wrap:wrap;gap:12px}.court-art{width:40%;opacity:.18}}
.tennis-logo{border-radius:50%;padding:0;background:none}.photo-edit{background:none;border:0;padding:0;cursor:pointer;color:inherit;position:relative;flex-shrink:0}.photo-edit>span:last-child:not(.dash-photo){display:block;font-size:11px;margin-top:7px;text-align:center;color:inherit}.photo-edit:focus-visible{outline:3px solid #9ecb42;outline-offset:5px;border-radius:20px}.top-photo .dash-photo{width:40px;height:40px;border-radius:50%;font-size:20px;border:0;margin:0}.ranking-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;display:inline-flex;vertical-align:middle;margin-right:9px;flex-shrink:0}.placeholder-avatar{align-items:center;justify-content:center;background:#e6eedb;color:#375737;font-size:16px}.ranking-preview strong{display:flex;align-items:center}.preferences-profile{text-align:center}.preferences-profile .dash-photo{margin:8px auto}.preferences-profile p{color:#52685b;line-height:1.7}.handle-label{font-size:24px;font-weight:700;color:#315c42}.club-page-hero{border-radius:24px;padding:32px;background:#e7efda;margin-top:24px}.club-page-hero h1{font:800 clamp(26px,3vw,38px) Manrope,sans-serif;margin:12px 0}.club-page-hero p{color:#52685b;line-height:1.6}.club-person{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:15px 0}.club-person>div{flex:1}.club-person small{display:block;margin-top:5px;color:#52685b}.invite-row{padding:16px 0;border-bottom:1px solid var(--line)}.muted{color:#52685b;line-height:1.7}details{margin-top:20px}summary{cursor:pointer;font-weight:700;padding:12px 0}.event-options .form-grid{margin-top:16px}.invite-choices p{color:#52685b;line-height:1.6}.invite-choices .check{display:inline-flex;border:1px solid var(--line);border-radius:12px;margin:4px;padding:8px 12px}.invite-choices .check input{accent-color:#315c42}.invite-choices>.field{margin-top:14px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.preferences-profile .btn{margin-top:8px}
