body.modal-open .calendar-grid-timebased,body.modal-open .calendar-workout,body.modal-open .calendar-workout-new{z-index:1!important;transform:none!important}.court-booking-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2147483647!important;padding:20px;animation:overlayFadeIn .3s var(--ease-out,ease-out)}@keyframes overlayFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.court-booking-modal{position:relative;z-index:2147483647!important;background:var(--modal-bg,var(--bg-surface));border:1px solid var(--modal-border,rgba(255,69,0,.15));border-radius:24px;max-width:440px;width:100%;max-height:90vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--primary) transparent;box-shadow:var(--modal-shadow,0 25px 80px rgba(0,0,0,.5)),0 0 0 1px rgba(255,255,255,.05) inset,0 0 60px rgba(255,69,0,.08);animation:modalSlideUp .4s var(--ease-out,ease-out)}.court-booking-modal::-webkit-scrollbar{width:6px}.court-booking-modal::-webkit-scrollbar-track{background:transparent}.court-booking-modal::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.court-booking-modal .modal-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:24px 28px;background:linear-gradient(180deg,rgba(255,69,0,.08),transparent);border-bottom:1px solid var(--border-color)}.court-booking-modal .modal-header:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:60%;height:3px;background:var(--gradient-cta,linear-gradient(90deg,#ff4500,#ff0080));border-radius:0 0 3px 3px}.court-booking-modal .modal-header h2{margin:0;font-family:var(--font-display,"Bebas Neue",sans-serif);font-size:1.6rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary)}.court-booking-modal .close-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:12px;cursor:pointer;color:var(--text-muted);transition:all .25s var(--ease-bounce,ease)}.court-booking-modal .close-btn:hover{background:var(--bg-card-hover);border-color:var(--primary);color:var(--primary);transform:scale(1.08) rotate(90deg)}.court-booking-modal .modal-body{padding:28px}.court-booking-modal .booking-info{margin-bottom:0}.court-booking-modal .court-title{margin:0 0 20px;font-family:var(--font-display,"Bebas Neue",sans-serif);font-size:1.85rem;font-weight:400;letter-spacing:.04em;color:var(--text-primary);line-height:1.1}.court-booking-modal .court-category{display:inline-block;margin-bottom:20px;padding:6px 14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.court-booking-modal .info-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;color:var(--text-secondary);font-size:.95rem;transition:all .2s ease}.court-booking-modal .info-row:hover{border-color:var(--border-color-hover);background:var(--bg-card-hover)}.court-booking-modal .info-row svg{flex-shrink:0;margin-top:2px;color:var(--primary);opacity:.9}.court-booking-modal .info-row span{line-height:1.5}.court-booking-modal .trainer-row{align-items:center}.court-booking-modal .trainer-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--primary);box-shadow:0 0 20px rgba(255,69,0,.3);flex-shrink:0}.court-booking-modal .trainer-avatar-placeholder{width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.court-booking-modal .trainer-row span{font-weight:600;color:var(--text-primary)}.court-booking-modal .duration-selector{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:16px;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;transition:all .2s ease}.court-booking-modal .duration-selector:hover{border-color:var(--border-color-hover)}.court-booking-modal .duration-label{display:flex;align-items:center;font-size:.9rem;font-weight:500;color:var(--text-secondary)}.court-booking-modal .duration-label svg{color:var(--primary);opacity:.8}.court-booking-modal .duration-controls{display:flex;align-items:center;gap:8px}.court-booking-modal .duration-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:2px solid var(--border-color);background:var(--bg-surface);border-radius:12px;cursor:pointer;color:var(--text-primary);transition:all .2s var(--ease-bounce,ease)}.court-booking-modal .duration-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:scale(1.1);box-shadow:0 4px 20px rgba(255,69,0,.25)}.court-booking-modal .duration-btn:active:not(:disabled){transform:scale(.95)}.court-booking-modal .duration-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.court-booking-modal .duration-value{min-width:90px;text-align:center;font-family:var(--font-display,"Bebas Neue",sans-serif);font-size:1.4rem;font-weight:400;letter-spacing:.03em;color:var(--text-primary)}.court-booking-modal .people-hint{width:100%;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.8rem;color:var(--text-muted);text-align:center}.court-booking-modal .price-row{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding:20px 22px;background:var(--gradient-card-highlight,linear-gradient(135deg,rgba(255,69,0,.12),rgba(255,0,128,.06)));border:1px solid rgba(255,69,0,.2);border-radius:16px;position:relative;overflow:hidden}.court-booking-modal .price-row:before{content:"";position:absolute;top:-20px;right:-20px;width:60px;height:60px;background:radial-gradient(circle,rgba(255,69,0,.3) 0,transparent 70%);border-radius:50%}.court-booking-modal .price-label{font-size:.95rem;font-weight:500;color:var(--text-secondary)}.court-booking-modal .price{font-family:var(--font-display,"Bebas Neue",sans-serif);font-size:2rem;font-weight:400;letter-spacing:.02em;color:var(--primary);text-shadow:0 0 30px rgba(255,69,0,.4)}.court-booking-modal .booking-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.court-booking-modal .btn-primary,.court-booking-modal .btn-secondary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s var(--ease-bounce,ease);position:relative;overflow:hidden}.court-booking-modal .btn-primary{background:var(--gradient-cta,linear-gradient(90deg,#ff4500,#ff0080));color:#ffffff;border:none;box-shadow:0 8px 30px rgba(255,69,0,.4)}.court-booking-modal .btn-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.25),transparent 50%);opacity:0;transition:opacity .3s ease}.court-booking-modal .btn-primary:hover:not(:disabled):before{opacity:1}.court-booking-modal .btn-primary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 40px rgba(255,69,0,.5)}.court-booking-modal .btn-primary:active:not(:disabled){transform:translateY(-1px)}.court-booking-modal .btn-primary:disabled{background:var(--bg-card);color:var(--text-muted);box-shadow:none;cursor:not-allowed}.court-booking-modal .btn-primary.added{background:linear-gradient(90deg,#10b981,#059669);box-shadow:0 8px 30px rgba(16,185,129,.4);animation:successPulse .5s ease}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.court-booking-modal .btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.court-booking-modal .btn-secondary:hover{background:var(--bg-card);border-color:var(--border-color-hover);color:var(--text-primary)}.court-booking-modal .modal-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center}.court-booking-modal .modal-state svg{margin-bottom:24px;color:var(--primary)}.court-booking-modal .modal-state.success svg{color:var(--status-success);animation:successBounce .6s var(--ease-bounce)}@keyframes successBounce{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.court-booking-modal .modal-state.error svg{color:var(--status-error);animation:errorShake .5s ease}@keyframes errorShake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.court-booking-modal .modal-state h3{margin:0 0 12px;font-family:var(--font-display,"Bebas Neue",sans-serif);font-size:1.5rem;font-weight:400;letter-spacing:.05em;color:var(--text-primary)}.court-booking-modal .modal-state p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.court-booking-modal .error-actions{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:28px}.court-booking-modal .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.court-booking-modal .court-selector-section{margin-top:20px}.court-booking-modal .courts-loading,.court-booking-modal .no-courts{text-align:center;padding:28px 20px;color:var(--text-muted);font-size:.95rem;background:var(--bg-card);border:2px dashed var(--border-color);border-radius:16px}.court-booking-modal .no-courts{color:var(--status-warning);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.05)}.court-booking-modal .court-selector{display:flex;flex-direction:column;gap:12px}.court-booking-modal .court-option{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:16px;cursor:pointer;transition:all .25s var(--ease-smooth,ease)}.court-booking-modal .court-option:hover{border-color:var(--primary);background:var(--bg-card-hover);transform:translateX(4px)}.court-booking-modal .court-option.selected{border-color:var(--primary);background:rgba(255,69,0,.08);box-shadow:0 4px 20px rgba(255,69,0,.2)}.court-booking-modal .court-option-photo{width:60px;height:60px;border-radius:12px;object-fit:cover;flex-shrink:0;border:1px solid var(--border-color)}.court-booking-modal .court-option-info{flex:1 1;display:flex;flex-direction:column;gap:4px}.court-booking-modal .court-option-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.court-booking-modal .court-option-location{font-size:.85rem;color:var(--text-muted)}.court-booking-modal .court-option-check{color:var(--primary);flex-shrink:0;opacity:0;transform:scale(0);transition:all .2s var(--ease-bounce)}.court-booking-modal .court-option.selected .court-option-check{opacity:1;transform:scale(1)}@media (max-width:480px){.court-booking-modal-overlay{padding:0;align-items:flex-end}.court-booking-modal{max-width:100%;max-height:92vh;border-radius:28px 28px 0 0;animation:mobileSlideUp .4s var(--ease-out,ease-out)}@keyframes mobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.court-booking-modal:before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:40px;height:4px;background:var(--border-color);border-radius:2px;z-index:10}.court-booking-modal .modal-header{padding:32px 24px 20px}.court-booking-modal .modal-header:before{width:50%}.court-booking-modal .modal-header h2{font-size:1.4rem}.court-booking-modal .modal-body{padding:20px 24px max(24px,env(safe-area-inset-bottom))}.court-booking-modal .court-title{font-size:1.6rem}.court-booking-modal .price{font-size:1.75rem}.court-booking-modal .duration-value{font-size:1.25rem;min-width:80px}.court-booking-modal .btn-primary,.court-booking-modal .btn-secondary{padding:18px 24px}.court-booking-modal .modal-state{padding:48px 24px}}@media (prefers-color-scheme:light){.court-booking-modal-overlay{background:rgba(0,0,0,.5)}.court-booking-modal{box-shadow:0 25px 80px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05)}.court-booking-modal .modal-header{background:linear-gradient(180deg,rgba(255,69,0,.05),transparent)}.court-booking-modal .price-row{background:linear-gradient(135deg,rgba(255,69,0,.08),rgba(255,0,128,.04))}.court-booking-modal .price{text-shadow:none}}[data-theme=dark] .court-booking-modal{background:var(--bg-surface)}[data-theme=dark] .court-booking-modal .modal-header{border-color:rgba(255,255,255,.08)}[data-theme=dark] .court-booking-modal .duration-selector{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}[data-theme=dark] .court-booking-modal .duration-btn{background:var(--bg-surface);border-color:rgba(255,255,255,.1)}