    .custom-login-form {
        max-width: 400px;
        margin: 0 auto;
        padding: 20px;
        background: #f9f9f9;
        border-radius: 5px;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    
    .form-group {
        margin-bottom: 15px;
    }
    
    .form-group label {
        display: block;
        margin-bottom: 5px;
        font-weight: bold;
    }
    
    .form-group input[type="email"],
    .form-group input[type="password"],
    .form-group input[type="text"] {
        width: 100%;
        padding: 10px;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-sizing: border-box;
        font-family: inherit;
        font-size: 16px; /* Importante per evitare zoom su iOS */
        height: auto; /* Assicura altezza consistente */
        min-height: 40px; /* Altezza minima consistente */
    }
    
    /* Forza stili consistenti per tutti i tipi di input password/text */
    #user-password {
        font-family: inherit !important;
        font-size: 16px !important;
        width: 100% !important;
        padding: 10px !important;
        box-sizing: border-box !important;
        height: auto !important;
        min-height: 40px !important;
    }
    
    .password-toggle {
        cursor: pointer;
        color: #0073aa;
        font-size: 13px;
        margin-top: 5px;
        display: inline-block;
    }
    
    .remember-group label {
        display: flex;
        align-items: center;
        font-weight: normal;
    }
    
    .remember-group input {
        margin-right: 5px;
    }
    
    input[type="submit"] {
        background: #0073aa;
        color: white;
        border: none;
        padding: 10px 15px;
        border-radius: 3px;
        cursor: pointer;
        width: 100%;
        font-size: 1em;
        height: auto;
        min-height: 40px;
    }
    
    input[type="submit"]:hover {
        background: #005a87;
    }
    
    .login-links {
        margin-top: 15px;
        text-align: center;
    }
    
    .login-links a {
        color: #0073aa;
        text-decoration: none;
    }
    
    .login-links a:hover {
        text-decoration: underline;
    }
    
    .login-error {
        color: #dc3232;
        margin-bottom: 15px;
        padding: 10px;
        background: #ffebeb;
        border-left: 4px solid #dc3232;
    }
    
    .login-success {
        color: #46b450;
        margin-bottom: 15px;
        padding: 10px;
        background: #ecf7ed;
        border-left: 4px solid #46b450;
    }
    
    .login-message {
        text-align: center;
        padding: 20px;
        background: #f1f1f1;
        border-radius: 5px;
    }

    .custom-password-recovery {
        max-width: 400px;
        margin: 0 auto;
        padding: 30px;
        background: #f9f9f9;
        border-radius: 8px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }
    
    .custom-password-recovery h2 {
        text-align: center;
        margin-bottom: 15px;
        color: #333;
    }
    
    .custom-password-recovery p {
        text-align: center;
        margin-bottom: 25px;
        color: #666;
    }
    
    .form-group {
        margin-bottom: 20px;
    }
    
    .form-group label {
        display: block;
        margin-bottom: 8px;
        font-weight: bold;
        color: #444;
    }
    
    .form-group input[type="email"] {
        width: 100%;
        padding: 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-sizing: border-box;
        font-size: 16px;
    }
    
    input[type="submit"] {
        background: #0073aa;
        color: white;
        border: none;
        padding: 12px 15px;
        border-radius: 4px;
        cursor: pointer;
        width: 100%;
        font-size: 16px;
        transition: background 0.3s;
    }
    
    input[type="submit"]:hover {
        background: #005a87;
    }
    
    .recovery-links {
        margin-top: 20px;
        text-align: center;
    }
    
    .recovery-links a {
        color: #0073aa;
        text-decoration: none;
        font-size: 14px;
    }
    
    .recovery-links a:hover {
        text-decoration: underline;
    }
    
    .recovery-error {
        color: #dc3232;
        margin-bottom: 20px;
        padding: 12px;
        background: #ffebeb;
        border-left: 4px solid #dc3232;
        border-radius: 3px;
    }
    
    .recovery-success {
        color: #46b450;
        margin-bottom: 20px;
        padding: 12px;
        background: #ecf7ed;
        border-left: 4px solid #46b450;
        border-radius: 3px;
    }
    
    .recovery-message {
        text-align: center;
        padding: 20px;
        background: #f1f1f1;
        border-radius: 5px;
        max-width: 500px;
        margin: 0 auto;
    }

    .custom-registration-form {
        max-width: 600px;
        margin: 0 auto;
        padding: 20px;
        background: #f9f9f9;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    }
    .custom-registration-form .form-row {
        margin-bottom: 15px;
    }
    .custom-registration-form label {
        display: block;
        margin-bottom: 5px;
        font-weight: bold;
    }
    .custom-registration-form input[type="text"],
    .custom-registration-form input[type="email"],
    .custom-registration-form input[type="password"],
    .custom-registration-form input[type="date"],
    .custom-registration-form select {
        width: 100%;
        padding: 10px;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-sizing: border-box;
    }
    .custom-registration-form .password-toggle {
        cursor: pointer;
        color: #0073aa;
        font-size: 13px;
        margin-top: 5px;
    }
    .custom-registration-form .password-strength {
        height: 10px;
        margin-top: 5px;
        background: #eee;
        border-radius: 5px;
        overflow: hidden;
    }
    .custom-registration-form .password-strength-bar {
        height: 100%;
        width: 0;
        transition: width 0.3s;
    }
    .custom-registration-form .submit-btn {
        background: #0073aa;
        color: white;
        padding: 12px 20px;
        border: none;
        border-radius: 4px;
        cursor: pointer;
        font-size: 16px;
    }
    .custom-registration-form .submit-btn:hover {
        background: #005a87;
    }
    .admin-notice {
        background: #f0f6fc;
        border-left: 4px solid #72aee6;
        padding: 15px;
        margin-bottom: 20px;
        border-radius: 4px;
    }
    .error-field {
        border-color: #ff3860 !important;
    }
    .error-message {
        color: #ff3860;
        font-size: 12px;
        margin-top: 5px;
    }
    .member-type-section {
        margin-bottom: 20px;
        padding: 15px;
        background: #fff;
        border-radius: 4px;
        border: 1px solid #ddd;
    }
    .member-type-options {
        display: flex;
        gap: 20px;
        margin-top: 10px;
    }
    .member-type-option {
        display: flex;
        align-items: center;
    }
    .member-type-option input {
        margin-right: 8px;
    }

    .custom-edit-form{max-width:600px;margin:0 auto;padding:20px;background:#f9f9f9;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,0.1)}
    .custom-edit-form .form-row{margin-bottom:15px}
    .custom-edit-form label{display:block;margin-bottom:5px;font-weight:bold}
    .custom-edit-form input[type="text"],
    .custom-edit-form input[type="email"],
    .custom-edit-form input[type="password"],
    .custom-edit-form input[type="date"],
    .custom-edit-form select{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;box-sizing:border-box}
    .custom-edit-form .password-toggle{cursor:pointer;color:#0073aa;font-size:13px;margin-top:5px}
    .custom-edit-form .password-strength{height:10px;margin-top:5px;background:#eee;border-radius:5px;overflow:hidden}
    .custom-edit-form .password-strength-bar{height:100%;width:0;transition:width .3s}
    .custom-edit-form .submit-btn{background:#0073aa;color:#fff;padding:12px 20px;border:none;border-radius:4px;cursor:pointer;font-size:16px}
    .custom-edit-form .submit-btn:hover{background:#005a87}
    .readonly-field{background:#f5f5f5;cursor:not-allowed}

    /* Stile per il messaggio di limite */
    .ticket-limit-message {
        background: #ff0000;
        color: #fff;
        padding: 12px 15px !important;
        border-radius: 5px;
        margin: 15px 0;
        border-left: 4px solid #f39c12;
        display: none;
    }

    .ticket-limit-message.show {
        display: block;
    }

    /* Stile per pulsante disabilitato */
    .tribe-tickets__tickets-buy.disabled {
        opacity: 0.6;
        cursor: not-allowed !important;
        background-color: #bdc3c7 !important;
    }

    .tribe-tickets__tickets-buy.disabled:hover {
        background-color: #bdc3c7 !important;
    }

    .gestione-utente-personalizzata .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
        .gestione-utente-personalizzata .form-row { display: flex; flex-direction: column; }
        .gestione-utente-personalizzata .form-row label { font-weight: bold; margin-bottom: 5px; }
        .gestione-utente-personalizzata .form-row input,
        .gestione-utente-personalizzata .form-row select { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; }
        .gestione-utente-personalizzata .form-section-title { font-size: 1.2em; font-weight: bold; margin-top: 25px; margin-bottom: 15px; border-bottom: 2px solid #0073aa; padding-bottom: 5px; grid-column: 1 / -1; }
        
        /* Stili specifici per la sezione password */
        .password-toggle { cursor: pointer; color: #0073aa; font-size: 12px; margin-top: 5px; text-align: right; }
        .password-strength { height: 5px; background-color: #eee; border-radius: 5px; margin-top: 8px; }
        .password-strength-bar { height: 100%; border-radius: 5px; transition: width 0.3s ease, background-color 0.3s ease; }
        #password-strength-text { font-size: 12px; margin-top: 5px; height: 15px; }
        
        /* Stili per il controllo tessera duplicata */
        .membership-number-error { color: #d63638; font-size: 12px; margin-top: 5px; display: none; }
        .membership-number-success { color: #00a32a; font-size: 12px; margin-top: 5px; display: none; }

        .payment-options {
            margin: 20px 0;
            padding: 15px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #f9f9f9;
        }
        .checkbox-group {
            margin-bottom: 10px;
        }
        .checkbox-group input[type="checkbox"] {
            margin-right: 10px;
        }
        .checkbox-group label {
            font-weight: normal;
        }
        #payment-buttons-container {
            margin: 20px 0;
        }
        .payment-button {
            margin: 10px 0;
        }
        .notice {
            color: #d63384;
            font-style: italic;
            margin-top: 10px;
        }

        .btn-disiscrizione {
        background-color: #dc3545;
        color: white;
        padding: 12px 24px;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
        transition: background-color 0.3s;
        margin: 20px 0;
    }
    
    .btn-disiscrizione:hover {
        background-color: #c82333;
    }
    
    .disiscrizione-error-message {
        color: #856404;
        background-color: #fff3cd;
        border: 1px solid #ffeaa7;
        padding: 15px;
        border-radius: 5px;
        margin: 10px 0;
    }

    .avviso-gruppo {
        color: #856404;
        background-color: #fff3cd;
        border: 1px solid #ffeaa7;
        padding: 15px;
        border-radius: 5px;
        margin: 10px 0;
    }
    
        .course-list-container {
                padding: 20px;
                background-color: #f9f9f9;
                border-radius: 8px;
                box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
                font-family: sans-serif;
            }
            .course-search-input {
                width: 100%;
                padding: 12px;
                margin-bottom: 20px;
                border: 1px solid #ddd;
                border-radius: 6px;
                font-size: 16px;
            }
            .course-list {
                list-style: none;
                padding: 0;
                margin: 0;
            }
            .course-list li {
                padding: 15px;
                border-bottom: 1px solid #eee;
                display: flex;
                justify-content: space-between;
                align-items: center;
                transition: background-color 0.2s ease-in-out;
            }
            .course-list li:last-child {
                border-bottom: none;
            }
            .course-list li:hover {
                background-color: #f1f1f1;
            }
            .course-list a {
                text-decoration: none;
                color: #0073aa;
                font-weight: bold;
                font-size: 18px;
            }
            .course-availability {
                font-size: 14px;
                color: #555;
                padding: 5px 10px;
                border-radius: 4px;
            }
            .course-availability.full {
                background-color: #f8d7da;
                color: #721c24;
            }
            .course-availability.available {
                background-color: #d4edda;
                color: #155724;
            }
            .course-blacklisted {
                background-color: #000 !important;
                color: #fff !important;
                padding: 10px;
                border-radius: 4px;
                font-weight: bold;
                margin-left: 10px;
                font-size:15px;
            }
            .course-group-locked {
                background-color: #fff3cd;
                color: #856404;
                padding: 5px 10px;
                border-radius: 4px;
                font-size: 14px;
                margin-left: 10px;
            }
            .corso-iscritto {
                background-color: #28a745;
                color: white;
                padding: 3px 8px;
                border-radius: 4px;
                font-size: 14px;
                margin-left: 10px;
            }
            .course-reserva {
                background-color: #e7f3ff;
                border-left: 4px solid #0073aa;
            }
            .course-reserva-indicator {
                background-color: #0073aa;
                color: white;
                padding: 3px 8px;
                border-radius: 4px;
                font-size: 12px;
                margin-left: 10px;
            }

.elenco-corsi-bacheca {
        margin: 2rem 0;
    }
    .lista-corsi-iscritti {
        list-style: none;
        padding: 0;
        margin: 0;
        display: grid;
        gap: 1.5rem;
    }
    .corso-item {
        background: #fff;
        border: 1px solid #e0e0e0;
        border-radius: 8px;
        padding: 1.5rem;
        display: flex;
        gap: 1.5rem;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .corso-item:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    }
    .corso-thumbnail {
        flex: 0 0 150px;
    }
    .corso-thumbnail img {
        width: 100%;
        height: auto;
        border-radius: 6px;
        object-fit: cover;
    }
    .corso-info {
        flex: 1;
    }
    .corso-titolo {
        margin: 0 0 0.5rem 0;
        font-size: 1.2em;
    }
    .corso-titolo a {
        color: #0073aa;
        text-decoration: none;
    }
    .corso-titolo a:hover {
        color: #005177;
        text-decoration: underline;
    }
    .corso-descrizione {
        color: #666;
        margin-bottom: 1rem;
        line-height: 1.5;
    }
    .corso-link {
        display: inline-block;
        background: #0073aa;
        color: white;
        padding: 8px 16px;
        text-decoration: none;
        border-radius: 4px;
        font-size: 0.9em;
        transition: background 0.2s ease;
    }
    .corso-link:hover {
        background: #005177;
    }
    .corso-edit-link {
        margin: 0.5rem;
    }

    .corso-badge {
        display: inline-block;
        background: #ffe900;
        color: #000;
        font-size: 0.75em;
        padding: 2px 8px;
        margin: 0.5rem;
        border-radius: 12px;
        margin-left: 0.5rem;
        vertical-align: middle;
    }
    .mostra-iscritti {
        background: #fff;
        margin-left: 0.5rem;
    }
    .mostra-iscritti:hover {
        background: #ddd;
    }
    .iscritti-container {
        margin-top: 15px;
        padding: 10px;
        background: #f9f9f9;
        border: 1px solid #ddd;
        border-radius: 4px;
    }
    .tabella-utenti-docente {
        width: 100%;
        border-collapse: collapse;
        margin-top: 10px;
        font-size: 10px;
    }
    .tabella-utenti-docente th,
    .tabella-utenti-docente td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: left;
    }
    .tabella-utenti-docente th {
        background-color: #f2f2f2;
    }
    .caricamento-iscritti {
        text-align: center;
        padding: 20px;
    }
    .loading {
        display: inline-block;
        width: 20px;
        height: 20px;
        border: 3px solid #f3f3f3;
        border-top: 3px solid #3498db;
        border-radius: 50%;
        animation: spin 1s linear infinite;
    }
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    .accesso-necessario {
        text-align: center;
        padding: 2rem;
        background: #f8f9fa;
        border-radius: 8px;
        border: 1px solid #dee2e6;
    }
    .accesso-necessario .button {
        display: inline-block;
        margin: 0.5rem;
        padding: 10px 20px;
        background: #0073aa;
        color: white;
        text-decoration: none;
        border-radius: 4px;
    }
    .nessun-corso {
        text-align: center;
        padding: 2rem;
        background: #f8f9fa;
        border-radius: 8px;
        border: 1px solid #dee2e6;
        color: #6c757d;
    }
    @media (max-width: 768px) {
        .corso-item {
            flex-direction: column;
            text-align: center;
        }
        .corso-thumbnail {
            flex: 0 0 auto;
            margin: 0 auto 1rem auto;
            max-width: 200px;
        }
        .corso-edit-link, .mostra-iscritti {
            margin-left: 0;
            margin-top: 0.5rem;
        }
    }

.btn-iscrizione {
        background-color: #28a745;
        color: white;
        padding: 12px 24px;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
        transition: background-color 0.3s;
        margin: 20px 0;
    }
    
    .btn-iscrizione:hover {
        background-color: #218838;
    }
    
    .btn-gia-iscritto {
        background-color: #6c757d;
        color: white;
        padding: 12px 24px;
        border: none;
        border-radius: 5px;
        font-size: 16px;
        font-weight: bold;
        margin: 20px 0;
    }
    
    .avviso-pieno, .avviso-gruppo {
        color: #856404;
        background-color: #fff3cd;
        border: 1px solid #ffeaa7;
        padding: 15px;
        border-radius: 5px;
        margin: 10px 0;
    }
    
    .avviso-blacklist {
        color: #721c24;
        background-color: #f8d7da;
        border: 1px solid #f5c6cb;
        padding: 15px;
        border-radius: 5px;
        margin: 10px 0;
    }

    .payment-report-container {
        padding: 20px;
        background: #f1f1f1;
        min-height: 100vh;
    }
    
    .report-title {
        color: #2c3e50;
        margin-bottom: 25px;
        font-weight: 600;
        border-bottom: 2px solid #3498db;
        padding-bottom: 10px;
    }
    
    .card {
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        padding: 25px;
        margin-bottom: 25px;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    
    .card:hover {
        box-shadow: 0 6px 12px rgba(0,0,0,0.15);
    }
    
    .filters-title {
        color: #2c3e50;
        margin-top: 0;
        margin-bottom: 20px;
        font-weight: 500;
    }
    
    .filter-row {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        margin-bottom: 20px;
    }
    
    .filter-group {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-width: 200px;
    }
    
    .filter-group label {
        font-weight: 600;
        margin-bottom: 8px;
        color: #34495e;
    }
    
    .filter-group input,
    .filter-group select {
        padding: 10px 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        font-size: 14px;
        transition: border-color 0.3s;
    }
    
    .filter-group input:focus,
    .filter-group select:focus {
        border-color: #3498db;
        outline: none;
        box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
    }
    
    .action-buttons {
        display: flex;
        flex-direction: row;
        gap: 10px;
        justify-content: flex-end;
        align-items: flex-end;
    }
    
    .button {
        padding: 10px 16px;
        border: none;
        border-radius: 4px;
        cursor: pointer;
        font-weight: 500;
        transition: all 0.3s;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    
    .button-primary {
        background: #3498db;
        color: white;
        position: relative;
        min-width: 120px;
    }
    
    .button-primary:hover {
        background: #2980b9;
    }
    
    .button-secondary {
        background: #95a5a6;
        color: white;
    }
    
    .button-secondary:hover {
        background: #7f8c8d;
    }
    
    .button-success {
        background: #27ae60;
        color: white;
    }
    
    .button-success:hover {
        background: #219653;
    }
    
    .loading-spinner {
        display: inline-flex;
        align-items: center;
        margin-left: 8px;
    }
    
    .spinner {
        animation: rotate 2s linear infinite;
        width: 20px;
        height: 20px;
    }
    
    .spinner .path {
        stroke: #ffffff;
        stroke-linecap: round;
        animation: dash 1.5s ease-in-out infinite;
    }
    
    .loading-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(255, 255, 255, 0.9);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 9999;
    }
    
    .loading-content {
        text-align: center;
    }
    
    .loading-content .large {
        width: 50px;
        height: 50px;
        margin: 0 auto 15px;
    }
    
    .loading-content .large .path {
        stroke: #3498db;
    }
    
    .loading-content p {
        margin-top: 15px;
        font-weight: 500;
        color: #2c3e50;
    }
    
    .table-responsive {
        overflow-x: auto;
        margin-top: 15px;
    }
    
    .payment-table {
        width: 100%;
        border-collapse: collapse;
    }
    
    .payment-table th {
        background: #34495e;
        color: white;
        padding: 12px 15px;
        text-align: left;
    }
    
    .payment-table td {
        padding: 12px 15px;
        border-bottom: 1px solid #ecf0f1;
    }
    
    .payment-table tr:hover {
        background-color: #f8f9fa;
    }
    
    .badge {
        display: inline-block;
        padding: 4px 8px;
        border-radius: 12px;
        font-size: 12px;
        font-weight: 600;
    }
    
    .membership-badge {
        background: #e8f4fd;
        color: #2c3e50;
    }
    
    .payment-badge {
        color: white;
    }
    
    .payment-free {
        background: #7f8c8d;
    }
    
    .payment-segreteria_contanti, .payment-segreteria_contanti_L2, .payment-segreteria_contanti_FIE {
        background: #3498db;
    }
    
    .payment-segreteria_online, .payment-segreteria_online_FIE {
        background: #9b59b6;
    }
    
    .payment-bonifico_online, .payment-bonifico_online_FIE {
        background: #80b5d8ff;
    }

    .payment-sito {
        background: #27ae60;
    }
    
    .action-link {
        color: #3498db;
        text-decoration: none;
        font-weight: 500;
    }
    
    .action-link:hover {
        text-decoration: underline;
    }
    
    .report-summary {
        background: #e8f4fd;
        padding: 12px 15px;
        border-radius: 4px;
        margin-bottom: 15px;
        border-left: 4px solid #3498db;
    }
    
    .no-results, .no-filters {
        text-align: center;
        padding: 40px 20px;
        color: #7f8c8d;
    }
    
    .error-message {
        background: #ffebee;
        color: #c62828;
        padding: 20px;
        border-radius: 5px;
        text-align: center;
        margin: 20px 0;
    }
    
    @keyframes rotate {
        100% {
            transform: rotate(360deg);
        }
    }
    
    @keyframes dash {
        0% {
            stroke-dasharray: 1, 150;
            stroke-dashoffset: 0;
        }
        50% {
            stroke-dasharray: 90, 150;
            stroke-dashoffset: -35;
        }
        100% {
            stroke-dasharray: 90, 150;
            stroke-dashoffset: -124;
        }
    }
    
    /* Responsive design */
    @media (max-width: 768px) {
        .filter-row {
            flex-direction: column;
            gap: 15px;
        }
        
        .filter-group {
            min-width: 100%;
        }
        
        .action-buttons {
            flex-direction: column;
            width: 100%;
        }
        
        .action-buttons .button {
            width: 100%;
            margin-bottom: 10px;
        }
        
        .payment-table {
            font-size: 14px;
        }
        
        .payment-table th,
        .payment-table td {
            padding: 8px 10px;
        }
    }

    .reportistica-corso .form-ricerca { margin-bottom: 20px; display: flex; gap: 10px; align-items: center; }
        .reportistica-corso .form-ricerca input { padding: 10px; width: 300px; }
        .reportistica-corso .form-ricerca button { padding: 10px 15px; }
        .reportistica-corso .risultati-ricerca { margin: 20px 0; }
        .reportistica-corso .corso-item { padding: 10px; border-bottom: 1px solid #eee; cursor: pointer; }
        .reportistica-corso .corso-item:hover { background-color: #f5f5f5; }
        .reportistica-corso .info-corso { background: #f8f9fa; padding: 15px; border-radius: 5px; margin-bottom: 20px; border-left: 4px solid #0073aa; }
        .reportistica-corso .info-corso h4 { margin-top: 0; color: #0073aa; }
        .reportistica-corso .info-corso .stats { display: flex; gap: 20px; flex-wrap: wrap; }
        .reportistica-corso .info-corso .stat-item { background: white; padding: 10px 15px; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
        .reportistica-corso .info-corso .stat-label { font-size: 0.9em; color: #666; }
        .reportistica-corso .info-corso .stat-value { font-size: 1.2em; font-weight: bold; color: #333; }
        .reportistica-corso .tabella-utenti { margin-top: 20px; width: 100%; border-collapse: collapse; }
        .reportistica-corso .tabella-utenti th, 
        .reportistica-corso .tabella-utenti td { padding: 10px; border: 1px solid #ddd; text-align: left; }
        .reportistica-corso .tabella-utenti th { background-color: #f9f9f9; }
        .reportistica-corso .pulsante-csv { margin: 20px 0; padding: 10px 15px; background: #0073aa; color: white; border: none; cursor: pointer; }
        .reportistica-corso .pulsante-reset { background: #ccc; }
        .reportistica-corso .pulsante-massiccio { margin: 20px 0; padding: 12px 20px; background: #28a745; color: white; border: none; cursor: pointer; font-size: 16px; }
        .reportistica-corso .loading { display: inline-block; width: 20px; height: 20px; border: 3px solid #f3f3f3; border-top: 3px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; }
        .reportistica-corso .export-section { margin-top: 40px; padding-top: 20px; border-top: 2px solid #eee; }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

        .corso-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;          /* spazio tra gli elementi */
}

/* Titolo e descrizione occupano tutta la larghezza */
.corso-info .corso-titolo,
.corso-info .corso-descrizione {
    flex: 0 0 100%;
}

/* Badge e bottoni vengono visualizzati come elementi inline-flex 
   per mantenere l'allineamento orizzontale */
.corso-info .corso-badge,
.corso-info .button {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;         /* spazio tra eventuale icona e testo */
}