:root{--ink:#263b31;--green:#294f3f;--green-deep:#203f32;--muted:#81867d;--paper:#f7f7f2;--line:#e5e7de;--sage:#eaf0e3;--accent:#d9e58b;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button{transition:background .18s,transform .18s,box-shadow .18s}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a1b963;outline-offset:4px}button:not(:disabled):active{transform:translateY(1px)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-1.5px}h2{font-size:34px;line-height:1.2}h2>span{color:#93a66c}h3{font-size:15px;font-weight:600}.muted{color:var(--muted);font-size:13px}.overline,.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.9px}.overline{color:#8b9383}.eyebrow{color:#42674a}.brand{display:flex;align-items:center;font-size:26px;font-weight:600;letter-spacing:-1.3px;white-space:nowrap}.brand-dot{color:#a4b85f}.brand-mark{font-family:var(--serif);font-size:36px;line-height:32px;letter-spacing:-5px;width:36px;color:#315a43;margin-right:8px}.brand-mark>span{font:16px sans-serif;vertical-align:middle;color:#a0b267;margin-left:1px}.shell{display:flex;min-height:100vh}.sidebar{width:228px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:36px 24px 22px;background:#f0f2e9;border-right:1px solid #e0e4d9;z-index:10}.club-label{font-size:9px;letter-spacing:1.6px;color:#9ba38f;margin:58px 12px 16px}.nav-item{display:flex;width:100%;align-items:center;gap:13px;background:none;border:0;color:#7a8374;padding:13px 14px;border-radius:7px;text-align:left;margin-bottom:7px;font-size:13px}.nav-item>span:first-child{font-size:20px}.nav-item.active{background:var(--green);color:#fff}.nav-item:hover:not(.active){background:#e5e9dc}.nav-arrow{margin-left:auto;font-size:18px}.sidebar-bottom{margin-top:auto;padding-top:70px}.sidebar-bottom>p{font:italic 25px/1.3 var(--serif);color:#8c9c7d;margin:18px 12px 36px}.court-line-art{width:120px;height:70px;border:1px solid #b9c5ac;margin-left:12px;position:relative}.court-line-art:before{content:'';position:absolute;inset:10px 0;border-top:1px solid #b9c5ac;border-bottom:1px solid #b9c5ac}.court-line-art:after{content:'';position:absolute;inset:0 50%;border-left:1px solid #b9c5ac}.court-line-art div{position:absolute;inset:10px 25px;border:1px solid #b9c5ac}.account{display:flex;gap:9px;align-items:center;border-top:1px solid #dfe3d5;padding-top:22px}.avatar{display:grid;place-items:center;background:#e0e5d1;border:1px solid #d1d9c0;border-radius:50%;width:32px;height:32px;font:16px var(--serif)}.account strong{font-size:10px;font-weight:600}.account small{display:block;font-size:10px;color:#8c9681}.dot{display:inline-block;background:#7a985e;width:5px;height:5px;border-radius:50%;margin-right:5px;vertical-align:middle}.icon-btn{border:1px solid var(--line);background:transparent;width:30px;height:30px;border-radius:50%;color:var(--green);font-size:17px;display:inline-grid;place-items:center}.account .icon-btn{margin-left:auto;border:0}.workspace{margin-left:228px;padding:28px 44px 0;max-width:1620px;width:calc(100% - 228px)}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar p{font-size:17px;font-weight:500;margin-top:3px}.topbar-right{display:flex;align-items:center;gap:20px;font-size:11px}.local-badge{border:1px solid #dce3d2;padding:7px 12px;border-radius:30px}.timezone{color:#8a9184}.hero{position:relative;overflow:hidden;background:#e5ebd9;border:1px solid #dfe7cf;border-radius:12px;padding:33px 38px;min-height:278px;display:flex;align-items:center}.hero>div{z-index:1;position:relative}.hero h1{font-size:51px;line-height:1.06;margin:16px 0 17px;color:#2d513d}.hero h1 em{font-weight:400}.hero>div>p:not(.eyebrow){font-size:12px;color:#7b876e;line-height:1.8}.hero-tag{margin-top:25px;font-size:10px;color:#5b7250}.hero-tag span{display:inline-grid;place-items:center;border:1px solid #bcc9a9;width:23px;height:23px;border-radius:50%;margin-right:8px}.hero img{position:absolute;width:58%;right:5px;top:-5%;height:110%;object-fit:contain}.hero-corner{position:absolute;right:27px;bottom:22px;text-align:right;font-size:8px;letter-spacing:1.8px;line-height:1.7;color:#8c9c76}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:34px 0 22px;gap:14px}.section-heading h2{margin-top:6px}.text-btn{background:none;border:0;color:#727f67;font-size:11px;padding:8px 0;white-space:nowrap}.text-btn:hover{color:#254d38}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:26px;align-items:start}.date-card{background:white;border:1px solid var(--line);border-radius:9px;padding:20px 20px 15px}.date-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.date-tools{display:flex;align-items:center;gap:8px}.date-tools>span{font-size:10px;color:#98a08f;margin-right:8px}.date-strip{display:flex;gap:9px;overflow:auto;scrollbar-width:none;scroll-behavior:smooth;padding-bottom:3px}.date-strip::-webkit-scrollbar{display:none}.date-button{min-width:57px;height:77px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid transparent;background:#f7f8f3;border-radius:7px;color:#78836c;flex:1}.date-button .weekday{font-size:9px;letter-spacing:.6px;text-transform:uppercase}.date-button .day{font-size:22px;color:#46583c;line-height:1.6}.date-button .date-dot{height:4px;width:4px;border-radius:50%;background:#c5cfae}.date-button:hover{background:#eaf0e0}.date-button.selected{background:var(--green);color:#d8e3ce}.date-button.selected .day{color:white}.date-button.selected .date-dot{background:#d6e690}.slots-top{display:flex;align-items:center;justify-content:space-between;margin:26px 0 17px;gap:10px}.slots-top .muted{font-size:11px;margin-top:3px}.legend{display:flex;gap:11px;font-size:9px;color:#8f9687}.legend i{display:inline-block;width:6px;height:6px;background:#dce0d6;border-radius:50%;margin-right:4px}.legend .available-key{background:#829956}.slot-group{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:12px}.group-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.group-heading h3{display:flex;align-items:center;gap:8px;font-size:13px}.group-icon{font-size:18px;color:#a2af7c}.category-chip{font-size:9px;background:#f2f0e7;border:1px solid #ede9da;color:#9b8a5f;padding:2px 7px;border-radius:4px;font-weight:500}.category-chip.offpeak{background:#edf2e8;border-color:#e3eadb;color:#7f916a}.group-count{color:#959e8c;font-size:10px}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.slot{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #dce5ce;background:#f7faf1;border-radius:6px;min-height:60px;color:#4c6540;position:relative;padding:9px 3px}.slot .slot-time{font-size:12px;font-weight:500}.slot small{font-size:9px;color:#93a078;margin-top:3px}.slot:hover:not(:disabled){background:#ebf2dd;border-color:#9eaf7b;box-shadow:0 2px 5px #3453220a}.slot.selected{background:#e6efcf;border:1.5px solid #587340;box-shadow:0 0 0 1px #58734015}.slot.selected:after{content:'✓';font-size:10px;position:absolute;right:5px;top:3px;color:#55713d}.slot:disabled{opacity:1;background:#f5f5f1;border:1px solid #eceee5;color:#b3b7ac;cursor:not-allowed}.slot:disabled small{color:#b4b9ab}.empty-slots{font-size:12px;color:#939b89;padding:8px 0 12px}.last-checked{font-size:10px;color:#a0a795;text-align:right;margin:13px 0}.selection-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:23px;position:sticky;top:22px}.selection-title{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.4px;font-weight:600;padding-bottom:20px;border-bottom:1px solid #ebede5;color:#7f8c70}.mini-ball{width:18px;height:18px;border-radius:50%;background:#d4e384;border:1px solid #bccf65;display:inline-block;position:relative;overflow:hidden}.mini-ball:after{content:'';position:absolute;inset:-2px 5px;border:1px solid #f9f9d7;border-radius:50%}.selection-empty{text-align:center;padding:31px 5px}.empty-court{width:78px;height:48px;border:1px solid #ced7c1;margin:0 auto 19px;position:relative;background:#f5f8ee}.empty-court:before{content:'';position:absolute;inset:8px 17px;border:1px solid #ced7c1}.empty-court:after{content:'';position:absolute;inset:0 50%;border-left:1px solid #ced7c1}.selection-empty h3{font:22px var(--serif);margin-bottom:8px}.selection-empty p{font-size:11px;color:#979f8c;line-height:1.8}.primary{background:var(--green);color:#f4f7ec;border:0;border-radius:6px;padding:13px 17px;font-size:12px;font-weight:500;display:flex;align-items:center;justify-content:space-between}.primary:hover:not(:disabled){background:#1f4032;box-shadow:0 3px 9px #1d3f3220}.primary:disabled{background:#e7ebdf;color:#a2ad93;opacity:1}.primary>span{font-size:18px;font-weight:400;line-height:1}.wide{width:100%}.selection-footnote{font-size:9px;text-align:center;line-height:1.8;color:#a1a893;margin-top:13px}.selection-info{padding:22px 0}.selection-info h3{font:24px var(--serif);margin-bottom:5px}.selection-info>p{font-size:11px;color:#8f9981}.chosen-time{display:flex;justify-content:space-between;align-items:center;margin-top:13px;padding:10px 12px;background:#f2f6e9;border-radius:5px;font-size:12px}.chosen-time button{background:transparent;border:0;color:#8e9c7a}.selection-meta{display:flex;justify-content:space-between;border-top:1px dashed #e0e5d5;margin-top:18px;padding-top:14px;font-size:11px}.selection-meta strong{font-weight:500}.selection-rate{font-size:10px!important;margin-top:10px}.rules{border-top:1px solid var(--line);padding:17px 0;color:#879179;margin-top:20px}.rules summary{display:flex;justify-content:space-between;cursor:pointer;font-size:11px;list-style:none}.rules p{font-size:11px;margin-top:15px}.rules pre{font:11px/1.8 inherit;white-space:pre-wrap;margin-top:10px;color:#7f8876}.reservations{scroll-margin-top:20px}.bookings-list{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden}.booking-row{display:grid;grid-template-columns:54px 1fr auto;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid #f0f1eb}.booking-row:last-child{border-bottom:0}.booking-date{background:#f2f5ea;border:1px solid #e5ebda;border-radius:6px;text-align:center;padding:6px}.booking-date strong{font-size:20px;font-weight:500;display:block;line-height:1.2}.booking-date small{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#83906f}.booking-row h3{font-size:12px;font-weight:500}.booking-row p{font-size:11px;color:#939b89;margin-top:3px}.status{font-size:10px;padding:4px 9px;border-radius:5px;background:#edf3e4;color:#6c8354;white-space:nowrap}.status.inactive{color:#a19d90;background:#f4f2eb}.status.unpaid{color:#a58b54;background:#f8f2e4}.empty-bookings{padding:27px;text-align:center;color:#8e9882;font-size:12px}.secondary{border:1px solid #d9e2cc;background:#f1f5e9;border-radius:5px;padding:9px 15px;color:#6a7f52;font-size:11px}#more-bookings{display:block;margin:14px auto 0}.notice{padding:16px 18px;border:1px solid #e4d6b9;background:#faf5e7;border-radius:8px;color:#8a744f;font-size:12px;margin-bottom:15px}.notice p{margin:7px 0 13px}.error{color:#a55a46;font-size:12px}.notice.error{background:#fcf3ef;border-color:#ecd8cd}.loading-group{height:158px;border-radius:9px;margin-bottom:12px;background:linear-gradient(90deg,#ecefe5 25%,#f5f6f0 50%,#ecefe5 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:40px;padding:20px 0 24px;color:#adb39f;font-size:9px}.footer-brand{font:18px var(--serif);color:#7c8d6e}dialog{border:1px solid #e3e8d9;border-radius:15px;max-width:440px;width:calc(100% - 32px);padding:0;background:#fafbf7;color:var(--ink);box-shadow:0 24px 90px #183e3030}dialog::backdrop{background:#203c305c;backdrop-filter:blur(5px)}.dialog-inner{padding:36px}.dialog-close{position:absolute;top:15px;right:15px;border:none;font-size:25px;color:#8e9b81}.dialog-inner h2{margin:12px 0 24px;font-size:35px}.review-block{background:#eff4e7;border:1px solid #e0e8d3;border-radius:8px;padding:20px}.review-block h3{font:25px var(--serif);margin-bottom:5px}.review-block p{font-size:12px;color:#788965}.review-block .review-times{border-top:1px solid #dbe3cd;margin-top:14px;padding-top:14px;font-weight:600;color:#3b5b35}.review-payment{font-size:11px;line-height:1.8;color:#8b947e;margin:20px 0}.dialog-note{font-size:9px;color:#a1a994;text-align:center;margin-top:12px}#review-error{margin:12px 0}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 22px;background:#244d3f;color:white;border:1px solid #ffffff20;box-shadow:0 8px 30px #122b3126;border-radius:8px;z-index:1000;font-size:12px;max-width:calc(100vw - 32px)}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#809170}.boot .brand-mark{font-size:60px;width:60px;line-height:60px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:#e5ebd9;padding:44px 60px;position:relative;display:flex;flex-direction:column;overflow:hidden}.login-art>div{margin-top:75px}.login-art h1{font-size:67px;line-height:1.08;color:#31523c;margin:18px 0}.login-art>div>p:last-child{color:#809170}.login-art img{width:110%;margin:0 -5% -20px}.login-art>small{font-size:9px;letter-spacing:2px;margin-top:auto;color:#91a17c}.login-panel{display:flex;align-items:center;justify-content:center;padding:60px}.login-panel form{width:100%;max-width:350px}.login-panel h2{font-size:42px;margin:15px 0 10px}.login-panel form>p.muted{margin-bottom:35px}.login-panel label{display:block;font-size:12px;color:#68795b;margin:18px 0 8px}.login-panel input{display:block;width:100%;height:48px;background:white;border:1px solid #dce3d3;border-radius:6px;padding:0 14px;outline:none;color:#324a36}.login-panel input:focus{border-color:#82975c;box-shadow:0 0 0 3px #b5c68830}.login-panel input::placeholder{font-size:12px;color:#b1b9a5}.password-field{position:relative}.password-field input{padding-right:60px}.password-field button{position:absolute;right:13px;top:13px;border:0;background:none;font-size:10px;color:#82936e}.login-panel .primary{margin-top:26px;padding:15px 18px}.login-note{font-size:11px;line-height:1.9;text-align:center;color:#9ea790;margin-top:24px}.login-panel .error{margin-top:16px}
@media(min-width:1500px){.workspace{margin-left:auto;margin-right:auto;padding-left:264px;width:100%;max-width:1700px}.hero{min-height:315px}.hero h1{font-size:58px}.slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.date-button{min-width:65px}.booking-layout{grid-template-columns:minmax(0,1fr) 320px;gap:30px}}
@media(max-width:1150px){.sidebar{width:190px;padding:30px 19px}.brand{font-size:23px}.workspace{margin-left:190px;width:calc(100% - 190px);padding:24px 28px 0}.booking-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.selection-card{padding:19px}.hero{padding:30px;min-height:270px}.hero h1{font-size:44px}.hero img{width:58%;right:-30px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.date-tools>span{display:none}.date-button{min-width:52px}.timezone{display:none}}
@media(max-width:900px){.sidebar{width:76px;padding:24px 14px}.sidebar .brand{font-size:0}.brand-dot,.club-label,.sidebar-bottom,.nav-arrow{display:none}.sidebar .brand-mark{font-size:36px}.sidebar nav{margin-top:38px}.nav-item{font-size:0;padding:10px;justify-content:center}.nav-item>span:first-child{font-size:23px}.workspace{margin-left:76px;width:calc(100% - 76px)}.hero img{opacity:.9;right:-55px}.booking-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.topbar p{font-size:15px}.hero-tag{font-size:9px}.hero h1{font-size:41px}.hero>div>p:not(.eyebrow){font-size:11px}.section-heading h2{font-size:29px}.legend{display:none}.slot-group{padding:16px}.login-art{padding:35px}.login-art h1{font-size:48px}.login-panel{padding:35px}}
@media(max-width:700px){.shell{display:block}.sidebar{position:relative;width:100%;padding:16px 21px;flex-direction:row;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:23px}.sidebar .brand-dot{display:inline}.sidebar nav{display:flex;margin:0;gap:7px}.nav-item{margin:0;width:36px;height:36px}.workspace{margin:0;width:100%;padding:21px 20px 0}.topbar{margin-bottom:20px}.local-badge{font-size:9px;padding:5px 8px}.topbar .overline{font-size:8px}.topbar p{font-size:13px}.hero{min-height:254px;padding:27px 24px}.hero h1{font-size:39px}.hero img{width:69%;right:-61px;top:36px;opacity:.6;z-index:0}.hero>div>p:not(.eyebrow){max-width:230px;color:#758366}.hero-tag{margin-top:21px;font-size:9px}.hero-corner{display:none}.hero .eyebrow{font-size:8px}.section-heading{margin:27px 0 18px;align-items:flex-end}.section-heading .overline{font-size:8px;letter-spacing:1.4px}.section-heading h2{font-size:29px}.section-heading .text-btn{font-size:10px}.section-heading .text-btn span{display:none}.booking-layout{display:flex;flex-direction:column;gap:21px}.availability-column,.selection-card{width:100%}.selection-card{position:static;padding:23px}.selection-empty{padding:24px 0}.selection-empty .empty-court{display:none}.selection-title{padding-bottom:15px}.date-card{padding:17px 15px 12px}.date-button{min-width:49px;flex:1;height:72px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.slot .slot-time{font-size:11px}.slot{min-height:60px}.rules{margin-top:14px}.selection-info{padding:20px 0}.selection-footnote{font-size:10px}.booking-row{padding:16px;gap:12px;grid-template-columns:45px 1fr auto}.booking-row h3{font-size:11px}.booking-row .status{font-size:8px;padding:4px 6px}.booking-row p{font-size:10px}footer{gap:15px;font-size:8px}footer>span:last-child{display:none}.login-layout{grid-template-columns:1fr}.login-art{padding:25px;min-height:230px}.login-art>div{margin-top:25px}.login-art h1{font-size:37px;margin:12px 0}.login-art .eyebrow{font-size:8px}.login-art>div>p:last-child{font-size:11px}.login-art img{position:absolute;width:58%;right:-18px;bottom:-10px;opacity:.65}.login-art>small{display:none}.login-panel{padding:38px 28px}.login-panel h2{font-size:35px}.login-panel form>p.muted{margin-bottom:23px}.dialog-inner{padding:29px}.dialog-inner h2{font-size:31px}.toast{bottom:15px;width:calc(100% - 32px);text-align:center}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
#mobile-logout{display:none}.rules pre{font-family:inherit;font-size:11px;line-height:1.8}
@media(max-width:700px){#mobile-logout{display:inline-grid}.topbar-right{gap:8px}.hero img{width:57%;right:-68px;top:73px;opacity:.42}.hero>div>p:not(.eyebrow){max-width:235px}.slot .slot-time{font-size:12px}.slot small{font-size:10px}.selection-footnote{font-size:11px}.selection-empty p{font-size:12px}}
.future-card{padding:24px;border:1px solid var(--line);border-radius:9px;background:white}.future-card>p{font-size:13px;color:#6b7f61}.future-form{display:grid;grid-template-columns:1.4fr 1.8fr 1fr 1fr;gap:16px;margin-top:20px}.future-form>div{min-width:0}.future-form label{display:block;font-size:12px;margin-bottom:6px}.future-form input,.future-form select{width:100%;min-width:0;font:inherit;border:1px solid #dce3d3;border-radius:6px;padding:10px;background:#fafbf7;color:var(--ink)}.future-release,.future-help{grid-column:1/-1}.future-form .primary{grid-column:1/-1;justify-content:center}.future-list{margin-top:22px}.future-job{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:18px 0}.future-job p{font-size:12px;color:#6b7f61;margin-top:5px;overflow-wrap:anywhere}.future-job .secondary{flex-shrink:0}#future-error{margin-top:14px}@media(max-width:700px){.future-form{grid-template-columns:1fr 1fr}.future-card{padding:18px}.future-job{align-items:flex-start;flex-direction:column}.future-job h3{font-size:14px}}
