*{ margin:0; padding:0; box-sizing:border-box; }

body{ background:#0b0b0b; color:#ffffff;
font-family:Arial,Helvetica,sans-serif; padding:20px; }

.container{ max-width:1700px; margin:auto; }

/* ================= HEADER ================= */

header{ display:grid; grid-template-columns:1fr auto 1fr;
align-items:center; margin-bottom:20px; }

.logo{ justify-self:start; font-size:42px; font-weight:bold;
letter-spacing:3px; }

.header-viewers{ justify-self:center; margin:0; font-size:22px;
font-weight:bold; min-width:100px; justify-content:center; }

.status{ justify-self:end; display:flex; align-items:center; gap:10px;
font-size:18px; font-weight:bold; }

.live-dot, .green-dot{ width:12px; height:12px; border-radius:50%;
background:#ff2d2d; box-shadow:0 0 10px rgba(255,45,45,.8); }

/* ================= MAIN ================= */

main{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:20px;
    align-items:stretch;
}

.player-column{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.player-box{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    background:#000;
    border:1px solid #333;
    border-radius:12px;
    overflow:hidden;
}

/* ================= VIDEO PLAYER ================= */

#streamVideo{ position:absolute; inset:0; width:100%; height:100%;
display:none; background:#000; border:0; object-fit:contain; z-index:1;
}

#streamVideo:fullscreen{ width:100%; height:100%; background:#000;
object-fit:contain; }

#streamVideo:-webkit-full-screen{ width:100%; height:100%;
background:#000; object-fit:contain; }

/* ================= STREAM OFFLINE ================= */

.stream-offline{ width:100%; height:100%; display:flex;
justify-content:center; align-items:center; text-align:center;
background:#000; color:#fff; padding:20px; }

#offlineScreen{ position:absolute; inset:0; width:100%; height:100%;
z-index:2; }

.stream-offline h2{ font-size:72px; margin-bottom:20px; }

.stream-offline h3{ font-size:30px; margin-bottom:10px; }

.stream-offline p{ color:#9d9d9d; font-size:17px; }

/* ================= STREAM INFO ================= */

.stream-info{
    width:100%;
    margin-top:20px;
    padding:20px;
    background:#101010;
    border:1px solid #333;
    border-radius:12px;
}

.stream-info h2{
    font-size:30px;
    margin-bottom:12px;
}

.stream-info p{
    color:#bdbdbd;
    line-height:1.6;
}

/* ================= VIEWERS ================= */

.viewer-box{ display:inline-flex; align-items:center; gap:10px;
padding:10px 16px; background:#181818; border-radius:10px; }

/* ================= CHAT ================= */

.chat-column{ display:flex; flex-direction:column; height:720px;
background:#101010; border:1px solid #333; border-radius:12px;
overflow:hidden; }

.chat-header{ padding:18px; font-size:24px; font-weight:bold;
border-bottom:1px solid #333; }

.chat-messages{ flex:1; overflow-y:auto; padding:18px; }

.chat-messages::-webkit-scrollbar{ width:8px; }

.chat-messages::-webkit-scrollbar-thumb{ background:#444;
border-radius:8px; }

.system-message{ color:#888; }

.message{ margin-bottom:4px; line-height:1.5; word-break:break-word;
padding:2px 0; }

.chat-input-box{ display:flex; gap:10px; padding:18px; border-top:1px
solid #333; }

.chat-input-box input{ flex:1; min-width:0; background:#1b1b1b;
color:#fff; border:1px solid #444; border-radius:8px; padding:12px;
outline:none; font-size:15px; }

.chat-input-box input:focus{ border-color:#777; }

.chat-input-box button{ width:60px; background:#222; color:#fff;
border:1px solid #444; border-radius:8px; cursor:pointer;
font-size:22px; transition:.2s; }

.chat-input-box button:hover{ background:#2c2c2c; }

/* ================= ADAPTIVE ================= */

@media(max-width:1200px){

    main{
        grid-template-columns:1fr;
    }

    .chat-column{
        height:500px;
    }

}

@media(max-width:700px){

    body{
        padding:10px;
    }

    header{
        grid-template-columns:1fr;
        row-gap:15px;
    }

    .logo{
        justify-self:center;
        font-size:30px;
    }

    .header-viewers{
        justify-self:center;
    }

    .status{
        justify-self:center;
    }

    .chat-column{
        height:450px;
    }

    .stream-offline h2{
        font-size:52px;
    }

    .stream-offline h3{
        font-size:24px;
    }

}

#streamVideo.zoom-fill:fullscreen,
#streamVideo.zoom-fill:-webkit-full-screen{ object-fit:cover!important;
}


/* ================= LINK BUTTONS ================= */

.link-buttons{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
    width:100%;
    margin-top:18px;
}

.site-button{
    width:100%;
    min-width:0;
    min-height:58px;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:10px 10px;

    background:#ffffff;
    color:#000000 !important;

    border:2px solid #ffffff;
    border-radius:15px;

    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    font-weight:800;
    letter-spacing:.01em;

    text-align:center;
    text-decoration:none !important;
    white-space:nowrap;
    cursor:pointer;

    transition:
        transform .18s ease,
        background .18s ease,
        color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.site-button:link,
.site-button:visited{
    color:#000000 !important;
}

.site-button:hover{
    background:#000000;
    color:#ffffff !important;
    border-color:#ffffff;
    text-decoration:none !important;
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(255,255,255,.15);
}

.site-button:active{
    transform:scale(.98);
}

.copy-button{
    width:100%;
}

.copy-button.copied{
    background:#00ff55;
    border-color:#00ff55;
    color:#000000 !important;
}

.copy-message{
    min-height:20px;
    margin-top:12px;
    color:#00ff55;
    font-size:14px;
}

@media(max-width:1200px){
    .link-buttons{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:800px){
    .link-buttons{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:520px){
    .link-buttons{
        grid-template-columns:1fr;
    }

    .site-button{
        min-height:56px;
        font-size:16px;
    }
}
