﻿/*==================================================
            GLOBAL MESSAGE BOX
==================================================*/

.gmb-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    justify-content: center;
    align-items: center;
    padding: 20px;
    background: rgba(15,15,15,.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: gmbFade .25s ease;
}

    .gmb-overlay.show {
        display: flex;
    }

.gmb-container {
    position: relative;
    width: min(95%, 480px);
    background: rgba(255,255,255,.96);
    border-radius: 30px;
    padding: 45px 35px 35px;
    text-align: center;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.65);
    box-shadow: 0 35px 80px rgba(0,0,0,.35), 0 0 50px rgba(255,153,0,.10);
    animation: gmbScale .30s ease;
}

    .gmb-container::before {
        content: "";
        position: absolute;
        top: -120px;
        left: -100px;
        width: 250px;
        height: 250px;
        background: radial-gradient(circle,rgba(255,174,0,.18),transparent 70%);
        pointer-events: none;
    }

    .gmb-container::after {
        content: "";
        position: absolute;
        bottom: -120px;
        right: -100px;
        width: 250px;
        height: 250px;
        background: radial-gradient(circle,rgba(255,120,0,.18),transparent 70%);
        pointer-events: none;
    }

/*==========================
            ICONO
==========================*/

.gmb-icon {
    width: 100px;
    height: 100px;
    margin: auto;
    margin-bottom: 25px;
    border-radius: 50%;
    background: linear-gradient(135deg,#ffb300,#ff7700);
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 45px;
    box-shadow: 0 18px 40px rgba(255,136,0,.35);
    animation: gmbFloat 2s ease-in-out infinite;
}

    .gmb-icon i {
        animation: gmbRotate 3s linear infinite;
    }

/*==========================
            TEXTO
==========================*/

.gmb-title {
    margin: 0;
    color: #2f2f2f;
    font-size: 2rem;
    font-weight: 800;
}

.gmb-message {
    margin-top: 18px;
    color: #707070;
    line-height: 1.8;
    font-size: 1.05rem;
}

/*==========================
          SPINNER
==========================*/

.gmb-spinner {
    margin-top: 25px;
    margin-bottom: 10px;
}

    .gmb-spinner .spinner-border {
        width: 3.2rem;
        height: 3.2rem;
        border-width: .35rem;
    }

/*==========================
      BARRA DE CARGA
==========================*/

.gmb-container::selection {
    background: none;
}

.gmb-loading-bar {
    width: 100%;
    height: 5px;
    background: #ececec;
    overflow: hidden;
    border-radius: 30px;
    margin-top: 25px;
}

    .gmb-loading-bar::before {
        content: "";
        display: block;
        width: 35%;
        height: 100%;
        background: linear-gradient( 90deg, #ffb300, #ff7700 );
        animation: gmbLoading 1.3s infinite linear;
    }

/*==========================
          BOTONES
==========================*/

.gmb-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
}

    .gmb-buttons button {
        min-width: 140px;
        border-radius: 50px;
        padding: 12px 25px;
        font-weight: 700;
        transition: .25s;
    }

        .gmb-buttons button:hover {
            transform: translateY(-2px);
        }

.gmb-hidden {
    display: none !important;
}

/*==========================
            TEMAS
==========================*/

.gmb-success .gmb-icon {
    background: linear-gradient(135deg,#30c96b,#17a34a);
}

.gmb-error .gmb-icon {
    background: linear-gradient(135deg,#ff6262,#d9203d);
}

.gmb-warning .gmb-icon {
    background: linear-gradient(135deg,#ffb300,#ff7700);
}

.gmb-info .gmb-icon {
    background: linear-gradient(135deg,#0d6efd,#43a2ff);
}

.gmb-question .gmb-icon {
    background: linear-gradient(135deg,#7658ff,#5337ff);
}

/*==========================
        ANIMACIONES
==========================*/

@keyframes gmbFade {

    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes gmbScale {

    from {
        opacity: 0;
        transform: scale(.80);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes gmbFloat {

    0%,100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

@keyframes gmbRotate {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes gmbLoading {

    from {
        transform: translateX(-150%);
    }

    to {
        transform: translateX(350%);
    }
}

/*==========================
        RESPONSIVE
==========================*/

@media (max-width:768px) {

    .gmb-container {
        padding: 35px 24px;
    }

    .gmb-title {
        font-size: 1.6rem;
    }

    .gmb-message {
        font-size: .95rem;
    }

    .gmb-icon {
        width: 82px;
        height: 82px;
        font-size: 36px;
    }

    .gmb-buttons {
        flex-direction: column;
    }

        .gmb-buttons button {
            width: 100%;
        }
}
