.booking-modal{z-index:1000;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.booking-modal__overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;position:absolute;inset:0}.booking-modal__container{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.booking-modal__header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.booking-modal__title{color:#111827;font-size:18px;font-weight:600}.booking-modal__close{cursor:pointer;color:#6b7280;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.booking-modal__close:hover{color:#374151;background:#e5e7eb}.booking-modal__progress{background:#f9fafb;border-bottom:1px solid #e5e7eb;align-items:center;padding:20px 24px;display:flex}.booking-modal__progress-step{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.booking-modal__progress-number{color:#6b7280;background:#e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.booking-modal__progress-step--active .booking-modal__progress-number{color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 12px #7c3aed4d}.booking-modal__progress-step--completed .booking-modal__progress-number{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.booking-modal__progress-label{color:#6b7280;font-size:13px;font-weight:500}.booking-modal__progress-step--active .booking-modal__progress-label{color:#111827;font-weight:600}.booking-modal__progress-line{background:#e5e7eb;flex:1;height:2px;margin:0 8px 20px}.booking-modal__progress-step--completed~.booking-modal__progress-line{background:#10b981}.booking-modal__content{flex:1;padding:24px;overflow-y:auto}.booking-modal__step{flex-direction:column;gap:24px;display:flex}.booking-modal__section{flex-direction:column;gap:16px;display:flex}.booking-modal__summary{background:#f9fafb;border-radius:12px;margin-bottom:24px;padding:16px}.booking-modal__summary-title{color:#111827;margin-bottom:12px;font-size:15px;font-weight:600}.booking-modal__summary-row{color:#6b7280;justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.booking-modal__summary-row:last-child{margin-bottom:0}.booking-modal__summary-row--discount{color:#059669}.booking-modal__summary-row--total{color:#111827;padding-top:12px;font-size:16px;font-weight:600}.booking-modal__summary-divider{background:#e5e7eb;height:1px;margin:12px 0}.booking-modal__summary-value{color:#111827;font-weight:500}.booking-modal__section{margin-bottom:24px}.booking-modal__section:last-child{margin-bottom:0}.booking-modal__section-title{color:#111827;margin-bottom:12px;font-size:15px;font-weight:600}.booking-modal__option{cursor:pointer;background:#f9fafb;border:2px solid #0000;border-radius:12px;align-items:flex-start;gap:12px;margin-bottom:12px;padding:16px;transition:all .2s;display:flex}.booking-modal__option:last-child{margin-bottom:0}.booking-modal__option:hover{border-color:#e5e7eb}.booking-modal__option--selected{background:#ede9fe;border-color:#7c3aed}.booking-modal__option-radio{border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.booking-modal__option--selected .booking-modal__option-radio{border-color:#7c3aed}.booking-modal__option-radio-inner{background:#7c3aed;border-radius:50%;width:10px;height:10px}.booking-modal__option-info{flex:1}.booking-modal__option-title{color:#111827;margin-bottom:4px;font-size:15px;font-weight:600}.booking-modal__option-description{color:#6b7280;font-size:13px;line-height:1.4}.booking-modal__option-price{color:#111827;flex-shrink:0;font-size:15px;font-weight:600}.booking-modal__form{flex-direction:column;gap:16px;display:flex}.booking-modal__form-row{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (max-width:480px){.booking-modal__form-row{grid-template-columns:1fr}}.booking-modal__form-field{flex-direction:column;gap:6px;display:flex}.booking-modal__form-label{color:#374151;font-size:13px;font-weight:500}.booking-modal__form-input{color:#111827;border:1px solid #d1d5db;border-radius:10px;padding:12px 16px;font-size:15px;transition:all .2s}.booking-modal__form-input:focus{border-color:#7c3aed;outline:none;box-shadow:0 0 0 3px #7c3aed1a}.booking-modal__form-textarea{resize:vertical;min-height:100px}.booking-modal__pricing{background:#f9fafb;border-radius:12px;padding:16px}.booking-modal__pricing-row{color:#6b7280;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;display:flex}.booking-modal__pricing-row--total{color:#111827;border-top:1px solid #e5e7eb;margin-top:8px;padding-top:12px;font-size:16px;font-weight:600}.booking-modal__pricing-discount{color:#10b981}.booking-modal__footer{border-top:1px solid #e5e7eb;gap:12px;padding:20px 24px;display:flex}.booking-modal__actions{border-top:1px solid #e5e7eb;gap:12px;margin-top:24px;padding-top:24px;display:flex}.booking-modal__btn{cursor:pointer;border:none;border-radius:12px;flex:1;padding:14px 24px;font-size:15px;font-weight:600;transition:all .2s}.booking-modal__btn--secondary{color:#374151;background:#f3f4f6}.booking-modal__btn--secondary:hover{background:#e5e7eb}.booking-modal__btn--primary{color:#fff;background:#7c3aed;justify-content:center;align-items:center;gap:8px;display:flex}.booking-modal__btn--primary:hover{background:#6d28d9}.booking-modal__btn:disabled{opacity:.6;cursor:not-allowed}.booking-modal__spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite booking-modal-spin}@keyframes booking-modal-spin{to{transform:rotate(360deg)}}.booking-modal__terms{color:#6b7280;margin-top:16px;font-size:12px;line-height:1.5}.booking-modal__instant-badge{color:#166534;background:#dcfce7;border-radius:6px;align-items:center;gap:4px;margin-bottom:16px;padding:4px 8px;font-size:12px;font-weight:500;display:inline-flex}.booking-modal__success{text-align:center;padding:40px 20px}.booking-modal__success-icon{color:#10b981;background:#d1fae5;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.booking-modal__success-title{color:#111827;margin-bottom:8px;font-size:24px;font-weight:700}.booking-modal__success-message{color:#6b7280;margin-bottom:24px;font-size:15px}.booking-modal__success-details{text-align:left;background:#f9fafb;border-radius:12px;padding:20px}.booking-modal__success-detail{justify-content:space-between;padding:8px 0;font-size:14px;display:flex}.booking-modal__success-detail-label{color:#6b7280}.booking-modal__success-detail-value{color:#111827;font-weight:600}.booking-modal__error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-bottom:20px;padding:16px;font-size:14px}.booking-modal__payment-description{color:#6b7280;margin-bottom:24px;font-size:14px;line-height:1.5}.booking-modal__payment-form{flex-direction:column;gap:20px;display:flex}.booking-modal__card-element{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:14px;transition:border-color .2s,box-shadow .2s}.booking-modal__card-element:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}
