body.modal-open {
            overflow: hidden;
        }
        body.modal-open::before {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.6);
            z-index: 9998;
            pointer-events: none; /* AGGIUNGI QUESTA RIGA - permette il click attraverso l'overlay */
        }
        body.modal-open::before {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.6);
            z-index: 9998;
        }

        /* Modale del calendario */
        #calendar-modal {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0.95);
            opacity: 0;
            visibility: hidden;
            pointer-events: none; /* CRITICO: impedisce l'interazione quando nascosto */
            transition: all 0.3s ease;
            z-index: 9999;
            background: white;
            padding: 2rem;
            border-radius: 1rem;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            max-width: 90vw;
            max-height: 90vh;
            overflow: auto;
        }

        #calendar-modal.open {
            transform: translate(-50%, -50%) scale(1);
            opacity: 1;
            visibility: visible;
            pointer-events: auto; /* Riattiva l'interazione quando visibile */
        }

        /* Forza il calendario inline a non avere shadow o positioning */
        .flatpickr-calendar.inline {
            position: static !important;
            box-shadow: none !important;
            border: none !important;
        }

        /* Stili per errori */
        .error-message {
            color: #ef4444;
            font-size: 0.875rem;
            margin-top: 0.25rem;
            display: none; /* Nascosto di default */
        }

        .error-message:not(:empty) {
            display: block; /* Mostra solo quando ha contenuto */
        }

        .field-error {
            border-color: #ef4444 !important;
            background-color: #fef2f2 !important;
        }

        .swal2-container {
            z-index: 99999 !important;
        }
        
        @media (max-width: 640px) {
            #calendar-modal {
                width: 95vw;
                padding: 0.75rem;
                overflow: auto; /* Permetti lo scroll verticale se necessario */
            }
            
            /* Forza il calendario inline a occupare tutta la larghezza */
            .flatpickr-calendar.inline {
                width: 100% !important;
                max-width: 100% !important;
            }
            
            /* Adatta la griglia dei giorni */
            .flatpickr-calendar .flatpickr-days {
                width: 100% !important;
            }
            
            .flatpickr-calendar .dayContainer {
                width: 100% !important;
                max-width: 100% !important;
                min-width: 100% !important;
            }
            
            /* Riduci dimensioni delle celle proporzionalmente */
            .flatpickr-calendar .flatpickr-day {
                height: 2.25rem;
                line-height: 2.25rem;
                flex: 0 0 calc(100% / 7); /* Ogni cella occupa esattamente 1/7 della larghezza */
                max-width: calc(100% / 7);
            }
            .flatpickr-day.selected{
                background: var(--primary-color) !important;
                border-color: var(--secondary-color) !important;
            }
            
            .flatpickr-calendar .flatpickr-weekday {
                font-size: 0.75rem;
                flex: 0 0 calc(100% / 7);
                max-width: calc(100% / 7);
            }
            
            /* Riduci padding e margini interni */
            .flatpickr-calendar .flatpickr-months {
                padding: 0.5rem 0;
            }
            
            .flatpickr-calendar .flatpickr-current-month {
                font-size: 1rem;
            }
            
            .flatpickr-calendar .flatpickr-monthDropdown-months,
            .flatpickr-calendar .numInputWrapper {
                font-size: 0.875rem;
            }
        }


        .payment-gateways {
            margin: 2rem 0;
        }

        .payment-gateways h4 {
            margin-bottom: 1rem;
            font-size: 1.1rem;
            color: #333;
        }

        /* Nasconde il radio button originale */
        .gateway-button input[type="radio"] {
            display: none;
        }

        /* Stile base del pulsante */
        .gateway-button {
            display: block;
            margin-bottom: 10px;
            cursor: pointer;
        }

        .gateway-content {
            display: flex;
            align-items: center;
            padding: 6px 12px;
            border: 3px solid #e0e0e0;
            border-radius: 12px;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }

        .gateway-content img {
            height: 50px;
        }

        /* Stile per il gruppo di loghi Stripe */
        .stripe-multi-logo {
            flex-direction: column;
            align-items: flex-start;
        }

        .stripe-multi-logo span {
            font-weight: 500;
            margin-bottom: 10px;
            color: #333;
        }

        .logo-group {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .logo-group img {
            height: 50px;
            opacity: 0.8;
        }

        /* Stile quando il pulsante è selezionato */
        .gateway-button input[type="radio"]:checked + .gateway-content {
            border-color: #007bff; /* Un colore primario per indicare la selezione */
            box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2);
        }

        /* Effetto hover */
        .gateway-button:not(:has(:checked)) .gateway-content:hover {
            border-color: #a0a0a0;
        }

        /* Nasconde le freccette standard dei browser per gli input number */
        input[type=number]::-webkit-inner-spin-button, 
        input[type=number]::-webkit-outer-spin-button { 
            -webkit-appearance: none; 
            margin: 0; 
        }
        input[type=number] {
            -moz-appearance: textfield;
        }