* {
    box-sizing: border-box;
    border: 0 solid #e5e7eb;
}
html {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family:
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        Segoe UI,
        Roboto,
        Helvetica Neue,
        Arial,
        Noto Sans,
        sans-serif,
        Apple Color Emoji,
        Segoe UI Emoji,
        Segoe UI Symbol,
        Noto Color Emoji;
}
body {
    line-height: inherit;
    margin: 0;
    background: oklch(12.9% 0.042 264.695);
}
a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
}
button, input {
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-family: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}
button {
    text-transform: none;
}
input::placeholder, input::-moz-placeholder {
    opacity: 1;
    color: #9ca3af;
}
button, [role="button"] {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
#chat-container {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex-direction: column-reverse;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    font-family: Inter, Roobert, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: 16px;
    height: 98vh;
    min-height: 0;
    padding: 0 10px 0 10px;
    contain: content;
}
.parent, .parent-highlighted, .highlight-user {
    display: inline;
    margin: 2px;
}
.parent-highlighted {
    background-color: #cd38cd27;
    border-inline-start: .25rem solid #cd38cd;
    border-inline-end: .25rem solid #cd38cd;
    padding: 2px 6px 2px 6px;
}
.highlight-user {
    background: #33aed427;
    border-inline-start: .25rem solid #33aed4;
    border-inline-end: .25rem solid #33aed4;
    padding: 2px 6px 2px 6px;
}
.username {
    display: inline;
    font-weight: bold;
    margin-right: 4px;
    cursor: pointer;
}
.username:hover {
    text-decoration: underline;
}
.message, .message-highlighted {
    padding-right: 5px;
    display: inline;
    color: white;
}
.message-highlighted {
    background: #755ebc;
    border: 4px solid #755ebc;
}
.emote, .badges {
    overflow-clip-margin: content-box;
    overflow: clip;
    object-fit: contain;
    width: auto;
    vertical-align: middle;
    display: inline;
    margin-left: 2px;
    cursor: pointer;
}
.emote {
    height: 20px;
}
.badges {
    height: 16px;
    margin: 0 2px 0 2px;
    border-radius: 3px;
}
.url {
    display: inline;
    color: lightblue;
}
.url:hover {
    color: #29c0f3;
    text-decoration: underline;
}
#buttons {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 15%;
    left: 75%;
    width: 20%;
    z-index: 100;
    gap: 3px;
}
.hidden {
    display: none !important;
}
.leave-button, #close-socket, #clear-button, #reconnect-button, #leave-all {
    color: black !important;
    border-radius: 7px !important;
    padding: 3px !important;
    font-weight: bold !important;
}
.leave-button {
    background: blue !important;
}
.leave-button:hover {
    background: lightblue !important;
}
#close-socket {
    background: red !important;
}
#close-socket:hover {
    background: #FFCCCB !important;
}
#clear-button {
    background: green !important;
}
#clear-button:hover {
    background: lightgreen !important;
}
#reconnect-button {
    background: yellow !important;
    position: absolute;
    top: 15%;
    left: 75%;
    width: 20%;
    z-index: 100;
}
#reconnect-button:hover {
    background: lightyellow !important;
}
#leave-all {
    background: #0d80b5 !important;
}
#leave-all:hover {
    background: #33aed4 !important;
}
#channel-input {
    background: white !important;
    color: black !important;
    position: absolute;
    top: 2%;
    left: 58%;
    width: 40%;
    height: 5%;
    padding: 1% !important;
}
#error-message {
    color: red;
    position: absolute;
    top: 7%;
    left: 58%;
    z-index: 100;
    margin-top: 5px;
}
#jump-to-bottom {
    position: absolute;
    background: #146890;
    color: white;
    bottom: 5%;
    left: 45%;
    border: 1px solid #146890;
    border-radius: 15px;
    z-index: 100;
    padding: 5px;
    width: 5%;
    font-weight: bold;
}
#jump-to-bottom:hover {
    background: #0d80b5;
}
#modal {
    border-radius: 10px;
    background: oklch(25% 0.08 265);
    width: 90vw;
    max-width: 500px;
    height: 80vh;
    max-height: 500px;
    padding: 0;
    border: none;
    box-shadow: 0 25px 50px oklch(0% 0 0 / 0.4);
    backdrop-filter: blur(10px);
    animation: modalFadeIn 0.3s ease-out;
}
#modal-elements {
    display: flex;
    gap: 12px;
    flex-direction: column;
    width: 100%;
    height: calc(100% - 70px);
    overflow-y: auto;
    padding: 12px;
    padding-right: 8px;
    outline: none;
    box-shadow: none;
}
#modal-elements:focus, #modal-elements:focus-visible {
    outline: none;
    box-shadow: none;
}
#modal-elements::-webkit-scrollbar {
    width: 8px;
}
#modal-elements::-webkit-scrollbar-track {
    background: oklch(30% 0.06 264 / 0.3);
    border-radius: 4px;
}
#modal-elements::-webkit-scrollbar-thumb {
    background: oklch(60% 0.15 264);
    border-radius: 4px;
    transition: background 0.2s ease;
}
#modal-elements::-webkit-scrollbar-thumb:hover {
    background: oklch(65% 0.15 264);
}
#close-modal {
    background: linear-gradient(135deg, oklch(70% 0.2 30), oklch(65% 0.2 25));
    color: white;
    width: calc(100% - 40px);
    border-radius: 12px;
    padding: 14px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    margin: 0 20px 20px 20px;
    font-size: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 15px oklch(70% 0.2 30 / 0.3);
}
#close-modal:hover {
    background: linear-gradient(135deg, oklch(65% 0.2 30), oklch(60% 0.2 25));
    transform: translateY(-2px);
    box-shadow: 0 6px 20px oklch(70% 0.2 30 / 0.4);
}
#close-modal:active {
    transform: translateY(0);
}
.elements, .user-list {
    background: oklch(18% 0.05 264 / 0.9);
    color: oklch(95% 0.02 264);
    padding: 18px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1;
    border-left: 3px solid #4848c9;
    transition: all 0.2s ease;
}
.elements:hover, .user-list:hover {
    background: oklch(22% 0.06 264 / 0.9);
    transform: translateX(4px);
}
.user-list {
    line-height: 0;
}
.elements:first-child {
    color: white;
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.5px;
    border-left: 3px solid oklch(70% 0.2 30);
}
#modal::backdrop {
    background: oklch(0% 0 0 / 0.6);
    backdrop-filter: blur(4px);
}