:root{--gray-1000: #0a0a0a;--gray-950: #0f0f0f;--gray-900: #1c1c1c;--gray-700: #2e2e2e;--gray-500: #888888;--gray-300: #b8b8b8;--gray-50: #efefef;--bg-base: var(--gray-950);--bg-surface: var(--gray-900);--bg-elevated: var(--gray-950);--bg-overlay: var(--gray-1000);--bg-inverse: var(--gray-50);--bg-hover: var(--gray-700);--border: var(--gray-700);--text-primary: var(--gray-50);--text-secondary: var(--gray-300);--text-muted: var(--gray-500);--text-inverse: var(--gray-900);--black: var(--gray-1000);--off-white: var(--bg-base);--white: var(--bg-surface);--light: var(--border);--mid: var(--text-muted);--dark: var(--text-secondary);--near-black: var(--text-primary);--available: #7ec8a0;--available-light: #e8f0eb;--warning: #8a6d2b;--warning-light: #f5f0e3;--danger: #e05252;--danger-light: #f5e8e8;--info: #3b5e9b;--info-light: #e8edf5;--space-xs: .25rem;--space-sm: .5rem;--space-3: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--radius-sm: 2px;--radius-md: 3px;--radius-lg: 4px;--radius-input: 8px;--radius-pill: 100px;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 8px 30px rgba(0,0,0,.12);--shadow-overlay: 0 16px 50px rgba(0,0,0,.25);--accent: #db380f;--focus-ring: 0 0 0 1px var(--accent), 0 0 10px rgba(219, 56, 15, .35);--ease: cubic-bezier(.25, .1, .25, 1);--duration-fast: .15s;--duration-base: .3s;--duration-slow: .6s;--max-width: 920px;--gutter: max(1rem, 4vw)}*{box-sizing:border-box;margin:0;padding:0}input,select,textarea{background:var(--bg-surface);color:var(--text-primary);font-family:inherit;font-size:1rem}input::placeholder,textarea::placeholder{color:var(--text-muted)}.btn-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;line-height:1;-webkit-tap-highlight-color:transparent}.btn-icon:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}body{font-family:Arial,sans-serif;background:var(--bg-base);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-base);line-height:1.5;letter-spacing:-.01em}header{background:var(--bg-overlay);color:var(--text-primary);padding:calc(var(--space-lg) + env(safe-area-inset-top)) max(var(--gutter),env(safe-area-inset-right)) var(--space-lg) max(var(--gutter),env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:12}header .brand h1{font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em}header .brand p{opacity:.5;margin-top:2px;font-size:var(--text-sm);font-weight:400;letter-spacing:.02em}.container{max-width:var(--max-width);margin:0 auto;padding:var(--space-sm) var(--gutter) var(--space-xl)}.mode-banner{border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-sm);font-weight:500;letter-spacing:.02em}.mode-banner.pos{background:var(--info-light);border:1px solid var(--info);color:var(--info)}.date-nav{display:flex;align-items:center;background:var(--bg-surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);width:calc(100% - 2 * var(--gutter));max-width:calc(var(--max-width) - 2 * var(--gutter));margin:0 auto var(--space-xl)}.date-nav-arrow{background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--text-2xl);color:var(--text-muted);padding:var(--space-md) var(--space-sm);width:2.5rem;flex-shrink:0;line-height:1;transition:color var(--duration-fast) var(--ease)}.date-nav-arrow:hover{color:var(--text-primary)}.date-nav-days{display:flex;flex:1;min-width:0}.date-nav-day{background:none;border:none;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;flex:1;min-width:0;padding:var(--space-md) var(--space-xs);gap:3px;position:relative;color:var(--text-muted);transition:color var(--duration-fast) var(--ease)}.date-nav-day:hover{color:var(--text-secondary)}.date-nav-day .day-name{font-size:var(--text-sm);font-weight:500}.date-nav-day .day-date{font-size:var(--text-sm);font-weight:400}.date-nav-day.active{color:var(--text-primary)}.date-nav-day.active .day-name,.date-nav-day.active .day-date{font-weight:700}.date-nav-day.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60%;height:3px;background:var(--text-primary);border-radius:2px 2px 0 0}.week-strip{display:flex;gap:var(--space-xs);justify-content:center;margin-bottom:var(--space-xl);flex-wrap:wrap}.week-strip .day-chip{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;border:1px solid transparent;background:transparent;color:var(--text-muted);transition:all var(--duration-fast) var(--ease)}.week-strip .day-chip:hover{color:var(--text-primary);background:var(--bg-surface)}.week-strip .day-chip.active{background:var(--bg-inverse);color:var(--text-inverse)}.slots-section{padding-top:var(--space-xl)}[data-date]:first-of-type .slots-section{padding-top:0}.slots-section h2{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:0;font-weight:500}.timeline{display:flex;flex-direction:column;gap:var(--space-3);user-select:none;-webkit-user-select:none}.tl-row{display:grid;grid-template-columns:4rem 1fr auto;grid-template-rows:auto auto;column-gap:var(--space-sm);row-gap:var(--space-sm);padding:var(--space-md);background:var(--bg-surface);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-primary);-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease)}@media(hover:hover)and (pointer:fine){.tl-row:hover:not(.disabled){box-shadow:0 0 0 1px var(--border),0 4px 12px #0006;transform:translateY(-1px)}.tl-row:hover:not(.disabled):not(.selected){background:var(--bg-hover)}.tl-row.selected:hover{background:var(--bg-hover);box-shadow:0 0 0 2px var(--text-primary),0 4px 12px #0006;transform:translateY(-1px)}}.tl-row.disabled{opacity:.3;cursor:default}.tl-row.in-progress{border-left:3px solid var(--warning)}.tl-row.in-progress .tl-event-name{color:var(--warning)}.tl-row.selected{background:var(--bg-surface);box-shadow:0 0 0 2px var(--text-primary),0 4px 12px #0006;transform:translateY(-1px)}.tl-row.selected .tl-sub{color:var(--text-secondary)}.tl-row.block-member{border-left:3px solid var(--text-secondary)}.tl-row.block-member.selected{border-left-color:var(--text-primary)}.tl-time-range{grid-column:1;grid-row:1;font-size:var(--text-base);font-weight:700;color:var(--text-primary)}.tl-event-name{grid-column:2;grid-row:1;font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.tl-price{grid-column:3;grid-row:1;font-size:var(--text-lg);font-weight:700;color:var(--text-primary);text-align:right}.tl-sub{grid-column:1 / 3;grid-row:2;font-size:var(--text-sm);color:var(--text-muted)}.slots-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.slots-header h2{margin-bottom:0}.pass-link{font-size:var(--text-sm);font-weight:500;color:var(--text-inverse);background:var(--bg-inverse);text-decoration:none;padding:4px 12px;border-radius:var(--radius-pill);white-space:nowrap;transition:opacity var(--duration-fast) var(--ease)}.pass-link:hover{opacity:.7}.selection-bar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--gutter);background:var(--bg-overlay);border-top:1px solid var(--border);font-size:var(--text-sm)}.selection-bar span{flex:1}.color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;align-items:center;justify-content:center}.modal-overlay.show{display:flex}.modal{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--space-xl);width:90%;max-width:420px;box-shadow:var(--shadow-overlay)}.modal h3{font-size:var(--text-lg);font-weight:500;margin-bottom:var(--space-xs);letter-spacing:-.02em}.modal .modal-date{color:var(--text-muted);margin-bottom:var(--space-lg);font-size:var(--text-base)}.modal .modal-capacity{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-sm);color:var(--text-muted)}.booking-modal{position:relative;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--text-primary);font-size:var(--text-lg);cursor:pointer;font-family:inherit;line-height:1;padding:0}.booking-title{font-size:var(--text-2xl);font-weight:700;margin-top:var(--space-sm);margin-bottom:var(--space-sm);padding-right:var(--space-xl);line-height:1.1}.booking-meta{font-size:var(--text-base);color:var(--text-primary);margin-bottom:var(--space-xs)}.sessions-summary{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.session-summary{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.session-date{font-size:var(--text-base);color:var(--text-primary)}.session-times{font-size:var(--text-sm);color:var(--text-secondary)}.pos-add-hour-btn{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;font-size:var(--text-xs);font-family:inherit;cursor:pointer}.pos-add-hour-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.confirmed-sessions{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.confirmed-session-block{display:flex;flex-direction:column;gap:6px}.confirmed-session-row{display:flex;align-items:flex-start;gap:var(--space-md)}.confirmed-session{display:flex;flex-direction:column}.confirmed-divider{width:1px;align-self:stretch;background:var(--border);flex-shrink:0}.confirmed-visitors{margin:0}.invite-copy-btn{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);padding:6px 12px;font-family:inherit;width:100%;transition:all var(--duration-fast) var(--ease)}.invite-copy-btn:hover{border-color:var(--bg-inverse);color:var(--text-primary)}.booking-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;font-size:var(--text-base);border-bottom:1px solid var(--border)}.booking-row:last-of-type{border-bottom:none}.booking-row-label{color:var(--text-primary)}.booking-row-value{font-weight:600}.booking-total-row{font-weight:700;font-size:var(--text-lg)}.booking-discount-row{color:var(--available);font-size:var(--text-sm)}.booking-field{margin:var(--space-sm) 0}.booking-field label{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:4px}.guest-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.guest-stepper button{background:none;border:none;color:var(--text-primary);font-size:var(--text-lg);font-family:inherit;cursor:pointer;padding:var(--space-xs) var(--space-sm);line-height:1}.guest-stepper span{min-width:2rem;text-align:center;font-size:var(--text-base);font-weight:600;background:var(--text-primary);color:var(--text-inverse);padding:var(--space-xs) var(--space-sm)}.pay-header{padding:var(--space-sm) 0}.pay-panel{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--space-sm);margin-bottom:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.pay-panel-option{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.modal .pay-panel-option{font-size:var(--text-base);margin-bottom:0}.pay-panel-option input[type=radio]{width:16px;height:16px;margin:0;flex-shrink:0}.pay-panel-option.disabled{opacity:.45;cursor:not-allowed}.pay-panel-action{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);text-align:left;padding:4px 0;align-self:flex-start;transition:color var(--duration-fast) var(--ease)}.pay-panel-action:hover{color:var(--text-primary)}.pay-panel-hint{color:var(--text-secondary);font-size:var(--text-sm);margin:4px 0 0 24px}.new-card-section{display:flex;flex-direction:column;gap:var(--space-sm)}.terminal-waiting-msg{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-md) 0;text-align:center}.terminal-amount{font-size:var(--text-2xl);font-weight:500;text-align:center;margin:var(--space-md) 0 var(--space-sm)}.optional-hint{color:var(--text-muted);font-weight:400;font-size:var(--text-xs)}.pos-lookup-hint{display:block;margin-top:var(--space-xs);color:var(--text-muted);font-size:var(--text-xs)}.pos-pass-cancelled{color:var(--warning);font-weight:600}.pos-gym-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.pos-confirm-warn{padding:var(--space-sm) var(--space-md);background:var(--warning-light);color:var(--text-inverse);border-radius:var(--radius-sm)}.waiver-link-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border);gap:var(--space-md)}.waiver-link-row:last-of-type{border-bottom:none}.waiver-link-info{display:flex;flex-direction:column;min-width:0}.waiver-link-info strong{font-size:var(--text-base)}.waiver-link-email{font-size:var(--text-sm);color:var(--text-muted)}.waiver-link-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.waiver-link-actions .btn-secondary-sm{text-decoration:none}.sq-card-message-no-error{display:none!important}.modal .save-card-label{margin:0;font-size:var(--text-sm);color:var(--text-primary)}.pay-options{display:flex;gap:var(--space-xs)}.pay-option{background:none;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-sm);font-family:inherit;cursor:pointer;padding:4px var(--space-sm);transition:all var(--duration-fast) var(--ease)}.pay-option.active{border-color:var(--text-primary);color:var(--text-primary);font-weight:600}.pay-option-placeholder{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.pay-panel-credit:not(:first-child){border-top:1px solid var(--border);padding-top:var(--space-sm);margin-top:var(--space-xs)}.pay-panel-credit+.pay-panel-credit{border-top:none;padding-top:0;margin-top:0}.pay-panel-credit input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0;cursor:pointer}.pay-panel-credit>span{text-box:trim-both cap alphabetic}.pay-panel-sep{border-top:1px solid var(--border)}.credit-amount{color:var(--text-muted);font-size:var(--text-sm)}.coupon-input{flex:1;background:var(--bg-surface);border:1px solid var(--gray-500);border-radius:var(--radius-input);color:var(--text-primary);font-family:inherit;padding:var(--space-sm) var(--space-3);margin:0;outline:none;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.coupon-input:focus{box-shadow:var(--focus-ring)}.coupon-input::placeholder{color:var(--gray-500)}.btn-secondary.coupon-apply{flex-shrink:0;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.booking-divider{border:none;border-top:1px solid var(--border);margin:var(--space-sm) 0}.booking-fine-print{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-md);line-height:1.5}.booking-submit{width:100%;margin-top:var(--space-sm);padding:var(--space-lg) var(--space-xl);font-size:var(--text-lg);font-weight:600}.modal label{display:block;font-size:var(--text-xs);font-weight:500;margin-bottom:4px;color:var(--text-muted)}.modal input:not([type=checkbox]):not([type=radio]),.modal select{width:100%;padding:var(--space-sm) var(--space-3);border:1px solid var(--gray-500);border-radius:var(--radius-input);margin-bottom:var(--space-md);outline:none;transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease);background:var(--bg-surface);color:var(--text-primary);font-family:inherit}.modal input:focus,.modal select:focus{box-shadow:var(--focus-ring)}.modal input::placeholder{color:var(--text-muted)}.guest-section>label,.guest-section-label{display:block;font-size:var(--text-xs);font-weight:500;margin-bottom:4px;color:var(--text-muted)}.guest-count{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-sm)}.guest-row{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xs);align-items:center}.guest-row input{flex:1;padding:var(--space-sm) var(--space-3);border:1px solid var(--gray-500);border-radius:var(--radius-input);font-size:var(--text-sm);font-family:inherit;min-width:0;background:var(--bg-surface);transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.guest-row input:focus{outline:none;box-shadow:var(--focus-ring)}.guest-row input::placeholder{color:var(--text-muted)}.guest-remove-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;margin:-2px -2px -2px 0;line-height:1;flex-shrink:0;transition:color var(--duration-fast) var(--ease)}.guest-remove-btn:hover{color:var(--danger)}.guest-add-btn{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);padding:6px 12px;font-family:inherit;width:100%;margin-top:var(--space-xs);transition:all var(--duration-fast) var(--ease)}.guest-add-btn:hover{border-color:var(--bg-inverse);color:var(--text-primary)}.guest-section{margin-bottom:var(--space-md)}.guest-section .booking-row{border-bottom:none}.guest-count-hint{font-size:var(--text-sm);color:var(--text-muted)}.guest-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-sm)}.guest-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.guest-card-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.guest-row-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs);min-width:0}.guest-row-fields input[type=email]{grid-column:1 / -1}.guest-row-fields input{padding:var(--space-sm) var(--space-3);border:1px solid var(--gray-500);border-radius:var(--radius-input);font-family:inherit;background:var(--bg-surface);color:var(--text-primary);min-width:0;transition:border-color var(--duration-fast) var(--ease)}.guest-row-fields input:focus{outline:none;box-shadow:var(--focus-ring)}.guest-row-fields input::placeholder{color:var(--text-muted)}.guest-row-fields input.invalid{border-color:var(--danger)}.guest-error{grid-column:1 / -1;font-size:var(--text-xs);color:var(--danger);margin-top:2px}.modal-sign-statement{font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-md)}.modal-sign-fields{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-sm);margin:var(--space-md) 0}.modal-sign-field label{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:4px}.booking-modal .waiver-agree label{display:inline;font-size:var(--text-base);font-weight:400;margin-bottom:0;color:var(--text-primary)}.modal-sign-field input{width:100%;padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;background:var(--bg-surface);color:var(--text-primary)}@media(max-width:500px){.modal-sign-fields{grid-template-columns:1fr}}.waiver-links{margin-top:var(--space-md);padding:var(--space-md);background:var(--warning-light);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--text-sm)}.waiver-links p{font-weight:500;margin-bottom:var(--space-sm)}.waiver-links .waiver-link-item{margin-bottom:var(--space-xs);color:var(--text-inverse)}.waiver-links a{color:var(--info);word-break:break-all;font-size:var(--text-xs)}.waiver-link-copy{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-left:var(--space-xs);padding:2px;background:none;border:none;color:var(--info);cursor:pointer;opacity:.8;transition:opacity .15s ease}.waiver-link-copy:hover{opacity:1}.etiquette-card{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-top:var(--space-lg);font-size:var(--text-sm);line-height:1.6}.etiquette-card h4{font-size:var(--text-xs);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-sm) 0;margin:0}.etiquette-card ul{margin:0;padding:0;list-style:none}.etiquette-item{margin:0;padding:var(--space-3) 0;border-top:1px solid var(--border);color:var(--text-secondary)}.etiquette-item strong{color:var(--text-primary);font-weight:600}.etiquette-item.etiquette-expandable{padding:0}.etiquette-toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);width:100%;background:none;border:none;padding:var(--space-3) 0;margin:0;font:inherit;color:var(--text-secondary);text-align:left;cursor:pointer}.etiquette-toggle:hover strong{text-decoration:underline}.etiquette-chevron{flex-shrink:0;color:var(--text-muted);font-size:1.2em;line-height:1.35;transition:transform .18s ease;display:inline-block}.etiquette-chevron.open{transform:rotate(90deg)}.etiquette-memo{margin:0 0 var(--space-3) 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.checkbox-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font-size:var(--text-base)}.checkbox-row input[type=checkbox]{width:1.125rem;height:1.125rem;margin:0;flex-shrink:0}.price-summary{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--space-md);margin-bottom:var(--space-md);font-size:var(--text-base)}.price-summary .line{display:flex;justify-content:space-between;margin-bottom:var(--space-xs);color:var(--text-muted)}.price-summary .total{display:flex;justify-content:space-between;font-weight:600;border-top:1px solid var(--border);padding-top:var(--space-sm);margin-top:var(--space-sm);color:var(--text-primary)}.price-summary .discount{color:var(--available)}.modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.modal-actions button{flex:1}.btn-chip{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-sm) var(--space-sm);font-size:var(--text-base);border-radius:var(--radius-pill);cursor:pointer;font-family:inherit;transition:all var(--duration-fast) var(--ease)}.btn-chip:hover{border-color:var(--text-primary)}.btn-chip-active{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)}.btn-primary,.btn-secondary{padding:.75rem 1.75rem;border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit;font-weight:500;cursor:pointer;transition:opacity var(--duration-fast) var(--ease)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.3;cursor:default}.btn-primary{background:var(--bg-inverse);color:var(--text-inverse);border:none}.btn-primary:hover{opacity:.85}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--text-primary)}.btn-secondary:hover{opacity:.7}.btn-tertiary{background:none;border:none;padding:0;font-size:var(--text-base);font-family:inherit;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;color:var(--text-primary);transition:opacity var(--duration-fast) var(--ease)}.btn-tertiary:hover{opacity:.65}.btn-tertiary:disabled{opacity:.3;cursor:default}.btn-tertiary.on-light{color:var(--text-inverse)}.payment-section{margin:var(--space-sm) 0}.payment-section label:first-child{display:block;margin-bottom:var(--space-xs)}.saved-cards{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-sm)}.card-option{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:var(--text-sm)}.card-option input[type=radio]{margin:0}.card-label{font-family:var(--font-mono, monospace)}.bookings-panel{margin-top:var(--space-2xl);background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-lg);border:1px solid var(--border)}.bookings-panel h2{font-size:var(--text-sm);margin-bottom:var(--space-md);color:var(--text-muted);font-weight:500}.booking-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.booking-item:last-child{border-bottom:none}.booking-item .info{font-size:var(--text-base);line-height:1.6}.booking-item .info .sub,.bookings-panel .empty{color:var(--text-muted);font-size:var(--text-sm)}.bookings-panel .empty a{color:var(--text-primary);text-decoration:underline}.badge{display:inline-block;font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-sm);font-weight:600;vertical-align:middle;margin-left:4px;letter-spacing:.04em}.badge-type{background:var(--bg-elevated);color:var(--text-secondary)}.badge-private{background:var(--danger-light);color:var(--danger)}.badge-gym{background:var(--bg-elevated);color:var(--available)}.badge-waiver{background:var(--warning-light);color:var(--warning)}.gym-discount-note{font-size:var(--text-sm);color:var(--available);margin:var(--space-xs) 0}.booking-actions{display:flex;gap:var(--space-xs);align-items:center}.cancel-btn{background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);padding:4px 10px;font-size:var(--text-sm);cursor:pointer;font-weight:500;white-space:nowrap;transition:all var(--duration-fast) var(--ease)}.cancel-btn:hover{background:var(--danger);color:var(--text-primary)}.reschedule-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:var(--text-sm);cursor:pointer;font-weight:500;white-space:nowrap;transition:all var(--duration-fast) var(--ease)}.reschedule-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-primary)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);right:0;width:max-content;max-width:240px;padding:6px 10px;background:var(--gray-1000);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:400;line-height:1.4;white-space:normal;text-align:left;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease);z-index:20}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-2xl);font-size:var(--text-base)}.toast{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%) translateY(100px);background:var(--bg-inverse);color:var(--text-inverse);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:transform var(--duration-base) var(--ease);z-index:200;letter-spacing:.01em;max-width:min(90vw,32rem);text-align:center;line-height:1.4;box-shadow:var(--shadow-lg)}.toast.show{transform:translate(-50%) translateY(0)}.auth-header{display:flex;align-items:center;gap:var(--space-md)}.auth-user{font-size:var(--text-sm);opacity:.5}.auth-btn{background:none;border:none;padding:0;font-size:var(--text-xs);font-weight:600;font-family:inherit;letter-spacing:.06em;cursor:pointer;color:var(--text-primary);text-decoration:underline;text-underline-offset:3px;transition:opacity var(--duration-fast) var(--ease)}.auth-btn:hover{opacity:.65}.auth-gate{display:flex;align-items:center;justify-content:center;min-height:60vh}.auth-gate-box{text-align:center;background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-3xl) var(--space-2xl);border:1px solid var(--border);max-width:380px}.auth-gate-box h2{font-size:var(--text-lg);font-weight:500;margin-bottom:var(--space-sm);letter-spacing:-.02em}.auth-gate-box p{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-xl);line-height:1.5}.auth-gate-box .btn-primary{display:inline-block}.admin-nav{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.admin-nav a{padding:5px 14px;border-radius:var(--radius-sm);font-size:var(--text-sm);text-decoration:none;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);transition:all var(--duration-fast) var(--ease);letter-spacing:.01em}.admin-nav a:hover{border-color:var(--bg-inverse);color:var(--text-primary)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}.card h2{font-size:var(--text-sm);margin-bottom:var(--space-md);color:var(--text-muted);font-weight:500}.et-list{display:flex;flex-direction:column;gap:var(--space-sm)}.et-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--bg-elevated);border-radius:var(--radius-sm)}.et-item.inactive{opacity:.4}.et-item .et-info{flex:1}.et-item .et-name{font-weight:600;font-size:var(--text-base)}.pass-status-pill{display:inline-block;margin-left:var(--space-xs);padding:1px 8px;border-radius:var(--radius-sm);border:1px solid;font-size:var(--text-xs);font-weight:500;vertical-align:middle}.pass-status-pill-active{background:var(--available-light);border-color:var(--available);color:#3a6a52}.pass-status-pill-cancelled{background:var(--warning-light);border-color:var(--warning);color:var(--warning)}.et-item .et-details{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.et-item .et-actions{display:flex;gap:var(--space-sm)}.et-item .et-actions button{padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;font-weight:500;font-family:inherit;transition:all var(--duration-fast) var(--ease)}.sched-grid{display:flex;flex-direction:column;gap:var(--space-xs)}.sched-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0}.sched-row .day-label{width:100px;font-weight:500;font-size:var(--text-base)}.sched-row input[type=time]{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit}input[type=time],input[type=date]{color-scheme:dark}.sched-row .closed-label{color:var(--text-muted);font-size:var(--text-sm)}.sched-row input[type=checkbox]{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.form-grid .full-width{grid-column:1 / -1}.form-grid .full-width>label.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-sm);width:100%;font-size:var(--text-sm);color:var(--text-primary);font-weight:400;margin-bottom:0;cursor:pointer}.form-grid .full-width>label.checkbox-label input[type=checkbox]{margin-top:2px;flex-shrink:0}.form-grid label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--text-muted);margin-bottom:3px}.form-grid input:not([type=checkbox]),.form-grid select{width:100%;padding:var(--space-sm) var(--space-3);border:1px solid var(--gray-500);border-radius:var(--radius-input);font-family:inherit;background:var(--bg-surface);transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.form-grid select{padding-right:2.5rem}.form-grid input:not([type=checkbox]):focus,.form-grid select:focus{box-shadow:var(--focus-ring);outline:none}.form-grid input[type=number]::-webkit-inner-spin-button,.form-grid input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-grid input[type=number]{-moz-appearance:textfield}.input-suffix-wrap{position:relative;border:1px solid var(--gray-500);border-radius:var(--radius-input);background:var(--bg-surface);transition:border-color var(--duration-fast) var(--ease)}.input-suffix-wrap:focus-within{box-shadow:var(--focus-ring)}.input-suffix-wrap>input{width:100%;padding-right:2rem!important}.input-suffix{position:absolute;right:var(--space-sm);top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:var(--text-sm);pointer-events:none;-webkit-user-select:none;user-select:none}.color-picker-wrap{position:relative;display:inline-block}.color-picker-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--bg-surface);border:1px solid var(--gray-500);border-radius:var(--radius-input);cursor:pointer;height:38px}.color-picker-btn:hover{border-color:var(--text-muted)}.color-swatch{display:inline-block;width:20px;height:20px;border-radius:50%;flex-shrink:0}.color-chevron{font-size:12px;color:var(--text-muted)}.color-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:50;display:grid;grid-template-columns:repeat(5,28px);gap:6px;padding:var(--space-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0006}.color-option{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:#fafafa}.users-list{display:flex;flex-direction:column;gap:var(--space-sm)}.user-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--bg-elevated);border-radius:var(--radius-sm)}.user-item .user-info{flex:1}.user-item .user-name{font-weight:600;font-size:var(--text-base)}.user-item .user-details{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.user-item .user-actions{display:flex;gap:var(--space-sm)}.user-item-link{text-decoration:none;color:inherit;transition:background var(--duration-fast) var(--ease)}.user-item-link:hover{background:var(--off-white)}.user-item .user-arrow{color:var(--text-muted);font-size:var(--text-lg)}.role-badge{display:inline-block;font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-sm);font-weight:600;margin-left:4px;letter-spacing:.04em}.role-admin{background:var(--danger-light);color:var(--danger)}.role-employee{background:var(--info-light);color:var(--info)}.role-customer{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.waiver-container{max-width:600px;margin:0 auto;padding:var(--space-xl) var(--gutter)}.waiver-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xl)}.waiver-card h2{font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;margin-bottom:var(--space-sm)}.waiver-meta{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-xl)}.waiver-text{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--space-lg);margin-bottom:var(--space-xl);font-family:inherit;font-size:var(--text-sm);line-height:1.7;color:var(--text-secondary);max-height:300px;overflow-y:auto}.waiver-text h3{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-sm)}.waiver-text p{margin-bottom:var(--space-md)}.waiver-text ul{margin:0 0 var(--space-md) var(--space-lg)}.waiver-text li{margin-bottom:var(--space-xs)}.waiver-agree{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-lg);font-size:var(--text-base)}.waiver-agree input[type=checkbox]{margin-top:3px;flex-shrink:0}.waiver-btn{width:100%;padding:.7rem;border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;border:none;font-weight:500;background:var(--bg-inverse);color:var(--text-inverse);font-family:inherit;transition:opacity var(--duration-fast) var(--ease)}.waiver-btn:hover{opacity:.7}.waiver-btn:disabled{opacity:.3;cursor:not-allowed}.waiver-done{text-align:center;padding:var(--space-2xl)}.waiver-done h2{margin-bottom:var(--space-sm)}.waiver-done p{color:var(--text-muted);margin-bottom:var(--space-xl)}.waiver-done a{display:inline-block;padding:.6rem 2rem;background:var(--bg-inverse);color:var(--text-inverse);text-decoration:none;border-radius:var(--radius-sm);font-weight:500;font-size:var(--text-base)}.waiver-done a:hover{opacity:.7}.waiver-error{text-align:center;color:var(--danger);padding:var(--space-2xl)}.checkin-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}.checkin-header{margin-bottom:var(--space-md)}.checkin-header h2{font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;margin-bottom:2px}.checkin-meta{font-size:var(--text-sm);color:var(--text-muted)}.checkin-list{display:flex;flex-direction:column;gap:var(--space-sm)}.checkin-item{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-elevated);border-radius:var(--radius-sm);border-left:3px solid var(--warning)}.checkin-item.checked-in{border-left-color:var(--available);opacity:.7}.checkin-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm)}.checkin-info{flex:1}.checkin-info strong{font-size:var(--text-base)}.attendee-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:var(--space-sm)}.attendee-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:var(--text-sm)}.attendee-row.attendee-in .attendee-name{color:var(--text-muted)}.attendee-name{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-primary)}.attendee-status{font-size:var(--text-xs);font-weight:600;color:var(--available);letter-spacing:.04em}.checkin-btn-sm{background:var(--available);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);padding:10px 16px;min-height:44px;min-width:44px;font-size:var(--text-sm);font-weight:600;cursor:pointer;font-family:inherit;transition:opacity var(--duration-fast) var(--ease)}.checkin-btn-sm:hover{opacity:.8}.checkin-details{display:block;font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.checkin-notes{font-size:var(--text-sm);color:var(--text-muted);font-style:italic;margin-top:2px}.checkin-actions{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0}.checkin-btn{background:var(--available);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);padding:6px 16px;font-size:var(--text-sm);font-weight:600;cursor:pointer;font-family:inherit;transition:opacity var(--duration-fast) var(--ease)}.checkin-btn:hover{opacity:.8}.checked-in-badge{font-size:var(--text-xs);font-weight:600;color:var(--available);letter-spacing:.04em}.cancel-btn-sm{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:var(--text-xs);cursor:pointer;font-family:inherit;transition:all var(--duration-fast) var(--ease)}.cancel-btn-sm:hover{color:var(--danger);border-color:var(--danger)}.new-booking-section{margin-bottom:var(--space-xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.section-header h2{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.btn-primary-sm,.btn-secondary-sm,.btn-danger-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);font-family:inherit;font-weight:500;border-radius:var(--radius-sm);border:1px solid;cursor:pointer;transition:opacity var(--duration-fast) var(--ease)}.btn-primary-sm:disabled,.btn-secondary-sm:disabled,.btn-danger-sm:disabled{opacity:.3;cursor:default}.btn-primary-sm{background:var(--bg-inverse);color:var(--text-inverse);border-color:var(--bg-inverse)}.btn-primary-sm:hover:not(:disabled){opacity:.85}.btn-secondary-sm{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-secondary-sm:hover:not(:disabled){border-color:var(--text-primary)}.btn-danger-sm{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-danger-sm:hover:not(:disabled){background:var(--danger);color:var(--text-primary)}.card>.btn-primary-sm,.card>.btn-secondary-sm,.card>.btn-danger-sm{margin-top:var(--space-md)}.btn-new-booking{width:100%;padding:var(--space-md);background:var(--bg-surface);border:1px dashed var(--border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;color:var(--text-muted);cursor:pointer;font-family:inherit;transition:all var(--duration-fast) var(--ease)}.btn-new-booking:hover{border-color:var(--bg-inverse);color:var(--text-primary)}.other-bookings{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg)}.other-bookings h2{font-size:var(--text-sm);color:var(--text-muted);font-weight:500;margin-bottom:var(--space-md)}.other-bookings .checkin-item{margin-bottom:var(--space-sm)}.page-title{font-size:var(--text-2xl);font-weight:500;letter-spacing:-.02em;margin-bottom:var(--space-xs)}.page-subtitle{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-xl)}.pass-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md);margin-bottom:var(--space-2xl)}.pass-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-xl);text-align:center;display:flex;flex-direction:column}.pass-type-badge{display:inline-block;font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-pill);font-weight:600;letter-spacing:.04em;background:var(--bg-elevated);color:var(--text-muted);margin-bottom:var(--space-sm)}.pass-card h3{font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;margin-bottom:var(--space-sm)}.pass-price{font-size:var(--text-2xl);font-weight:600;margin-bottom:var(--space-xs)}.pass-detail{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-xs)}.pass-savings{font-size:var(--text-sm);color:var(--available);font-weight:500;margin-bottom:var(--space-lg)}.pass-buy-btn{width:100%;padding:.6rem;margin-top:auto;background:var(--bg-inverse);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:500;cursor:pointer;font-family:inherit;transition:opacity var(--duration-fast) var(--ease)}.pass-buy-btn:hover{opacity:.7}.pass-buy-btn:disabled{opacity:.3;cursor:not-allowed}@media(max-width:750px){.modal{padding:var(--space-md)}}.staging-banner.svelte-12qhfyh{position:sticky;top:0;z-index:1000;background:#b45309;color:#fff;text-align:center;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .5rem}.staging-roles.svelte-12qhfyh{position:fixed;bottom:1rem;right:1rem;z-index:1000;display:flex;align-items:center;gap:.25rem;background:#1c1c1c;color:#fafafa;border-radius:4px;padding:.4rem .5rem;box-shadow:0 2px 12px #0000004d;font-size:.7rem}.staging-roles-label.svelte-12qhfyh{text-transform:uppercase;letter-spacing:.05em;opacity:.6;margin-right:.25rem}.staging-role-btn.svelte-12qhfyh{background:transparent;color:#fafafa;border:1px solid #444;border-radius:3px;padding:.2rem .5rem;cursor:pointer;text-transform:capitalize;font-size:.7rem}.staging-role-btn.active.svelte-12qhfyh{background:#fafafa;color:#1c1c1c;border-color:#fafafa}.staging-role-btn.svelte-12qhfyh:disabled{opacity:.5;cursor:default}
