﻿/**********************************************************************/
/*ELEMENTS*/
a {
    text-decoration: none;
    color: inherit;
}

    a:hover {
        text-decoration: none;
    }

/**************************************************************************/
/**MESSAGE VIEW MODAL**/
/**************************************************************************/
/**MESSAGE VIEW MODAL**/
/**************************************************************************/

.jf-message-container {
    z-index: 999;
    background-color: rgba(0, 0, 0, 0.7);
    min-width: 100vw;
    min-height: 100vh;
    position: fixed;
    top: 0px;
    left: 0px;
    margin: 0px;
    padding: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
}



.jf-message-body {
    width: 95%;
    margin: auto;
    max-width: 360px;
    padding: 20px;
    border-radius: 15px;
    background-color: white;
    animation: jf_message_body_keyfrm 400ms ease 0s 1 normal forwards;
}

@keyframes jf_message_body_keyfrm {
    0% {
        transform: scale(0.5);
    }

    100% {
        transform: scale(1);
    }
}

.jf-message-buttons {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jf-message-button {
    margin: 5px;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
}

    .jf-message-button.ok {
        background-color: #ffc107;
    }

    .jf-message-button.exit {
        background-color: #dc3545;
        color: #fff;
    }

    .jf-message-button.close {
        background-color: #6c757d;
        color: #fff;
    }

.jf-message-text {
    text-align: center;
    margin: 20px 0px 20px 0px;
    font-size: 1.1rem;
    padding: 15px 5px;
}


.jf-message-icon {
    margin: auto;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    position: relative;
    width: 100px;
    height: 100px;
    cursor: pointer;
    animation: jf_message_icon_keyfrm 1s ease 0s 1 normal forwards;
}

    .jf-message-icon svg {
        position: absolute;
        top: 10%;
        left: 15%;
        width: 70%;
        height: 70%;
        z-index: 3;
    }

    .jf-message-icon.check {
        background: #1dbd45;
    }

        .jf-message-icon.check svg {
            fill: white;
        }

    .jf-message-icon.warning {
        background: red;
    }

        .jf-message-icon.warning svg {
            fill: white;
        }

    .jf-message-icon.info {
        background: #ccc;
    }

        .jf-message-icon.info svg {
            fill: white;
        }

    .jf-message-icon.delete {
        background: red;
    }

        .jf-message-icon.delete svg {
            fill: white;
        }



@keyframes jf_message_icon_keyfrm {
    0% {
        animation-timing-function: ease-in;
        opacity: 0;
        transform: scale(0);
    }

    38% {
        animation-timing-function: ease-out;
        opacity: 1;
        transform: scale(1);
    }

    55% {
        animation-timing-function: ease-in;
        transform: scale(0.7);
    }

    72% {
        animation-timing-function: ease-out;
        transform: scale(1);
    }

    81% {
        animation-timing-function: ease-in;
        transform: scale(0.84);
    }

    89% {
        animation-timing-function: ease-out;
        transform: scale(1);
    }

    95% {
        animation-timing-function: ease-in;
        transform: scale(0.95);
    }

    100% {
        animation-timing-function: ease-out;
        transform: scale(1);
    }
}
/**********************************************************************/
.jf-outline-none,
.jf-outline-none:focus,
.jf-outline-none:active,
.jf-outline-none:link {
    outline: none !important
}
/**********************************************************************/
.jf-mobile-hide {
    display: block !important
}

.jf-mobile-show {
    display: none !important;
}

@media only screen and (max-width: 768px) {
    .jf-mobile-hide {
        display: none !important
    }

    .jf-mobile-show {
        display: block !important;
    }
}


/**********************************************************************/
/*GENERIC CLASSES*/
.jf-center {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jf-background-image {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/*********************************************************************/
.jf-maxlength-alert {
    display: block;
    font-size: small;
    width: 100%;
    text-align: right;
}
/*********************************************************************/
.jf-reponsive-img {
    max-width: 100%;
}
/*********************************************************************/
.jf-snackbar-container * {
    margin: 0px;
    padding: 0px;
}

.jf-snackbar-container {
    position: fixed;
    width: calc(100% - 30px);
    bottom: 3vh;
    z-index: 999;
}

    .jf-snackbar-container.right {
        max-width: 320px;
        right: 15px;
        animation: jf_snackbar_anim_right 1000ms ease-in-out 0s 1 normal forwards;
    }

    .jf-snackbar-container.left {
        max-width: 320px;
        left: 15px;
        animation: jf_snackbar_anim_left 1000ms ease-in-out 0s 1 normal forwards;
    }

    .jf-snackbar-container.bottom {
        max-width: calc(100% - 30px);
        min-width: calc(100% - 30px);
        display: flex;
        align-items: center;
        justify-content: center;
        animation: jf_snackbar_anim_bottom 1000ms ease-in-out 0s 1 normal forwards;
    }

@keyframes jf_snackbar_anim_right {
    0% {
        animation-timing-function: ease-in;
        opacity: 0;
        transform: translateX(250px);
    }

    38% {
        animation-timing-function: ease-out;
        opacity: 1;
        transform: translateX(0);
    }

    55% {
        animation-timing-function: ease-in;
        transform: translateX(68px);
    }

    72% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }

    81% {
        animation-timing-function: ease-in;
        transform: translateX(32px);
    }

    90% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }

    95% {
        animation-timing-function: ease-in;
        transform: translateX(8px);
    }

    100% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }
}

@keyframes jf_snackbar_anim_left {
    0% {
        animation-timing-function: ease-in;
        opacity: 0;
        transform: translateX(-250px);
    }

    38% {
        animation-timing-function: ease-out;
        opacity: 1;
        transform: translateX(0);
    }

    55% {
        animation-timing-function: ease-in;
        transform: translateX(-68px);
    }

    72% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }

    81% {
        animation-timing-function: ease-in;
        transform: translateX(-28px);
    }

    90% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }

    95% {
        animation-timing-function: ease-in;
        transform: translateX(-8px);
    }

    100% {
        animation-timing-function: ease-out;
        transform: translateX(0);
    }
}

@keyframes jf_snackbar_anim_bottom {
    0% {
        animation-timing-function: ease-in;
        opacity: 0;
        transform: translateY(250px);
    }

    38% {
        animation-timing-function: ease-out;
        opacity: 1;
        transform: translateY(0);
    }

    55% {
        animation-timing-function: ease-in;
        transform: translateY(65px);
    }

    72% {
        animation-timing-function: ease-out;
        transform: translateY(0);
    }

    81% {
        animation-timing-function: ease-in;
        transform: translateY(28px);
    }

    90% {
        animation-timing-function: ease-out;
        transform: translateY(0);
    }

    95% {
        animation-timing-function: ease-in;
        transform: translateY(8px);
    }

    100% {
        animation-timing-function: ease-out;
        transform: translateY(0);
    }
}

.jf-snackbar-body {
    width: 90%;
    max-width: 320px;
    margin: auto;
    min-height: 30px;
    position: relative;
    /*box-shadow: 0px 0px 7px #ccc;*/
    border-radius: 10px;
    padding: 27px 15px 10px 10px;
}

    .jf-snackbar-body.info {
        background-color: #5bc0de;
        color: #fff;
    }

    .jf-snackbar-body.warning {
        background-color: #bb2124;
        color: #fff;
    }

    .jf-snackbar-body.success {
        background-color: #f0ad4e;
        color: #fff;
    }

.jf-snackbar-icon {
    position: absolute;
    top: -10px;
    left: 0px;
    height: 35px;
    width: 37px;
    text-align: center;
    padding-left: 10px;
    background-color: inherit;
    border-radius: 10px;
    font-size: 1.7rem;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
}

.jf-snackbar-body.info .jf-snackbar-icon:after {
    content: "\00a0\2139";
}

.jf-snackbar-body.success .jf-snackbar-icon:after {
    content: '\2714';
}

.jf-snackbar-body.warning .jf-snackbar-icon:after {
    content: '\26A0';
}

.jf-snackbar-btn:after {
    content: '\2716';
}

.jf-snackbar-btn {
    border: none;
    background-color: transparent;
    color: inherit;
    font-size: 1rem;
    position: absolute;
    padding: 3px 7px;
    text-align: center;
    cursor: pointer;
    top: 0px;
    right: 10px;
}

    .jf-snackbar-btn:hover {
        background-color: rgba(0,0,0,0.5);
        color: #fff;
    }

.jf-snackbar-text {
    text-align: center;
}
/************************************************************************/

.jf-file-upload {
    width: 100%;
    max-width: 300px;
    position: relative;
    height: 40px;
    margin-bottom: 7px;
}

    .jf-file-upload * {
        color: #fff;
    }

    .jf-file-upload span {
        width: 100%;
        display: block;
        position: absolute;
        padding: 0.5em;
        float: left;
        white-space: nowrap;
        overflow: hidden;
        background-color: rgba(0,0,0,0.5);
    }

    .jf-file-upload label {
        width: 55px;
        position: absolute;
        right: 0px;
        padding: 0.5em;
        padding-left: 1em;
        display: inline-block;
        background-color: rgba(0,0,0,0.7);
        cursor: pointer;
    }

        .jf-file-upload label:hover {
            background-color: rgba(0,0,0,0.9);
        }

    .jf-file-upload input {
        position: absolute;
        left: -9999px;
    }
/************************************************************************/
.url-card-container {
    width: 100%;
    max-width: 280px;
    max-height:210px;
    display: block;
    text-decoration: none;
    border-radius: 25px;
    overflow: hidden;
    background-color: #fff;
    color: #000;
    box-shadow: 1px 2px 10px -5px #000;
    margin: 20px auto 10px auto;
}

.url-card-img {
    background-size: auto;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 120px;
    overflow: hidden;
    background-color: #ddd;
}
.url-card-container img{
    width:100%;
}

.url-card-container.url-card-mail .url-card-img {
    background-image: url(data:image/png;base64,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) !important;
}
.url-card-container.url-card-mail .url-card-title {
    font-size: 1rem !important;
    font-weight: normal !important;
}

.url-card-title {
    width: 100%;
    text-align: center;
    font-weight: 600;
    padding: 5px;
    font-size: 1.2rem;
}

.url-card-description {
    padding: 5px 10px 15px 10px;
}


.url-card-img.default-img {
    background-image: url("data:image/png;base64,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") !important;
}

/************************************************************************/
/*Loading Icon*/
.jf-loading-container {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.5);
    min-width: 100% !important;
    min-height: 100% !important;
    z-index: 9999;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jf-loading-roller {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}

    .jf-loading-roller div {
        animation: jf_loading_roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
        transform-origin: 40px 40px;
    }

        .jf-loading-roller div:after {
            content: " ";
            display: block;
            position: absolute;
            width: 9px;
            height: 9px;
            border-radius: 50%;
            background: #fff;
            margin: -4px 0 0 -4px;
        }

        .jf-loading-roller div:nth-child(1) {
            animation-delay: -0.036s;
        }

            .jf-loading-roller div:nth-child(1):after {
                top: 63px;
                left: 63px;
            }

        .jf-loading-roller div:nth-child(2) {
            animation-delay: -0.072s;
        }

            .jf-loading-roller div:nth-child(2):after {
                top: 68px;
                left: 56px;
            }

        .jf-loading-roller div:nth-child(3) {
            animation-delay: -0.108s;
        }

            .jf-loading-roller div:nth-child(3):after {
                top: 71px;
                left: 48px;
            }

        .jf-loading-roller div:nth-child(4) {
            animation-delay: -0.144s;
        }

            .jf-loading-roller div:nth-child(4):after {
                top: 72px;
                left: 40px;
            }

        .jf-loading-roller div:nth-child(5) {
            animation-delay: -0.18s;
        }

            .jf-loading-roller div:nth-child(5):after {
                top: 71px;
                left: 32px;
            }

        .jf-loading-roller div:nth-child(6) {
            animation-delay: -0.216s;
        }

            .jf-loading-roller div:nth-child(6):after {
                top: 68px;
                left: 24px;
            }

        .jf-loading-roller div:nth-child(7) {
            animation-delay: -0.252s;
        }

            .jf-loading-roller div:nth-child(7):after {
                top: 63px;
                left: 17px;
            }

        .jf-loading-roller div:nth-child(8) {
            animation-delay: -0.288s;
        }

            .jf-loading-roller div:nth-child(8):after {
                top: 56px;
                left: 12px;
            }

@keyframes jf_loading_roller {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
.is-invalid.invalid.animation {
    -webkit-animation: shake-horizontal-invalid 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
    animation: shake-horizontal-invalid 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
}
@-webkit-keyframes shake-horizontal-invalid {
    0%, 100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    10%, 30%, 50%, 70% {
        -webkit-transform: translateX(-3px);
        transform: translateX(-3px);
    }

    20%, 40%, 60% {
        -webkit-transform: translateX(3px);
        transform: translateX(3px);
    }

    80% {
        -webkit-transform: translateX(1px);
        transform: translateX(1px);
    }

    90% {
        -webkit-transform: translateX(-1px);
        transform: translateX(-1px);
    }
}

@keyframes shake-horizontal-invalid {
    0%, 100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    10%, 30%, 50%, 70% {
        -webkit-transform: translateX(-3px);
        transform: translateX(-3px);
    }

    20%, 40%, 60% {
        -webkit-transform: translateX(3px);
        transform: translateX(3px);
    }

    80% {
        -webkit-transform: translateX(1px);
        transform: translateX(1px);
    }

    90% {
        -webkit-transform: translateX(-1px);
        transform: translateX(-1px);
    }
}


/************************************************************************/

