:root {
  --scrollbar-width: 10px;
  --vh: 9.54px;
  --composer-text-size: 16px;
  --message-meta-height: 21px;
  --message-text-size: 16px;

  --color-primary: rgb(135, 116, 225);
  --color-primary-opacity: rgba(131, 120, 219, 0.118);
  --color-primary-opacity-hover: rgba(131, 120, 219, 0.251);
  --color-primary-tint: rgba(135, 116, 225, 0.102);
  --color-primary-shade: rgb(123, 113, 198);
  --color-primary-shade-rgb: 123, 113, 198;

  --color-background: rgb(33, 33, 33);
  --color-background-compact-menu: rgba(33, 33, 33, 0.867);
  --color-web-app-browser: rgba(3, 3, 3, 0.561);
  --color-background-compact-menu-reactions: rgba(33, 33, 33, 0.867);
  --color-background-compact-menu-hover: rgba(0, 0, 0, 0.4);
  --color-background-secondary: rgb(15, 15, 15);
  --color-background-secondary-accent: rgb(25, 25, 25);
  --color-background-own: rgb(118, 106, 200);
  --color-background-own-apple: rgb(118, 106, 200);
  --color-background-selected: rgb(44, 44, 44);
  --color-background-own-selected: rgb(101, 73, 212);

  --color-chat-hover: rgb(44, 44, 44);
  --color-chat-active: rgb(118, 106, 200);
  --color-chat-active-greyed: rgb(146, 136, 211);
  --color-item-hover: rgb(44, 44, 44);
  --color-item-active: rgb(41, 41, 41);

  --color-text: rgb(255, 255, 255);
  --color-text-rgb: 255, 255, 255;
  --color-text-secondary: rgb(170, 170, 170);
  --color-text-secondary-rgb: 170, 170, 170;
  --color-icon-secondary: rgb(170, 170, 170);
  --color-text-secondary-apple: rgb(170, 170, 170);

  --color-borders: rgb(48, 48, 48);
  --color-borders-input: rgb(91, 91, 90);
  --color-dividers: rgb(59, 59, 61);
  --color-dividers-android: rgb(15, 15, 15);
  --color-links: rgb(135, 116, 225);
  --color-gray: rgb(113, 117, 121);
  --color-list-icon: rgb(162, 162, 162);

  --color-default-shadow: rgba(16, 16, 16, 0.612);
  --color-light-shadow: rgba(0, 0, 0, 0.251);

  --color-green: rgb(135, 116, 225);
  --color-green-darker: rgb(123, 113, 198);
  --color-success: rgb(0, 199, 62);
  --color-text-meta-colored: rgb(131, 120, 219);

  --color-reply-hover: rgb(39, 39, 39);
  --color-reply-active: rgb(46, 47, 47);
  --color-reply-own-hover: rgb(135, 117, 218);
  --color-reply-own-hover-apple: rgb(135, 117, 218);
  --color-reply-own-active: rgb(145, 125, 234);
  --color-reply-own-active-apple: rgb(145, 125, 234);

  --color-accent-own: rgb(255, 255, 255);
  --color-accent-own-rgb: 255, 255, 255;
  --color-message-meta-own: rgba(255, 255, 255, 0.533);
  --color-own-links: rgb(255, 255, 255);

  --color-code: rgb(135, 116, 225);
  --color-code-own: rgb(255, 255, 255);
  --color-code-bg: rgba(0, 0, 0, 0.502);
  --color-code-own-bg: rgba(0, 0, 0, 0.314);

  --color-composer-button: rgba(170, 170, 170, 0.8);
  --color-message-reaction: rgb(43, 42, 53);
  --color-message-reaction-hover: rgb(52, 49, 71);
  --color-message-reaction-own: rgb(103, 92, 175);
  --color-message-reaction-hover-own: rgb(91, 82, 155);
  --color-message-reaction-chosen-hover: rgb(120, 100, 221);
  --color-message-reaction-chosen-hover-own: rgb(245, 245, 245);
  --color-message-non-contact: rgb(170, 170, 170);

  --color-voice-transcribe-button: rgb(42, 42, 60);
  --color-voice-transcribe-button-own: rgb(131, 115, 211);

  --color-topic-blue: rgb(111, 249, 240);
  --color-topic-yellow: rgb(255, 214, 126);
  --color-topic-violet: rgb(203, 134, 219);
  --color-topic-green: rgb(142, 238, 152);
  --color-topic-rose: rgb(255, 147, 178);
  --color-topic-red: rgb(251, 111, 95);
  --color-topic-grey: rgb(153, 153, 153);

  --color-forum-unread-topic-hover: rgb(54, 54, 54);
  --color-forum-hover-unread-topic-hover: rgb(63, 63, 63);

  --color-chat-username: rgb(233, 238, 244);
  --color-borders-read-story: rgb(115, 115, 115);
  --color-background-menu-separator: rgba(255, 255, 255, 0.102);
  --color-hover-overlay: rgba(255, 255, 255, 0.024);

  --input-custom-emoji-filter: url(#color-filter-ffffff);

  --border-top-left-radius: 0.9375rem;
    --border-top-right-radius: 0.9375rem;
    --border-bottom-left-radius: var(--border-radius-messages);
    --border-bottom-right-radius: 0.9375rem;
}
/* Универсальные стили скроллбара */
::-webkit-scrollbar {
  width: 10px; /* ширина вертикального скроллбара */
  height: 10px; /* высота горизонтального скроллбара */
}

::-webkit-scrollbar-track {
  background: transparent; /* трек прозрачный */
}

::-webkit-scrollbar-thumb {
  background-color: #323232; /* цвет ползунка */
  border-radius: 5px; /* скругление углов */
  border: 2px solid transparent; /* отступ, чтобы thumb не прилипал к треку */
  background-clip: content-box; /* чтобы border работал как отступ */
}

/* При наведении можно сделать чуть ярче */
::-webkit-scrollbar-thumb:hover {
  background-color: #4d4d4d;
}

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: #323232 transparent; /* thumb / track */
}
.custom-scroll,
.custom-scroll-x {
  /* Fix scroll lock on iOS */
  pointer-events: auto;
  scrollbar-color: transparent transparent;
  scrollbar-width: thin;
  transition: scrollbar-color 0.3s ease;
  -webkit-overflow-scrolling: touch;
}

/* Scrollbar thumb default */
.custom-scroll::-webkit-scrollbar-thumb,
.custom-scroll-x::-webkit-scrollbar-thumb {
  border-radius: 0.375rem;
  background-color: transparent;
  /* box-shadow prevents repaint on macOS when hovering out of scrollable container */
  box-shadow: 0 0 1px rgba(255, 255, 255, 0.01);
}

/* Hover / focus / focus-within */
.custom-scroll:hover,
.custom-scroll:focus,
.custom-scroll:focus-within,
.custom-scroll-x:hover,
.custom-scroll-x:focus,
.custom-scroll-x:focus-within {
  scrollbar-color: var(--color-scrollbar) transparent;
}

.custom-scroll:hover::-webkit-scrollbar-thumb,
.custom-scroll:focus::-webkit-scrollbar-thumb,
.custom-scroll:focus-within::-webkit-scrollbar-thumb,
.custom-scroll-x:hover::-webkit-scrollbar-thumb,
.custom-scroll-x:focus::-webkit-scrollbar-thumb,
.custom-scroll-x:focus-within::-webkit-scrollbar-thumb {
  background-color: var(--color-scrollbar);
}




*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    background-color: #0F0F0F;
    background-image: url('/images/bg.png');
    background-position: top right;
    background-size: 510px auto;
    color: #fff;
    font-family: "Roboto", sans-serif;
}



#app {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    display: flex;
}

#app #sidebar{
    width: 334px;
    flex: 0 0 334px;
    background-color: var(--color-background);
    border-right: 1px solid #303030;
    user-select: none;
    display: flex;
    flex-direction: column;
}

#app #content{
    padding: 15px;
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
}


.sidebar_header{
    height: 56px;
    border-bottom: 1px solid #303030;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0px 15px;
}
.sidebar_search_input{
    height: 44px;
    background-color: transparent;
    border: none;
    outline: none;
      color: rgb(var(--color-text-secondary-rgb));
      font-size: 14px;
      font-weight: 500;
      width: 100%;
}
.sidebar_search_block{
    display: flex;
    width: fit-content;
    background-color: var(--color-chat-hover);
    border-radius: 50px;
    align-items: center;
    width: 100%;
}
.search_icon{
    height: fit-content;
    padding-left: 15px;
    padding-right: 15px;
    color: var(--color-text-secondary-rgb);
}
.avatar{
    width: 48x;
    height: 48px;
    object-fit: cover;
    border-radius: 50%;
}
.sidebar_user{
    margin-top: auto;
    flex: 0 0 70px;
    width: 100%;

    display: flex;
    padding: 0px 15px;
    align-items: center;
    gap: 10px;
    border-top: 1px solid #303030;
}
.sidebar_user_name{
    font-weight: 500;
    font-size: 16px;
}
.sidebar_user_username{
    font-size: 12px;
    color: rgb(var(--color-text-secondary-rgb));
}
.sidebar_user_logout{
    display: block;
    margin-left: auto;
}
.sidebar_chats{
    flex: 1;
    overflow-y: auto;
    /* background-color: yellow; */
}
img{
    max-width: 100%;
}
.sidebar_chat_item{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px 15px;
    transition: .3s ease-in-out;
    cursor: pointer;
    border-radius: 10px;
    margin: 5px;
}


.sidebar_chat_item:hover, .sidebar_chat_item.active{
    background-color: var(--color-chat-hover);
}
.sidebar_chat_avatar{
    width: 45px;
    height: 45px;
    object-fit: cover;
}
.sidebar_chat_avatar img {
    border-radius: 50px;
    display: block;
}
.sidebar_chat_name{
    font-size: 14px;
    font-weight: 500;
}
.sidebar_chat_username{
    font-size: 12px;
    font-weight: 400;
        color: rgb(var(--color-text-secondary-rgb));
}

.sidebar_chat_last_message{
    margin-left: auto;
    font-size: 12px;
    text-align: right;

}
.sidebar_chat_last_message span{
    display: inline-block;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 150px;
    overflow-x: hidden;
}

.chat_choose_placeholder{
   
    width: 100%;
    height: calc(100vh - 30px);
    display: flex;
    justify-content: center;
    align-items: center;
}

.badge_chat_placeholder{
    background-color: rgba(255,255,255,0.4);
    padding: 5px 10px;
    border-radius: 50px;
    font-size: 12px;
}
.messages_arrea{
        flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    padding-top: 40px;
    height: calc(100vh - 150px);
}
.messages_list{
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0px;
    flex: 1;
    width: 100%;
    overflow-y: auto;
    padding: 20px 0px;
        overflow-x: hidden;
}
.message{
    width: 100%;
    display: flex;
    position: relative;
    padding: 2px 15px;    
}
/* .message .message_show_translate{
    position: absolute;
    left: calc(100% + 50px);
    white-space: nowrap;
}
.message.me .message_show_translate{
    position: absolute;
    right: calc(100% + 0px);
} */

.message_container{
    padding: 0.3125rem 0.5rem 0.375rem;
    background: rgb(33,33,33);
    box-shadow: 0 1px 2px var(--color-default-shadow);
    width: fit-content;
    padding-right: 50px;
    position: relative;
    font-size: 15px;
    border-top-left-radius: var(--border-top-left-radius);
    border-top-right-radius: var(--border-top-right-radius);
    border-bottom-right-radius: var(--border-bottom-right-radius);
    border-bottom-left-radius: var(--border-bottom-left-radius);
    max-width: 540px;
    
}
.message .message_translate{
    display: none;
}
.message_show_translate{ 
    opacity: 0;
    pointer-events: none;
    user-select: none;
}
.message:hover .message_show_translate{
    opacity: 1;
    pointer-events: all;
    user-select: all;
}
.message.me .message_show_translate {
    position: absolute;
    right: 100%;
    white-space: nowrap;
    right: calc(100% + 90px);
    text-decoration: underline;
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 5px;
    border-radius: 50px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 12px;
}
.message_delete_btn img{
    width: 16px;
    max-width: 100px;
}

.message.user .message_show_translate {
    position: absolute;
 
    white-space: nowrap;
    left: calc(100% + 90px);
    text-decoration: underline;
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 5px;
    border-radius: 50px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    width: fit-content;
    font-size: 12px;
}

.message_delete_btn{ 
    opacity: 0;
    pointer-events: none;
    user-select: none;
}
.message:hover .message_delete_btn{
    opacity: 1;
    pointer-events: all;
    user-select: all;
}
.message.me .message_delete_btn {
    position: absolute;
    right: 100%;
    white-space: nowrap;
    right: calc(100% + 50px);
    text-decoration: underline;
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 5px;
    border-radius: 50px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 12px;
}

.message.user .message_delete_btn {
    position: absolute;
 
    white-space: nowrap;
    left: calc(100% + 50px);
    text-decoration: underline;
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 5px;
    border-radius: 50px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    width: fit-content;
    font-size: 12px;
}

.message_send{
    max-width: 1000px;
    margin: 0 auto;

    width: 100%;
    display: flex;
    gap: 10px;
    align-items: center;
    
}
.message_send .input_container{
    background-color: #212121;
    border-radius: 8px;
    font-weight: 500;
}
.message_send .ql-bubble .ql-editor code, .ql-bubble .ql-editor pre{
    background: #4f4f4f;
}
.send_btn svg{
    width: 33px;

}
.send_btn, .attach_btn{
    cursor: pointer;
    transition: .3s ease-in-out;
}
.attach_btn{
    position: relative;
}
.attach_btn .attached_indicator{
    display: none;
}
.attach_btn.attached .attached_indicator{
    position: absolute;
    right: -7px;
    top: -5px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    width: 15px;
    height: 15px;
    border-radius: 15px;
    background-color: rgb(118,106,200);
}
.send_btn:hover, .attach_btn:hover{
    transform: scale(1.06);
}

.message_send .input_container .ql-editor.ql-blank::before{
    color: #a2acb4;
}
.message_time{
    font-size: 10px;
    position: absolute;
    right: 6px;
    bottom: 3px;
    color: #686c72;
}
.message.me{
    flex-direction: row-reverse;
}
.message.me .message_container{
    padding: 0.3125rem 0.5rem 0.375rem;
    background: rgb(118,106,200);
    box-shadow: 0 1px 2px var(--color-default-shadow);
    width: fit-content;
    padding-right: 50px;
    position: relative;
    border-top-left-radius: var(--border-top-left-radius);
    border-top-right-radius: var(--border-top-right-radius);
    border-bottom-right-radius: 0px;
    border-bottom-left-radius: var(--border-top-right-radius);
}
.message.me .message_time{
    color: rgb(255,255,255,0.533);
}
.message:hover{
    background-color: rgba(0,0,0,0.3);
}

.attached_photo, .video_thumbnail img{
    width: 240px;
    border-radius: 5px;
    display: block;
    margin: 10px 0px;
}
.message_container.loading::before{
    content: "";
    border-radius: 50px;
    border: 2px solid rgb(118,106,200);
    border-right: 2px solid transparent;
    position: absolute;
    width: 10px;
    height: 10px;
    right: calc(100% + 5px);
    top: 50%;
    transform: translateY(-50%);
     animation: loadingSpin 1s linear infinite; /* бесконечная прокрутка */
}

.message_container.errored::before{
    content: "!";
    border-radius: 50px;
    background-color: red;
    color: #fff;

    position: absolute;
    width: 20px;
    height: 20px;
    right: calc(100% + 5px);
    top: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 800;
    transform: translateY(-50%);

}

@keyframes loadingSpin {
    0% { transform: translateY(-50%) rotate(0deg); }
    100% { transform: translateY(-50%) rotate(360deg); }
}

.message_container.with_media{
    width: 220px;
    padding-right: 10px;
    padding-bottom: 20px;
}
.video_thumbnail {
    position: relative;
     min-height: 200px;
    width: 100%;
      background: rgb(255, 255, 255, 0.2);
      cursor: pointer;
}
.video_thumbnail::after{
    content: "▶";
    color: #fff;
    
    background-color: rgba(0,0,0,0.35);
    position: absolute;
    left: 50%;
    top: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    border-radius: 50px;
    padding-left: 4px;

    transform: translate(-50%, -30%);
}
.video_thumbnail .video_duration{
    position: absolute;
    left: 5px;
    top: 5px;
    padding: 2px 5px;
    font-size: 13px;
    border-radius: 50px;
    background-color: rgba(0,0,0,0.35);
   
  
}

.photo_modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  cursor: zoom-out;
}

.photo_modal_content {
  max-width: 90%;
  max-height: 90%;
}

.photo_modal_content img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  cursor: default;
}

.chat_header{
    width: 100%;
    height: 56px;
    background-color: yellow;
    position: absolute;
    width: 100%;
    left: 0px;
    top: 0px;
    border-bottom: 1px solid #303030;
    background-color: var(--color-background);
    z-index: 99;
    display: flex;
    align-items: center;
    padding: 0px 20px;
    gap: 10px;
}

.chat_header .avatar {
    width: 35px;
    height: 35px;
    display: block;
    object-fit: cover;
}
.chat_header .header_name{
    font-size: 14px;
    color: #fff;
}
.chat_header .header_username{
        font-size: 12px;
    font-weight: 400;
        color: rgb(var(--color-text-secondary-rgb));
}