.vaos-bubble {
    position        : absolute;
    z-index         : 1;
    font-size       : 80%;
    max-width       : 16em;
    line-height     : 1.5em;
    text-align      : center;
    border          : 0.2em solid red;
    background-color: white;
    box-shadow      : 0.1em 1px 1px grey;
    border-radius   : 0.5em;
    padding         : 0.2em 0.4em;
    color           : red;
    font-style      : italic;
    overflow-wrap   : normal;
    word-break      : keep-all;
}

.vaos-bubble:before {
    position    : absolute;
    display     : block;
    content     : '';
    width       : 0;
    height      : 0;
    border-style: solid; 
}

.vaos-bubble.vaos-bottom {
    margin    : 0;
    margin-top: 0.3em;    
}

.vaos-bubble.vaos-bottom:before {
    top         : 0;
    left        : 50%;
    margin-left : -0.5em;
    margin-top  : -0.7em;
    border-width: 0 0.5em 0.7em 0.5em;
    border-color: transparent transparent red transparent;
}

.vaos-bubble.vaos-left {
    margin     : 0;
    margin-left: -0.3em;    
}

.vaos-bubble.vaos-left:before {
    top         : 50%;
    left        : 100%;
    margin-left : 0.1em;
    margin-top  : -0.5em;
    border-width: 0.5em 0 0.5em 0.7em;
    border-color: transparent transparent transparent red;
}

.vaos-invalid {
    border-color: red !important;
}

.vaos-validating, .vaos-validated {
    position: relative;
}

.vaos-validating:after, .vaos-validated:after {
    display   : block;
    content   : '';
    position  : absolute;
    width     : 22px;
    height    : 22px;
    top       : 50%;
    margin-top: -11px;
    right     : 10px;
}

.vaos-validating:after {
    background-image: url(data:image/gif;base64,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);  
}

.vaos-validated:after {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEzElEQVQ4y53VbVBUVRgH8P+5e+7eXdaVRSBYFpBdQ0VFEkpHkEJM8QXRarSZxtIwy0kjnHH0Q2MTDTaVUDbqaIlMU5r2oo6mfUExSG0KEUltoEUFFFbQXXb37tu9d/eePphML9iAz7dz5sxvnjlznv8hgUAgsaWlJYBhVnZ2Nrd161Z3ZWXl4F7K2BSkWcei52YPrl+7AQCgPT09gby8PO9w4c7OToEQMrieMHE8nl2/yNjv79mwLK2k+vCeE/6GM42gGGH9HU1OScYzaxcKjlDXUX2iZk5L77mihaWzFxkMBveI4ftlMpmwonwZ16d0f2FM0hWKETcbMPTntrqCZxasenreQ8F6vR6rN74IJ3NsMyRolweJl3kjTig0hAHt7Sy3xz39oeAZhTk4fP7Aek10ZIPCyxAjLiJzfjAZyFBnvB28HT45YtjluYvGq3VFSpT/Y02UCh8ZQEjjYwBgC03bHa0kVH704Q5Qm83GiaIoDIUUFhZKTU1NOHLkCDd37lw+JAVR13wyo9tvP6iP4zUicSNIfeAIh/je8d9bdRll2yo/gcfjAS0rK3NzHIelzy+G1sDj9+Z29PX2Y8uWLaM5jpP+ulPe5/dJJ375btRP9rr9RrMuRiROBHgRGj2B0Gm+NDO18IW2szciubm5997xrl27UPr6Shy7cKj4pvPGK6mmcaV+h+pijP2j+8vdF3Guvb7GkChM8pEBBKiXaYwAuTWqLyfmySWzs+b7S0usAmMMjDHQkucWIyl7zLROX/tXyeOSRnVcv9o4JTNn/oDo8tpsNvh8PvhlEU2tDev4eLY8REUENF4Qgwrm5pUMNn3ZinmrHbExcdra2lqpvLz8Xsd5S3Msrc7zx+MT44yyGkLs2OjJVxxNDfvrakp27t7RoRN02F+3N7ufdVVRAxAkXsL0YUAlJF18YqMxEHfWNDpGqK6ulmpqaiCK4j2YqWqOwoeS/JwXESozKRIEYiXbD+2HTty62/mUNSHdeeF2wz59Aq/zwslUrcx4AyVx18YfWp6/siYrPVsAwLW1taG9vX3w6qjL7j+eac196aK7vlYwQytDAVHD4HiW1ua5ePpOV++vhjSa4efcUGiIaI0U5Hq0fZZ13qtJphQ1Pz9fAoCOjo5/jz7B2jdeg/kxU/FlofFb+khYUAJhEpZUpioMAoki0SYjC3BewhkIU11UzvQW5D2elN88aeJkwWKxSENmitlsBiEEq9asxOh0fkGr9vRRmhARlKDKIrIKgBFexzONniMMjCXbp22eoM/ZxoIERUVFD4YZY3oAKgA43Xdx7OdvltSHDx6gcYxG5AiYClBBA6rXgF6O/7Hk0RVzFsxcIhBC1N7e3ojFYgkPBVMAfHFxsVeWZZjNZlRvrzrmqruz5jdf3T4hlidMBeG0HFO6qG+ykP0yJ+pUu92uFhQUSKqqPnD0KQCcOnUKkiTBarUi1hSHFCH9c7HPk9gd1fSeMIaHJIaRMjBl0x/N3Z2KhSI1JRUOh+N/M4UOFeR7d9SiYNGs9xNJZvId/dV1entivUlJ+LTqs3dRUVExrLD6D8wYgyzLqKrYjnc+eutNekXwR9Mxe77c+TULhUKDZ0YM3/96PB4PKjd9EJmaNXWze8CN1kutw0YB4E/P3yM38j3JcAAAAABJRU5ErkJggg==);      
}