
/* =========================================================
   XXDATE FINAL DEMO CALL SYSTEM
   ========================================================= */

#xx-demo-incoming-call,
#xx-demo-connecting,
#xx-demo-video,
#xx-credit-message {
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100vh !important;
    z-index:999999 !important;
    pointer-events:none;
}

/* Incoming popup */

#xx-demo-incoming-call {
    display:flex !important;
    justify-content:flex-end !important;
    align-items:flex-start !important;
    padding:110px 28px 28px !important;
    background:transparent !important;
}

.xx-call-card {
    width:360px;
    max-width:calc(100vw - 32px);
    padding:24px;
    background:#0b080c;
    border:1px solid #ff1975;
    border-radius:22px;
    box-shadow:
        0 0 0 1px rgba(255,25,117,.12),
        0 20px 70px rgba(255,0,100,.30);
    pointer-events:auto;
    animation:xxCallIn .35s ease;
}

@keyframes xxCallIn {
    from {
        opacity:0;
        transform:translateY(-20px) scale(.96);
    }
    to {
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

.xx-call-avatar {
    position:relative;
    width:62px;
    height:62px;
    float:left;
    margin-right:15px;
}

.xx-call-avatar img {
    width:62px;
    height:62px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #ff1975;
}

.xx-call-online {
    position:absolute;
    right:1px;
    bottom:3px;
    width:13px;
    height:13px;
    background:#00e38c;
    border:3px solid #0b080c;
    border-radius:50%;
}

.xx-call-info {
    min-height:65px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.xx-call-info strong {
    color:#fff;
    font-size:20px;
}

.xx-call-status {
    color:#00e38c;
    font-size:12px;
    margin-top:3px;
}

.xx-call-info small {
    color:#ff1975;
    font-size:12px;
    font-weight:700;
    margin-top:4px;
}

.xx-call-buttons {
    clear:both;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:22px;
}

.xx-call-buttons button {
    border:0;
    min-height:48px;
    border-radius:12px;
    color:#fff;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
}

.xx-call-accept {
    background:#00cf83;
}

.xx-call-decline {
    background:#171017;
    border:1px solid #ff1975 !important;
}

/* Connecting */

#xx-demo-connecting {
    display:flex;
    align-items:center;
    justify-content:center;
    background:#050305;
    pointer-events:auto;
}

.xx-demo-connect-box {
    width:300px;
    text-align:center;
    padding:35px 25px;
    background:#0d090d;
    border:1px solid #ff1975;
    border-radius:22px;
}

.xx-spinner {
    width:42px;
    height:42px;
    margin:0 auto 18px;
    border:4px solid #301321;
    border-top-color:#ff1975;
    border-radius:50%;
    animation:xxSpin .8s linear infinite;
}

@keyframes xxSpin {
    to {
        transform:rotate(360deg);
    }
}

.xx-demo-connect-box strong {
    display:block;
    color:#fff;
    font-size:22px;
}

.xx-demo-connect-box span {
    display:block;
    color:#aaa;
    margin-top:7px;
}

/* Demo video */

#xx-demo-video {
    display:flex;
    align-items:center;
    justify-content:center;
    background:#000;
    pointer-events:auto;
}

.xx-video-screen {
    position:relative;
    width:min(900px,100vw);
    height:min(620px,100vh);
    overflow:hidden;
    background:#080608;
}

.xx-video-person {
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
}

.xx-video-person img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.xx-video-top {
    position:absolute;
    top:20px;
    left:20px;
    right:20px;
    display:flex;
    justify-content:space-between;
    z-index:2;
    color:#fff;
    font-size:13px;
}

.xx-video-top span {
    color:#00e38c;
    background:rgba(0,0,0,.55);
    padding:8px 12px;
    border-radius:20px;
}

.xx-video-top b {
    background:rgba(0,0,0,.55);
    padding:8px 12px;
    border-radius:20px;
}

.xx-video-name {
    position:absolute;
    left:20px;
    bottom:90px;
    color:#fff;
    font-size:20px;
    font-weight:800;
    text-shadow:0 2px 10px #000;
}

.xx-video-bottom {
    position:absolute;
    bottom:20px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    gap:14px;
}

.xx-video-bottom span {
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(15,10,15,.85);
    color:#fff;
    font-size:19px;
}

.xx-video-bottom .xx-video-end {
    background:#d92345;
}

/* Credit message */

#xx-credit-message {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(0,0,0,.78);
    backdrop-filter:blur(8px);
    pointer-events:auto;
}

.xx-credit-box {
    width:420px;
    max-width:100%;
    padding:32px 25px;
    text-align:center;
    background:#0c080c;
    border:1px solid #ff1975;
    border-radius:24px;
    box-shadow:0 20px 80px rgba(255,0,100,.28);
}

.xx-credit-icon {
    width:55px;
    height:55px;
    margin:0 auto 15px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#ff1975;
    color:#fff;
    font-size:25px;
    font-weight:900;
}

.xx-credit-box h2 {
    color:#fff;
    font-size:25px;
    margin:0 0 12px;
}

.xx-credit-box p {
    color:#b9b1b9;
    font-size:15px;
    line-height:1.6;
    margin:0 auto 22px;
    max-width:340px;
}

#xx-open-wallet {
    width:100%;
    min-height:50px;
    border:0;
    border-radius:12px;
    background:#ff1975;
    color:#fff;
    font-size:16px;
    font-weight:800;
    cursor:pointer;
}

.xx-credit-close {
    display:block;
    width:100%;
    margin-top:10px;
    min-height:42px;
    border:0;
    background:transparent;
    color:#999;
    cursor:pointer;
}

/* Mobile */

@media(max-width:700px) {

    #xx-demo-incoming-call {
        padding:82px 14px 85px !important;
        justify-content:center !important;
        align-items:flex-start !important;
    }

    .xx-call-card {
        width:100%;
        max-width:390px;
        padding:20px;
        border-radius:20px;
    }

    .xx-call-avatar,
    .xx-call-avatar img {
        width:54px;
        height:54px;
    }

    .xx-call-info strong {
        font-size:18px;
    }

    .xx-call-buttons {
        gap:9px;
    }

    .xx-call-buttons button {
        min-height:46px;
        font-size:14px;
    }

    .xx-video-screen {
        width:100vw;
        height:100vh;
    }

    .xx-credit-box {
        padding:28px 20px;
    }

    .xx-credit-box h2 {
        font-size:22px;
    }
}

