:root{color-scheme:light;font:100%/1.55 system-ui,sans-serif;color:#152f2b;background:#eef3ef;--green:#07574a;--line:#d7e1da}
*{box-sizing:border-box}body{margin:0}main{width:min(100% - 2rem,52rem);margin:auto;padding:clamp(1.5rem,6vw,4rem) 0 3rem}.brand{margin:0;color:var(--green);font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.hero{padding:clamp(1.25rem,5vw,2.7rem);border-radius:1.4rem;background:#103f36;color:#fff;margin:1.4rem 0}.hero p{color:#deebe1}.hero h1{font-size:clamp(2rem,6vw,3.2rem);line-height:1.12;margin:.25rem 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.85rem;margin:1.25rem 0}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.2rem}.card{display:flex;flex-direction:column}.card h2,.panel h1{margin:.1rem 0 .35rem;line-height:1.2}.card p{flex:1}.card a{align-self:flex-start}.button,button{display:inline-block;background:var(--green);color:#fff;border:0;border-radius:.6rem;padding:.65rem .9rem;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}.secondary{background:#fff;color:var(--green);border:1px solid var(--line)}a{color:var(--green)}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #a8620f;outline-offset:3px}.actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin:1.2rem 0}.actions form{margin:0}.back{display:inline-block;margin:1rem 0}.muted{color:#456259}.rows{margin:1rem 0}.rows div{display:grid;grid-template-columns:minmax(7rem,1fr) 2fr;gap:.6rem;border-top:1px solid var(--line);padding:.65rem 0}.rows dt{font-weight:650}.rows dd{margin:0;overflow-wrap:anywhere}details{margin:1.2rem 0}summary{cursor:pointer;font-weight:650}input:not([type=checkbox]){max-width:100%;width:28rem;padding:.5rem;font:inherit;border:1px solid #84998d;border-radius:.35rem}fieldset{border:1px solid var(--line);border-radius:.5rem;margin:1rem 0}code{overflow-wrap:anywhere}.offline{padding:1.4rem}
main:has(.tandem-booking){width:100%;max-width:1000px;padding:24px}
.tandem-booking{color:#173042}
.tandem-booking form,.tandem-booking #calendar{background:white;border:1px solid #dce7e9;border-radius:18px;padding:24px;margin:20px 0;box-shadow:0 8px 24px #17304208}
.tandem-booking fieldset{min-width:0;margin:0;padding:0;border:0}
.tandem-booking label{display:block;margin:16px 0;font-weight:600}
.tandem-booking input:not([type=checkbox]),.tandem-booking textarea,.tandem-booking form button,.tandem-booking .fc-button{font:inherit;min-height:48px;border-radius:9px;padding:12px;width:100%;border:1px solid #a8bfc4}
.tandem-booking input[type=checkbox]{width:24px;min-height:24px;vertical-align:middle;margin-right:10px}
.tandem-booking form button{background:#006e75;color:white;border:0;cursor:pointer}
.tandem-booking textarea{min-height:100px}
.tandem-booking .grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.tandem-booking .fc .fc-button{width:auto}
.tandem-booking .fc-toolbar{flex-wrap:wrap;gap:10px}
.tandem-booking .fc-toolbar-title{font-size:1.2rem}
.tandem-booking .muted{color:#56717c}
.tandem-booking .error{padding:16px;background:#fff0ed;color:#8e2818;border-radius:10px}
.tandem-booking .tandem-locked{opacity:.45;filter:grayscale(1)}
#calendar .tandem-selected .fc-daygrid-day-frame{background:#dcf5e9;box-shadow:inset 0 0 0 3px #15803d}
#calendar .tandem-selected .fc-daygrid-day-number{color:#14532d;font-weight:800}
.tandem-panel{margin:1rem 0}.tandem-history{padding-left:1.25rem}.tandem-history li+li{margin-top:.65rem}
@media(max-width:600px){main:has(.tandem-booking){padding:14px}.tandem-booking .grid{grid-template-columns:1fr;gap:0}.tandem-booking form,.tandem-booking #calendar{padding:16px}.tandem-booking .fc .fc-button{padding:8px}.tandem-booking .fc-daygrid-day-number{padding:6px}}
#app-update{position:fixed;z-index:10;inset-inline:1rem;bottom:max(1rem,env(safe-area-inset-bottom));margin-inline:auto;width:min(calc(100% - 2rem),26rem);display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;background:#fff;border:1px solid var(--line);border-radius:.85rem;box-shadow:0 4px 24px #152f2b2e}#app-update[hidden]{display:none}#app-update p{margin:0;color:#456259;font-size:.88rem}#app-update button{flex-shrink:0}
.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.4rem 0 0}.admin-heading h1,.admin-heading p{margin:0}.admin-heading h1{font-size:clamp(1.6rem,5vw,2.35rem);line-height:1.15}.admin-nav a{padding:.4rem .65rem;background:#fff;border:1px solid var(--line);border-radius:.5rem}.admin-section,.admin-login{margin:1rem 0;scroll-margin-top:1rem}.admin-login{max-width:30rem}.admin-section h2{margin:0}.admin-section small,.admin-check small{display:block;color:#456259}.admin-tag{display:inline-block;margin-left:.3rem;padding:.15rem .55rem;border-radius:1rem;background:#eef3ef;color:#28584c;font-size:.8rem;font-weight:700}.admin-field-list>*{border-top:1px solid var(--line);padding:.7rem 0}.admin-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,14rem);align-items:center;gap:.5rem 1rem}.admin-field-row select{width:100%;font:inherit;padding:.45rem;border:1px solid #84998d;border-radius:.35rem;background:white;color:inherit}.admin-check{display:flex;gap:.65rem;align-items:flex-start}.admin-check input{margin-top:.35rem;flex:none}.admin-notice{padding:.65rem .85rem;background:#dcece3;border-radius:.55rem}.admin-heading form{margin:0}@media(max-width:420px){.admin-field-row{grid-template-columns:1fr}.admin-heading{align-items:flex-start}}
.club-logo{display:flex;justify-content:center;align-items:center;margin:.35rem 0 .55rem;background:transparent}.club-logo img{display:block;width:min(82%,22rem);height:auto;margin-block:-1rem}.news-home{margin:1.2rem 0 2rem}.news-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:.7rem;margin-bottom:.8rem}.news-heading h2{margin:.1rem 0 0;font-size:clamp(1.45rem,5vw,2rem);line-height:1.2}.news-heading .button{white-space:nowrap}.news-list{display:grid;gap:.65rem}.news-card{min-width:0}.news-card>a{display:grid;grid-template-columns:5.25rem minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.75rem;background:#fff;color:inherit;border:1px solid var(--line);border-radius:.85rem;text-decoration:none}.news-card>a:hover{border-color:#7b9e90}.news-card img,.news-placeholder{width:100%;height:4.7rem;object-fit:cover;border-radius:.5rem;background:#e3eee8}.news-placeholder{display:grid;place-items:center;color:#356759;font-size:.8rem;font-weight:800;letter-spacing:.12em}.news-card small{display:block;color:#456259;font-size:.76rem}.news-card h2{margin:.12rem 0;font-size:1.02rem;line-height:1.25;overflow-wrap:anywhere}.news-card p{margin:.25rem 0 0;color:#456259;font-size:.86rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-arrow{font-size:1.4rem;color:var(--green)}.news-article{max-width:46rem;margin:0 auto}.news-article h1{font-size:clamp(1.65rem,5.8vw,2.65rem);line-height:1.13;margin:.35rem 0 1rem;overflow-wrap:anywhere}.news-article img{display:block;max-width:100%;height:auto;border-radius:.65rem}.news-cover{width:100%;max-height:26rem;object-fit:cover;margin:0 0 1.2rem}.news-content{line-height:1.7;overflow-wrap:anywhere}.news-content figure{margin:1.2rem 0}.news-content figcaption{font-size:.85rem;color:#456259}.news-content table{display:block;overflow:auto;max-width:100%;border-collapse:collapse}.news-content th,.news-content td{padding:.35rem;border:1px solid var(--line)}.news-content blockquote{margin:1rem 0;border-left:3px solid #7b9e90;padding-left:.9rem}.news-member-login{margin:1.25rem 0}@media(max-width:380px){.news-card>a{grid-template-columns:4.35rem minmax(0,1fr) auto;gap:.6rem;padding:.6rem}.news-card img,.news-placeholder{height:4.1rem}}

.home-greeting{margin:0 auto .9rem;text-align:center;color:#152f2b;font-size:1.35rem;font-weight:750}.back{display:inline-flex;align-items:center;min-height:44px;margin:0 0 1rem;padding:.42rem .85rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--green);font-weight:650;text-decoration:none}.back:hover,.back:active{background:#dcece3;border-color:#8fae9f}

.profile-edit .rows input{width:100%;max-width:100%}.profile-edit .rows label,.profile-edit .rows dd>span{display:block}.profile-edit .rows label+label{margin-top:.4rem}.profile-edit .rows small{display:block;color:#456259}

.membership-card .rows div{grid-template-columns:minmax(max-content,1fr) minmax(0,1.25fr);gap:1rem}
.club-logo-art{position:relative;display:block;width:min(82%,22rem);margin-block:-1rem}
.club-logo .club-logo-art img{display:block;width:100%;height:auto;margin:0}
.club-logo-wordmark{clip-path:polygon(22% 62%,34% 55%,100% 55%,100% 100%,22% 100%)}
.club-logo-reveal{position:absolute;inset:0;animation:club-logo-swing 6s ease-in-out infinite}
.club-logo-reveal img{clip-path:polygon(0 0,100% 0,100% 55%,34% 55%,22% 62%,22% 100%,0 100%)}
@keyframes club-logo-swing{
  0%,100%{clip-path:inset(0 100% 0 0);opacity:0}
  2%{clip-path:inset(0 100% 0 0);opacity:1}
  40%,82%{clip-path:inset(0 0 0 0);opacity:1}
  96%{clip-path:inset(0 0 0 0);opacity:0}
  99%{clip-path:inset(0 100% 0 0);opacity:0}
}
@media(prefers-reduced-motion:reduce){.club-logo-reveal{animation:none}}

.logo-season{position:absolute;left:56%;right:0;top:6%;height:45%;pointer-events:none;overflow:hidden;z-index:2;font-size:clamp(.8rem,4.3vw,1.55rem);line-height:1}
.logo-season>span{display:none;position:absolute}
.logo-season[data-logo-scene="winter"] .logo-snow,.logo-season[data-logo-scene="nikolaus"] :is(.logo-snow,.logo-nikolaus),.logo-season[data-logo-scene="christmas"] :is(.logo-snow,.logo-sleigh),.logo-season[data-logo-scene="easter"] .logo-easter,.logo-season[data-logo-scene="spring"] .logo-sky,.logo-season[data-logo-scene="summer"] .logo-sky,.logo-season[data-logo-scene="autumn"] .logo-leaves{display:block}
.logo-snow,.logo-leaves,.logo-sky{inset:0}
.logo-snow i{position:absolute;left:var(--x);top:-8%;width:4%;aspect-ratio:1;background:#fff;border:1px solid #bdd9e3;border-radius:50%;animation:logo-snowfall 8s linear infinite;animation-delay:var(--delay)}
.logo-snow i:nth-child(1){--x:6%;--delay:-1s}.logo-snow i:nth-child(2){--x:24%;--delay:-3s}.logo-snow i:nth-child(3){--x:40%;--delay:-5s}.logo-snow i:nth-child(4){--x:61%;--delay:-6.4s}.logo-snow i:nth-child(5){--x:82%;--delay:-2.8s}
.logo-snow b{position:absolute;left:0;top:85%;width:15%;height:7%;border-radius:80% 75% 45% 50%;background:#f5fcff;box-shadow:0 0 0 1px #c9e0e7;transform:rotate(35deg);animation:logo-snowbank 3s ease-out both}
.logo-nikolaus{left:46%;bottom:18%;animation:logo-peek 10s ease-in-out infinite}.logo-nikolaus i{display:inline-block;font-style:normal;transform-origin:bottom center;animation:logo-wave .65s ease-in-out infinite alternate}
.logo-sleigh{top:18%;right:3%;font-size:.7em;white-space:nowrap;animation:logo-sleigh-flight 11s ease-in-out infinite}
.logo-easter{left:35%;bottom:15%;animation:logo-peek 10s ease-in-out infinite}.logo-easter i,.logo-easter b{display:inline-block;font-style:normal;font-size:.62em;filter:hue-rotate(75deg);animation:logo-egg 10s ease-in-out infinite}.logo-easter b{filter:hue-rotate(210deg);animation-delay:.35s}
.logo-sky i,.logo-sky b{position:absolute;font-style:normal;font-weight:normal}.logo-sky i{left:58%;bottom:24%;animation:logo-sunrise 10s ease-in-out infinite}.logo-sky b{left:32%;top:24%;animation:logo-glider 10s ease-in-out infinite}.logo-season[data-logo-scene="summer"] .logo-sky i{filter:hue-rotate(-22deg) saturate(1.5);animation-name:logo-sunset}
.logo-leaves i{position:absolute;top:15%;left:var(--x);font-style:normal;font-size:.8em;animation:logo-leaf 10s ease-in-out infinite;animation-delay:var(--delay)}.logo-leaves i:nth-child(1){--x:18%;--delay:0s}.logo-leaves i:nth-child(2){--x:47%;--delay:-2.4s}.logo-leaves i:nth-child(3){--x:68%;--delay:-4.1s}
@keyframes logo-snowfall{0%,8%{opacity:0;top:-8%;transform:translateX(0)}16%{opacity:1}76%{opacity:1}88%,100%{top:95%;opacity:0;transform:translateX(-.5em)}}
@keyframes logo-snowbank{from{opacity:0;scale:.3 1}to{opacity:1;scale:1}}
@keyframes logo-peek{0%,100%{opacity:0;transform:translateY(.65em)}15%,70%{opacity:1;transform:translateY(0)}86%{opacity:0;transform:translateY(.65em)}}
@keyframes logo-wave{from{transform:rotate(-20deg)}to{transform:rotate(24deg)}}
@keyframes logo-sleigh-flight{0%,100%{transform:translate(120%,.3em);opacity:0}9%{opacity:1}55%{transform:translate(-42%,-.25em);opacity:1}70%,99%{transform:translate(-90%,0);opacity:0}}
@keyframes logo-egg{0%,10%,100%{opacity:0;transform:translateX(.65em) rotate(55deg)}35%,75%{opacity:1;transform:none}}
@keyframes logo-sunrise{0%,100%{opacity:.35;transform:translateY(.55em)}30%,76%{opacity:1;transform:none}}
@keyframes logo-sunset{0%,100%{opacity:.35;transform:translateY(.5em)}15%,48%{opacity:1;transform:none}76%{opacity:.8;transform:translateY(.3em)}}
@keyframes logo-glider{0%,100%{transform:translateX(1.5em);opacity:0}12%{opacity:1}70%{transform:translate(-.95em,.3em);opacity:1}83%,99%{transform:translate(-1.1em,.4em);opacity:0}}
@keyframes logo-leaf{0%,100%{transform:translateY(-.55em) rotate(-55deg);opacity:0}18%{opacity:1}52%,70%{transform:translate(-.4em,1em) rotate(35deg);opacity:1}85%,99%{transform:translate(.6em,1.1em) rotate(110deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.logo-season *{animation:none!important}.logo-snow i{display:none}.logo-leaves i:nth-child(2){top:48%}.logo-leaves i:nth-child(3){top:30%}}
.home-points{margin:-.6rem auto 1rem;text-align:center;color:#456259}
.weather-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.75rem;margin-bottom:1rem}
.weather-widgets img,.weather-camera img{display:block;width:100%;height:auto}
.weather-camera img{border-radius:.65rem;margin-bottom:.55rem}
.outage-popup{width:min(calc(100% - 2rem),29rem);max-height:calc(100% - 2rem);color:#152f2b;box-shadow:0 12px 40px #152f2b35}
.outage-popup::backdrop{background:#152f2b85}
.outage-popup h2{margin-top:0;line-height:1.2}
.outage-popup [role=status]:empty{display:none}
.android-standalone{overscroll-behavior-y:contain}
#feedback-text{display:block;width:100%;margin-top:.35rem;padding:.6rem;border:1px solid #84998d;border-radius:.45rem;font:inherit;resize:vertical}

#tandem-admin-calendar .fc-header-toolbar {
  gap:.65rem;
  margin-bottom:1rem;
}
#tandem-admin-calendar .fc-header-toolbar .fc-toolbar-title {
  margin:0;
  font-size:clamp(1.2rem,4vw,1.5rem);
  line-height:1.25;
  text-align:center;
}
#tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk {
  display:flex;
  align-items:center;
  gap:.35rem;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-primary {
  min-height:44px;
  padding:.4rem .65rem;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:#fff;
  color:var(--green);
  font:inherit;
  font-size:.9rem;
  font-weight:650;
  white-space:nowrap;
  box-shadow:none;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-primary:not(:disabled):hover {
  background:#eef3ef;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-primary:not(:disabled).fc-button-active {
  background:#dcece3;
  border-color:#91b2a5;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-primary:focus-visible {
  outline:2px solid var(--green);
  outline-offset:2px;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-primary:disabled {
  opacity:.55;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-group {
  gap:.2rem;
}
#tandem-admin-calendar .fc-header-toolbar .fc-button-group > .fc-button,
#tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk > .fc-button {
  margin:0;
}
#tandem-admin-calendar .fc-header-toolbar .fc-prev-button,
#tandem-admin-calendar .fc-header-toolbar .fc-next-button {
  min-width:44px;
  padding-inline:.35rem;
}
@media(max-width:640px) {
  #tandem-admin-calendar .fc-header-toolbar {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) {
    grid-column:1/-1;
    grid-row:1;
    justify-content:center;
  }
  #tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk:last-child {
    justify-content:flex-end;
  }
}
@media(max-width:420px) {
  #tandem-admin-calendar .fc-header-toolbar {
    grid-template-columns:1fr;
  }
  #tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk:first-child,
  #tandem-admin-calendar .fc-header-toolbar .fc-toolbar-chunk:last-child {
    justify-content:center;
  }
}
