body {
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #111;
    color: white;
    height: 100vh;
}

* {
    box-sizing: border-box;
}

.show_on_mobile {
    display: none;
}

.wrapper {
    position: fixed;
    top: 2em;
    left: 2em;
    bottom: 2em;
    right: 2em;
}

.inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.header {
    font-size: 2em;
    height: 50px;
}

.content_wrap {
    display: flex;
    flex-direction: row;
    gap: 1em;
    flex: 1;
    overflow: hidden;
}

.column {
    display: flex;
    flex-direction: column;
    gap: 1em;
    overflow: hidden;
}

@media (min-width: 1025px) {
    .column {
        flex: 1;
    }
}

.col_header {
    font-size: 1.25em;
    font-weight: bold;
}

.col_sub_header {
    font-size: 0.9em;
    font-weight: normal;
    padding-top: 10px;
}

.col_content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    overflow: auto;
}

.log_messages,
.guest_videos {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}
.message {
    padding: 0.75em;
    border-radius: 0.5em;
    background-color: #333;
    overflow-x: scroll;
}
.message.error {
    color: rgb(200, 0, 0);
}
.message canvas {
    max-width: 200px;
    max-height: 200px;
}

.time {
    font-size: 0.75em;
    color: #aaa;
    margin-bottom: 4px;
}

#my_video_container {
    display: none;
    position: relative;
    cursor: pointer;
}
#my_video_container.shown {
    display: block;
}
.video_data {
    position: absolute;
    bottom: 4px;
    left: 4px;
    padding: 4px 10px;
    border-radius: 20px;
}
#my_video_title {
    position: absolute;
    top: 4px;
    left: 4px;
    padding: 2px 6px;
    border-radius: 20px;
    font-size: 0.7em;
    font-weight: bold;
    text-transform: uppercase;
}
.video_data,
#my_video_title {
    background: rgba(255, 255, 255, 0.6);
    color: black;
}

#my_video {
    background: black;
    max-width: 100%;
    max-height: 100%;
    display: block;
}

video,
.guest_video,
canvas {
    border: 1px solid white;
    border-radius: 10px;
    max-width: 100%;
    max-height: 100%;
    display: block;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

#my_video_controls {
    display: none;
}
#my_video_controls.shown {
    display: flex;
    align-items: center;
}
#video_duration {
    flex: 1;
    font-size: 1.2em;
}

.video_holder {
    display: none;
    overflow: hidden;
    position: relative;
}
.video_holder.shown {
    display: block;
}

.guest_video {
    max-width: 100%;
}

button {
    padding: 0.75em 1em;
    border: none;
    border-radius: 0.5em;
    background-color: #333;
    color: white;
    cursor: pointer;
    font-size: 1.25em;
}
button:hover {
    background-color: #555;
}

.hidden {
    display: none !important;
}

.faded {
    opacity: 0;
    position: fixed;
}

.joined {
    display: none;
    overflow: hidden;
}
.joined.shown {
    display: flex;
    flex-direction: column;
    gap: 1em;
    height: calc(100% - 50px);
}

@media (max-width: 1024px) {
    .show_on_mobile {
        display: block;
    }

    .hide_on_mobile {
        display: none;
    }

    .content_wrap {
        flex-direction: column;
    }

    .view_select_buttons {
        text-align: center;
    }
    .view_select_buttons button {
        border-radius: 20px;
        padding: 6px 12px;
        font-size: 0.96em;
    }
    .view_select_buttons button.selected {
        background: white;
        color: black;
    }

    #my_video_container {
        position: fixed;
        z-index: 1000;
        bottom: 10px;
        right: 10px;
        text-align: right;
    }

    #my_video_container video,
    #my_video_container canvas {
        max-width: 240px;
        max-height: 240px;
    }

    .video_data {
        font-size: 0.65em;
        padding: 4px 6px;
    }

    #my_video_title {
        padding: 2px 4px;
        font-size: 0.5em;
    }
}
