.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative}.btn-sm{padding:8px 16px;font-size:14px}.btn-md{padding:12px 24px;font-size:16px}.btn-lg{padding:16px 32px;font-size:18px}.btn-primary{background:var(--color-primary,#667eea);color:white}.btn-primary:hover:not(.btn-disabled){background:var(--color-primary-dark,#5a67d8)}.btn-secondary{background:var(--color-gray-100,#f3f4f6);color:var(--color-gray-800,#1f2937)}.btn-secondary:hover:not(.btn-disabled){background:var(--color-gray-200,#e5e7eb)}.btn-outline{background:transparent;border:2px solid var(--color-primary,#667eea);color:var(--color-primary,#667eea)}.btn-outline:hover:not(.btn-disabled){background:var(--color-primary,#667eea);color:white}.btn-ghost{background:transparent;color:var(--color-gray-600,#4b5563)}.btn-ghost:hover:not(.btn-disabled){background:var(--color-gray-100,#f3f4f6)}.btn-disabled{opacity:.5;cursor:not-allowed}.btn-full{width:100%}.btn-loading .btn-content{opacity:0}.btn-spinner{position:absolute}.spinner{border-color:transparent currentColor currentColor}.spinner-sm{width:14px;height:14px}.spinner-md{width:20px;height:20px;border-width:2px}.spinner-lg{width:28px;height:28px}.spinner{display:inline-block;border-radius:50%;border-style:solid;border-color:var(--color-primary,#667eea);border-top-color:transparent}.spinner-xs{width:12px;height:12px;border-width:2px}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-md{width:24px;height:24px;border-width:3px}.spinner-lg{width:32px;height:32px;border-width:3px}.spinner-xl{width:48px;height:48px;border-width:4px}.icon{flex-shrink:0;display:inline-block;vertical-align:middle}.timer{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.timer-sm{font-size:12px;padding:3px 8px}.timer-md{font-size:14px;padding:4px 10px}.timer-lg{font-size:16px;padding:6px 12px}.timer-success{background:var(--color-green-100,#d1fae5);color:var(--color-green-700,#047857)}.timer-warning{background:var(--color-yellow-100,#fef3c7);color:var(--color-yellow-700,#b45309)}.timer-error{background:var(--color-red-100,#fee2e2);color:var(--color-red-700,#b91c1c)}.timer-expired{background:var(--color-gray-100,#f3f4f6);color:var(--color-gray-500,#6b7280)}.add-card-form{margin-top:1rem}.add-card-form .form-group{margin-bottom:1rem}.add-card-form .form-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.add-card-form .form-input{width:100%;padding:.875rem 1rem;border:1.5px solid var(--color-gray-200);border-radius:10px;font-size:1rem;color:var(--color-gray-800);background:var(--color-white);transition:all .2s ease;box-sizing:border-box}.add-card-form .form-input:focus{outline:none;border-color:var(--color-tertiary-brand);box-shadow:0 0 0 3px rgba(124,58,237,.1)}.success-right-column .form-input{border-radius:12px}.add-card-form .form-input:disabled{background:var(--color-gray-100);cursor:not-allowed}.add-card-form .form-input::placeholder{color:var(--color-gray-400)}.stripe-card-element-wrapper{padding:.875rem 1rem;border:1.5px solid var(--color-gray-200);border-radius:10px;background:var(--color-white);transition:all .2s ease}.stripe-card-element-wrapper:focus-within{border-color:var(--color-tertiary-brand);box-shadow:0 0 0 3px rgba(124,58,237,.1)}.add-card-form .error-message{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:var(--color-error,#dc2626);font-size:.875rem;margin-top:1rem}.add-card-actions{display:flex;gap:1rem;margin-top:1.5rem}.cancel-button{flex:1 1;padding:.875rem 1rem;border:1.5px solid var(--color-gray-200);border-radius:10px;background:var(--color-white);color:var(--color-gray-500);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cancel-button:hover:not(:disabled){background:var(--color-gray-100);border-color:var(--color-gray-300)}.cancel-button:disabled{cursor:not-allowed;opacity:.5}.save-card-button{flex:2 1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;border:none;border-radius:10px;background:linear-gradient(135deg,var(--color-tertiary-brand) 0,var(--color-tertiary-brand) 100%);color:var(--color-white);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease}.save-card-button:hover:not(:disabled){box-shadow:0 4px 14px rgba(91,33,182,.35)}.save-card-button:disabled{cursor:not-allowed;opacity:.7}.save-card-button .spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-white);border-radius:50%}.price-display{display:flex;align-items:baseline;gap:4px}.price-sm .price-amount{font-size:14px;font-weight:500}.price-md .price-amount{font-size:18px;font-weight:600}.price-lg .price-amount{font-size:24px;font-weight:700}.price-default .price-amount{color:var(--color-gray-900,#111827)}.price-highlight .price-amount{color:var(--color-primary,#667eea)}.price-muted .price-amount{color:var(--color-gray-500,#6b7280)}.price-label{font-size:14px;color:var(--color-gray-600,#4b5563)}.price-breakdown{display:flex;flex-direction:column;gap:8px}.price-row{display:flex;justify-content:space-between;align-items:center}.price-row-label{font-size:14px;color:var(--color-gray-600,#4b5563)}.price-row-amount{font-size:14px;font-weight:500;color:var(--color-gray-900,#111827)}.price-row-highlight .price-row-amount,.price-row-highlight .price-row-label{font-weight:600;color:var(--color-gray-900,#111827)}.payment-method-form{margin-top:1rem}.payment-element-wrapper{padding:.5rem 0;border-radius:10px;background:var(--color-white);min-height:200px}.payment-method-form .error-message{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:var(--color-error,#dc2626);font-size:.875rem;margin-top:1rem}.payment-method-actions{display:flex;gap:1rem;margin-top:1.5rem}.payment-method-form .cancel-button{flex:1 1;padding:.875rem 1rem;border:1.5px solid var(--color-gray-200);border-radius:10px;background:var(--color-white);color:var(--color-gray-500);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.payment-method-form .cancel-button:hover:not(:disabled){background:var(--color-gray-100);border-color:var(--color-gray-300)}.payment-method-form .cancel-button:disabled{cursor:not-allowed;opacity:.5}.save-payment-button{flex:2 1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;border:none;border-radius:10px;background:linear-gradient(135deg,var(--color-tertiary-brand) 0,var(--color-tertiary-brand) 100%);color:var(--color-white);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease}.save-payment-button:hover:not(:disabled){box-shadow:0 4px 14px rgba(91,33,182,.35)}.save-payment-button:disabled{cursor:not-allowed;opacity:.7}.save-payment-button .spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-white);border-radius:50%}.payment-secure-notice{gap:.5rem;margin-top:1rem;padding:.75rem;background:var(--color-gray-50,#f9fafb);color:var(--color-gray-500);font-size:.75rem}.payment-secure-notice svg{color:var(--color-gray-400)}.service-item{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--color-gray-100,#f3f4f6)}.service-item:last-child{border-bottom:none}.service-item-details{flex:1 1;min-width:0}.service-item-name{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 4px;font-size:15px;font-weight:500;color:var(--color-gray-900,#111827)}.service-item-meta{margin:0;font-size:13px;color:var(--color-gray-500,#6b7280)}.service-item-price{font-size:15px;font-weight:600;color:var(--color-gray-900,#111827);white-space:nowrap;margin-left:16px}.service-deposit-badge{margin-left:4px}.provider-link{color:var(--color-tertiary-8,#667eea)}.service-item-compact{padding:8px 0}.service-item-compact .service-item-name{font-size:14px}.service-item-compact .service-item-meta{font-size:12px}.service-item-compact .service-item-price{font-size:14px}.payment-method-section{margin-bottom:1rem;position:relative}.payment-error,.payment-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.payment-error p,.payment-loading p{color:var(--color-gray-500);font-size:.9375rem;margin:0}.payment-loading .spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-tertiary-brand);border-radius:50%}.payment-error{background:#fef2f2;border-radius:10px}.payment-error p{color:var(--color-error,#dc2626)}.payment-error button{padding:.5rem 1rem;border:1px solid var(--color-tertiary-brand);border-radius:8px;background:transparent;color:var(--color-tertiary-8);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.payment-error button:hover{background:var(--color-tertiary-1)}.add-card-title{font-size:1rem;font-weight:600;color:var(--color-gray-800);margin:0 0 1rem}.payment-method-section .error-message{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:var(--color-error,#dc2626);font-size:.875rem;margin-top:1rem}.payment-method-section .success-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#16a34a;font-size:.875rem;margin-bottom:1rem}.payment-method-section .success-message svg{flex-shrink:0;stroke:#16a34a}.page-header{width:100%;background:var(--color-primary-9);position:-webkit-sticky;position:sticky;top:0;z-index:10;flex-shrink:0}.page-header-content{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;padding-top:1rem;padding-bottom:1rem;gap:1rem;max-width:1012px;margin-left:auto;margin-right:auto}.page-header-back{width:40px;height:40px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;color:var(--color-primary-1);padding:0;flex-shrink:0}.page-header-back:active{background:var(--color-primary-8)}.page-header-title{font-size:1.25rem;font-weight:500;font-family:var(--font-heading);color:var(--color-primary-1);margin:0;flex:1 1;text-align:center;white-space:nowrap}.page-header-action{display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-header-action,.page-header-spacer{width:40px;height:40px}.page-header-calendar-btn{width:40px;height:40px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s ease;color:var(--color-primary-1);padding:0}.page-header-calendar-btn:active{opacity:.7}.page-header-mobile-timer{display:none}@media (max-width:1023px){.page-header-mobile-timer{display:flex;align-items:center;justify-content:center;margin-right:30px}.page-header-mobile-timer .countdown-timer{background:rgba(34,197,94,.15);padding:.375rem .75rem;border-radius:20px;font-size:.875rem;font-weight:600}}.payment-form{display:flex;flex-direction:column;gap:24px;width:100%}.payment-element-container{margin-bottom:8px}.payment-error{padding:12px 16px;background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:14px;line-height:1.5}.payment-submit-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 24px;background:linear-gradient(135deg,var(--color-tertiary-brand) 0,#6366f1 100%);color:var(--color-white);border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px rgba(124,58,237,.25)}.payment-submit-button:hover:not(:disabled){box-shadow:0 6px 16px rgba(124,58,237,.35);transform:translateY(-1px)}.payment-submit-button:disabled{opacity:.6;cursor:not-allowed}.payment-submit-button.processing{background:linear-gradient(135deg,#6366f1,#7c3aed)}.payment-submit-button svg{flex-shrink:0}.button-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-white);border-radius:50%}.payment-secure-notice{display:flex;align-items:center;justify-content:center;gap:8px;color:#64748b;font-size:13px;padding:12px;background-color:#f8fafc;border-radius:8px;margin-top:-8px}.payment-secure-notice svg{flex-shrink:0;color:var(--color-success,#10b981)}.payment-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px}.payment-loading p{color:#64748b;font-size:14px;margin:0}.loading-spinner{width:40px;height:40px;border:3px solid rgba(124,58,237,.2);border-top:3px solid var(--color-tertiary-brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.payment-error-container{padding:20px;background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:14px;text-align:center}.bottom-sheet-overlay{top:0;background-color:rgba(0,0,0,.5);z-index:999}.bottom-sheet,.bottom-sheet-overlay{position:fixed;left:0;right:0;bottom:0}.bottom-sheet{background:var(--color-white);border-radius:24px 24px 0 0;z-index:1000;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 -4px 24px rgba(0,0,0,.15)}.bottom-sheet-handle{padding:12px 0 8px;display:flex;justify-content:center;cursor:pointer;flex-shrink:0}.bottom-sheet-handle-bar{width:40px;height:4px;background-color:#e0e0e0;border-radius:2px}.bottom-sheet-content{overflow-y:auto;flex:1 1;padding:0 20px;-webkit-overflow-scrolling:touch}.bottom-sheet-business{display:flex;gap:.875rem;align-items:flex-start;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-gray-200)}.bottom-sheet-business-logo{width:56px;height:56px;border-radius:8px;object-fit:cover;flex-shrink:0}.bottom-sheet-services-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.625rem}.bottom-sheet-services-title{font-size:.875rem;font-weight:500;color:var(--color-gray-500)}.bottom-sheet-edit-cart{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:.25rem .375rem;cursor:pointer;color:var(--color-tertiary-8);font-size:.8125rem;font-weight:600;font-family:var(--font-body);border-radius:4px;flex-shrink:0}.bottom-sheet-business-logo-placeholder{width:56px;height:56px;border-radius:8px;background:var(--color-primary-9);color:var(--color-primary-1);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;flex-shrink:0}.bottom-sheet-business-info{flex:1 1;min-width:0}.bottom-sheet-business-name{font-size:1.125rem;font-weight:600;color:var(--color-gray-800);margin:0 0 .25rem;font-family:var(--font-body)}.bottom-sheet-business-address{font-size:.8125rem;color:var(--color-gray-500);margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-sheet-time{display:flex;flex-direction:column;gap:.625rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-gray-200)}.bottom-sheet-time-item{display:flex;align-items:flex-start;gap:.625rem;font-size:.875rem;color:var(--color-gray-700);line-height:1.4}.bottom-sheet-time-item svg{color:var(--color-tertiary-8);flex-shrink:0;margin-top:1px}.bottom-sheet-services{display:flex;flex-direction:column}.bottom-sheet-service-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.875rem 0;border-bottom:1px solid var(--color-gray-100)}.bottom-sheet-service-item:last-child{border-bottom:none}.bottom-sheet-service-details{flex:1 1;min-width:0}.bottom-sheet-service-name{font-size:.9375rem;font-weight:600;color:var(--color-gray-800);margin:0 0 .25rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.service-deposit-pill{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:500;color:#166534;background-color:color-mix(in srgb,#166534 12%,transparent);padding:.125rem .5rem;border-radius:999px;white-space:nowrap}.bottom-sheet-service-meta{font-size:.8125rem;color:var(--color-gray-500);margin:0}.bottom-sheet-service-meta .provider-link{color:var(--color-tertiary-8)}.bottom-sheet-service-price{font-size:.9375rem;font-weight:600;color:var(--color-gray-800);white-space:nowrap;margin-left:.75rem;display:flex;flex-direction:column;align-items:flex-end}.bottom-sheet-service-price-original{text-decoration:line-through;color:var(--color-gray-400);font-weight:400;font-size:.8125rem}.bottom-sheet-service-price-discounted{font-weight:700;color:var(--color-gray-900)}.bottom-sheet-footer{padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:var(--color-white);border-top:1px solid var(--color-gray-200);flex-shrink:0}.bottom-sheet-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.bottom-sheet-total-label{font-size:1rem;font-weight:600;color:var(--color-gray-800)}.bottom-sheet-total-amount{font-size:1.25rem;font-weight:700;color:var(--color-gray-800)}.bottom-sheet-pricing{display:flex;flex-direction:column;margin-bottom:1rem}.bottom-sheet-pricing-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.9375rem;color:var(--color-gray-600)}.bottom-sheet-pricing-row.subtotal{padding-top:0}.bottom-sheet-pricing-divider{height:1px;background:var(--color-gray-200);margin:.375rem 0}.bottom-sheet-pricing-row.total{font-size:1rem;font-weight:600;color:var(--color-gray-800)}.bottom-sheet-pricing-row.pay-now{color:var(--color-success,#16a34a);font-weight:500}.bottom-sheet-pricing-row.pay-venue{color:var(--color-gray-500);font-size:.875rem}.bottom-sheet-warning{font-size:.75rem;color:var(--color-error,#dc2626);text-align:center;margin-bottom:.5rem}.bottom-sheet-button{width:100%;padding:16px 32px;background-color:var(--color-tertiary-brand);color:var(--color-primary-button-foreground);border:none;border-radius:50px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.bottom-sheet-button:disabled{background-color:var(--color-gray-300);color:var(--color-gray-400);cursor:not-allowed}.bottom-sheet-button.loading{opacity:.8}.bottom-sheet-button .button-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-white);border-radius:50%;display:inline-block}.bottom-sheet-content::-webkit-scrollbar{width:4px}.bottom-sheet-content::-webkit-scrollbar-track{background:transparent}.bottom-sheet-content::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.15);border-radius:2px}.bottom-sheet-offer-selector{position:relative;margin-top:4px}.bottom-sheet-offer-selector-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:.6875rem;font-weight:500;color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;cursor:pointer}.bottom-sheet-offer-selector-btn:hover{border-color:#86efac}.bottom-sheet-offer-dropdown{position:absolute;top:100%;left:0;margin-top:4px;min-width:220px;background:var(--color-white,#fff);border:1px solid var(--color-gray-200,#e5e7eb);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:50;overflow:hidden}.bottom-sheet-offer-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:#fff;cursor:pointer;text-align:left}.bottom-sheet-offer-option.selected{background:#f0fdf4}.bottom-sheet-offer-option+.bottom-sheet-offer-option{border-top:1px solid var(--color-gray-100,#f3f4f6)}.bottom-sheet-offer-option-info{display:flex;flex-direction:column;gap:1px}.bottom-sheet-offer-option-name{font-size:12px;font-weight:500;color:var(--color-gray-900,#111827)}.bottom-sheet-offer-option-discount{font-size:11px;font-weight:500;color:#16a34a}.bottom-sheet-service-included{color:var(--color-success,#16a34a);font-weight:600;font-size:.85em;margin-left:6px}.bottom-sheet-service-redeem-toggle{margin-top:2px;padding:4px 0;border:none;background:none;font-size:.75rem;font-weight:500;font-family:var(--font-body);color:var(--color-primary,#7c3aed);cursor:pointer;text-decoration:underline;line-height:1.2;white-space:nowrap}.bottom-sheet-service-redeem-toggle:hover{opacity:.8}