.booking-modal{max-width:560px}.booking-modal h2{padding-right:50px;letter-spacing:-.01em}.booking-modal .workout-summary{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;padding:22px 24px;margin-bottom:28px;position:relative;overflow:hidden}.booking-modal .workout-summary:after{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,69,0,.12) 0,transparent 70%);pointer-events:none}.booking-modal .workout-summary h3{margin:0 0 10px;font-size:1.35rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;position:relative}.booking-modal .workout-summary p{margin:5px 0;font-size:.95rem;color:var(--text-secondary);position:relative}.booking-modal .workout-time{font-size:var(--time-size-md);font-weight:700;color:var(--time-color)!important;line-height:1;letter-spacing:-.005em}.booking-modal .bm-section{margin-bottom:28px}.booking-modal .bm-section-header{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}.booking-modal .bm-section-marker{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.18em;color:var(--primary,#ff4500);font-feature-settings:"tnum","tnum";font-variant-numeric:tabular-nums;line-height:1;padding-top:2px}.booking-modal .bm-section-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--text-primary);letter-spacing:-.005em}.section{margin-bottom:28px}.section h3{margin:0 0 16px;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.booking-modal .participants-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}@media (max-width:480px){.booking-modal .participants-grid{grid-template-columns:repeat(2,1fr);gap:10px}}.booking-modal .participant-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 10px 14px;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:16px;cursor:pointer;transition:transform .25s var(--ease-smooth,cubic-bezier(.2,.8,.2,1)),border-color .25s ease,box-shadow .25s ease,background .25s ease;font-family:var(--font-body);text-align:center;outline:none;-webkit-tap-highlight-color:transparent}.booking-modal .participant-card:hover:not(:disabled):not(.is-booked){border-color:rgba(255,69,0,.45);background:var(--bg-card-hover);transform:translateY(-2px)}.booking-modal .participant-card:focus-visible{border-color:var(--primary,#ff4500);box-shadow:0 0 0 3px rgba(255,69,0,.18)}.booking-modal .participant-card.is-selected{border-color:var(--primary,#ff4500);background:linear-gradient(180deg,rgba(255,69,0,.08),rgba(255,69,0,.02));box-shadow:0 6px 22px -8px rgba(255,69,0,.45)}.booking-modal .participant-card.is-booked{opacity:.55;cursor:not-allowed;filter:grayscale(.4)}.booking-modal .participant-avatar{position:relative;width:56px;height:56px;border-radius:50%;overflow:visible;display:flex;align-items:center;justify-content:center}.booking-modal .participant-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.booking-modal .participant-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#ffffff;background:linear-gradient(135deg,#ff7a3d,#ff4500 60%,#cc3700);letter-spacing:.02em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.booking-modal .participant-card.is-selected .participant-avatar img,.booking-modal .participant-card.is-selected .participant-initials{box-shadow:0 0 0 2px var(--primary,#ff4500),0 0 0 5px rgba(255,69,0,.2)}.booking-modal .participant-check{background:var(--primary,#ff4500);color:#ffffff;box-shadow:0 2px 8px rgba(255,69,0,.45),0 0 0 2px var(--bg-card);animation:bm-check-pop .28s var(--ease-bounce,cubic-bezier(.34,1.56,.64,1))}.booking-modal .participant-check,.booking-modal .participant-lock{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center}.booking-modal .participant-lock{background:var(--bg-card);color:var(--text-secondary);box-shadow:0 0 0 2px var(--border-color)}@keyframes bm-check-pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}.booking-modal .participant-name{font-size:.85rem;font-weight:600;color:var(--text-primary);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.booking-modal .participant-status{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);padding:2px 8px;border-radius:999px;background:rgba(127,127,127,.12)}.booking-modal .price-display{display:flex;flex-direction:column;gap:6px;padding:18px 22px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;margin-bottom:28px;position:relative;overflow:hidden}.booking-modal .price-display:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,69,0,.08),transparent 60%);pointer-events:none}.booking-modal .price-discount,.booking-modal .price-line{display:flex;justify-content:space-between;align-items:baseline;font-size:.92rem;color:var(--text-secondary);font-feature-settings:"tnum","tnum";font-variant-numeric:tabular-nums;position:relative}.booking-modal .price-discount{font-weight:600;color:var(--status-success,#16a34a);margin-bottom:2px}.booking-modal .price-total{display:flex;justify-content:space-between;align-items:baseline;font-size:1.3rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;margin-top:8px;padding-top:10px;border-top:1px dashed var(--border-color);font-feature-settings:"tnum","tnum";font-variant-numeric:tabular-nums;position:relative}.booking-modal .price-display:has(.price-total:only-child) .price-total{margin-top:0;padding-top:0;border-top:none;flex-direction:row;font-size:1.3rem}.booking-modal .payment-method-card{background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:14px;padding:16px 18px;margin-bottom:10px;cursor:pointer;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;position:relative}.booking-modal .payment-method-card:hover:not(.disabled){border-color:rgba(255,69,0,.45);transform:translateY(-1px)}.booking-modal .payment-method-card.selected{border-color:var(--primary);background:linear-gradient(180deg,rgba(255,69,0,.06),rgba(255,69,0,.01));box-shadow:0 6px 22px -10px rgba(255,69,0,.4)}.booking-modal .payment-method-card.selected:before{content:"";position:absolute;top:16px;bottom:16px;left:0;width:3px;border-radius:0 3px 3px 0;background:var(--primary,#ff4500)}.payment-method-card.disabled{opacity:.5;cursor:not-allowed}.payment-method-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.payment-method-card label{display:block;cursor:pointer;margin:0}.payment-method-card.disabled label{cursor:not-allowed}.payment-label{display:flex;align-items:center;justify-content:space-between}.payment-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.payment-icons{display:flex;gap:8px;align-items:center}.payment-icon{font-size:1.5rem}.abon-info h4{margin:0 0 10px;font-size:1rem;font-weight:600;color:var(--text-primary)}.abon-details{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text-secondary)}.abon-valid-to{font-size:.85rem;color:var(--text-muted)}.badge-error{display:inline-block;margin-top:10px;padding:6px 12px;background:rgba(239,68,68,.1);color:var(--status-error);border-radius:8px;font-size:.85rem;font-weight:600}.booking-modal .btn-book{margin-top:14px;letter-spacing:.01em;text-transform:none}.modal-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.modal-state h3{margin:20px 0 12px;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.modal-state p{margin:0 0 28px;font-size:1rem;color:var(--text-secondary)}.loading-spinner{width:50px;height:50px;border:4px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.success-icon{width:70px;height:70px;border-radius:50%;background:var(--status-success);color:#ffffff;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;animation:scaleIn .5s var(--ease-bounce)}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.error-icon{width:70px;height:70px;border-radius:50%;background:var(--status-error);color:#ffffff;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;animation:shake .5s ease}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.info-message{background:rgba(59,130,246,.1);color:#3b82f6;padding:16px 18px;border-radius:14px;margin-bottom:22px;font-weight:500;border:1px solid rgba(59,130,246,.2)}.info-message,.loading{font-size:.95rem;text-align:center}.loading{padding:40px 20px;color:var(--text-muted)}@media (max-width:480px){.booking-modal{max-width:100%}.workout-summary{padding:16px}.workout-summary h3{font-size:1.15rem}.participant-chips{gap:8px}.chip{padding:10px 14px;font-size:.9rem}.chip-avatar{width:24px;height:24px}.payment-method-card{padding:14px}.price-display{flex-direction:column;align-items:flex-start;gap:10px}.price-total{font-size:1.2rem}}.payment-instructions{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:18px 20px;margin-bottom:24px;font-size:.95rem;line-height:1.6;color:var(--text-primary)}.payment-instructions p{margin:0 0 12px}.payment-instructions p:last-child{margin-bottom:0}.payment-upload-section{margin-bottom:16px}.upload-label{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 12px}.file-upload-area{border:2px dashed var(--border-color);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s var(--ease-smooth);background:var(--bg-card);margin:20px 0}.file-upload-area:hover{border-color:var(--primary);background:var(--bg-card-hover)}.file-upload-area.dragging{border-color:var(--primary);background:var(--primary-light,rgba(var(--primary-rgb),.1));border-width:3px}.upload-icon{font-size:3rem;margin-bottom:12px}.upload-text{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 6px}.upload-subtext{font-size:.95rem;color:var(--text-secondary);margin:0 0 12px}.upload-format{font-size:.85rem;color:var(--text-muted);margin:0}.selected-file{justify-content:space-between;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin:20px 0}.file-info,.selected-file{display:flex;align-items:center}.file-info{gap:12px;flex:1 1}.file-icon{font-size:1.5rem}.file-name{font-weight:500;color:var(--text-primary);word-break:break-all}.file-size{font-size:.85rem;white-space:nowrap}.btn-remove,.file-size{color:var(--text-muted)}.btn-remove{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:4px 8px;transition:color .2s}.btn-remove:hover{color:var(--status-error)}.upload-status{text-align:center;padding:30px 20px}.upload-status.success{color:var(--status-success)}.upload-status .success-icon{font-size:3rem;margin-bottom:12px}.upload-status p{margin:12px 0 0;font-size:1rem;color:var(--text-primary)}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions button{flex:1 1}.booking-modal .extras-list{display:flex;flex-direction:column;gap:10px}.booking-modal .extra-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:14px;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.booking-modal .extra-card.is-active{border-color:var(--primary,#ff4500);background:linear-gradient(180deg,rgba(255,69,0,.06),rgba(255,69,0,.01));box-shadow:0 4px 16px -10px rgba(255,69,0,.5)}.booking-modal .extra-card.is-active:before{content:"";position:absolute;top:14px;bottom:14px;left:0;width:3px;border-radius:0 3px 3px 0;background:var(--primary,#ff4500)}.booking-modal .extra-info{display:flex;flex-direction:column;gap:3px;flex:1 1;min-width:0}.booking-modal .extra-name{font-weight:600;font-size:.97rem;color:var(--text-primary);line-height:1.3}.booking-modal .extra-description{font-size:.83rem;color:var(--text-secondary);line-height:1.35}.booking-modal .extra-price{font-size:.82rem;color:var(--text-secondary);font-weight:500;font-feature-settings:"tnum","tnum";font-variant-numeric:tabular-nums;margin-top:2px}.booking-modal .extra-add-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;font-size:.88rem;font-weight:600;white-space:nowrap;border-radius:999px;border:1.5px solid var(--primary,#ff4500);background:transparent;color:var(--primary,#ff4500);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease;font-family:var(--font-body);letter-spacing:-.005em}.booking-modal .extra-add-btn:hover{background:var(--primary,#ff4500);color:#ffffff;transform:translateY(-1px)}.booking-modal .extra-add-plus{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:1rem;line-height:1;font-weight:400}.booking-modal .extra-qty{display:inline-flex;align-items:center;gap:0;padding:4px;background:var(--bg-card-hover,rgba(255,255,255,.04));border-radius:999px;border:1px solid var(--border-color)}.booking-modal .extra-qty-btn{width:30px;height:30px;border-radius:999px;border:none;background:transparent;color:var(--text-primary);font-size:1.1rem;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s ease,color .18s ease}.booking-modal .extra-qty-btn:hover:not(:disabled){background:var(--primary,#ff4500);color:#ffffff}.booking-modal .extra-qty-btn:disabled{opacity:.35;cursor:not-allowed}.booking-modal .extra-qty-value{min-width:28px;text-align:center;font-weight:700;font-size:.95rem;color:var(--text-primary);font-feature-settings:"tnum","tnum";font-variant-numeric:tabular-nums}.payment-breakdown{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:16px}.payment-breakdown h4{margin:0 0 12px;font-size:1rem;font-weight:600;color:var(--text-primary)}.payment-breakdown-line{font-size:.95rem;color:var(--text-secondary);padding:4px 0}.payment-breakdown-total{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color);font-weight:700;color:var(--text-primary)}.price-line{display:block;font-size:.95rem;color:var(--text-secondary)}.booking-modal .extras-notice{margin-bottom:12px;animation:booking-modal-extras-notice-fade-in .25s ease-out}@keyframes booking-modal-extras-notice-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}