    .mncg-container {position: relative; }
    .mncg-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; margin-top: 10px; }
    .mncg-title {  margin-bottom: 0px !important; font-size:1.75rem;}
    .restart-btn { background: #d9534f; color: #fff; border: none; padding: 8px 12px; border-radius: 6px; cursor: pointer; font-size: 14px; transition: all 0.3s; }
    .restart-btn:hover { background: #c9302c; }
    .mncg-step {min-height: 50vh;}
    .mncg-step h4 { margin-bottom: 10px; margin-top: 10px;}
    .mncg-disclaimer { border: 1px solid #ccc; background: #fff; padding: 20px; border-radius: 10px; max-height: 70vh; overflow-y: auto; }
    .profile-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 15px; }
 
    .profile-card { min-width: 200px; border: 2px solid #ccc; border-radius: 10px; padding: 15px; background: #fff; cursor: pointer; transition: 0.3s; }
    .profile-card:hover { border-color: #0073aa; box-shadow: 0 2px 14px rgba(0,0,0,0.1); transform: translateY(-1px); }
    .profile-card.selected { border-color: #0073aa; background: #e6f3ff; }

    .course-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 15px; margin-top:0.8rem; margin-bottom:0.8rem}
    @media (max-width: 800px) {  }
    .course-card { min-width: 100px; border: 2px solid #ccc; border-radius: 10px; padding: 15px; background: #fff; cursor: pointer; transition: 0.3s; }
    .course-card:hover { border-color: #0073aa; box-shadow: 0 2px 14px rgba(0,0,0,0.1); transform: translateY(-1px); }
    .course-card.selected { border-color: #0073aa; background: #e6f3ff; }
    .mncg-nav { display: flex; justify-content: space-between; margin-top: 20px; }
    .mncg-nav button { background: #0073aa; color: #fff; border: none; padding: 10px 15px; border-radius: 6px; cursor: pointer; transition: 0.3s; }
    .mncg-nav .back { background: #ccc; color: #333; }
    .mncg-nav button:hover { background: #005c8a; }
    .mncg-nav .back:hover { background: #bbb; }
    .mncg-response { margin-top: 15px; text-align: center; font-weight: bold; }
    .mncg-response .success { color: green; }
    .mncg-response .error { color: red; }
    #otpForm button { margin-top: 20px !important; }
    input[type="text"], input[type="email"], input[type="date"], input[type="number"] { width: 100%; padding: 8px !important; margin: 6px 0 18px 0 !important; border: 1px solid #ccc; border-radius: 6px; }
    select, textarea {
      width: 100% !important;
      padding: 8px !important;
      margin: 6px 0 18px 0 !important;
      border: 1px solid #ccc !important;
      border-radius: 6px !important;
      appearance: none !important;
      -moz-appearance: none !important;
      -webkit-appearance: none !important;
      box-sizing: border-box !important;
    }
    label { font-weight: 600; display: block; margin-top: 8px; }

    /* Spinner overlay */
    .mncg-spinner { position: absolute; inset: 0; background: rgba(255,255,255,0.8); display: flex; align-items: center; justify-content: center; z-index: 10; }
    .spinner-inner { text-align: center; }
    .loader { width: 38px; height: 38px; border: 4px solid #e0e0e0; border-top-color: #0073aa; border-radius: 50%; animation: spin 0.9s linear infinite; margin: 0 auto 10px; }
    @keyframes spin { to { transform: rotate(360deg);} }

    .text-lowercase { text-transform: lowercase; }
    .text-uppercase { text-transform: uppercase; }
    .text-capitalize { text-transform: capitalize; }

    /* Stato disabilitato per pulsanti bloccati post-OTP */
    button.disabled {
      opacity: 0.5;
      pointer-events: none;
      cursor: not-allowed;
    }

    .suggestions {
      top: 100%;           
      left: 0;
      width: 100%;
      background: white;
      border: 1px solid #ccc;
      box-shadow: 0 2px 8px rgba(0,0,0,0.2);
      max-height: 200px;
      overflow-y: auto;
      z-index: 10;
      display: none;
      margin-top: -0.8rem;
      border-radius: 0.5rem;
    }

    .suggestion-item {
      padding: 0.5rem;
      cursor: pointer;
    }
    .suggestion-item:hover {
      background: #f0f0f0;
    }

    .autocomplete-wrapper {
      position: relative;
    }
    .nationality-display-wrapper {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 4px;
      font-weight: 500;
      color: #333;
    }
    .ico-flag {
      width: 20px;
      height: auto;
      border-radius: 3px;
    }

    .cert-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1rem;
    }

    .cert-label {
      flex: 0 0 200px; /* spazio fisso per la colonna sinistra */
    }

    .cert-label h6 {
      margin: 0;
      font-size: 1rem;
    }

    .cert-name {
      display: block;
      font-size: 0.9rem;
      color: #555;
      margin-top: 4px;
    }

    .cert-row input[type="file"] {
      flex-shrink: 0;
      max-width: 300px;
    }

    
    .form-row {
      display: flex;
      flex-wrap: wrap;            /* Va a capo automaticamente se serve */
      align-items: center;        /* Allinea verticalmente */
      gap: 0.75rem;               /* Spazio tra gli elementi */
    }
    .two-cols {
        display: flex;
        gap: 20px;
    }

    /* Override isolato per ZIP + PLACE */
    .two-cols input {
        flex: none !important;     /* Disattiva il flex generico di .form-row input */
        width: 100% !important;    /* Gli input si adattano al loro contenitore */
        min-width: 0 !important;   /* Evita larghezze minime indesiderate */
    }

    .zip-field {
        flex: 1 !important;        /* Colonna piccola */
    }

    .place-field {
        flex: 3 !important;        /* Colonna grande */
    }



    /* Select 30% */
    .form-row select {
      flex: 0 0 30%;             /* Base 30% */
      min-width: 120px;
      padding: 0.5rem;
      border: 1px solid #ccc;
      border-radius: 6px;
    }

    /* Input 70% */
    .form-row input {
      flex: 1;                   /* Riempi lo spazio restante */
      min-width: 200px;
      padding: 0.5rem;
      border: 1px solid #ccc;
      border-radius: 6px;
    }
    .form-row input[name="zipcode"] {
      flex: 0 0 30% !important;   /* Occupa il 30% della riga */
    }

    /* Quando lo schermo è stretto */
    @media (max-width: 700px) {
    .course-cards { grid-template-columns: 1fr; } 
    .profile-cards { grid-template-columns: 1fr; } 
    .mncg-title {font-size: 1rem !important;} 
    .disclaimer-content h2 {font-size: 1.75rem !important;}
    .restart-btn { font-size: 0.7rem !important;}
       .form-row {
        flex-direction: column;   /* Gli elementi vanno uno sotto l'altro */
        align-items: stretch;
        gap: 1rem;
      }

      .form-row label {
        flex: none;
        width: 100%;
      }

      .form-row select,
      .form-row input {
        width: 100%;
      }
    }
    #finalstep{margin-top:2rem;}
    .mncg-name{font-weight:600}

    .file-input-hidden {
      display: none;
    }
    .btn-load-file {
      padding: 0.4rem 0.8rem;
      border-radius: 6px;
      border: 1px solid #0073aa;
      background: #0073aa;
      color: #fff;
      cursor: pointer;
      font-size: 0.9rem;
    }
    .btn-load-file:hover {
      background: #005c8a;
    }

    .final-feedback {
      border-radius: 8px;
      padding: 16px 20px;
      margin-top: 16px;
      line-height: 1.5;
    }

    .final-feedback-success {
      border: 1px solid #2e7d32;
      background: #e8f5e9;
    }

    .final-feedback-error {
      border: 1px solid #c62828;
      background: #ffebee;
    }

    .final-feedback h2 {
      margin-top: 0;
      margin-bottom: 8px;
    }