:root{--booking-primary:var(--tenant-primary,#2563eb);--booking-on-primary:var(--tenant-text-on-primary,#fff);--booking-radius:var(--tenant-radius,16px);--booking-radius-sm:var(--tenant-radius-sm,10px);--booking-surface:#fff;--booking-border:#00000014;--booking-muted:#64748b}.bookings-page,.booking-detail-page{max-width:1100px;font-family:var(--tenant-font-body,inherit);margin:0 auto;padding:1.5rem 1rem 4rem}.bookings-settings-page{max-width:1200px}.nav-header-content{z-index:1;position:relative}.bookings-section-header{justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem 0 1rem;display:flex}.bookings-section-title{color:#1e293b;margin:0;font-size:1.4rem;font-weight:800}.bookings-section-subtitle{color:var(--booking-muted);margin:.25rem 0 0}.bookings-hero{background:var(--tenant-gradient-header,var(--booking-primary));color:var(--booking-on-primary);border-radius:var(--booking-radius);box-shadow:var(--tenant-shadow-primary,0 8px 25px #00000026);margin-bottom:2rem;padding:2.5rem 2rem}.bookings-hero-title{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;font-family:var(--tenant-font-heading,inherit);margin:0}.bookings-hero-subtitle{opacity:.9;margin:.5rem 0 0}.bookings-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.booking-card{background:var(--booking-surface);border:1px solid var(--booking-border);border-radius:var(--booking-radius);color:inherit;flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.booking-card:hover{box-shadow:var(--tenant-shadow-md,0 12px 30px #0000001f);transform:translateY(-4px)}.booking-card-header{background:var(--tenant-gradient-card,#0000000a);padding:1.25rem 1.25rem 1rem}.booking-card-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--booking-primary);color:var(--booking-on-primary);border-radius:999px;padding:.2rem .6rem;font-size:.7rem;font-weight:700;display:inline-block}.booking-card-title{margin:.6rem 0 0;font-size:1.2rem;font-weight:700}.booking-card-body{flex-direction:column;flex:1;gap:.75rem;padding:1rem 1.25rem 1.25rem;display:flex}.booking-card-desc{color:var(--booking-muted);margin:0;font-size:.9rem}.booking-card-cta{color:var(--booking-primary);margin-top:auto;font-weight:700}.bookings-empty{text-align:center;color:var(--booking-muted);padding:4rem 1rem}.bookings-empty i{opacity:.5;margin-bottom:1rem;font-size:2.5rem;display:block}.booking-detail-grid{grid-template-columns:1fr 340px;align-items:start;gap:1.75rem;display:grid}@media (width<=860px){.booking-detail-grid{grid-template-columns:1fr}}.booking-back{color:var(--booking-muted);margin-bottom:1rem;font-size:.85rem;text-decoration:none;display:inline-block}.booking-back:hover{color:var(--booking-primary)}.booking-detail-title{margin:.5rem 0;font-size:clamp(1.5rem,3vw,2rem);font-weight:800}.booking-detail-desc{color:var(--booking-muted);max-width:60ch}.booking-detail-tz{color:var(--booking-muted);font-size:.8rem}.booking-policy{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);background:rgba(var(--tenant-primary-rgb,37, 99, 235), .04);margin-top:1.25rem;padding:1rem 1.15rem}.booking-policy-title{align-items:center;gap:.45rem;margin:0 0 .5rem;font-size:.9rem;font-weight:700;display:flex}.booking-policy-list{color:var(--booking-muted);margin:0;padding-left:1.1rem;font-size:.85rem}.booking-policy-list li+li{margin-top:.35rem}.booking-step{margin-top:2rem}.booking-step-title{align-items:center;gap:.6rem;margin-bottom:1rem;font-size:1.05rem;font-weight:700;display:flex}.booking-step-num{background:var(--booking-primary);width:1.6rem;height:1.6rem;color:var(--booking-on-primary);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.booking-types{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}.booking-type{text-align:left;background:var(--booking-surface);border:2px solid var(--booking-border);border-radius:var(--booking-radius-sm);cursor:pointer;flex-direction:column;gap:.35rem;padding:.85rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex}.booking-type:hover{border-color:var(--booking-primary)}.booking-type.is-selected{border-color:var(--booking-primary);box-shadow:0 0 0 3px rgba(var(--tenant-primary-rgb,37, 99, 235), .18)}.booking-type-name{font-weight:700}.booking-type-meta{color:var(--booking-muted);justify-content:space-between;font-size:.85rem;display:flex}.booking-type-price{color:var(--booking-primary);font-weight:700}.booking-date-nav{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.booking-date-btn{border:1px solid var(--booking-border);background:var(--booking-surface);cursor:pointer;border-radius:50%;width:2.4rem;height:2.4rem}.booking-date-btn:hover:not(:disabled){border-color:var(--booking-primary);color:var(--booking-primary)}.booking-date-btn:disabled{opacity:.4;cursor:not-allowed}.booking-date-current{text-align:center;flex:1;position:relative}.booking-date-header{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.booking-date-label{font-weight:700;display:block}.booking-tz-toggle{border:1px solid var(--booking-border);background:var(--booking-surface);color:var(--booking-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.booking-tz-toggle:hover,.booking-tz-toggle.is-local{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-date-input{color:var(--booking-muted);text-align:center;cursor:pointer;background:0 0;border:none;font-size:.8rem}.booking-date-tools{gap:.5rem;margin-bottom:1rem;display:flex}.booking-tool-btn{border:1px solid var(--booking-border);background:var(--booking-surface);cursor:pointer;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:600;transition:all .15s}.booking-tool-btn:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-calendar{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);margin-bottom:1rem;padding:.85rem}.booking-cal-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.booking-cal-title{font-weight:700}.booking-cal-nav{border:1px solid var(--booking-border);background:var(--booking-surface);cursor:pointer;border-radius:50%;width:2rem;height:2rem}.booking-cal-nav:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-cal-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.booking-cal-dow{text-align:center;color:var(--booking-muted);padding-bottom:.25rem;font-size:.7rem;font-weight:700}.booking-cal-empty{aspect-ratio:1}.booking-cal-day{aspect-ratio:1;border-radius:var(--booking-radius-sm);cursor:pointer;color:var(--booking-muted);background:0 0;border:1px solid #0000;font-size:.85rem;font-weight:600;position:relative}.booking-cal-day.has-availability{color:inherit;border-color:var(--booking-border)}.booking-cal-day.has-availability:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-cal-day[disabled]{opacity:.35;cursor:not-allowed}.booking-cal-dot{background:var(--booking-primary);border-radius:50%;width:.3rem;height:.3rem;position:absolute;bottom:.3rem;left:50%;transform:translate(-50%)}.booking-slots{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;display:grid}.booking-slot{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);background:var(--booking-surface);cursor:pointer;padding:.7rem .5rem;font-weight:600;transition:all .15s;position:relative}.booking-slot:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-slot.is-selected{background:var(--booking-primary);color:var(--booking-on-primary);border-color:var(--booking-primary)}.booking-slot.is-unavailable{opacity:.45;cursor:not-allowed}.booking-waitlist-wrap{border:1px dashed var(--booking-border);border-radius:var(--booking-radius-sm);text-align:center;margin-top:1rem;padding:1rem}.booking-waitlist-btn{border:1px solid var(--booking-primary);color:var(--booking-primary);cursor:pointer;background:0 0;border-radius:999px;margin-top:.65rem;padding:.5rem 1.1rem;font-weight:700;transition:all .15s}.booking-waitlist-btn:hover:not(:disabled){background:var(--booking-primary);color:var(--booking-on-primary)}.booking-waitlist-btn:disabled{opacity:.5;cursor:not-allowed}.booking-slot-left{opacity:.75;margin-top:.15rem;font-size:.65rem;font-weight:600;display:block}.booking-hint,.booking-loading{color:var(--booking-muted);grid-column:1/-1;font-size:.9rem}.booking-summary{background:var(--booking-surface);border:1px solid var(--booking-border);border-radius:var(--booking-radius);box-shadow:var(--tenant-shadow-sm,0 2px 8px #0000000f);padding:1.5rem;position:sticky;top:1.5rem}.booking-summary-title{margin:0 0 1rem;font-size:1.1rem;font-weight:700}.booking-summary-empty{color:var(--booking-muted);font-size:.9rem}.booking-summary-line{font-weight:600}.booking-summary-when{color:var(--booking-muted);margin-top:.25rem;font-size:.9rem;font-weight:500}.booking-cart-item{border-bottom:1px solid var(--booking-border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem 0;display:flex}.booking-cart-item:last-child{border-bottom:none}.booking-cart-main{flex:1;min-width:0}.booking-cart-remove{border:1px solid var(--booking-border);background:var(--booking-surface);width:1.75rem;height:1.75rem;color:var(--booking-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;transition:all .15s;display:inline-flex}.booking-cart-remove:hover{color:#dc2626;background:#fef2f2;border-color:#dc2626}.booking-step-add{margin-top:1.5rem}.booking-slot-actions{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);background:rgba(var(--tenant-primary-rgb,37, 99, 235), .04);flex-direction:column;gap:.85rem;padding:1.15rem 1.25rem;display:flex}.booking-slot-actions .booking-qty-row{border-top:none;margin-top:0;padding-top:0}.booking-slot-actions .booking-add-btn{margin-top:0}.booking-add-btn{border:1px dashed var(--booking-primary);width:100%;color:var(--booking-primary);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;margin-top:.85rem;padding:.65rem 1rem;font-size:.9rem;font-weight:700;transition:all .15s;display:inline-flex}.booking-add-btn:hover:not(:disabled){background:rgba(var(--tenant-primary-rgb,37, 99, 235), .08)}.booking-add-btn:disabled{opacity:.45;cursor:not-allowed}.booking-pricing-breakdown{border-top:1px solid var(--booking-border);margin-top:.85rem;padding-top:.85rem}.booking-pricing-row{color:var(--booking-muted);justify-content:space-between;align-items:center;margin-top:.35rem;font-size:.88rem;display:flex}.booking-turnstile-wrap{margin-top:1rem}.booking-qty-row,.booking-total-row{border-top:1px solid var(--booking-border);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;display:flex}.booking-qty-controls{align-items:center;gap:.5rem;display:flex}.booking-qty-btn{border:1px solid var(--booking-border);background:var(--booking-surface);cursor:pointer;border-radius:50%;width:2rem;height:2rem;font-size:1.1rem}.booking-qty-btn:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-qty-input{text-align:center;background:0 0;border:none;width:2.5rem;font-weight:700}.booking-total{color:var(--booking-primary);font-size:1.3rem;font-weight:800}.booking-card-wrap{margin-top:1rem}.booking-card-label{color:var(--booking-muted);margin-bottom:.4rem;font-size:.8rem;font-weight:600;display:block}.booking-card-element{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);padding:.75rem}.booking-card-errors{color:#dc2626;margin-top:.4rem;font-size:.8rem}.booking-pay-btn{background:var(--booking-primary);width:100%;color:var(--booking-on-primary);cursor:pointer;border:none;border-radius:999px;margin-top:1.25rem;padding:.9rem 1rem;font-size:1rem;font-weight:700;transition:opacity .15s,transform .15s}.booking-pay-btn:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.booking-pay-btn:disabled{opacity:.5;cursor:not-allowed}.booking-feedback{border-radius:var(--booking-radius-sm);align-items:flex-start;gap:.6rem;margin-top:1rem;padding:.85rem 1rem;font-size:.9rem;display:flex}.booking-error{color:#b91c1c;background:#fef2f2}.booking-success{color:#15803d;background:#f0fdf4}.booking-success i{font-size:1.2rem}.booking-success p{margin:.2rem 0 0;font-size:.85rem}.booking-success-actions{align-items:center;gap:.85rem;margin-top:.6rem;display:flex}.booking-success-link{color:var(--booking-primary);font-size:.85rem;font-weight:600;text-decoration:none}.booking-success-link:hover{text-decoration:underline}.booking-success-again{border:1px solid var(--booking-border);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .85rem;font-size:.8rem;font-weight:600}.booking-success-again:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-detail-page.is-confirmed .booking-detail-grid{display:none}.booking-confirmed{max-width:640px;margin:0 auto}.booking-confirmed-card{background:var(--booking-surface);border:1px solid var(--booking-border);border-radius:var(--booking-radius);box-shadow:var(--tenant-shadow-sm,0 2px 8px #0000000f);padding:clamp(1.5rem,4vw,2.25rem)}.booking-confirmed-header{border-bottom:1px solid var(--booking-border);align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:flex}.booking-confirmed-header i{color:#15803d;flex-shrink:0;margin-top:.15rem;font-size:2rem}.booking-confirmed-title{color:#15803d;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:800}.booking-confirmed-msg{color:var(--booking-muted);margin:.35rem 0 0;font-size:.95rem}.booking-confirmed-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--booking-muted);margin:0 0 .75rem;font-size:.85rem;font-weight:700}.booking-confirmed-items{margin-bottom:1.25rem}.booking-confirmed-item{border-bottom:1px solid var(--booking-border);padding:.85rem 0}.booking-confirmed-item:last-child{border-bottom:none}.booking-confirmed-item-title{font-size:1rem;font-weight:700}.booking-confirmed-item-meta{color:var(--booking-muted);margin-top:.25rem;font-size:.9rem}.booking-confirmed-pricing{border-top:1px solid var(--booking-border);padding-top:1rem}.booking-confirmed-total-row{border-top:2px solid var(--booking-border);margin-top:.5rem;padding-top:.75rem}.booking-confirmed-actions{border-top:1px solid var(--booking-border);flex-wrap:wrap;gap:.65rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.booking-confirmed-btn{border-radius:var(--booking-radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1.15rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:opacity .15s,transform .15s;display:inline-flex}.booking-confirmed-btn-primary{background:var(--booking-primary);color:var(--booking-on-primary);border:none}.booking-confirmed-btn-primary:hover{opacity:.95;color:var(--booking-on-primary);transform:translateY(-1px)}.booking-confirmed-btn-secondary{color:var(--booking-primary);border:1px solid var(--booking-border);background:0 0}.booking-confirmed-btn-secondary:hover{border-color:var(--booking-primary);color:var(--booking-primary)}.booking-tabs{border-bottom:1px solid var(--booking-border);gap:.5rem;margin-bottom:1rem;display:flex}.booking-tab{color:var(--booking-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.65rem 1rem;font-size:.9rem;font-weight:700;transition:color .15s,border-color .15s;display:inline-flex}.booking-tab:hover{color:var(--booking-primary)}.booking-tab.is-active{color:var(--booking-primary);border-bottom-color:var(--booking-primary)}.booking-tab-count{background:rgba(var(--tenant-primary-rgb,37, 99, 235), .12);color:var(--booking-primary);border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.booking-tab-panel[hidden]{display:none}.bookings-empty-compact{padding:2rem 1rem}.my-booking-row.is-past{border-left-color:var(--booking-muted);opacity:.92}.my-bookings-list{flex-direction:column;gap:.85rem;display:flex}.my-booking-row{background:var(--booking-surface);border:1px solid var(--booking-border);border-left:4px solid var(--booking-primary);border-radius:var(--booking-radius-sm);flex-direction:column;padding:1rem 1.25rem;transition:opacity .2s;display:flex}.my-booking-main{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.my-booking-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem .75rem;display:flex}.my-booking-primary-actions,.my-booking-manage-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.my-booking-action{border:1px solid var(--booking-border);background:var(--booking-surface);color:var(--booking-primary);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.my-booking-action:hover{border-color:var(--booking-primary);color:var(--booking-primary);text-decoration:none}.my-booking-action-primary{background:var(--booking-primary);border-color:var(--booking-primary);color:var(--booking-on-primary)}.my-booking-action-primary:hover{color:var(--booking-on-primary);filter:brightness(.95)}.my-booking-wallet{border:0;border-radius:8px;justify-content:center;align-items:center;min-height:34px;text-decoration:none;transition:transform .15s;display:inline-flex}.my-booking-wallet:hover{transform:translateY(-1px)}.my-booking-wallet img{width:auto;height:34px;display:block}.my-booking-apple-wallet img{min-width:112px}.my-booking-google-wallet img{min-width:142px}.my-booking-reschedule{border:1px solid var(--booking-border);background:var(--booking-surface);color:var(--booking-primary);cursor:pointer;border-radius:999px;padding:.45rem 1rem;font-weight:600;transition:all .15s}.my-booking-reschedule:hover{border-color:var(--booking-primary)}.reschedule-panel{border-top:1px dashed var(--booking-border);margin-top:.85rem;padding-top:.85rem}.reschedule-label{color:var(--booking-muted);margin-bottom:.65rem;font-size:.8rem;font-weight:600;display:block}.reschedule-panel .booking-slot-picker{flex-direction:column;gap:.75rem;display:flex}.reschedule-panel .booking-detail-tz{color:var(--booking-muted);margin:0;font-size:.8rem}.my-booking-row.is-cancelled{opacity:.55;border-left-color:var(--booking-muted)}.my-booking-title{margin:0 0 .25rem;font-size:1.05rem;font-weight:700}.my-booking-when{color:var(--booking-muted);margin:0;font-size:.9rem}.my-booking-tz{opacity:.8;font-size:.75rem}.my-booking-type{color:var(--booking-muted);margin:.2rem 0 0;font-size:.85rem}.my-booking-cancel{border:1px solid var(--booking-border);background:var(--booking-surface);color:#b91c1c;cursor:pointer;border-radius:999px;padding:.45rem 1rem;font-weight:600;transition:all .15s}.my-booking-cancel:hover:not(:disabled){background:#fef2f2;border-color:#fecaca}.my-booking-cancel:disabled{opacity:.5;cursor:not-allowed}.my-booking-locked{color:var(--booking-muted);font-size:.8rem;font-weight:600}@media (width<=900px){.my-booking-main,.my-booking-actions{align-items:stretch}.my-booking-main{flex-direction:column}.my-booking-primary-actions,.my-booking-manage-actions{justify-content:flex-start}}@media (width<=576px){.my-booking-action,.my-booking-reschedule,.my-booking-cancel{justify-content:center;width:100%}.my-booking-wallet{flex:100%;justify-content:flex-start}}.booking-waiver-wrap{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);background:#f8fafc;margin-top:1rem;padding:1rem}.booking-waiver-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700}.booking-waiver-hint{color:var(--booking-muted);margin:0 0 .75rem;font-size:.9rem}.booking-waiver-document{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);white-space:pre-wrap;background:#fff;max-height:220px;margin-bottom:.75rem;padding:.75rem;font-size:.9rem;line-height:1.5;overflow:auto}.booking-waiver-label{margin:.5rem 0 .25rem;font-size:.85rem;font-weight:600;display:block}.booking-waiver-input{border:1px solid var(--booking-border);border-radius:var(--booking-radius-sm);width:100%;margin-bottom:.35rem;padding:.55rem .65rem}.booking-waiver-signature-shell{margin-top:.35rem}.booking-waiver-canvas{border-radius:var(--booking-radius-sm);touch-action:none;cursor:crosshair;background:#fff;border:1px dashed #94a3b8;width:100%;height:160px}.booking-waiver-clear{color:var(--booking-primary);cursor:pointer;background:0 0;border:none;margin-top:.35rem;font-size:.85rem;text-decoration:underline}.booking-waiver-submit{border-radius:var(--booking-radius-sm);background:var(--booking-primary);width:100%;color:var(--booking-on-primary);cursor:pointer;border:none;margin-top:.75rem;padding:.75rem 1rem;font-weight:700}.booking-waiver-errors{color:#b91c1c;margin-top:.5rem;font-size:.9rem}
