@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.rounded{border-radius:.25rem}}:root{--green:#173f35;--green-mid:#2d6352;--lime:#e6edbe;--ink:#263e35;--muted:#728078;--line:#e3e7dd;--cream:#f7f8f2;--tennis:#b06648;--padel:#397565;--radius:16px}*{box-sizing:border-box}body{color:var(--ink);background:var(--cream);margin:0;font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #9cac6c}h1,h2,h3,p{margin:0}h1{letter-spacing:-1.2px;font-size:clamp(26px,2.5vw,36px);font-weight:550;line-height:1.2}h2{letter-spacing:-.4px;font-size:19px;font-weight:600}h3{font-size:16px;font-weight:600}small{font-size:12px}fieldset{border:0;min-width:0;margin:0;padding:0}label{flex-direction:column;gap:7px;font-size:13px;font-weight:550;display:flex}input,select{width:100%;min-height:45px;color:var(--ink);background:#fff;border:1px solid #d6ded3;border-radius:9px;padding:10px 12px}input[type=checkbox]{width:17px;height:17px;min-height:17px;accent-color:var(--green)}input:disabled,select:disabled{opacity:.85;background:#f5f6f1}.muted{color:var(--muted)}.small-text{font-size:12px}.eyebrow{letter-spacing:1.8px;color:#65806b;margin-bottom:10px;font-size:10px;font-weight:650}.stack{flex-direction:column;gap:17px;display:flex}.primary,.secondary,.danger{border-radius:9px;min-height:44px;padding:11px 18px;font-weight:550}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:#28634f}.secondary{color:var(--green);background:#fff;border:1px solid #d9e0d3}.secondary:hover:not(:disabled){background:#f2f5eb}.danger{color:#fff;background:#a03f34}.small{min-height:36px;padding:7px 12px}.text-button{color:var(--green);background:0 0;padding:5px 0;font-size:12px;font-weight:550}.icon-button{width:34px;height:34px;color:var(--muted);background:0 0;border-radius:8px;flex-shrink:0}.icon-button:hover:not(:disabled){background:#ebefe6}.notice{border-radius:9px;padding:12px 15px;font-size:13px;line-height:1.6}.notice.error{color:#944738;background:#fff0ec;border:1px solid #f1d1c5}.notice.warning{color:#836b30;background:#fff8e8;border:1px solid #ece0bb}.form-row{gap:14px;display:flex}.form-row>*{flex:1;min-width:0}.spin{animation:1.2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-page,.fatal{flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100dvh;padding:24px;display:flex}.wordmark{letter-spacing:-1.4px;color:var(--green);align-items:center;gap:10px;font-size:26px;font-weight:500;line-height:1.05;display:flex}.wordmark-sub{letter-spacing:2px;padding-left:1px;font-size:7px;font-weight:600;line-height:2.4;display:block}.logo-mark{font-family:Georgia,serif;font-size:41px;font-weight:500;line-height:1;position:relative}.logo-mark>span{color:#9baa5a;font-size:22px;position:absolute;top:-3px;right:-5px}.wordmark.light{color:#f4f5dd}.language-switch{color:#bac0b6;white-space:nowrap;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.language-switch button{color:#8a958a;background:0 0;min-height:34px;padding:8px 3px}.language-switch button.active{color:var(--green)}.avatar{width:36px;height:36px;color:var(--green);background:#ebefdc;border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.dot{background:var(--green);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.dot.tennis{background:var(--tennis)}.dot.padel{background:var(--padel)}.dot.maintenance{background:#a49a84}.pill{color:#53734c;background:#e9eee0;border-radius:5px;padding:3px 8px;font-size:10px;display:inline-block}.login-page{grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-story{background:var(--green);color:#eaf0d5;flex-direction:column;min-height:720px;padding:48px 11% 36px;display:flex;position:relative;overflow:hidden}.login-intro{z-index:1;margin-top:98px;position:relative}.login-intro .eyebrow{color:#acc191;font-size:9px}.login-intro h1{letter-spacing:-2px;margin-top:20px;font-family:Georgia,serif;font-size:clamp(48px,5.2vw,74px);font-weight:400;line-height:1.02}.login-intro em{color:var(--lime);font-weight:400}.login-intro>p:last-child{color:#b5c7b8;max-width:330px;margin-top:26px;font-size:14px;line-height:1.8}.login-bottom{letter-spacing:2.4px;color:#9ab097;z-index:1;margin-top:auto;padding-top:250px;font-size:8px}.login-court{opacity:.65;width:410px;height:270px;position:absolute;bottom:47px;right:-40px;transform:rotate(-23deg)}.court-outline{border:1px solid #8ead82;position:absolute;inset:0}.court-outline:before,.court-outline:after{content:"";border-top:1px solid #8ead82;position:absolute;top:18%;left:11%;right:11%}.court-outline:after{top:auto;bottom:18%}.court-outline span{border-left:1px solid #8ead82;border-right:1px solid #8ead82;position:absolute;inset:0 11%}.court-outline span:before{content:"";border-left:1px solid #8ead82;position:absolute;top:18%;bottom:18%;left:50%}.court-outline i{border-top:2px solid #adc095;position:absolute;top:50%;left:0;right:0}.tennis-ball{background:#d4eaa5;border-radius:50%;width:28px;height:28px;position:absolute;top:42%;left:68%;box-shadow:12px 13px 17px #062c21}.tennis-ball:before{content:"";border-left:1px solid #f6ffd3;border-radius:50%;width:12px;position:absolute;top:3px;bottom:3px;left:7px}.login-form-side{background:#fafbf6;flex-direction:column;padding:26px 40px;display:flex}.login-top{justify-content:flex-end;display:flex}.login-form{width:100%;max-width:365px;margin:auto;padding:55px 0}.welcome-icon{background:#ecf0df;border-radius:15px;place-items:center;width:53px;height:53px;margin-bottom:27px;display:grid}.login-form h2{letter-spacing:-1px;margin:10px 0 15px;font-size:30px;font-weight:550;line-height:1.2}.login-form>.muted{margin-bottom:30px;font-size:14px;line-height:1.8}.login-form .primary{justify-content:space-between;min-height:49px;margin-top:4px}.login-privacy{color:#85937f;gap:9px;margin-top:25px;font-size:11px;line-height:1.5;display:flex}.login-privacy svg{flex-shrink:0}.login-form-side footer{color:#8a9788;justify-content:space-between;font-size:10px;display:flex}.mobile-login-logo{display:none}.email-sent{word-break:break-word;background:#edf1e2;border-radius:10px;align-items:center;gap:14px;padding:20px 14px;display:flex}.app-shell{min-height:100dvh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fafbf7;flex-direction:column;flex-shrink:0;width:238px;padding:32px 22px 20px;display:flex;position:fixed;top:0;bottom:0}.brand-link{padding-left:10px;display:block}.sidebar-caption{letter-spacing:1.5px;color:#9ba592;margin:53px 12px 13px;font-size:9px;font-weight:600}.sidebar nav{flex-direction:column;gap:6px;display:flex}.sidebar nav button{color:#7b867a;background:0 0;border-radius:9px;justify-content:flex-start;gap:12px;min-height:45px;padding:13px 12px;font-size:12px}.sidebar nav button.active{color:var(--green);background:#e8eddc;font-weight:550}.nav-count{background:#d7e0bf;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10px}.sidebar-bottom{margin-top:auto}.community-note{border-top:1px solid var(--line);color:#8c9a7f;padding:22px 10px}.community-note p{margin-top:10px;font-family:Georgia,serif;font-size:17px;line-height:1.5}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;padding-top:17px;display:flex}.profile strong{font-size:12px;display:block}.profile small{color:var(--muted);font-size:10px;display:block}.profile .icon-button{margin-left:auto}.main-shell{width:calc(100% - 238px);margin-left:238px}.topbar{border-bottom:1px solid var(--line);background:#fafbf7;justify-content:space-between;align-items:center;height:79px;padding:0 40px;display:flex}.topbar-location{color:#8d998b;font-size:11px}.topbar-right{align-items:center;gap:26px;display:flex}.house-badge{color:#6b7c66;border-left:1px solid var(--line);align-items:center;gap:7px;padding-left:23px;font-size:11px;display:flex}.mobile-brand,.mobile-signout,.mobile-nav{display:none}.main-content{max-width:1620px;margin:auto;padding:38px 40px 22px}.section-heading{justify-content:space-between;align-items:center;gap:25px;margin-bottom:28px;display:flex}.section-heading .muted{margin-top:11px;font-size:12px}.section-heading>.primary{flex-shrink:0;min-height:43px;font-size:12px}.rules-bar{color:#7a866d;background:#edf0e5;border-radius:11px;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:25px;padding:16px 19px;font-size:10px;display:flex}.rules-bar>span{align-items:center;gap:8px;display:flex}.rules-bar>span+span{border-left:1px solid #d8dfcc;padding-left:18px}.allowance{align-items:center;gap:9px;margin-left:auto;display:flex}.allowance>strong{color:var(--green);font-size:19px;font-weight:550}.allowance small{color:#829074;font-size:12px;font-weight:400}.courts-layout{grid-template-columns:minmax(0,1fr) 228px;gap:22px;display:grid}.calendar-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.calendar-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:20px 22px 14px;display:flex}.calendar-heading{align-items:center;gap:10px;display:flex}.calendar-heading svg{color:#7d8e73}.calendar-heading h2{text-transform:capitalize;font-size:16px;font-weight:550}.segmented{background:#f2f4ec;border-radius:7px;padding:3px;display:flex}.segmented button{color:#85917c;background:0 0;border-radius:5px;padding:6px 12px;font-size:10px}.segmented button.selected{color:var(--green);background:#fff;box-shadow:0 1px 4px #29392115}.calendar-controls{justify-content:space-between;align-items:center;gap:12px;padding:0 17px 17px;display:flex}.date-nav{color:#65745f;align-items:center;gap:5px;font-size:11px;display:flex}.date-nav .icon-button{width:26px;height:27px}.court-picker{gap:7px;display:flex}.court-picker button{color:#8f9c88;background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 9px;font-size:10px}.court-picker button.active{color:var(--green);background:#f8faf3;border-color:#d8dfcf}.calendar-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d3dbc7 transparent;max-height:580px;overflow:auto}.time-grid{min-width:0;display:grid}.week .time-grid{min-width:750px}.grid-corner,.grid-column-label{z-index:6;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:58px;display:flex;position:sticky;top:0}.grid-corner{color:#9aa48e}.grid-column-label{border-left:1px solid #edf0e6}.grid-column-label>span{text-transform:uppercase;letter-spacing:.5px;color:#8a967e;font-size:9px}.grid-column-label strong{font-size:14px;font-weight:500}.grid-column-label .is-today{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.day .grid-column-label{flex-direction:row;gap:8px;min-height:42px}.day .grid-column-label strong{font-size:12px}.day .grid-corner{min-height:42px}.time-labels{color:#97a08e;z-index:2;background:#fff;font-size:9px;position:relative}.time-labels span{position:absolute;right:7px;transform:translateY(-7px)}.time-labels span:first-child{transform:translateY(3px)}.court-column{border-left:1px solid #edf0e6;flex-direction:column;display:flex;position:relative}.free-slot{background:#fff;border-bottom:1px dotted #e9ede2;border-radius:0;width:100%;height:28px;min-height:28px;display:block;position:relative}.free-slot.hour{border-top:1px solid #e9ede2}.free-slot:not(:disabled):hover{background:#ecf2df}.free-slot span{opacity:0;color:#6a8655;font-size:15px}.free-slot:hover span{opacity:1}.free-slot.past{opacity:1;background:repeating-linear-gradient(-45deg,#fafbf8,#fafbf8 4px,#f3f5ee 4px 5px)}.free-slot:disabled{opacity:1}.booked-slot{z-index:3;text-align:left;border-radius:5px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:5px 6px;font-size:9px;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.booked-slot.padel{color:#52784b;background:#e5efdc;border-left:3px solid #789967}.booked-slot.tennis{color:#a36c4d;background:#f4e9df;border-left:3px solid #c59c7a}.booked-slot.maintenance{color:#7b7360;background:repeating-linear-gradient(-45deg,#efede7,#efede7 5px,#e6e3da 5px 7px);border-left:3px solid #a49a84}.booked-slot strong{white-space:nowrap;align-items:center;gap:4px;font-size:10px;font-weight:550;display:flex}.booked-slot small{white-space:nowrap;font-size:8px}.booked-slot.mine{box-shadow:inset 0 0 0 1px #65844770}.calendar-legend{border-top:1px solid var(--line);color:#8a9580;flex-wrap:wrap;align-items:center;gap:15px;padding:14px 18px;font-size:8px;display:flex}.calendar-legend>span{align-items:center;gap:6px;display:flex}.calendar-legend>span:last-child{margin-left:auto}.legend-outline{border:1px solid #d0dac2;border-radius:2px;width:8px;height:8px}.day-strip{justify-content:space-around;gap:5px;padding:0 16px 17px;display:flex}.day-strip button{color:#88957d;text-transform:uppercase;background:0 0;border-radius:10px;flex-direction:column;flex:1;gap:3px;max-width:66px;padding:9px 5px;font-size:9px}.day-strip strong{font-size:17px;font-weight:500}.day-strip i{border-radius:50%;width:3px;height:3px}.day-strip .today-dot{background:#71815d}.day-strip .selected{background:var(--green);color:#fff}.day-strip .selected .today-dot{background:#cfdea7}.aside-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:23px 21px}.aside-card .eyebrow{letter-spacing:1.4px;font-size:8px}.aside-card h2{font-size:17px}.aside-card h3{margin-top:11px;font-size:14px;line-height:1.4}.aside-card>p:not(.eyebrow){margin-top:7px;font-size:12px;line-height:1.8}.aside-card .text-button{justify-content:space-between;width:100%;margin-top:16px;display:flex}.court-sketch{color:#abb98d;background:#eff2e4;border-radius:8px;height:105px;margin:20px 0;position:relative;overflow:hidden}.court-sketch>div{border:1px solid;position:absolute;inset:16px 28px;transform:rotate(-10deg)}.court-sketch>div:before{content:"";border-left:1px solid;border-right:1px solid;position:absolute;inset:0 12%}.court-sketch>div:after{content:"";border-top:1px solid;position:absolute;top:50%;left:0;right:0}.court-sketch>span{background:#b8c47c;border-radius:50%;width:9px;height:9px;position:absolute;top:52%;left:59%;box-shadow:3px 4px 5px #647a4d33}.court-sketch.tennis{color:#d2b69b;background:#f5ebe1}.aside-note{color:#8b987e;gap:11px;padding:23px 8px;display:flex}.aside-note svg{flex-shrink:0}.aside-note p{font-size:10px;line-height:1.8}.page-footer{color:#8c9a82;align-items:center;gap:14px;margin-top:18px;font-size:9px;display:flex}.page-footer>span:first-child{align-items:center;gap:6px;display:flex}.page-footer .text-button{color:#8c9a82;font-size:9px}.sync-dot{background:#94a96a;border-radius:50%;width:5px;height:5px;display:inline-block}.sync-dot.stale{background:#b88843}.footer-timezone{margin-left:auto}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:26px}.list-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.list-heading .muted{font-size:12px}.booking-list-row{text-align:left;border-top:1px solid var(--line);background:0 0;justify-content:flex-start;gap:15px;width:100%;padding:18px 0}.court-label{color:#78905e;background:#eaf0dd;border-radius:10px;place-items:center;width:43px;height:43px;font-family:Georgia,serif;font-size:20px;display:grid}.court-label.tennis{color:#bb8e6d;background:#f3e8dc}.booking-list-row strong{font-size:13px;display:block}.booking-list-row small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.booking-list-row svg{margin-left:auto}.empty-state{text-align:center;color:#819271;flex-direction:column;align-items:center;gap:14px;padding:50px 20px;display:flex}.empty-state p{font-size:12px}.empty-state .secondary{margin-top:7px}.home-hero{background:#e9efdc;border-radius:16px;padding:50px;position:relative;overflow:hidden}.home-hero h1{letter-spacing:-1px;font-family:Georgia,serif;font-size:48px;font-weight:400;line-height:1.15}.home-hero>p:not(.eyebrow){color:#829373;max-width:340px;margin:20px 0 25px;font-size:13px;line-height:1.8}.hero-court{opacity:.7;pointer-events:none;border:1px solid #b8c7a2;width:290px;height:380px;position:absolute;top:70px;right:20px;transform:rotate(24deg)}.hero-court:before{content:"";border-left:1px solid #b8c7a2;border-right:1px solid #b8c7a2;position:absolute;inset:0 13%}.hero-court:after{content:"";border-top:2px solid #b8c7a2;position:absolute;top:50%;left:0;right:0}.home-hero>:not(.hero-court){z-index:1;position:relative}.module-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px;display:grid}.module-card{text-align:left;border:1px solid var(--line);color:var(--green);background:#fff;border-radius:15px;padding:24px;display:block;position:relative}.module-card>svg{color:#839969;width:21px;height:21px}.module-card h2{margin-top:24px;font-size:16px}.module-card p{color:#8a9980;margin-top:8px;font-size:11px;line-height:1.8}.module-card>svg:last-child{margin-top:22px}.module-tag{letter-spacing:1px;color:#8c9c78;font-size:7px;position:absolute;top:27px;right:20px}.upcoming{opacity:.8;background:#f3f5ec}.admin-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.admin-panel .panel h2{align-items:center;gap:10px;margin-bottom:12px;font-size:17px;display:flex}.admin-panel .panel>.muted{margin-bottom:23px;font-size:12px;line-height:1.8}.admin-panel>.notice{margin-bottom:20px}.members-panel{margin-top:22px}.member-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:17px 0;display:flex}.member-name{flex:1;min-width:125px}.member-name strong{font-size:12px;display:block}.member-name small{color:var(--muted);font-size:10px;display:block}.member-row>select{width:100px;min-height:37px;padding:7px;font-size:11px}.check-label{flex-direction:row;align-items:center;gap:6px;min-height:36px;font-size:11px}.pending{margin-top:20px}.pending h3{font-size:13px}.pending p{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:12px;font-size:11px;display:flex}.pending small{font-size:10px}.toast{background:var(--green);color:#fff;z-index:80;border-radius:12px;align-items:center;gap:10px;max-width:90%;padding:14px 20px;font-size:13px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 5px 30px #24342730}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#142e2570;position:fixed;inset:0}.modal-content{z-index:51;background:#fff;border-radius:18px;width:calc(100% - 32px);max-width:465px;max-height:90dvh;padding:29px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 15px 80px #12231a33}.modal-title{letter-spacing:-.6px;margin-right:24px;font-size:23px;font-weight:550}.modal-description{margin:10px 0 23px;font-size:12px;line-height:1.8}.modal-close{position:absolute;top:20px;right:20px}.form-court-options{gap:10px;display:flex}.form-court-options button{color:#7c8a6e;background:#f5f7f0;border:1px solid #0000;border-radius:9px;flex:1;padding:13px;font-size:13px}.form-court-options button.selected{color:var(--green);background:#eef3e4;border-color:#adbfa0}.form-court-options svg{margin-left:auto}.booking-summary{background:#f2f5e9;border-radius:10px;align-items:center;gap:13px;padding:14px;font-size:13px;display:flex}.booking-summary>svg{color:#899d6f}.booking-summary small{color:#899579;margin-top:3px;font-size:11px;display:block}.dialog-actions{flex-direction:column;gap:10px;display:flex}.delete-button{color:#a87464;background:0 0;padding:8px;font-size:12px}.cancel-confirm p{margin-bottom:14px;font-size:12px}.cancel-confirm .form-row button{font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:1450px){.courts-layout{grid-template-columns:minmax(0,1fr) 250px}.week .time-grid{min-width:650px}}@media (max-width:1250px){.sidebar{width:212px;padding:30px 17px}.main-shell{width:calc(100% - 212px);margin-left:212px}.main-content{padding:32px 27px 22px}.topbar{padding:0 27px}.courts-layout{grid-template-columns:minmax(0,1fr)}.booking-aside{display:none}.hero-court{opacity:.45;right:-105px}.module-grid{gap:12px}.module-card{padding:19px}.module-tag{margin-top:17px;display:block;position:static}.module-card h2{margin-top:11px}}@media (max-width:850px){.sidebar{display:none}.main-shell{width:100%;margin:0;padding-bottom:83px}.topbar{z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafbf7ee;height:73px;padding:0 22px;position:sticky;top:0}.topbar-location{display:none}.mobile-brand{display:block}.mobile-brand .wordmark{font-size:23px}.mobile-brand .logo-mark{font-size:34px}.mobile-brand .wordmark-sub{font-size:6px}.topbar-right{gap:16px}.house-badge{padding-left:15px;font-size:10px}.mobile-signout{width:25px;display:flex}.main-content{padding:28px 22px 10px}.section-heading{align-items:flex-start;margin-bottom:22px}.section-heading>.primary{font-size:11px}.mobile-nav{height:72px;padding-bottom:env(safe-area-inset-bottom);z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);background:#fcfdf8f7;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:#97a089;background:0 0;flex-direction:column;flex:1;gap:4px;padding:8px 5px;font-size:9px}.mobile-nav button.active{color:var(--green)}.mobile-nav button.active svg{fill:#dce5c866}.toast{bottom:85px}.login-page{grid-template-columns:45% 55%}.login-story{padding-left:35px;padding-right:35px}.login-form-side{padding:25px}.login-intro h1{font-size:51px}.login-court{right:-140px}.admin-grid{gap:16px}.panel{padding:22px}}@media (max-width:600px){.login-page{display:block}.login-story{display:none}.login-form-side{min-height:100dvh;padding:24px}.login-top{justify-content:space-between;align-items:center}.mobile-login-logo{display:block}.login-form{max-width:390px;margin:auto;padding:65px 0}.login-form-side footer{font-size:9px}.login-form h2{font-size:30px}.topbar{height:68px;padding:0 17px}.topbar-right{gap:10px}.house-badge{display:none}.mobile-signout{width:27px}.main-content{padding:25px 16px 10px}.eyebrow{letter-spacing:1.4px;margin-bottom:8px;font-size:8px}h1{letter-spacing:-.9px;font-size:26px;line-height:1.22}.section-heading{margin-bottom:20px;display:block}.section-heading .muted{max-width:300px;margin-top:9px;font-size:11px;line-height:1.7}.section-heading>.primary{width:100%;min-height:42px;margin-top:19px;font-size:12px}.rules-bar{gap:11px;margin-bottom:19px;padding:13px 15px;font-size:9px}.rules-bar>span{gap:6px}.rules-bar>span+span{padding-left:11px}.rules-bar>span svg{width:14px;height:14px}.allowance{border-top:1px solid #dce3cf;gap:8px;width:100%;margin-left:0;padding-top:9px}.allowance strong{margin-left:auto;font-size:17px}.allowance small{font-size:11px}.calendar-toolbar{padding:17px 15px 13px}.calendar-heading{gap:7px}.calendar-heading h2{font-size:15px}.calendar-heading svg{width:17px}.calendar-controls{padding:0 11px 11px}.date-nav{gap:1px;font-size:10px}.court-picker{gap:1px}.court-picker button{gap:4px;padding:4px 6px;font-size:9px}.calendar-scroll{max-height:470px}.calendar-legend{gap:10px;padding:12px;font-size:8px}.calendar-legend>span:last-child{width:100%;margin-left:0;display:none}.day-strip{padding:0 10px 14px}.day-strip button{padding:8px 4px}.day-strip strong{font-size:16px}.calendar-card{border-radius:12px}.page-footer{flex-wrap:wrap;gap:9px;margin-top:14px;font-size:8px}.footer-timezone,.page-footer .text-button{font-size:8px}.grid-column-label{min-height:49px}.home-hero{padding:29px 24px}.home-hero h1{font-size:37px;line-height:1.17}.home-hero>p:not(.eyebrow){max-width:270px;font-size:12px}.home-hero .primary{font-size:12px}.hero-court{opacity:.45;top:120px;right:-230px}.module-grid{grid-template-columns:1fr;gap:13px;margin-top:17px}.module-card{padding:22px}.module-tag{margin-top:0;position:absolute;top:28px;right:22px}.module-card h2{margin-top:18px}.module-card>svg:last-child{position:absolute;bottom:25px;right:22px}.module-card p{max-width:230px}.panel{padding:20px 17px}.admin-grid{grid-template-columns:1fr}.admin-panel .panel h2{font-size:17px}.members-panel{margin-top:17px}.member-row{gap:10px}.member-row .avatar{width:32px;height:32px}.member-name{flex:1;min-width:calc(100% - 45px)}.member-row>select{width:83px}.member-row .small{margin-left:auto;font-size:11px}.member-name small{font-size:11px}.member-row{padding:18px 0}.booking-list-row{gap:10px}.booking-list-row strong{font-size:12px}.booking-list-row small{font-size:10px;line-height:1.6}.court-label{flex-shrink:0;width:36px;height:40px}.list-heading h2{font-size:17px}.list-heading .muted{font-size:10px}.modal-content{border-radius:17px;width:calc(100% - 20px);max-height:92dvh;padding:25px 22px}.modal-title{font-size:23px}.modal-close{top:16px;right:15px}.toast{min-width:260px;font-size:12px;bottom:85px}.empty-state{padding:35px 6px}.empty-state p{font-size:11px}.form-row{gap:12px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:600px){input,select{font-size:16px}.day .booked-slot strong{font-size:11px}.day .booked-slot small{font-size:10px}}.booker-info{background:#f2f5e9;border-radius:9px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.booker-info>span{color:var(--muted);font-size:11px}.booker-info strong{font-size:13px;font-weight:550}.players-fieldset{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:15px;display:flex}.players-fieldset legend{align-items:center;gap:7px;padding-right:8px;font-size:13px;font-weight:550;display:flex}.players-fieldset legend small{color:var(--muted);font-size:11px;font-weight:400}.resident-picker{border:1px solid var(--line);border-radius:9px;overflow:hidden}.resident-picker summary{cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:12px;font-size:13px;list-style:none;display:flex}.resident-picker summary::-webkit-details-marker{display:none}.resident-picker summary>span{color:var(--muted);margin-left:auto}.resident-picker-body{padding:0 12px 12px}.resident-options{max-height:220px;margin-top:9px;overflow:auto}.resident-option{flex-direction:row;align-items:center;gap:10px;min-height:48px;padding:7px 2px}.resident-option small{color:var(--muted);font-size:11px;font-weight:400;display:block}.player-chips{flex-wrap:wrap;gap:7px;display:flex}.player-chip{background:#edf2e3;border-radius:7px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;display:flex}.player-chip small{color:var(--muted);font-size:10px}.player-chip button{color:var(--green);background:0 0;padding:5px}.guest-list{flex-direction:column;gap:10px;display:flex}.guest-row{align-items:flex-end;gap:7px;display:flex}.guest-row label{flex:1}.guest-row .icon-button{height:45px}.guest-readonly{align-items:center;gap:9px;font-size:13px;display:flex}.guest-readonly small{color:#8c7a61;background:#f2ede4;border-radius:5px;padding:2px 7px;font-size:10px}.players-note{color:var(--muted);font-size:11px;line-height:1.6}.booked-slot strong{text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.resident-picker summary:focus-visible{outline-offset:-3px;outline:3px solid #9cac6c}@font-face{font-family:Jost;src:url(/brand/fonts/jost-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Jost;src:url(/brand/fonts/jost-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Jost;src:url(/brand/fonts/jost-latin-600-normal.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/brand/fonts/cormorant-garamond-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/brand/fonts/cormorant-garamond-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}:root{--green:#2a5243;--green-mid:#224738;--lime:#dde4d7;--ink:#18221d;--muted:#5f6b63;--line:#ddd5c8;--cream:#faf5ef;--radius:12px}body{color:#18221d;background:#faf5ef;font-family:Jost,system-ui,sans-serif;font-size:16px}h1,.modal-title,.login-form h2{letter-spacing:-.7px;font-family:Cormorant Garamond,Georgia,serif;font-size:48px;font-weight:500}h2,h3{letter-spacing:0;font-family:Jost,system-ui,sans-serif}h2{font-size:21px}input,select{background:#fdfbf7;border-radius:6px;min-height:48px;font-size:16px}button{min-height:44px}button.primary,button.secondary,.danger{border-radius:6px;min-height:48px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #326d51}.panel,.aside-card,.module-card{border:1px solid var(--line);box-shadow:none;background:#fdfbf7;border-radius:12px}.sidebar{color:#faf5ef;background:#2a5243}.sidebar .brand-wordmark{filter:brightness(0)invert(95%)sepia(10%)saturate(250%)}.sidebar nav button{color:#faf5ef}.sidebar nav button.active{color:#2a5243;background:#faf5ef}.sidebar-caption{color:#dae3d6}.sidebar .profile,.sidebar .community-note{color:#faf5ef;border-color:#ffffff30}.brand-wordmark{width:168px;max-width:100%;height:auto;display:block}.full-logo{width:330px;max-width:100%;height:auto;display:block}.login-story{background:#2a5243}.login-story .full-logo{margin:0 auto}.login-intro h1{font-family:Cormorant Garamond,Georgia,serif;font-weight:400}.login-court{opacity:.35}.login-story .login-intro{margin-top:34px}.profile-name{color:inherit;background:0 0;justify-content:flex-start;padding:0;font-weight:600}.house-badge{border:1px solid var(--line);color:var(--green);background:#ecf0e7;border-radius:6px;padding:8px 12px}.topbar{background:#fdfbf7}.main-content{padding:40px}.section-heading{margin-bottom:28px}.section-heading .muted{margin-top:12px}.courts-layout{display:block}.booking-aside{display:none}.rules-bar{border-color:var(--line);background:#ecf0e7;border-radius:8px}.availability{gap:24px}.week-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-heading>div{gap:8px;display:flex}.date-panel{padding:24px}.date-buttons{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.date-buttons button{border:1px solid var(--line);min-height:76px;color:var(--ink);background:0 0;border-radius:6px;flex-direction:column;gap:2px;padding:12px 4px}.date-buttons strong{font-size:22px;font-weight:500}.date-buttons small{text-transform:uppercase;font-size:12px}.date-buttons button.selected,.duration-buttons button.selected{background:var(--green);color:var(--cream);border-color:var(--green)}.duration-buttons{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:20px;display:flex}.duration-buttons>span{align-items:center;gap:8px;margin-right:auto;font-size:14px;display:flex}.duration-buttons button{color:var(--green);background:#fdfbf7;border:1px solid #9b9f8f;border-radius:6px;padding:8px 16px}.court-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.court-availability{padding:0;overflow:hidden}.court-card-content{padding:24px}.court-banner{background:#dde4d7;justify-content:center;align-items:center;height:120px;display:flex}.court-banner.tennis{background:#e6dccb}.mini-court{border:1px solid #2a524366;width:160px;height:85px;position:relative}.mini-court:before{content:"";border-top:1px solid #2a524366;border-bottom:1px solid #2a524366;position:absolute;inset:12px 0}.mini-court:after{content:"";border-left:1px solid #2a524388;position:absolute;inset:0 50%}.mini-court i{border:1px solid #2a524366;position:absolute;inset:12px 24%}.time-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.time-buttons button{color:var(--green);font-variant-numeric:tabular-nums;background:#fdfbf7;border:1px solid #9b9f8f;border-radius:6px;min-height:48px;font-weight:500}.time-buttons button:hover:not(:disabled){background:var(--green);color:var(--cream)}.time-buttons button:disabled{color:#68736b;border-color:var(--line);opacity:1;background:#eee9e1;text-decoration:line-through}.booking-page{max-width:760px;margin:0 auto;padding-bottom:40px}.booking-page>.text-button{align-self:flex-start}.booking-page>form{border:1px solid var(--line);background:#fdfbf7;border-radius:12px;padding:28px}.booking-page .dialog-actions{position:static}.booker-info{background:#ecf0e7}.household-page{max-width:900px;margin:auto}.household-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.household-row:last-child{border:0}.household-row small{overflow-wrap:anywhere;color:var(--muted);font-size:14px;display:block}.household-actions{flex-wrap:wrap;gap:12px;display:flex}.household-actions .secondary{padding:8px 12px}.check-label{flex-direction:row;align-items:center;gap:12px;display:flex}.check-label input{width:22px;min-height:22px}.notice.error{color:#983d32;background:#f5e0da}.notice.warning{color:#805719;background:#f6ead0}.booking-list-row{text-align:left}.booking-list-row>span:nth-child(2){min-width:0}.booking-list-row strong{overflow-wrap:anywhere}.mobile-nav{background:#fdfbf7}.mobile-nav button{min-width:0}.mobile-nav span{font-size:11px}.home-hero{background:#ecf0e7}.home-hero h1{font-family:Cormorant Garamond,Georgia,serif;font-weight:500}@media (max-width:1100px){.time-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.main-content{padding:28px}}@media (max-width:700px){.main-content{padding:24px 18px 110px}h1,.modal-title,.login-form h2{font-size:38px}.court-cards{grid-template-columns:1fr;gap:20px}.time-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.date-panel{padding:16px}.date-buttons{gap:4px}.date-buttons button{min-height:65px}.date-buttons small{font-size:10px}.duration-buttons>span{flex-basis:100%;margin-bottom:4px}.duration-buttons button{flex:1;padding:8px}.court-card-content{padding:20px}.brand-wordmark{width:110px}.topbar{gap:8px;padding:12px 18px}.topbar-right{gap:10px}.house-badge{padding:8px;font-size:13px}.mobile-signout{display:none}.booking-page>form{padding:18px}.household-row{flex-wrap:wrap}.full-logo{width:281px}.section-heading{align-items:flex-start}.section-heading .primary{padding:10px 14px}.rules-bar{gap:12px}.login-story .full-logo{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
