.calendar-page{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.calendar-main{min-height:0;flex:1;display:flex;flex-direction:column;padding:0 4vw 10px}.calendar-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:10px 0 18px;flex-shrink:0}.calendar-intro .kicker{font-size:9px;margin-bottom:8px}.calendar-intro h1{font-size:clamp(32px,3.4vw,49px)}.calendar-intro>p{font-size:13px;line-height:1.6;margin:0;color:var(--ink)}.calendar-intro>p span{color:var(--muted);font-size:12px}.calendar-board{flex:1;min-height:0;display:flex;flex-direction:column;background:white;border:1px solid #e2dae9;border-radius:10px;overflow:hidden;position:relative}.calendar-toolbar{padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--ink);color:white;flex-shrink:0}.month-controls{display:flex;align-items:center;gap:17px}.month-controls h2{font-family:Alata,Arial;font-size:20px;min-width:160px;text-align:center;line-height:1.3}.month-controls button{height:33px;width:33px;border:1px solid #ffffff50;background:none;color:white;border-radius:50%;font-size:19px;cursor:pointer}.calendar-jump{display:flex;align-items:center;gap:10px}.calendar-jump select{font-size:12px;background:var(--ink);color:white;border:1px solid #ffffff60;padding:7px;border-radius:3px;width:152px}.calendar-jump button{font-size:12px;background:var(--lime);color:var(--ink);border:0;padding:8px 13px;cursor:pointer;border-radius:3px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:28px;flex-shrink:0;border-bottom:1px solid #e5dfea;background:#f8f5fa}.calendar-weekdays span{font-size:10px;padding:6px 10px;text-align:right;color:var(--muted)}.calendar-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));overflow:hidden}.calendar-cell{min-width:0;min-height:0;border-right:1px solid #ece6f0;border-bottom:1px solid #ece6f0;padding:5px 6px;display:flex;flex-direction:column;overflow:hidden}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell:nth-child(n+36){border-bottom:0}.calendar-cell.outside-month{background:#f8f6fa}.calendar-day{font-size:11px;line-height:19px;text-align:right;color:var(--ink);flex-shrink:0;height:20px}.outside-month .calendar-day{color:#aaa2b3}.calendar-day.today span{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--pink);color:white;width:20px;height:20px}.cell-events{display:flex;flex-direction:column;gap:3px;min-height:0;flex:1;overflow:hidden}.calendar-event-button{min-width:0;display:block;width:100%;border:0;background:#eee8f5;color:var(--ink);border-left:3px solid var(--ink);padding:4px 6px;font:11px/17px Alata,Arial,sans-serif;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px;cursor:pointer;flex-shrink:0;height:26px}.calendar-event-button:hover{background:var(--lime)}.calendar-event-button:focus-visible,.calendar-page button:focus-visible,.calendar-page select:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.day-more{border:0;background:none;text-align:left;font-size:10px;line-height:16px;height:18px;color:var(--ink);padding:0 2px;cursor:pointer;text-decoration:underline;flex-shrink:0}.calendar-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;border-top:1px solid #e5dfea;min-height:32px;flex-shrink:0}.calendar-bottom p{font-size:10px;line-height:1.4;margin:0;color:var(--muted)}.calendar-bottom button{border:0;background:none;padding:3px;color:var(--ink);font-size:11px;cursor:pointer;white-space:nowrap}.calendar-footnote{font-size:10px;margin:7px 0 0;line-height:1.5;color:var(--muted);flex-shrink:0}.calendar-page .visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.empty-month{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);background:white;border:1px solid #e2dbea;padding:16px 25px;text-align:center;box-shadow:0 8px 30px #1904430c;max-width:90%;border-radius:6px}.empty-month p{font-size:13px;margin:0 0 8px}.empty-month button{border:0;background:none;text-decoration:underline;color:var(--ink);font:12px Alata;cursor:pointer}#event-dialog{padding:0;border:0;border-radius:10px;width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 40px);color:var(--ink);background:var(--cream);box-shadow:0 20px 100px #19044366;overflow:auto}#event-dialog::backdrop{background:#190443aa;backdrop-filter:blur(3px)}.event-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:15px 25px;background:var(--ink);color:var(--lime)}.event-dialog-top .kicker{margin:0;font-size:10px}.dialog-close{border:0;background:none;color:white;font:28px/1 Alata;cursor:pointer;padding:4px 0 4px 20px}.event-dialog-content{padding:28px}.event-dialog-content h2{font-size:36px;line-height:1.15;overflow-wrap:anywhere}.event-date{font-size:14px;margin:20px 0;color:var(--ink);padding-bottom:18px;border-bottom:1px solid #dbd1e4}.event-location{font-size:13px}.event-description{font-size:14px;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}.event-description:empty::after{content:'More information will appear here when it is added to the calendar.';color:var(--muted)}.event-source{font-size:10px;line-height:1.6;color:var(--muted);margin:24px 0 0}.event-booking{margin-top:22px}.day-event-choice{display:block;text-align:left;width:100%;padding:14px 0;border:0;border-bottom:1px solid #ded5e7;background:none;font:14px/1.5 Alata;color:var(--ink);cursor:pointer}.day-event-choice small{display:block;font-size:12px;color:var(--muted)}@media(max-width:760px){.calendar-main{padding:0 12px 8px}.calendar-intro{padding:8px 1px 14px}.calendar-intro h1{font-size:32px}.calendar-intro .kicker{font-size:8px;margin-bottom:7px}.calendar-intro>p{display:none}.calendar-toolbar{padding:10px 8px;gap:6px;flex-wrap:wrap}.month-controls{gap:7px;flex:1}.month-controls h2{min-width:0;font-size:16px;flex:1}.month-controls button{width:29px;height:29px;font-size:16px}.calendar-jump{gap:6px}.calendar-jump select{width:40px;color:transparent;padding:5px 0}.calendar-jump select:focus{width:132px;color:white}.calendar-jump select option{color:white}.calendar-jump button{padding:7px 8px;font-size:11px}.calendar-weekdays{height:25px}.calendar-weekdays span{font-size:9px;padding:4px 4px}.calendar-cell{padding:4px 2px}.calendar-day{font-size:10px;height:18px;line-height:17px}.calendar-event-button{font-size:10px;line-height:17px;padding:3px;border-left-width:2px;height:25px}.cell-events{gap:2px}.calendar-bottom{padding:5px 8px;gap:8px}.calendar-bottom p{font-size:9px}.calendar-footnote{font-size:9px}.event-dialog-content{padding:22px}.event-dialog-content h2{font-size:30px}.event-dialog-top{padding:12px 22px}.event-description{font-size:13px}}@media(max-height:570px){.calendar-intro{padding:4px 0 8px}.calendar-intro .kicker{display:none}.calendar-intro h1{font-size:27px}.calendar-toolbar{padding:5px 10px}.calendar-day{height:14px;line-height:14px;font-size:9px}.calendar-cell{padding:2px}.calendar-event-button{height:20px;line-height:15px;padding:2px 3px;font-size:9px}.calendar-bottom{min-height:24px;padding:2px 8px}.calendar-footnote{font-size:8px;margin-top:3px}}

.day-more{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.calendar-event-button{touch-action:manipulation}

.calendar-cell:nth-child(n+36){border-bottom:1px solid #ece6f0}.calendar-cell.last-row{border-bottom:0}

@media(max-width:480px){.calendar-jump select{display:none}}

.calendar-page nav{flex-shrink:0}.calendar-toolbar{flex-wrap:wrap}.membership-control{display:flex;align-items:center;gap:9px}.membership-control label{font-size:11px;white-space:nowrap}.membership-control select{max-width:200px;color:var(--ink);background:white;padding:7px 10px;border:1px solid #d6cede;border-radius:3px;font:12px Alata}.subscribe-calendar{border:1px solid var(--ink);background:var(--lime);color:var(--ink);font:12px Alata;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 14px;cursor:pointer;border-radius:4px;white-space:nowrap}.calendar-legend{display:flex;align-items:center;gap:17px;flex-wrap:wrap;padding:7px 13px;background:#fff;border-bottom:1px solid #e7e0ed;flex-shrink:0;font-size:9px;line-height:1.4}.calendar-legend>span:not(.legend-context){display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.calendar-legend>span:not(.legend-context)::before{content:'';height:7px;width:7px;border-radius:50%;background:var(--event-accent);flex-shrink:0}.legend-context{margin-left:auto;color:var(--muted);font-size:8px}.key-waterfront,.kind-waterfront,.day-waterfront{--event-accent:#61269e;--event-tint:#f1e8fb;--day-tint:#fbf7ff}.key-social,.kind-social,.day-social{--event-accent:#b00086;--event-tint:#fbe1f4;--day-tint:#fff8fc}.key-paddle,.kind-paddle,.day-paddle{--event-accent:#007b9e;--event-tint:#d9f3fb;--day-tint:#f5fcff}.key-public,.kind-public,.day-public{--event-accent:#59686e;--event-tint:#e7edf0;--day-tint:#f7f9fa}.calendar-cell[class*="day-"]{background:var(--day-tint);box-shadow:inset 0 3px var(--event-accent)}.calendar-event-button[class*="kind-"]{background:var(--event-tint);border-left-color:var(--event-accent)}.calendar-event-button:hover{filter:brightness(.96)}.event-membership{display:inline-block;padding:5px 10px;font-size:11px;background:var(--event-tint,#eee8f5);border-left:3px solid var(--event-accent,#61269e);margin:0 0 16px}.calendar-dialog-note{font-size:11px;line-height:1.6;color:var(--muted)}#subscribe-dialog{padding:0;border:0;border-radius:10px;width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 40px);color:var(--ink);background:var(--cream);overflow:auto;box-shadow:0 20px 100px #19044366}#subscribe-dialog::backdrop{background:#190443aa;backdrop-filter:blur(3px)}#subscribe-dialog .event-dialog-content>p{font-size:14px;line-height:1.7}#subscribe-dialog .subscription-help{font-size:11px;color:var(--muted)}#subscribe-dialog .subscription-scope{font-size:12px;padding:13px;background:#eee8f5}.other-calendars{margin-top:24px;border-top:1px solid #ded5e7;padding-top:17px;font-size:12px}.other-calendars summary{cursor:pointer;display:flex;justify-content:space-between}.other-calendars p{line-height:1.7}.other-calendars label{display:block;font-size:10px;margin:15px 0 6px}.other-calendars input{width:100%;font:11px/1.5 Alata;color:var(--ink);padding:10px;border:1px solid #d1c5dd;background:white}.copy-feed{border:0;background:var(--ink);color:white;padding:10px 14px;margin:12px 0;font:12px Alata;cursor:pointer}.other-calendars .text-link{font-size:11px}@media(max-width:1050px){.calendar-toolbar{gap:12px}.membership-control{gap:6px}.membership-control select{max-width:175px}.membership-control label{font-size:10px}.calendar-jump select{width:135px}.month-controls h2{min-width:130px}.calendar-legend{gap:11px}.legend-context{display:none}}@media(max-width:760px){.calendar-intro{gap:10px;padding-bottom:12px}.calendar-intro h1{font-size:28px}.calendar-intro .kicker{font-size:7px}.subscribe-calendar{font-size:10px;padding:9px 10px;gap:8px}.month-controls{order:0;flex:1}.calendar-jump{order:1}.membership-control{order:2;width:100%;justify-content:space-between}.membership-control select{max-width:none;flex:1;min-width:0;font-size:11px;padding:6px 8px}.membership-control label{font-size:10px}.calendar-legend{padding:6px 7px;gap:5px 11px;font-size:8px}.calendar-legend>span:not(.legend-context)::before{height:6px;width:6px}.calendar-main{padding-left:10px;padding-right:10px}.calendar-intro .kicker{letter-spacing:.1em}}@media(max-height:570px){.calendar-intro{padding:4px 0 7px}.calendar-intro h1{font-size:25px}.subscribe-calendar{padding:6px 10px;font-size:10px}.calendar-toolbar{padding:4px 8px;gap:5px}.month-controls button{height:25px;width:25px}.month-controls h2{font-size:15px}.membership-control select{padding:4px 6px;font-size:10px}.calendar-jump button{padding:5px 8px}.calendar-legend{padding:3px 7px;font-size:8px;gap:4px 12px}.calendar-weekdays{height:20px}.calendar-weekdays span{font-size:8px;padding:3px}.calendar-cell{position:relative;padding:1px 2px 1px 16px}.calendar-day{position:absolute;left:2px;top:3px;width:12px;height:12px;line-height:12px;font-size:8px}.calendar-day.today span{height:12px;width:12px}.calendar-event-button{height:18px;line-height:14px;padding:2px 3px;font-size:8px}.day-more{height:16px;line-height:14px;font-size:8px}.calendar-bottom{min-height:22px}.calendar-footnote{font-size:8px}.event-description{font-size:12px}}

.club-calendar{--ink:#190443;--blue:#0aaddf;--pink:#d200a7;--lime:#00d200;--cream:#fff;--muted:#685f76;height:auto!important;min-height:0;overflow:visible!important;display:block;background:#fff;color:var(--ink);font:16px/1.65 Alata,Arial,sans-serif}.club-calendar *{box-sizing:border-box}.calendar-main{display:block;flex:none;padding:28px 4vw 45px}.calendar-intro{padding:6px 0 24px}.calendar-intro h1{font-family:Anton,Impact,sans-serif;font-weight:400;line-height:1.15;margin:0}.calendar-intro .kicker,.event-dialog-top .kicker{font-family:Alata,Arial,sans-serif;text-transform:uppercase;letter-spacing:.13em}.calendar-intro .kicker{margin-top:0}.calendar-board{display:block;flex:none;overflow:visible;border-radius:0}.calendar-toolbar{border-radius:0}.calendar-weekdays{height:30px}.calendar-grid{flex:none;min-height:540px;grid-auto-rows:110px;overflow:visible}.calendar-cell{min-height:110px}.cell-events{min-height:65px}.calendar-bottom{padding:12px 16px}.empty-month{top:auto;bottom:60px}.calendar-event-button,.calendar-jump select,.membership-control select{font-family:Alata,Arial,sans-serif}.calendar-legend{font-size:10px;line-height:1.7}.key-waterfront,.kind-waterfront,.day-waterfront{--event-accent:#00a800;--event-tint:#e3ffe3;--day-tint:#f4fff4}.key-social,.kind-social,.day-social{--event-accent:#d200a7;--event-tint:#fbe1f4;--day-tint:#fff8fc}.key-paddle,.kind-paddle,.day-paddle{--event-accent:#0aaddf;--event-tint:#d9f3fb;--day-tint:#f5fcff}.key-kids,.kind-kids,.day-kids{--event-accent:#ffa901;--event-tint:#fff0d4;--day-tint:#fffaf0}.calendar-export-toolbar{display:flex;align-items:center;gap:14px 24px;flex-wrap:wrap;margin:24px 0}.calendar-export-toolbar a{font:13px/1.6 Alata,Arial,sans-serif;color:#190443}.calendar-export-toolbar button{font:13px/1.6 Alata,Arial,sans-serif}.calendar-footnote{font-size:12px;line-height:1.7}.club-calendar button{cursor:pointer}.club-calendar a{color:inherit}.club-calendar .subscribe-calendar{background:#0aaddf;border-color:#0aaddf;color:#190443;min-height:42px}.event-dialog-content h2{font-family:Anton,Impact,sans-serif;font-weight:400}.event-dialog-content .button{display:inline-flex;gap:16px;padding:14px 22px;min-height:50px;align-items:center;background:#0aaddf;color:#190443;text-decoration:none;font:14px/1.5 Alata,Arial,sans-serif;border:2px solid #0aaddf;cursor:pointer}.event-dialog-content .button:disabled{opacity:.5;cursor:default}.event-dialog-content p{line-height:1.75}.event-description{font-family:Alata,Arial,sans-serif}.event-dialog-content .calendar-dialog-note{font-size:12px}.club-calendar [hidden],#event-dialog [hidden],#subscribe-dialog [hidden]{display:none!important}html:has(#event-dialog[open],#subscribe-dialog[open]){overflow:hidden}.calendar-main :focus-visible,#event-dialog :focus-visible,#subscribe-dialog :focus-visible{outline:3px solid #0aaddf;outline-offset:3px}.calendar-error{padding:18px;margin:0;background:#fff0d4;font-size:13px}.calendar-activity-note{font-size:12px;color:#685f76;margin:10px 0}@media(max-width:760px){.calendar-main{padding:20px 10px 30px}.calendar-grid{min-height:500px}.calendar-cell{min-height:95px}.calendar-toolbar{gap:10px;padding:12px}.calendar-jump select{width:135px;color:white}.calendar-intro h1{font-size:29px}.calendar-intro{flex-wrap:wrap}.calendar-event-button{font-size:10px}.calendar-export-toolbar{gap:12px}.calendar-legend{gap:7px 12px}.month-controls{min-width:200px}.membership-control{width:100%}.calendar-intro .subscribe-calendar{font-size:12px}.calendar-cell{position:static;padding:4px 2px}.calendar-day{position:static;width:auto;height:20px;line-height:20px}.cell-events{min-height:52px}}@media(max-width:480px){.calendar-jump select{display:block;width:125px}.calendar-cell{min-height:90px}.calendar-grid{min-height:460px}.calendar-intro h1{font-size:27px}.subscribe-calendar{white-space:normal}.calendar-export-toolbar .subscribe-calendar{width:100%}.legend-context{display:none}}

.club-calendar .skip{position:absolute;left:-9999px}.club-calendar .skip:focus{left:15px;top:15px;padding:10px;background:white;z-index:99}

/* Dialogs are outside the calendar wrapper: give them their own solid theme. */
#event-dialog,#subscribe-dialog{--ink:#190443;--cream:#fff;--lime:#0aaddf;--blue:#0aaddf;--muted:#685f76;background:#fff!important;color:#190443!important;font:15px/1.65 Alata,Arial,sans-serif;opacity:1;box-sizing:border-box;width:min(640px,calc(100vw - 32px));border:0;padding:0}#event-dialog .event-dialog-top,#subscribe-dialog .event-dialog-top{position:sticky;top:0;z-index:2;background:#190443;color:#fff;padding:13px 22px}#event-dialog .dialog-close,#subscribe-dialog .dialog-close{color:white;min-width:40px;min-height:40px;padding:0;font-size:28px}#event-dialog .event-dialog-content,#subscribe-dialog .event-dialog-content{padding:22px 26px;background:white;color:#190443}#event-dialog h2{font-size:34px;margin:0;line-height:1.15}#event-dialog .event-date{margin:12px 0;padding-bottom:12px;font-size:15px}#event-dialog .event-membership{margin:0 0 10px}#event-dialog .event-location{font-size:12px;margin:8px 0 14px}#event-dialog .event-description{font-size:14px;line-height:1.7}#calendar-booking-actions{margin:16px 0}#calendar-booking-actions .button{width:100%;margin:0;justify-content:center}#session-booking-note{margin:12px 0 0;padding:12px 14px;background:#fff3da;border-left:3px solid #ffa901;font-size:13px;line-height:1.65}.calendar-policy{border-top:1px solid #ded5e7;margin-top:20px;padding-top:15px}.calendar-policy summary{cursor:pointer;padding:6px 0;font-size:14px;font-weight:normal}.calendar-policy .event-description{padding-top:14px}.calendar-loading{margin:0;padding:12px 16px;background:#fff5df;color:#190443;font:13px/1.5 Alata,Arial,sans-serif}.calendar-loading[hidden]{display:none!important}#event-dialog::backdrop,#subscribe-dialog::backdrop{background:#19044399;backdrop-filter:blur(2px)}@media(max-width:600px){#event-dialog .event-dialog-content,#subscribe-dialog .event-dialog-content{padding:20px}#event-dialog .calendar-export-toolbar{gap:12px}#event-dialog .calendar-export-toolbar a,#event-dialog .calendar-export-toolbar button{min-height:42px;display:flex;align-items:center}#event-dialog h2{font-size:30px}}
/* Text labels replace arrow-only calendar controls. */
.month-controls #previous-month,.month-controls #next-month{width:auto;min-width:58px;height:auto;min-height:36px;border-radius:3px;padding:7px 9px;font:12px/1.3 Alata,Arial,sans-serif;white-space:nowrap;flex-shrink:0}
.month-controls{gap:10px}.month-controls h2{min-width:0}
@media(max-width:760px){.calendar-toolbar .month-controls{display:grid;flex:0 0 100%;grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;gap:8px}.month-controls h2{font-size:15px}}
