:root{--ink:#102e28;--green:#1d5a4e;--mint:#dff2e9;--lime:#d7ef6c;--cream:#faf8ef;--paper:#fff;--muted:#68736f;--line:#dce4df;--danger:#a62f2a;--shadow:0 18px 50px rgba(16,46,40,.12)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#faf8ef,#edf6f0);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.site-header{background:var(--ink);color:#fff;padding:20px max(20px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{color:#fff;text-decoration:none;font-size:1.35rem;font-weight:900;letter-spacing:.04em}.brand span{color:var(--lime)}.location{font-size:.9rem;color:#c7dbd4}.shell{max-width:1120px;margin:auto;padding:42px 20px 70px}.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:end;margin-bottom:30px}.eyebrow{font-size:.78rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.94;letter-spacing:-.055em;margin:.5rem 0 1rem}h2{font-size:1.7rem;margin:0 0 7px}h3{margin:0 0 10px}.lead,.sub,.help{color:var(--muted);line-height:1.6}.rate-card{background:var(--ink);color:#fff;border-radius:24px;padding:24px;box-shadow:var(--shadow)}.rate{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #ffffff22}.rate strong{color:var(--lime);font-size:1.3rem}.rate-card p{margin:16px 0 0;color:#c7dbd4;font-size:.88rem;line-height:1.5}.panel{background:#fffffff2;border:1px solid #ffffffcc;box-shadow:var(--shadow);border-radius:28px;padding:28px}.progress{display:flex;gap:8px;margin-bottom:25px}.progress span{height:6px;flex:1;border-radius:10px;background:#dfe7e2}.progress .active{background:var(--green)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:8px}.full{grid-column:1/-1}label{font-size:.88rem;font-weight:800}.optional{font-weight:500;color:var(--muted)}input,textarea,select{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #1d5a4e1f}textarea{min-height:92px;resize:vertical}.field small,.help{font-size:.82rem;margin:0}.court-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice,.slot{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;color:var(--ink);font:inherit;font-weight:800;cursor:pointer}.choice{text-align:left}.choice span,.slot small{display:block;color:var(--muted);font-size:.82rem;font-weight:600;margin-top:4px}.choice.selected{background:var(--mint);border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.time-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot{text-align:center;padding:12px 7px}.slot.selected{background:var(--green);border-color:var(--green);color:#fff}.slot.selected small{color:#d6ece4}.slot:disabled,.choice:disabled{background:#f1f3f1;color:#9ba39f;cursor:not-allowed;text-decoration:none}.slot:disabled{text-decoration:line-through}.waiver-box{margin-top:24px;background:var(--cream);border:1px solid #e8e1cd;border-radius:18px;padding:20px}.waiver-copy{max-height:220px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;font-size:.88rem;line-height:1.55}.waiver-copy p{margin-top:0}.waiver-copy ul{margin-bottom:0;padding-left:20px}.check-row{display:flex;align-items:flex-start;gap:11px;margin-top:15px;line-height:1.45}.check-row input{width:19px;height:19px;margin:1px 0 0;accent-color:var(--green)}.summary-card{margin-top:20px;background:var(--cream);border-radius:18px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.summary-card small{display:block;color:var(--muted)}.summary-card strong{display:block;font-size:1.6rem;margin:2px 0}.summary-card div div{font-size:.85rem;color:var(--muted)}button.primary,.secondary{border:0;border-radius:14px;padding:15px 20px;background:var(--green);color:#fff;font:inherit;font-weight:850;cursor:pointer}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#e3ece7;color:var(--ink)}.error{display:none;margin-top:17px;background:#fff0ee;color:var(--danger);padding:13px 15px;border-radius:12px}.error.show{display:block}.payment-panel,.success-panel{display:none;text-align:center}.payment-panel.show,.success-panel.show{display:block}.payment-panel img{display:block;width:min(320px,82vw);aspect-ratio:1;object-fit:contain;margin:18px auto;background:#fff;padding:12px;border:1px solid var(--line);border-radius:20px}.payment-total{font-size:2rem}.reference{display:inline-block;background:var(--cream);padding:10px 14px;border-radius:10px;font-family:ui-monospace,monospace}.timer{font-weight:900;color:var(--danger)}.success-icon{width:72px;height:72px;border-radius:50%;background:var(--mint);display:grid;place-items:center;margin:0 auto 18px;font-size:2rem}footer{text-align:center;color:var(--muted);padding:0 20px 35px;font-size:.85rem}
.site-announcement{max-width:1120px;margin:18px auto 0;padding:14px 18px;border:1px solid #e8c766;border-radius:14px;background:#fff5cd;color:#624900;display:flex;align-items:flex-start;gap:12px;line-height:1.45}.site-announcement[hidden]{display:none}.site-announcement strong{white-space:nowrap}
.admin-shell{max-width:1180px;margin:auto;padding:28px 18px 60px}.admin-bar{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.admin-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.admin-tools .field{min-width:180px}.compact{padding:11px 13px}.admin-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:20px}.booking-list{display:grid;gap:11px}.booking-card{border:1px solid var(--line);border-radius:15px;padding:15px;background:#fff}.booking-top{display:flex;justify-content:space-between;gap:12px}.badge{display:inline-block;padding:4px 8px;border-radius:20px;background:var(--mint);font-size:.75rem;font-weight:800}.badge.pending{background:#fff1c7}.booking-meta{color:var(--muted);font-size:.86rem;line-height:1.55;margin-top:8px}.booking-actions{display:flex;gap:8px;margin-top:12px}.mini{padding:9px 12px!important;font-size:.82rem!important}.block-item{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.modal{position:fixed;inset:0;background:#102e28aa;display:none;align-items:center;justify-content:center;padding:20px;z-index:10}.modal.show{display:flex}.modal-card{width:min(520px,100%);background:#fff;border-radius:20px;padding:22px;box-shadow:var(--shadow)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.admin-body{background:#f6f7f2}.admin-header{padding-top:17px;padding-bottom:17px}.admin-header-title{color:#c7dbd4;font-weight:700}.admin-dashboard{max-width:1440px;margin:auto;padding:24px 24px 60px}.admin-login{display:flex;justify-content:space-between;align-items:end;gap:24px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 24px;margin-bottom:18px}.admin-login h1{font-size:2.15rem;line-height:1;margin:.35rem 0 .55rem;letter-spacing:-.035em}.admin-login p{margin:0}.admin-login-form{display:flex;align-items:end;gap:10px;min-width:min(100%,430px)}.admin-login-form .field{flex:1}.admin-login.authenticated{padding:11px 16px;justify-content:flex-end;background:transparent;border:0}.admin-login.authenticated>div:first-child{display:none}.admin-login.authenticated .field label{display:none}.admin-content[hidden]{display:none}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;align-items:center;gap:15px;box-shadow:0 5px 18px rgba(16,46,40,.05)}.stat-card small{display:block;color:var(--muted);font-weight:750}.stat-card strong{display:block;font-size:1.8rem;line-height:1.1;margin-top:3px}.stat-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;font-size:1.35rem;font-weight:900}.stat-icon.green{background:#e5f5de;color:#278229}.stat-icon.amber{background:#fff0cf;color:#b76d00}.stat-icon.red{background:#fee4e2;color:#b2312d}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.dashboard-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 5px 18px rgba(16,46,40,.05)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.card-heading h2{font-size:1.45rem;margin:0}.card-heading .sub{margin:3px 0 0;font-size:.82rem}.calendar-controls{display:flex;align-items:center;gap:7px}.icon-button{width:37px;height:37px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:1.45rem;cursor:pointer}.calendar-weekdays,.admin-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.74rem;font-weight:800;padding:6px}.calendar-day{min-height:74px;background:#fff;border:0;border-right:1px solid #e7ebe8;border-bottom:1px solid #e7ebe8;padding:8px;text-align:left;color:var(--ink);cursor:pointer}.calendar-day:nth-child(7n+1){border-left:1px solid #e7ebe8}.calendar-day:nth-child(-n+7){border-top:1px solid #e7ebe8}.calendar-day.blank{cursor:default;background:#fafbf9}.calendar-day:not(.blank):hover{background:#f2f8f4}.calendar-day.selected{background:#eaffaf;box-shadow:inset 0 0 0 2px #8ccf35;border-radius:9px}.calendar-day.today strong{text-decoration:underline;text-decoration-color:var(--lime);text-decoration-thickness:3px}.calendar-day>strong{font-size:.9rem}.calendar-markers{display:flex;flex-wrap:wrap;gap:4px;margin-top:13px}.calendar-marker{display:flex;align-items:center;gap:3px;font-size:.7rem;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.dot.paid{background:#2c922e}.dot.pending{background:#ef9700}.dot.blocked{background:#bd3733}.calendar-legend{display:flex;gap:16px;justify-content:flex-end;margin-top:12px;color:var(--muted);font-size:.75rem}.calendar-legend span{display:flex;align-items:center;gap:5px}.lime-button{border:0;border-radius:10px;background:var(--lime);color:var(--ink);font:inherit;font-weight:850;padding:11px 13px;cursor:pointer}.upcoming-list{display:grid;gap:9px;max-height:458px;overflow:auto}.upcoming-group{width:100%;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:13px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px;text-align:left;color:var(--ink);font:inherit;cursor:pointer}.upcoming-group:hover{border-color:#9bb7ad;background:#fafcfb}.upcoming-date strong,.upcoming-date small{display:block}.upcoming-date strong{font-size:1.05rem}.upcoming-date small{color:var(--muted);font-size:.72rem;margin-top:3px}.upcoming-preview{display:grid;gap:5px;min-width:0}.upcoming-preview span{display:flex;align-items:center;gap:5px;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-preview small{color:var(--muted)}.chevron{font-size:1.4rem}.selected-day-card{scroll-margin-top:12px}.date-jump{width:auto;min-width:155px;padding:10px 12px}.day-management-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:18px}.admin-booking-card{padding:17px}.booking-time{font-size:1rem}.admin-booking-card .reference{font-size:.7rem;padding:4px 7px;margin-top:5px}.badge.paid{background:#e5f5de;color:#277b29}.badge.pending{background:#fff0cf;color:#9a5d00}.booking-details{display:grid;gap:3px;color:var(--muted);font-size:.83rem;line-height:1.4;margin-top:11px}.booking-details strong{color:var(--ink);font-size:.93rem}.block-panel{background:#f8faf7;border:1px solid var(--line);border-radius:15px;padding:17px}.single-column{grid-template-columns:1fr}.compact-grid{gap:10px}.current-blocks-title{margin-top:24px}.empty-state{border:1px dashed var(--line);border-radius:13px;padding:24px;text-align:center;color:var(--muted)}
.test-payment{max-width:560px;margin:18px auto;padding:16px;border:1px solid #d6df8b;border-radius:14px;background:#f8fbdc}.test-payment[hidden]{display:none}.test-payment p{margin:6px 0 14px;color:var(--muted);font-size:.87rem;line-height:1.5}.primary-link{display:inline-block;border-radius:12px;padding:12px 16px;background:var(--green);color:#fff;text-decoration:none;font-weight:850}
.court-schedules{display:grid;gap:18px}.schedule-loading{border:1px dashed var(--line);border-radius:14px;padding:24px;text-align:center;color:var(--muted)}.schedule-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 12px}.schedule-tools[hidden],.schedule-message[hidden],.clear-schedule[hidden]{display:none}.schedule-message{flex:1;margin:0;padding:11px 13px;border-radius:11px;background:#fff0ee;color:var(--danger);font-size:.82rem;line-height:1.45;font-weight:700}.clear-schedule{margin-left:auto;border:1px solid var(--green);border-radius:11px;padding:10px 13px;background:#fff;color:var(--green);font:inherit;font-size:.82rem;font-weight:850;cursor:pointer;white-space:nowrap}.clear-schedule:hover{background:var(--mint)}.public-schedule-table{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.public-schedule-row{display:grid;grid-template-columns:minmax(104px,.8fr) repeat(2,minmax(0,1fr));align-items:stretch;border-top:1px solid var(--line)}.public-schedule-row:first-child{border-top:0}.public-schedule-row>div{display:flex;align-items:center;justify-content:center;min-width:0;padding:8px;border-left:1px solid var(--line)}.public-schedule-row>div:first-child{border-left:0}.public-schedule-heading{background:var(--ink);color:#fff;text-align:center}.public-schedule-heading>div{display:grid;gap:2px;padding:12px 8px}.public-schedule-heading small{color:#c7dbd4;font-size:.7rem}.public-schedule-time{background:#f8faf8;color:var(--ink);font-size:.8rem;font-weight:850;text-align:center}.schedule-cell-button{width:100%;min-height:54px;border:1px solid var(--line);border-radius:10px;padding:8px 5px;background:#fff;color:var(--ink);font:inherit;cursor:pointer}.schedule-cell-button strong,.schedule-cell-button small{display:block}.schedule-cell-button strong{font-size:.78rem}.schedule-cell-button small{margin-top:3px;color:var(--muted);font-size:.7rem}.schedule-cell-button:hover:not(:disabled){border-color:var(--green);background:var(--mint)}.schedule-cell-button.selected{border-color:var(--green);background:var(--green);color:#fff}.schedule-cell-button.selected small{color:#d6ece4}.schedule-cell-button:disabled{border-color:transparent;background:#f0f2f0;color:#9ba39f;cursor:not-allowed}.schedule-cell-button:disabled small{color:#9ba39f}.schedule-not-offered{color:#9ba39f}
.rebook-modal-card{width:min(820px,100%);max-height:92vh;overflow:auto}.rebook-selection-status{margin:14px 0 11px;padding:10px 12px;border-radius:10px;background:var(--mint);color:var(--green);font-size:.85rem;font-weight:800}.rebook-selection-status.invalid{background:#fff0ee;color:var(--danger)}.rebook-slot-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rebook-court{border:1px solid var(--line);border-radius:15px;padding:13px;background:#f8faf8}.rebook-court h3{font-size:1rem}.rebook-time-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.rebook-slot{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:9px 6px;cursor:pointer;font:inherit}.rebook-slot strong,.rebook-slot small{display:block}.rebook-slot strong{font-size:.78rem}.rebook-slot small{font-size:.7rem;color:var(--muted);margin-top:3px}.rebook-slot.selected{background:var(--green);border-color:var(--green);color:#fff}.rebook-slot.selected small{color:#d6ece4}.rebook-slot:disabled{background:#eff1ef;color:#a1a7a4;cursor:not-allowed;text-decoration:line-through}.rebook-slot:disabled small{color:#a1a7a4}
.announcement-admin-card{margin-bottom:16px}.announcement-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.announcement-form .field{grid-column:1/-1}.announcement-form textarea{min-height:76px}.announcement-toggle{display:flex;align-items:center;gap:9px;font-weight:750}.announcement-toggle input{width:18px;height:18px;accent-color:var(--green)}.announcement-save-status{color:var(--muted);font-size:.8rem;grid-column:1/-1}.monthly-modal-card{width:min(960px,100%);max-height:92vh;overflow:auto}.monthly-modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.monthly-picker{width:220px;margin:18px 0 12px}.monthly-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:15px}.monthly-summary article{border:1px solid var(--line);border-radius:13px;background:#f8faf8;padding:13px}.monthly-summary small,.monthly-summary strong{display:block}.monthly-summary small{color:var(--muted);font-size:.72rem}.monthly-summary strong{font-size:1.25rem;margin-top:3px}.monthly-booking-list{display:grid;gap:8px}.monthly-booking-row{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:15px;border:1px solid var(--line);border-radius:13px;padding:12px}.monthly-booking-row small,.monthly-booking-row strong{display:block}.monthly-booking-row small{color:var(--muted);font-size:.75rem;margin-top:3px}.monthly-date small{font-family:ui-monospace,monospace}.monthly-payment{text-align:right}.monthly-payment .badge{margin-top:5px}
@media(max-width:980px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.day-management-grid{grid-template-columns:1fr}.upcoming-list{max-height:none}}
@media(max-width:780px){.location,.admin-header-title{display:none}.shell{padding:30px 14px 50px}.hero,.admin-grid{grid-template-columns:1fr}.panel{padding:21px;border-radius:22px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.time-slots{grid-template-columns:repeat(2,1fr)}.schedule-tools{align-items:stretch;flex-direction:column}.clear-schedule{margin-left:0;width:100%}.public-schedule-row{grid-template-columns:78px repeat(2,minmax(0,1fr))}.public-schedule-row>div{padding:6px}.public-schedule-time{font-size:.7rem}.schedule-cell-button{min-height:52px;padding:7px 3px}.schedule-cell-button strong{font-size:.7rem}.schedule-cell-button small{font-size:.66rem}.summary-card{align-items:stretch;flex-direction:column}.summary-card button{width:100%}.admin-dashboard{padding:15px 10px 40px}.admin-login,.admin-login-form{align-items:stretch;flex-direction:column}.admin-login-form{min-width:0;width:100%}.stat-grid{gap:8px}.stat-card{padding:13px;gap:9px}.stat-icon{width:36px;height:36px}.stat-card small{font-size:.7rem}.stat-card strong{font-size:1.45rem}.dashboard-card{padding:14px}.calendar-day{min-height:58px;padding:6px}.calendar-markers{margin-top:8px}.calendar-marker{font-size:.62rem}.upcoming-group{grid-template-columns:67px 1fr auto;padding:10px}.card-heading{align-items:flex-start;flex-wrap:wrap}.date-jump{width:100%}.admin-booking-card .booking-top{align-items:flex-start}}
@media(max-width:780px){.rebook-slot-picker{grid-template-columns:1fr}}
@media(max-width:780px){.site-announcement{margin:12px 12px 0;display:block}.site-announcement strong{display:block;margin-bottom:3px}.announcement-form{grid-template-columns:1fr}.monthly-summary{grid-template-columns:repeat(2,1fr)}.monthly-booking-row{grid-template-columns:1fr}.monthly-payment{text-align:left;display:flex;align-items:center;gap:8px}.monthly-payment .badge{margin-top:0}}
.secondary:disabled{opacity:.5;cursor:not-allowed}
.policy-button{margin-top:14px;border:1px solid var(--green);border-radius:12px;padding:11px 14px;background:#fff;color:var(--green);font:inherit;font-weight:850;cursor:pointer}.policy-button:hover{background:var(--mint)}
.policy-modal[hidden]{display:none}.policy-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.policy-modal-backdrop{position:absolute;inset:0;background:#102e28c7}.policy-modal-card{position:relative;width:min(820px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:22px;box-shadow:0 28px 80px rgba(0,0,0,.3);overflow:hidden}.policy-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}.policy-modal-header h2{margin-top:4px}.policy-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.65rem;line-height:1;cursor:pointer}.policy-document{overflow:auto;padding:22px 26px;color:#243b36;font-size:.91rem;line-height:1.6}.policy-document section+section{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.policy-document h3{color:var(--ink)}.policy-document p{margin:0}.policy-document ul{margin:0;padding-left:21px}.policy-document li+li{margin-top:7px}.policy-modal-actions{padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;background:#fafbf9}.modal-open{overflow:hidden}
@media(max-width:780px){.policy-modal{padding:8px}.policy-modal-card{max-height:96vh;border-radius:17px}.policy-modal-header{padding:18px}.policy-modal-header h2{font-size:1.35rem}.policy-document{padding:18px;font-size:.86rem}.policy-modal-actions{padding:12px 18px}.policy-modal-actions .primary{width:100%}}
.booking-window-note{margin:8px 0 22px;padding:10px 13px;border-left:4px solid var(--lime);background:#f6f9ed;border-radius:0 10px 10px 0;color:var(--muted);font-size:.86rem}.info-section{max-width:1340px;margin:0 auto 50px;padding:0 44px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.info-card{border-radius:22px;padding:26px 28px}.info-card h2{margin:7px 0 12px}.info-card p{line-height:1.65;margin:7px 0}.events-card{background:var(--green);color:#fff}.events-card .eyebrow{color:var(--lime)}.contact-card{background:#fff;border:1px solid var(--line)}.contact-card a{color:var(--green);font-weight:800}.public-schedule-row{grid-template-columns:88px repeat(2,minmax(0,1fr))}
.booking-detail-sticky{position:sticky;top:-22px;z-index:5;margin:-22px -22px 0;padding:18px 22px 14px;background:#fff;border-bottom:1px solid var(--line);border-radius:20px 20px 0 0}.detail-slot-summary{margin-top:20px}.detail-slot-rows{display:grid;gap:8px}.detail-slot-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px 12px}.detail-slot-row span,.detail-slot-row strong,.detail-slot-row small{display:block}.detail-slot-row small{color:var(--muted);margin-top:3px}.detail-slot-row b{text-transform:capitalize;font-size:.76rem;background:var(--mint);border-radius:99px;padding:5px 8px}.detail-slot-row.rebooked{border-color:#b6a5e8;background:#f5f1ff}.detail-slot-row.rebooked b{background:#e7ddff}.detail-slot-row.cancelled{border-color:#e7b3ad;background:#fff4f2}.detail-slot-row.cancelled b{background:#ffdeda;color:#8f2d24}.daily-status.rebooked{background:#f3efff;border-color:#b8a6e9;color:#4a357f}
.detail-error{position:sticky;top:74px;z-index:4;margin:12px 0}.manual-status-details{border:1px solid #b8ccc4;border-radius:13px;padding:0!important;overflow:hidden;background:#fff}.manual-status-details summary{cursor:pointer;padding:15px 16px;background:#f1f8f4;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px}.manual-status-details summary::-webkit-details-marker{display:none}.manual-status-details summary::after{content:"▼";display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-size:.8rem}.manual-status-details[open] summary::after{content:"▲"}.manual-status-summary-copy,.manual-status-details summary strong,.manual-status-details summary span{display:block}.manual-status-details summary strong{color:var(--ink);font-size:.95rem}.manual-status-details summary .closed-hint,.manual-status-details summary .open-hint{color:var(--green);font-size:.78rem;margin-top:4px;font-weight:700}.manual-status-details summary .open-hint{display:none}.manual-status-details[open] summary .closed-hint{display:none}.manual-status-details[open] summary .open-hint{display:block;color:var(--muted);font-weight:500}.manual-status-details[open] summary{border-bottom:1px solid var(--line);background:#f8faf8}.manual-status-details form{padding:0 16px 16px}
.badge.replacement{margin-left:6px;background:#e7ddff;color:#4a357f;font-size:.64rem;vertical-align:middle}
.schedule-cell-button.status-past{background:#f1f2f1;color:#909792;text-decoration:none}.schedule-cell-button.status-past small{color:#9aa09c}.schedule-cell-button.status-blocked{background:#fff3e1;color:#8a5711;text-decoration:none}.schedule-cell-button.status-blocked small{color:#9a6d2d}.daily-status.past{background:#f1f2f1;color:#858d88;border-color:#dfe3e0}
@media(max-width:780px){.info-section{padding:0 14px;grid-template-columns:1fr}.info-card{padding:21px}.public-schedule-row{grid-template-columns:68px repeat(2,minmax(0,1fr))}}
.daily-schedule-card{margin-bottom:16px;padding:0;overflow:hidden}.daily-schedule-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:20px}.daily-schedule-heading h2{margin:0}.daily-schedule-heading .sub{margin:4px 0 0}.daily-date-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.daily-date-controls .date-jump{min-width:148px}.daily-schedule-legend{display:flex;justify-content:flex-end;gap:17px;padding:0 20px 13px;color:var(--muted);font-size:.78rem}.daily-schedule-legend span{display:flex;align-items:center;gap:6px}.daily-legend-dot{width:10px;height:10px;border-radius:50%}.daily-legend-dot.available{background:#43a45f}.daily-legend-dot.booked{background:#dc9c20}.daily-legend-dot.blocked{background:#8b9691}.daily-schedule-grid{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--line)}.daily-schedule-grid>.schedule-loading{grid-column:1/-1}.daily-grid-cell{min-height:62px;padding:9px 12px;border-top:1px solid var(--line);border-left:1px solid var(--line);display:flex;align-items:center}.daily-grid-cell:nth-child(-n+3){border-top:0}.daily-grid-cell:nth-child(3n+1){border-left:0}.daily-grid-head{min-height:52px;justify-content:center;background:#f3f6f3;font-size:1rem;font-weight:850}.daily-grid-head:first-child{justify-content:flex-start}.daily-time{font-size:.95rem;font-weight:850;background:#fbfcfa}.daily-status{width:100%;min-height:42px;border:0;border-radius:10px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--ink);font:inherit}.daily-status strong,.daily-status small{display:block}.daily-status strong{font-size:.92rem}.daily-status small{font-size:.76rem;margin-top:2px;line-height:1.35}.daily-status b{font-size:.75rem}.daily-status.available{background:#e4f5e8;color:#216b39}.daily-status.booked{background:#fff0cd;color:#755000;cursor:pointer}.daily-status.booked:hover{box-shadow:inset 0 0 0 2px #d69a26}.daily-status.blocked{background:#ecefed;color:#56615d}.day-tools{border-top:1px solid var(--line);padding:0 20px 20px}.day-tools summary{padding:16px 0;font-weight:850;color:var(--green);cursor:pointer}.day-tools[open] summary{margin-bottom:5px}.monthly-calendar-panel{border:1px solid var(--line);border-radius:15px;padding:16px;margin-bottom:16px}.monthly-calendar-panel .card-heading{margin-bottom:10px}.upcoming-card{margin-bottom:16px}
@media(max-width:780px){.daily-schedule-heading{align-items:flex-start;flex-direction:column}.daily-date-controls{width:100%;justify-content:flex-start}.daily-date-controls button{flex:1}.daily-date-controls .date-jump{width:100%;order:-1}.daily-schedule-legend{justify-content:flex-start;padding-inline:14px}.daily-schedule-grid{grid-template-columns:86px minmax(0,1fr) minmax(0,1fr)}.daily-grid-cell{padding:7px;min-height:68px}.daily-grid-head{min-height:48px;font-size:.9rem}.daily-time{font-size:.78rem}.daily-status{padding:7px;display:block}.daily-status strong{font-size:.78rem}.daily-status small{font-size:.68rem;overflow-wrap:anywhere}.daily-status b{display:none}.day-tools{padding-inline:14px}.monthly-calendar-panel{padding:10px}}
.admin-action-card{margin-bottom:16px;padding:14px 18px}.admin-action-buttons{display:flex;justify-content:space-between;align-items:center;gap:14px}.admin-search-form{display:flex;gap:8px;flex:1;max-width:620px}.admin-search-form input{padding:11px 13px}.modal-heading-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-form-modal{width:min(980px,100%);max-height:94vh;overflow:auto}.admin-modal-grid{margin-top:18px}.manual-slot-status{padding:10px 12px;border-radius:10px;background:var(--mint);color:var(--green);font-size:.83rem;font-weight:750;margin-bottom:10px}.manual-total{display:flex;justify-content:space-between;align-items:center;gap:15px;background:var(--cream);border-radius:14px;padding:15px 17px;margin-top:17px}.manual-total span,.manual-total small{display:block}.manual-total small{color:var(--muted);margin-top:3px}.manual-total strong{font-size:1.5rem}.search-result-row{width:100%;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px;text-align:left;color:var(--ink);font:inherit;cursor:pointer}.search-result-row:hover{border-color:var(--green);background:#f8fcf9}.search-result-row span strong,.search-result-row span small{display:block}.search-result-row span small{color:var(--muted);font-size:.76rem;margin-top:3px}.booking-detail-modal-card{width:min(1000px,100%);max-height:94vh;overflow:auto}.detail-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.detail-overview article,.finance-breakdown article{border:1px solid var(--line);border-radius:13px;padding:13px;background:#f8faf8}.detail-overview small,.detail-overview strong,.detail-overview span,.finance-breakdown small,.finance-breakdown strong{display:block}.detail-overview small,.finance-breakdown small{color:var(--muted);font-size:.72rem}.detail-overview strong,.finance-breakdown strong{margin-top:3px}.detail-overview span{color:var(--muted);font-size:.8rem;margin-top:4px}.finance-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.detail-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.weather-slot-list{display:flex;flex-wrap:wrap;gap:8px}.weather-slot-choice{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff;font-weight:700}.weather-slot-choice input{width:17px;height:17px;accent-color:var(--green)}.admin-note-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px}.admin-note-form textarea{min-height:74px}.booking-history{display:grid;gap:8px}.history-row{display:flex;justify-content:space-between;gap:18px;border-left:4px solid var(--green);background:#f8faf8;border-radius:9px;padding:11px 13px}.history-row p{margin:4px 0 0;color:var(--muted);font-size:.8rem;line-height:1.45}.history-row time{white-space:nowrap;color:var(--muted);font-size:.72rem}.monthly-payment small{display:block;color:var(--muted);font-size:.7rem;max-width:220px;overflow-wrap:anywhere}
.booking-note-box{border:1px solid #c9ddd5;background:#f2faf6;border-radius:13px;padding:13px;margin:-8px 0 18px}.booking-note-box small{display:block;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.booking-note-box p{margin:6px 0 0;font-weight:700;white-space:pre-wrap}.danger-button{background:#a4362d;color:#fff;border:0;border-radius:12px;font:inherit;font-weight:850;cursor:pointer}.danger-button:hover{background:#82271f}.block-date-notice{display:grid;gap:3px;margin:10px 0 16px;padding:13px 14px;border:2px solid #9ec2b4;border-radius:13px;background:#eef8f3}.block-date-notice small{color:var(--green);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.block-date-notice strong{font-size:1.05rem;color:var(--ink)}.block-date-notice span{color:var(--muted);font-size:.76rem;line-height:1.4}
@media(max-width:780px){.admin-action-buttons,.admin-search-form{align-items:stretch;flex-direction:column}.admin-search-form{max-width:none;width:100%}.search-result-row{grid-template-columns:1fr}.detail-overview,.finance-breakdown{grid-template-columns:1fr}.admin-note-form{grid-template-columns:1fr}.history-row{display:grid}.monthly-modal-heading{flex-wrap:wrap}.modal-heading-actions{width:100%}.modal-heading-actions button{flex:1}}
.policy-button.policy-required{background:var(--green);color:#fff}.policy-button.policy-required:hover{background:#154a40}.policy-button.reviewed{background:#e4f5e8;color:#216b39;border-color:#79b98a}.policy-requirement{margin:8px 0 0;color:var(--muted);font-size:.8rem}.policy-version{margin-bottom:22px!important;padding:10px 12px;border-radius:10px;background:var(--cream);color:var(--muted)}.policy-scroll-hint{color:var(--muted);font-size:.8rem;line-height:1.4}.policy-modal-actions{align-items:center;justify-content:space-between;gap:15px}
@media(max-width:780px){.policy-modal-actions{align-items:stretch;flex-direction:column}}
.booking-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.badge.partial{background:#fff0c7;color:#795600}.badge.cancelled{background:#ffdeda;color:#8f2d24}.cancelled-booking-notice,.partial-booking-notice{display:grid;gap:4px;margin:0 0 16px;padding:14px 16px;border-radius:14px}.cancelled-booking-notice{background:#fff0ee;border:2px solid #d99b94;color:#78251f}.partial-booking-notice{background:#fff8df;border:2px solid #d9bc63;color:#6f5200}.cancelled-booking-notice span,.partial-booking-notice span{font-size:.84rem;line-height:1.45}.is-disabled{opacity:.62}.manual-status-details.is-disabled summary{cursor:not-allowed}
