body {
    font-family: Arial, sans-serif;
    background: linear-gradient(135deg, #74ebd5 0%, #9face6 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
}

.login-container {
    background-color: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    width: 300px;
}

h2 { text-align: center; margin-bottom: 1.5rem; color: #333; }
.input-group { margin-bottom: 1rem; }
.input-group label { display: block; margin-bottom: 0.5rem; color: #555; }
.input-group input { width: 100%; padding: 0.5rem; border: 1px solid #ccc; border-radius: 4px; }
button { width: 100%; padding: 0.75rem; border: none; border-radius: 4px; background-color: #007bff; color: #fff; font-size: 1rem; cursor: pointer; transition: background-color 0.3s; }
button:hover { background-color: #0056b3; }

.app-wrapper {
    width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; box-sizing: border-box;
}

.glass-container {
    width: 100%; height: 100%; background: rgba(255, 255, 255, 0.25); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px);
    border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.2);
    display: flex; overflow: hidden;
}

.sidebar {
    width: 250px; background: rgba(255, 255, 255, 0.1); border-right: 1px solid rgba(255, 255, 255, 0.2); padding: 20px;
    display: flex; flex-direction: column;
}

.sidebar h3 { margin-top: 0; color: #333; }
#user-list { list-style: none; padding: 0; overflow-y: auto; }
#user-list li { padding: 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); color: #333; }

.voice-channels { margin-top: auto; padding-top: 15px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
#channel-list { list-style: none; padding: 0; margin: 0; }
#channel-list li { padding: 10px; margin-bottom: 5px; background: rgba(0, 0, 0, 0.05); border-radius: 10px; color: #333; font-weight: bold; cursor: pointer; transition: background 0.2s; }
#channel-list li:hover { background: rgba(255, 255, 255, 0.3); }
.channel-users { font-size: 0.75rem; color: #555; font-weight: normal; margin-top: 5px; min-height: 15px; }

.chat-area { flex-grow: 1; display: flex; flex-direction: column; }
.chat-history { flex-grow: 1; padding: 20px; overflow-y: auto; }
.chat-message { background: rgba(255, 255, 255, 0.4); padding: 10px 15px; border-radius: 15px; margin-bottom: 10px; width: fit-content; max-width: 80%; }
.input-area { padding: 20px; background: rgba(255, 255, 255, 0.1); border-top: 1px solid rgba(255, 255, 255, 0.2); }
#chat-input { width: 100%; padding: 15px; border-radius: 20px; border: none; background: rgba(255, 255, 255, 0.5); outline: none; font-size: 16px; box-sizing: border-box; }

.video-modal {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    display: flex; justify-content: center; align-items: center;
    z-index: 1000;
}

.video-modal-content {
    width: 80%; max-width: 900px; max-height: 80vh;
    flex-direction: column; padding: 20px;
    box-sizing: border-box;
}

.video-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 15px; color: #333; width: 100%;
}

.video-grid {
    display: grid;
    /* This automatically creates columns based on how many videos there are */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 15px;
    overflow-y: auto;
    width: 100%;
}

.video-grid video {
    width: 100%; 
    border-radius: 10px; 
    background: #000;
}