:root{--green:#063d2b;--green2:#0b6b3a;--cream:#f7f4ed;--ink:#172019;--line:#d9ded8;--red:#8f2e2e;--gold:#c5a45d}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}.topbar{min-height:68px;background:var(--green);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;gap:20px}.brand{color:white;text-decoration:none;font-family:Georgia,serif;font-weight:700;letter-spacing:.04em}.brand span{display:block;font-size:.72rem;letter-spacing:.12em}.topbar nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.topbar nav a,.linkbutton{color:white;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}.inline{display:inline;margin:0}.hero{background:linear-gradient(145deg,#071b14,#063d2b);color:#fff;text-align:center;padding:72px 20px}.hero-inner{max-width:760px;margin:auto}.badge{width:78px;height:78px;border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:0 auto 22px;font:700 26px Georgia,serif;color:var(--gold)}h1,h2{font-family:Georgia,serif}.hero h1{font-size:clamp(2.4rem,7vw,4.8rem);line-height:.95;margin:0;text-transform:uppercase}.hero p{font-size:1.12rem;margin:22px 0 28px}.button,.smallbutton{display:inline-block;border:0;border-radius:7px;text-decoration:none;font-weight:700;cursor:pointer}.button{padding:13px 22px}.big{padding:15px 28px}.primary,.smallbutton{background:var(--green2);color:white}.secondary{border:1px solid var(--green);color:var(--green);background:white}.full{width:100%}.features{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.features>div{background:#fff;padding:28px 20px;text-align:center}.features strong,.features span{display:block}.features strong{color:var(--green);margin-bottom:5px}.welcome,.panel{max-width:900px;margin:34px auto;padding:28px;background:white;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.05)}main{min-height:calc(100vh - 130px)}footer{text-align:center;background:var(--green);color:white;padding:24px;font-size:.9rem}.narrow{max-width:520px;margin:54px auto;padding:0 18px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px;box-shadow:0 10px 35px rgba(0,0,0,.06)}.card h1{margin-top:0}.muted{color:#69756d}.card label{display:block;font-weight:650;margin:18px 0 7px}.card input,.card textarea,.card select{width:100%;padding:12px;border:1px solid #cbd2cc;border-radius:7px;font:inherit;background:white}.card ul{list-style:none;padding:0}.card fieldset{border:0;padding:0;margin:20px 0}.card legend{font-weight:700;margin-bottom:8px}.card #id_duration div{padding:7px 0}.card #id_duration input{width:auto;margin-right:8px}.errorlist{color:var(--red);font-size:.9rem}.pagehead{text-align:center;padding:34px 18px 14px}.pagehead h1{margin-bottom:5px}.datebar{max-width:700px;margin:0 auto 14px;background:white;border:1px solid var(--line);border-radius:10px;padding:15px 20px;display:flex;justify-content:space-between;align-items:center}.datebar a{text-decoration:none;color:var(--green);font-size:1.5rem}.slotlist{max-width:700px;margin:auto;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white}.slot{min-height:58px;display:grid;grid-template-columns:75px 1fr 75px;align-items:center;padding:8px 14px;border-bottom:1px solid #e9ece9}.slot:last-child{border-bottom:0}.slot time{font-weight:700}.slot div span,.slot div strong{display:block}.slot div span{color:#617067}.slot.taken{background:#f6e5e2}.smallbutton{padding:8px 13px;text-align:center}.note{max-width:700px;margin:16px auto;padding:15px;background:#edf4ed;border-radius:8px;color:#3e5547}.center{text-align:center}.bookingcards{max-width:700px;margin:0 auto 25px;padding:0 16px}.bookingcard{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:10px}.bookingcard strong,.bookingcard span,.bookingcard small{display:block}.bookingcard span{font-size:1.1rem;margin-top:2px}.bookingcard small{color:#6b756e;margin-top:5px}.danger{border:1px solid #d7b5b5;background:white;color:var(--red);border-radius:6px;padding:9px 12px;cursor:pointer}.empty{text-align:center;background:white;border-radius:10px;padding:35px;color:#647168}.message{max-width:700px;margin:18px auto 0;padding:12px 16px;background:#e2f2e7;border:1px solid #b7d9c1;border-radius:8px}@media(max-width:650px){.topbar{padding:12px 16px;align-items:flex-start}.topbar nav{justify-content:flex-end;gap:10px;font-size:.9rem}.features{grid-template-columns:1fr}.hero{padding:54px 18px}.slot{grid-template-columns:62px 1fr 65px;padding:8px}.datebar{margin-left:10px;margin-right:10px}.note{margin-left:10px;margin-right:10px}.bookingcard{align-items:flex-start}.welcome{margin-left:14px;margin-right:14px}}

/* UI v2 */
.eyebrow{margin:0 0 7px;color:var(--green2);font-weight:800;font-size:.78rem;letter-spacing:.12em}.pagehead.compact{padding-bottom:20px}.pagehead.compact h1{font-size:clamp(2rem,5vw,3rem);margin:0}.pagehead.compact p:last-child{margin:8px auto 0;max-width:620px;color:#5f6c64}.datebar>div{text-align:center}.date-kicker{display:block;color:#77837b;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.date-arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center}.date-arrow:hover{background:#eef3ef}.slot.available strong{color:#476355;font-weight:650}.slot.booking-block{background:#f3e7e1;min-height:68px;border-left:4px solid #b96e5e}.slot.booking-block.club-event{background:#f5edcf;border-left-color:var(--gold)}.slot.booking-block time{font-size:1rem}.slot.booking-block div span{font-size:.9rem;color:#6b5b55}.booked-label{justify-self:end;color:#7d5750;font-weight:750;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.slot.booking-block.club-event .booked-label{color:#76611e}.overnight-panel{max-width:700px;margin:16px auto;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.overnight-panel summary{cursor:pointer;list-style:none;padding:16px 20px;font-weight:750;color:var(--green);display:flex;justify-content:space-between;align-items:center}.overnight-panel summary::-webkit-details-marker{display:none}.overnight-panel summary:after{content:'+';font-size:1.3rem}.overnight-panel[open] summary:after{content:'−'}.overnight-panel summary span{font-size:.86rem;font-weight:600;color:#6c796f}.overnight-content{border-top:1px solid var(--line);padding:16px}.overnight-content h2{font-size:1rem;margin:12px 0 8px;color:#536259}.compact-list{border-radius:8px}.booking-page{margin-top:34px}.backlink{display:inline-block;margin:0 0 12px 4px;color:var(--green);font-weight:700;text-decoration:none}.booking-form-card h1{font-size:2.2rem;margin:0 0 4px}.chosen-time{display:flex;align-items:end;justify-content:space-between;gap:16px;background:#edf4ed;border:1px solid #d3e2d5;border-radius:10px;padding:16px 18px;margin:18px 0 24px}.chosen-time span{font-weight:700;color:#52675a}.chosen-time strong{font-family:Georgia,serif;font-size:1.8rem;color:var(--green)}.duration-fieldset{margin-top:0!important}.duration-fieldset legend{font-size:1.05rem;margin-bottom:12px!important}.duration-options{display:grid;gap:9px}.duration-option{display:grid!important;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;margin:0!important;padding:13px 14px;border:1px solid #d7ded8;border-radius:9px;cursor:pointer;background:#fff;font-weight:400!important}.duration-option:hover{border-color:#9eb8a6}.duration-option.selected{border-color:var(--green2);background:#eef7f0;box-shadow:inset 0 0 0 1px var(--green2)}.duration-option input{width:auto!important;margin:0!important;accent-color:var(--green2)}.duration-main{font-weight:750}.duration-end{font-size:.87rem;color:#647168}.note-label{margin-top:24px!important}.booking-summary{margin:24px 0 14px;padding:16px 18px;background:linear-gradient(135deg,#eaf3ea,#f5f8ef);border:1px solid #d1dfd1;border-radius:10px;display:grid;gap:2px}.booking-summary>span{font-size:.72rem;letter-spacing:.1em;font-weight:850;color:#5a7060}.booking-summary strong{font-size:1.04rem}.booking-summary strong#summary-time{font-size:1.35rem;color:var(--green);margin-top:3px}.booking-summary small{color:#607067}.confirm-button{font-size:1rem;padding:14px 20px}.cancel-link{display:block;text-align:center;margin-top:13px;color:#66736b;font-weight:650;text-decoration:none}.message.success{background:#e2f2e7;border-color:#b7d9c1}.message.info{background:#eef2f4;border-color:#d6dfe3}.message.error{background:#f7e4e2;border-color:#e2bbb7;color:#772e28}

@media(max-width:650px){.topbar{align-items:center}.topbar nav a:first-child{display:none}.pagehead.compact{padding-top:26px}.slot{grid-template-columns:58px 1fr 62px}.slot.booking-block{grid-template-columns:58px 1fr 58px}.booked-label{font-size:.68rem}.overnight-panel{margin-left:10px;margin-right:10px}.chosen-time{align-items:center}.chosen-time strong{font-size:1.45rem}.duration-option{grid-template-columns:22px 1fr}.duration-end{grid-column:2}.booking-form-card{padding:24px 20px}.booking-form-card h1{font-size:1.9rem}}

/* UI v3 */
.member-welcome{margin-bottom:6px!important;font-size:1.2rem!important}.member-welcome+ p{margin-top:6px!important}.announcement-wrap{max-width:900px;margin:34px auto 0;padding:0 14px}.announcement-panel{background:#fff7dd;border:1px solid #dec982;border-left:5px solid var(--gold);border-radius:12px;padding:24px 26px;margin-bottom:14px;box-shadow:0 8px 30px rgba(0,0,0,.04)}.announcement-panel h2{margin:2px 0 8px;font-size:1.45rem}.announcement-panel .eyebrow{color:#765f1f}.announcement-message p{margin:8px 0}.facebook-link{display:inline-block;color:var(--green2);font-weight:750;text-decoration:none;border-bottom:1px solid rgba(11,107,58,.35)}.facebook-link:hover{border-bottom-color:var(--green2)}.summary-member{color:#334b3b;font-size:.95rem!important;margin-bottom:5px}.topbar .linkbutton{white-space:nowrap}@media(max-width:650px){.topbar{flex-wrap:wrap}.topbar nav{width:100%;justify-content:flex-start}.topbar .linkbutton{font-size:.84rem}.announcement-wrap{margin-top:22px}.announcement-panel{padding:20px}}


/* UI v4 */
.brand{display:flex;align-items:center;gap:10px}.nav-logo{width:46px;height:46px;object-fit:contain;flex:0 0 auto}.brand-text{display:block}.brand-text small{display:block;font-size:.72rem;letter-spacing:.12em}.hero-logo{display:block;width:min(220px,48vw);height:auto;margin:0 auto 24px}.today-link{display:block;margin-top:5px;color:var(--green2)!important;font-size:.78rem!important;font-weight:750;text-decoration:underline!important;text-underline-offset:2px}.slot-note{display:block!important;margin-top:4px;color:#4f5f55!important;font-size:.86rem!important;font-style:italic}.booking-note{padding-top:5px;color:#4f5f55!important}.past-section{max-width:700px;margin:46px auto 60px}.past-section>h2,.past-section>p{margin-left:16px;margin-right:16px}.past-section h2{margin-bottom:2px}.past-bookings .bookingcard{background:#f1f0eb;color:#697168}.past-label{font-size:.75rem!important;text-transform:uppercase;letter-spacing:.06em;color:#7a817c}.slot.booking-block{min-height:76px}.slot.booking-block:has(.slot-note){min-height:90px}
@media(max-width:650px){.nav-logo{width:38px;height:38px}.brand-text{font-size:.86rem}.brand-text small{font-size:.6rem}.hero-logo{width:min(180px,52vw)}.past-section{margin-top:38px}.slot-note{font-size:.78rem!important}}

/* v5: additional members */
.member-fieldset { border: 0; padding: 0; margin: 1.7rem 0; }
.member-fieldset legend { font-weight: 700; font-size: 1.05rem; margin-bottom: .3rem; }
.field-help { color: #66736b; margin: 0 0 1rem; font-size: .94rem; }
.member-group + .member-group { margin-top: 1rem; }
.member-group-title { display: block; color: #243d31; font-size: .9rem; margin-bottom: .55rem; }
.member-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.member-option { display: flex; align-items: center; gap: .65rem; padding: .7rem .8rem; border: 1px solid #d9ded9; border-radius: 10px; background: #fff; cursor: pointer; }
.member-option:hover { border-color: #a9b8ad; }
.member-option input { width: 1.1rem; height: 1.1rem; accent-color: #0f563d; flex: 0 0 auto; }
.booking-players { display: block; color: #526158; margin-top: .28rem; }
@media (max-width: 620px) { .member-options { grid-template-columns: 1fr; } }

.participant-label { color: #66736b; font-size: .88rem; white-space: nowrap; }


/* UI v5.1: clearer today navigation and collapsed member picker */
.today-link{display:inline-flex!important;align-items:center;justify-content:center;margin-top:8px;padding:5px 9px;border:1px solid #cbd8ce;border-radius:999px;background:#f5f8f5;color:var(--green2)!important;font-size:.76rem!important;font-weight:750;text-decoration:none!important;line-height:1.15}.today-link:hover{background:#eaf2eb;border-color:#abc0b0}.member-picker{margin:1.7rem 0;border:1px solid #d9ded9;border-radius:10px;background:#fff;overflow:hidden}.member-picker>summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--green);font-weight:750}.member-picker>summary::-webkit-details-marker{display:none}.member-picker>summary:after{content:'+';font-size:1.2rem;line-height:1;color:#66736b}.member-picker[open]>summary:after{content:'−'}.member-picker[open]>summary{border-bottom:1px solid #e2e6e2;background:#f8faf8}.member-picker-action{white-space:nowrap}.member-picker-count{margin-left:auto;color:#66736b;font-size:.82rem;font-weight:650;text-align:right}.member-picker .member-fieldset{margin:0;padding:18px 16px 16px}.member-picker .member-fieldset legend{padding:0}.member-picker .field-help{margin-bottom:1rem}@media(max-width:620px){.member-picker>summary{align-items:flex-start}.member-picker-count{font-size:.76rem}.member-picker-action{white-space:normal}}

/* UI v6: booking amendments and account security */
.booking-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.booking-actions form{margin:0}.smallbutton.secondary{background:white;color:var(--green);border:1px solid #aebdb3}.smallbutton.secondary:hover{background:#f1f6f2}.amend-note{border-left:4px solid var(--gold);background:#fff7dd}.password-form label{display:block;margin:18px 0 7px}.password-form input{width:100%;padding:12px;border:1px solid #cbd2cc;border-radius:7px;font:inherit}.password-form .helptext{display:block;color:#69756d;font-size:.84rem;margin-top:5px}.password-form ul{list-style:disc;padding-left:20px;color:#69756d;font-size:.84rem}@media(max-width:650px){.booking-actions{align-items:stretch;flex-direction:column}.booking-actions .smallbutton,.booking-actions form,.booking-actions .danger{width:100%;text-align:center}}


/* v6.1: read-only 30-day upcoming bookings diary */
.upcoming-wrap{max-width:760px;margin:0 auto 60px;padding:0 16px}.upcoming-day{margin:0 0 28px}.upcoming-day h2{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;padding:0 4px;color:var(--green);font-size:1.45rem}.upcoming-day h2 span{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#758178}.upcoming-list{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.upcoming-booking{display:grid;grid-template-columns:78px 1fr;gap:16px;align-items:start;padding:16px 18px;border-bottom:1px solid #e8ece8}.upcoming-booking:last-child{border-bottom:0}.upcoming-booking.club-event{border-left:4px solid var(--gold);background:#fffaf0}.upcoming-time strong,.upcoming-time span{display:block}.upcoming-time strong{font-size:1.05rem;color:var(--green)}.upcoming-time span{font-size:.84rem;color:#69756d}.upcoming-details>strong{display:block;font-size:1.02rem}.upcoming-details p{margin:5px 0 0;color:#526158;font-size:.92rem}.upcoming-type{display:inline-block;margin-top:4px;padding:2px 7px;border-radius:999px;background:#f1ead5;color:#755f20;font-size:.72rem;font-weight:750}.upcoming-wrap>.empty{max-width:none}
@media(max-width:650px){.upcoming-booking{grid-template-columns:64px 1fr;gap:10px;padding:14px}.upcoming-day h2{font-size:1.25rem}.upcoming-wrap{padding:0 10px}.topbar nav{row-gap:8px}}
