*{box-sizing:border-box}body{color:#213c50;background:#f4f8fb;margin:0;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}header{color:#fff;background:#164c70;justify-content:space-between;align-items:center;gap:20px;padding:22px max(24px,50vw - 540px);display:flex}header a{color:#fff;text-decoration:none}header nav{align-items:center;gap:20px;display:flex}header button{background:0 0;padding:0}.brand{letter-spacing:-1px;font-size:28px;font-weight:750}.brand span{color:#a9d8e8}main{max-width:1080px;min-height:75vh;margin:auto;padding:45px 24px}h1,h2,h3{color:#173e59;line-height:1.15}h1{letter-spacing:-1.3px;margin:10px 0 22px;font-size:clamp(30px,4vw,47px)}h2{margin:8px 0 15px;font-size:25px}h3{font-size:20px}p{margin:12px 0 20px}.eyebrow{letter-spacing:1.9px;color:#4f7589;margin:0 0 12px;font-size:12px;font-weight:750}.hero{max-width:700px;padding:35px 0 60px}.hero h1{letter-spacing:-3px;font-size:clamp(48px,7vw,76px)}.hero>p:not(.eyebrow){font-size:20px}.hero .muted{margin-top:24px;font-size:15px!important}.actions{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.button,button{color:#fff;font:inherit;cursor:pointer;text-align:center;background:#1c6288;border:1px solid #0000;border-radius:9px;padding:11px 20px;font-weight:650;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#144b6c}button:disabled{opacity:.55;cursor:wait}.secondary{color:#245372;background:#fff;border-color:#bdd0dc}.secondary:hover{background:#eaf2f7}.card{background:#fff;border:1px solid #d9e5ed;border-radius:16px;margin-bottom:24px;padding:28px;box-shadow:0 3px 12px #23476204}.narrow{max-width:650px;margin:20px auto}.tiles{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.sport .sport-icon{color:#397b9b;width:46px;height:46px;margin-bottom:15px;font-size:46px}.sport p{color:#5d7482;margin-bottom:0;font-size:15px}.explain{text-align:center;max-width:700px;margin:45px auto}.explain p{color:#587281}.group-card{text-decoration:none;display:block}.badge{color:#365e77;background:#e8f1f7;border-radius:30px;margin-bottom:15px;padding:4px 10px;font-size:12px;display:inline-block}.field{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.field>span{font-size:14px;font-weight:650}input,select,textarea{font:inherit;color:#213c50;background:#fff;border:1px solid #b4c9d7;border-radius:8px;width:100%;min-width:0;padding:11px 12px}textarea{min-height:115px}input:focus,select:focus,textarea:focus{outline-offset:1px;outline:3px solid #b8dbe9}.two{grid-template-columns:1fr 1fr;gap:18px;display:grid}.check{align-items:flex-start;gap:10px;margin:22px 0;font-size:14px;display:flex}.check input{flex-shrink:0;width:18px;height:18px;margin-top:3px}.phrase{margin:20px 0 26px}.phrase .field{margin-bottom:2px}.text-button{color:#276282;text-align:left;border:0;padding:3px 0;font-size:14px;font-weight:600;background:0 0!important}.text-button:hover{text-decoration:underline}small,.muted{color:#607886}.phrase small{font-size:12px;display:block}.notice{color:#335d78;background:#e8f1f7;border-radius:10px;padding:16px}.error{color:#93443c;background:#fff0ef;border-radius:8px;padding:12px}.success{color:#246b55}.intro{margin-bottom:28px}.signed{font-size:19px;font-weight:600}.tabs{border-bottom:1px solid #c9dbe7;flex-wrap:wrap;gap:5px;margin-bottom:28px;display:flex}.tabs button{color:#4c6b7e;background:0 0;border-radius:8px 8px 0 0;padding:13px 18px}.tabs .selected{color:#164c70;background:#e3eef5}.game-heading{align-items:center;gap:20px;display:flex}.game-heading .sport-icon{color:#4284a3;flex-shrink:0;width:53px;height:53px}.game-heading h2{margin-bottom:5px}.game-heading p{margin-bottom:8px}.meter{background:#e5eef4;border-radius:8px;height:7px;margin-top:18px;overflow:hidden}.meter span{background:#4891ac;height:100%;display:block}.places{color:#5d7788;font-size:14px}.roster{margin:20px 0;padding:0;list-style:none}.roster li{border-bottom:1px solid #e4edf3;justify-content:space-between;gap:12px;padding:12px 0;font-size:15px;display:flex}.number{color:#7b939f;width:27px;display:inline-block}.roster small{margin-left:27px;display:block}.roster li>span:last-child{color:#658093;font-size:12px}.roster button{margin-left:15px}.roster .roster-person{align-items:center;gap:10px;min-width:0;display:flex}.roster .number{flex:0 0 18px;width:18px}.initials-avatar{letter-spacing:.02em;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:inline-flex}.avatar-tone-0{color:#235571;background:#e0edf4}.avatar-tone-1{color:#365f45;background:#e5eee6}.avatar-tone-2{color:#645078;background:#eee8f3}.avatar-tone-3{color:#795739;background:#f5eadf}.roster-name{overflow-wrap:anywhere;min-width:0}.roster .roster-name small{color:#5d7788;margin:3px 0 0}.guest-badge{color:#476174;vertical-align:middle;background:#edf2f6;border-radius:5px;margin-left:7px;padding:2px 6px;font-size:10px;font-weight:650;display:inline-block}.roster .roster-status{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;max-width:44%;display:flex}.roster .roster-status button{min-height:44px;margin:0;padding:10px 8px}.action-control{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:inline-flex}.action-control button,.game .actions>button,.game .actions form>button{min-height:46px}.action-feedback{max-width:280px;font-size:13px;line-height:1.4;display:block}.action-feedback:not(.error){color:#275c48}.signup-recorded{color:#275c48;background:#e8f2ec;border-radius:8px;align-items:center;min-height:46px;padding:8px 12px;font-weight:650;display:inline-flex}.button-spinner{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:8px;animation:.8s linear infinite button-spin;display:inline-block}@keyframes button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button-spinner{animation:none}}@media (width<=500px){.roster li{flex-wrap:wrap;gap:4px 10px}.roster .roster-person{flex:100%}.roster .roster-status{text-align:left;justify-content:space-between;width:100%;max-width:100%;padding-left:28px}.roster .roster-status .action-control{align-items:flex-end}.game .actions>.action-control,.game .actions>.action-control>button{width:100%}}.game details{border:1px solid #cbdde8;border-radius:8px;min-width:160px;padding:11px 15px}.game summary{cursor:pointer;color:#2b607d;font-size:14px;font-weight:600}.game details[open]{width:100%}.game details form{margin-top:20px}.card.reservation-card{padding:0;scroll-margin-top:18px}.game>.reservation-summary{color:#213c50;border-radius:16px;padding:20px 24px;font-weight:400;list-style:none;display:block}.reservation-summary::-webkit-details-marker{display:none}.reservation-summary::marker{content:""}.reservation-summary:hover{background:#f8fbfd}.reservation-summary:focus-visible{outline-offset:3px;outline:3px solid #4284a3}.reservation-summary .game-heading{gap:14px}.reservation-summary .game-heading>div{overflow-wrap:anywhere;min-width:0}.reservation-summary .game-heading .sport-icon{width:36px;height:36px}.reservation-summary .game-heading .eyebrow{margin:0 0 5px;font-size:11px}.reservation-summary .game-heading h2{margin:0 0 4px;font-size:23px}.reservation-summary .game-heading p:last-child{margin:0;font-size:14px}.reservation-overview{flex-wrap:wrap;align-items:center;gap:8px 15px;margin-top:12px;display:flex}.reservation-overview .places{font-size:13px}.reservation-progress{height:7px;margin-top:10px}.reservation-own-status{color:#275c48;font-size:12px}.reservation-preview-row{justify-content:space-between;align-items:center;gap:8px;min-height:32px;margin-top:12px;display:flex}.roster-preview{flex-shrink:0;align-items:center;padding-left:4px;display:inline-flex}.roster-preview-player{border:2px solid #fff;border-radius:50%;margin-left:-4px;display:inline-flex}.roster-preview .initials-avatar{flex-basis:28px;width:28px;height:28px;font-size:10px}.roster-preview-player.preview-alternate{border-style:dashed;border-color:#7b939f}.roster-preview-more{color:#567080;margin-left:6px;font-size:12px}.roster-preview-empty{color:#567080;font-size:13px}.reservation-disclosure{color:#235571;white-space:nowrap;align-items:center;gap:9px;margin-left:auto;font-size:13px;font-weight:650;display:inline-flex}.disclosure-chevron{border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-top:-4px;transform:rotate(45deg)}.reservation-card>.reservation-summary .when-open{display:none}.reservation-card[open]>.reservation-summary{border-bottom:1px solid #e4edf3;border-radius:16px 16px 0 0}.reservation-card[open]>.reservation-summary .when-open{display:inline}.reservation-card[open]>.reservation-summary .when-closed,.reservation-card[open]>.reservation-summary .roster-preview,.reservation-card[open]>.reservation-summary .roster-preview-empty{display:none}.reservation-card[open]>.reservation-summary .disclosure-chevron{margin-top:4px;transform:rotate(225deg)}.reservation-body{padding:0 24px 24px}@media (width<=500px){.game>.reservation-summary{padding:16px 18px}.reservation-summary .game-heading h2{font-size:21px}.reservation-summary .game-heading .sport-icon{width:30px;height:30px}.reservation-body{padding:0 18px 20px}}footer{color:#567080;justify-content:space-between;margin:35px 0;display:flex}a{color:#236888}form>a,.narrow>a{margin-top:20px;display:inline-block}.member-table{overflow:auto}.member-row{overflow-wrap:anywhere;border-bottom:1px solid #e1eaf0;grid-template-columns:1.1fr 1.5fr 1fr .8fr;gap:15px;padding:13px 0;font-size:14px;display:grid}.headings{color:#6c8492;font-size:12px}.owner-row{border-bottom:1px solid #dce7ef;justify-content:space-between;gap:25px;padding:20px 0;display:flex}.owner-row p{font-size:14px}.bottom{text-align:center;color:#78909e;padding:20px 24px 35px;font-size:12px}.sport-icon{display:inline-block}form>button{margin:12px 0}#challenge{margin:15px 0}@media (width<=650px){header{padding:18px 20px}.brand{font-size:24px}header nav{gap:12px;font-size:13px}main{padding:25px 17px}.tiles,.two{grid-template-columns:1fr}.hero{padding:20px 0 35px}.hero h1{font-size:56px}.card{padding:22px}.tiles{gap:0}.sport{grid-template-columns:60px 1fr;display:grid}.sport p{grid-column:2}.sport .sport-icon{grid-row:1/3}.member-row{grid-template-columns:1fr 1fr}.headings{display:none}.owner-row{flex-direction:column}.roster li{font-size:14px}.game-heading{gap:13px}.actions{gap:9px}.tabs button{padding:10px 12px;font-size:14px}}.admin-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-heading .badge{margin:0}.admin-tabs{margin-top:15px}.member-details>summary{cursor:pointer;list-style:none}.member-details>summary::-webkit-details-marker{display:none}.member-details>summary strong:before{content:"▸";color:#7c97a6;margin-right:9px;display:inline-block}.member-details[open]>summary strong:before{content:"▾"}.member-editor{background:#f8fbfd;border:1px solid #e0eaf0;border-radius:8px;margin-bottom:15px;padding:20px}.session-editor{border-top:1px solid #dce7ef;padding:18px 0}.session-editor>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.session-editor>summary .badge{margin:0}.court-editor{background:#f4f8fb;border-radius:10px;margin:15px 0;padding:15px}.roster-correction{border-bottom:1px solid #e3ecf2;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;display:flex}.roster-correction form{align-items:center;gap:12px;font-size:13px;display:flex}.roster-correction form>button{padding:7px 10px;font-size:13px}.admin-tabs .selected{box-shadow:inset 0 -3px #397b9b}.narrative{max-width:800px;margin:32px auto}.narrative p{line-height:1.75}.invite-preview{margin:12px 0 24px}.invite-preview summary{cursor:pointer;color:#164c70;font-weight:600}.invite-preview iframe{background:#fff;border:1px solid #d9e5ed;border-radius:10px;width:100%;height:600px}.notice-options{margin:12px 0 12px 20px}.credit-inline{color:#1c6288;margin-left:20px;font-size:.9em;display:inline-block}.credit-settings{border-top:1px solid #d9e5ed;margin-top:30px;padding-top:12px}.location-fees,.credit-review{border:1px solid #d9e5ed;border-radius:10px;margin:16px 0;padding:16px}.table-scroll{margin:20px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #d9e5ed;padding:12px}td small{color:#607886;display:block}[hidden]{display:none!important}.payment-modes{border:0;min-width:0;margin:20px 0;padding:0}.payment-modes legend{margin-bottom:12px;font-size:.9rem;font-weight:600}.payment-mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.payment-mode{cursor:pointer;background:#fff;border:2px solid #d9e5ed;border-radius:12px;align-items:flex-start;gap:12px;padding:18px;display:flex}.payment-mode.chosen{background:#edf5fa;border-color:#1c6288}.payment-mode input{accent-color:#1c6288;flex:0 0 18px;width:18px;height:18px;margin:3px 0 0}.payment-mode strong{margin-bottom:7px;display:block}.payment-mode small{line-height:1.5;display:block}.payment-mode:focus-within{outline-offset:3px;outline:2px solid #8abbd8}.venmo-input{background:#fff;border:1px solid #b8cad6;border-radius:8px;align-items:center;display:flex;overflow:hidden}.venmo-input>span{color:#607886;padding-left:14px}.venmo-input input{border:0;border-radius:0;width:100%;min-width:0;margin:0}.venmo-input:focus-within{outline:2px solid #8abbd8}.member-printout{display:none}@media (width<=600px){.payment-mode-options{grid-template-columns:1fr}}@media print{@page{margin:14mm}body.printing-members>:not(.member-printout){display:none!important}body.printing-members{color:#000!important;background:#fff!important}body.printing-members>.member-printout{border:0;margin:0;padding:0;display:block!important}.member-printout h1{margin-bottom:8pt;font-size:20pt}.member-printout h2{margin-top:18pt;font-size:14pt}.member-printout table{width:100%;font-size:10pt}.member-printout th,.member-printout td{color:#000;overflow-wrap:anywhere;padding:7pt}.member-printout tr{break-inside:avoid}.member-printout thead{display:table-header-group}}.credit-mode-details{border:0;min-width:0;margin:0;padding:0}.admin-person{border-bottom:1px solid #d9e5ed;padding:18px 0}.admin-person>span{color:#607886;margin:6px 0 12px;display:block}.audit-row{border-bottom:1px solid #d9e5ed;padding:14px 0}.audit-row summary{cursor:pointer}.audit-row summary small{color:#607886;margin:6px 0;display:block}.save-dialog{color:#16435b;box-sizing:border-box;border:1px solid #d9e5ed;border-radius:16px;width:calc(100% - 40px);max-width:500px;padding:28px}.save-dialog::backdrop{background:#0f283773}.save-dialog h2{margin-top:0}.save-dialog-actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.owner-group{border-top:1px solid #d9e5ed;padding:24px 0}.owner-group-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.owner-group-heading h2{margin:0}.owner-contact{overflow-wrap:anywhere;flex-direction:column;gap:5px;display:flex}.owner-toolbar{grid-template-columns:2fr 1fr;gap:16px;margin:20px 0 12px;display:grid}.owner-danger{border-left:3px solid #a94b3d;margin-top:20px;padding-left:14px}.member-import-table{max-height:420px;margin:16px 0;overflow:auto}.member-import-table table{width:100%;min-width:650px;font-size:14px}.member-import-table td,.member-import-table th{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid #d9e5ed;padding:8px}@media (width<=600px){.owner-toolbar{grid-template-columns:1fr}}
