/*
==================================================
Match Stream Hub Pro
Frontend CSS
Part 1
==================================================
*/

.mshp-player{
    width:100%;
    margin:30px auto;
    background:#111827;
    border-radius:18px;
    overflow:hidden;
    border:1px solid #232b3b;
    box-shadow:0 20px 50px rgba(0,0,0,.35);
}

.mshp-player-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 24px;
    background:#161f30;
    border-bottom:1px solid rgba(255,255,255,.06);
}

.mshp-live-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:999px;
    background:#dc2626;
    color:#fff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.4px;
}

.mshp-live-badge .dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#fff;
    animation:mshpPulse 1.2s infinite;
}

@keyframes mshpPulse{

    0%{
        transform:scale(.8);
        opacity:.5;
    }

    50%{
        transform:scale(1.3);
        opacity:1;
    }

    100%{
        transform:scale(.8);
        opacity:.5;
    }

}

.mshp-countdown{
    color:#fff;
    font-size:15px;
    font-weight:600;
    font-family:monospace;
}

.mshp-player-box{
    position:relative;
    background:#000;
    overflow:hidden;
}

#mshp_iframe{
    width:100%;
    height:650px;
    border:0;
    display:block;
    background:#000;
    transition:.3s;
}

.mshp-loading{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    background:rgba(0,0,0,.88);
    color:#fff;
    font-size:15px;
    z-index:50;
}

.mshp-spinner{
    width:55px;
    height:55px;
    border-radius:50%;
    border:5px solid rgba(255,255,255,.15);
    border-top-color:#2563eb;
    animation:mshpSpin 1s linear infinite;
    margin-bottom:18px;
}

@keyframes mshpSpin{

    to{

        transform:rotate(360deg);

    }

}

.mshp-current{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:20px 24px;
    background:#0f172a;
    color:#fff;
    border-top:1px solid rgba(255,255,255,.05);
}

#mshp_flag{
    font-size:26px;
    margin-right:10px;
}

#mshp_title{
    font-size:18px;
    font-weight:700;
}

#mshp_quality{
    display:inline-block;
    padding:6px 14px;
    border-radius:30px;
    background:#2563eb;
    color:#fff;
    font-size:13px;
    font-weight:700;
}

.mshp-server-count{
    padding:14px 24px;
    background:#182133;
    color:#cbd5e1;
    font-size:14px;
    border-top:1px solid rgba(255,255,255,.05);
}
/*
==================================================
Match Stream Hub Pro
Frontend CSS
Part 2
==================================================
*/

.mshp-server-list{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));

    gap:14px;

    padding:24px;

    background:#101827;

}

.mshp-server{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:10px;

    width:100%;

    padding:14px 16px;

    background:#1b2435;

    color:#fff;

    border:1px solid transparent;

    border-radius:12px;

    cursor:pointer;

    transition:all .25s ease;

    font-size:14px;

    font-weight:600;

}

.mshp-server span:first-child{

    font-size:22px;

}

.mshp-server:hover{

    transform:translateY(-3px);

    background:#24314a;

    border-color:#3b82f6;

    box-shadow:0 12px 30px rgba(37,99,235,.25);

}

.mshp-server.active{

    background:#2563eb;

    color:#fff;

    border-color:#60a5fa;

    box-shadow:0 0 0 2px rgba(96,165,250,.25);

}

.mshp-server.active .quality{

    background:#fff;

    color:#2563eb;

}

.mshp-server .quality{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:52px;

    padding:4px 10px;

    border-radius:999px;

    background:#0f172a;

    color:#93c5fd;

    font-size:12px;

    font-weight:700;

}

.mshp-footer{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:14px;

    padding:24px;

    background:#161f30;

    border-top:1px solid rgba(255,255,255,.06);

}

.mshp-footer button{

    appearance:none;

    border:0;

    border-radius:12px;

    padding:14px 22px;

    font-size:14px;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

#mshp_copy{

    background:#2563eb;

    color:#fff;

}

#mshp_copy:hover{

    background:#1d4ed8;

    transform:translateY(-2px);

}

#mshp_share{

    background:#16a34a;

    color:#fff;

}

#mshp_share:hover{

    background:#15803d;

    transform:translateY(-2px);

}

#mshp_fullscreen{

    background:#ea580c;

    color:#fff;

}

#mshp_fullscreen:hover{

    background:#c2410c;

    transform:translateY(-2px);

}

.mshp-expired,
.mshp-no-stream,
.mshp-error{

    max-width:850px;

    margin:40px auto;

    padding:60px 30px;

    background:#111827;

    border:1px solid #24314a;

    border-radius:18px;

    text-align:center;

    color:#fff;

}

.mshp-expired .icon,
.mshp-no-stream .icon,
.mshp-error-icon{

    font-size:64px;

    margin-bottom:20px;

}

.mshp-expired h2,
.mshp-no-stream h2,
.mshp-error h3{

    margin:0 0 12px;

    font-size:30px;

    font-weight:700;

}

.mshp-expired p,
.mshp-no-stream p,
.mshp-error p{

    color:#94a3b8;

    font-size:15px;

    line-height:1.7;

}

.mshp-error-box{

    text-align:center;

    color:#fff;

}

.mshp-error-box h3{

    margin-bottom:10px;

    font-size:22px;

}

.mshp-error-box p{

    color:#cbd5e1;

}
/*
==================================================
Match Stream Hub Pro
Frontend CSS
Part 3
Responsive + Animation + Final
==================================================
*/

.mshp-player *{
    box-sizing:border-box;
}

.mshp-player button:focus{
    outline:none;
    box-shadow:0 0 0 3px rgba(37,99,235,.35);
}

#mshp_iframe{
    opacity:1;
    transition:opacity .35s ease;
}

.mshp-loading{
    transition:opacity .35s ease;
}

.mshp-server{
    user-select:none;
    -webkit-user-select:none;
}

.mshp-server:active{
    transform:scale(.98);
}

.mshp-footer button:active{
    transform:scale(.97);
}

.mshp-player{
    animation:mshpFade .35s ease;
}

@keyframes mshpFade{

    from{

        opacity:0;
        transform:translateY(15px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

.mshp-player::-webkit-scrollbar{

    width:8px;
    height:8px;

}

.mshp-player::-webkit-scrollbar-thumb{

    background:#334155;
    border-radius:20px;

}

.mshp-player::-webkit-scrollbar-track{

    background:#0f172a;

}

.mshp-server-list::-webkit-scrollbar{

    height:8px;

}

.mshp-server-list::-webkit-scrollbar-thumb{

    background:#475569;
    border-radius:20px;

}

.mshp-server-list::-webkit-scrollbar-track{

    background:#111827;

}

.mshp-server{

    position:relative;
    overflow:hidden;

}

.mshp-server::before{

    content:"";
    position:absolute;
    left:-100%;
    top:0;
    width:100%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.08),
        transparent
    );
    transition:.45s;

}

.mshp-server:hover::before{

    left:100%;

}

.mshp-live-badge{

    animation:mshpLive 2s infinite;

}

@keyframes mshpLive{

    0%{

        box-shadow:0 0 0 rgba(220,38,38,.5);

    }

    50%{

        box-shadow:0 0 18px rgba(220,38,38,.7);

    }

    100%{

        box-shadow:0 0 0 rgba(220,38,38,.5);

    }

}

.mshp-countdown{

    padding:8px 14px;
    border-radius:8px;
    background:#0f172a;

}

.mshp-server-count{

    font-weight:600;
    letter-spacing:.4px;

}

.mshp-footer button{

    min-width:150px;

}

.mshp-error,
.mshp-expired,
.mshp-no-stream{

    animation:mshpPopup .3s ease;

}

@keyframes mshpPopup{

    from{

        opacity:0;
        transform:scale(.96);

    }

    to{

        opacity:1;
        transform:scale(1);

    }

}

@media (max-width:1200px){

    #mshp_iframe{

        height:580px;

    }

}

@media (max-width:992px){

    .mshp-player-top{

        flex-direction:column;
        gap:15px;
        text-align:center;

    }

    .mshp-current{

        flex-direction:column;
        gap:14px;
        text-align:center;

    }

    .mshp-server-list{

        grid-template-columns:
        repeat(auto-fill,minmax(160px,1fr));

    }

    #mshp_iframe{

        height:500px;

    }

}

@media (max-width:768px){

    .mshp-player{

        border-radius:12px;

    }

    .mshp-player-top{

        padding:16px;

    }

    .mshp-current{

        padding:16px;

    }

    .mshp-server-list{

        padding:16px;

        gap:10px;

        grid-template-columns:
        repeat(2,1fr);

    }

    .mshp-server{

        padding:12px;

        font-size:13px;

    }

    .mshp-footer{

        padding:16px;

        gap:10px;

    }

    .mshp-footer button{

        width:100%;

    }

    #mshp_iframe{

        height:380px;

    }

}

@media (max-width:576px){

    .mshp-live-badge{

        font-size:11px;

        padding:6px 10px;

    }

    .mshp-countdown{

        font-size:13px;

    }

    .mshp-server-list{

        grid-template-columns:1fr;

    }

    .mshp-server{

        justify-content:space-between;

    }

    #mshp_title{

        font-size:16px;

    }

    #mshp_flag{

        font-size:22px;

    }

    #mshp_iframe{

        height:260px;

    }

}

@media print{

    .mshp-player{

        display:none !important;

    }

}

@media (prefers-reduced-motion:reduce){

    *{

        animation:none !important;

        transition:none !important;

    }

}
/* ========== Header Right & Buttons ========== */
.mshp-player-header-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.mshp-pause-btn,
.mshp-expire-btn {
    border: none;
    border-radius: 6px;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    color: #fff;
    transition: all 0.2s ease;
}

.mshp-pause-btn { background: #2563eb; }
.mshp-pause-btn:hover { background: #1e40af; }

.mshp-expire-btn { background: #dc2626; }
.mshp-expire-btn:hover { background: #b91c1c; }

.mshp-expire-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
/* ================== Player Header ================== */
.mshp-player-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    background: #161f30;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.mshp-player-header-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.mshp-player-title {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 380px;
}

.mshp-player-header-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Responsive Title */
@media (max-width: 768px) {
    .mshp-player-title {
        max-width: 200px;
        font-size: 15px;
    }
}