﻿/* ============================================
   DARK THEME - Purple Heart Premium
   Color Palette:
   #010101  Black
   #6834d4  Purple Heart (Primary)
   #ffffff  White
   #35166e  Scarlet Gum (Deep Purple)
   #32c563  Emerald (Success/CTA)
   #af93d7  Cold Purple (Soft Accent)
   #787878  Boulder (Muted)
   ============================================ */

:root {
    --sent-background: #6834d4;
    --sent-color: #ffffff;
    --received-background: #1e1233;
    --received-color: #e0d6f2;
    --default-text-color: #d6cce8;
    --dark-bg: #0d0a14;
    --darker-bg: #060410;
    --input-bg: #1a1028;
    --primary: #6834d4;
    --primary-hover: #7c4ce0;
    --primary-glow: rgba(104, 52, 212, 0.35);
    --accent: #32c563;
    --accent-hover: #3dd873;
    --surface: #120e1e;
    --surface-hover: #1e1636;
    --border-color: rgba(175, 147, 215, 0.1);
    --cold-purple: #af93d7;
    --scarlet-gum: #35166e;
    color-scheme: dark;
    --oc-body-color-rgb: 175, 147, 215;
}

body {
    background-color: #0a0812;
    color: var(--default-text-color) !important;
    font-family: 'Poppins', sans-serif;
}

a { color: var(--cold-purple); transition: color 0.2s ease; }
a:hover { color: #c8b4e8; }

*::-webkit-scrollbar-thumb { background: rgba(104, 52, 212, 0.25); border-radius: 4px; }
*::-webkit-scrollbar-track { background: rgba(var(--oc-body-color-rgb), 0.04); }
*:hover::-webkit-scrollbar-thumb { background: rgba(104, 52, 212, 0.45); }

.auth-body { background-color: #0a0812; }

.sent .message-data:before { border-color: var(--sent-background) transparent transparent transparent; }
.replies .message-data:after { border-color: var(--received-background) transparent transparent transparent; }

.sent .chat-img-sgl, .sent .chat-img-duo, .sent .chat-img-grp, .sent .chat-gif,
.sent .chat-txt, .sent .chat-code, .chat-fwd, .sent .link-meta, .sent .file-section,
.sent .video-section, .sent .chat-replied-bubble, .sent .chat-audio {
    background: var(--sent-background);
}

.replies .chat-img-sgl, .replies .chat-img-duo, .replies .chat-img-grp, .replies .chat-gif,
.replies .chat-txt, .replies .chat-code, .replies .message-data small, .replies .chat-fwd,
.replies .link-meta, .replies .file-section, .replies .video-section,
.replies .chat-replied-bubble, .replies .chat-audio {
    background: var(--received-background);
}

.cht.replies .message-data, .replies a.file-header { color: var(--received-color); background: var(--received-background); }
.cht.sent .message-data, .sent a.file-header { color: var(--sent-color); }
.cht.replies .message-data { color: var(--received-color); background: var(--received-background); box-shadow: 0 4px 12px -4px rgba(0,0,0,0.5); }
.cht.sent .message-data { color: var(--sent-color); background: var(--sent-background); box-shadow: 0 4px 12px -4px rgba(104,52,212,0.4); }

div[data-msg-type="5"].cht.replies .chat-txt, div[data-msg-type="5"].cht.replies .link-preview { box-shadow: 2px 2px 8px -3px rgba(0,0,0,0.6); }
div[data-msg-type="5"].cht.sent .chat-txt, div[data-msg-type="5"].cht.sent .link-preview { box-shadow: -2px 2px 8px -3px rgba(104,52,212,0.4); }

.room-bar { background-color: var(--dark-bg); border-right: 1px solid var(--border-color); }
.main-panel { border-right: 1px solid var(--border-color); }
.sidebar-wrapper, .channel-list { background-color: var(--surface); color: var(--default-text-color); }

.cn-tab .pill { background-color: var(--cold-purple); }
.cn-tab .pill.active { background-color: var(--accent); }
.unread-indicator { background-color: var(--accent); }

.channel-cat:hover, .channel-item:hover, .channel-item.active { background-color: var(--surface-hover); }
.username-bottom { color: var(--default-text-color); }

.dropdown-menu { background: var(--dark-bg); color: var(--default-text-color); border: 1px solid var(--border-color); box-shadow: 0 8px 32px rgba(0,0,0,0.5); }
.dropdown-item.active, .dropdown-item:active, .dropdown-item:hover { color: #ffffff; background-color: var(--scarlet-gum); }

.link-dark { color: var(--default-text-color); }
.link-dark:hover, .link-dark:focus { color: var(--cold-purple); }
.navbar { color: var(--default-text-color); }

.btn-dark, .btn-outline-dark, .btn-ghost-dark { border: 0; --oc-btn-color: var(--default-text-color); --oc-btn-color-interactive: var(--default-text-color); --oc-btn-color-text: #ffffff; }
.btn-ghost-dark:active, .btn-ghost-dark:hover { background-color: var(--surface-hover); }

.editor-container { background-color: var(--input-bg); border: 1px solid var(--border-color); }
.editor-icon { color: var(--cold-purple); }
.editor-icon:hover, .attachment-col.dropup:hover { color: var(--accent); }

.rightbar-wrapper { background-color: var(--dark-bg); }
.user-row:hover { color: #ffffff; background-color: var(--surface-hover); }

.private-list .user-row.active { background-color: var(--scarlet-gum); box-shadow: inset 0 0 0 1px var(--primary); }
.private-list .user-row.active:hover { background-color: rgba(104,52,212,0.35); }

#rpanel-tab { background-color: var(--surface); }
.right-panel .nav-pills .nav-link.active, .right-panel .nav-pills .show>.nav-link { color: #ffffff; background-color: var(--primary); }

.private-messages .private-item, .action-item { background-color: var(--input-bg); color: var(--default-text-color); border: 1px solid var(--border-color); }
.attachments-container { border-color: var(--border-color); }

.form-control, .form-select { background-color: var(--input-bg); border: 1px solid var(--border-color); color: var(--default-text-color); }
.form-check-input { background-color: var(--input-bg); border-color: var(--border-color); }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.form-control:focus { color: #ffffff; background-color: var(--input-bg); border-color: var(--primary); outline: 0; box-shadow: 0 0 0 3px var(--primary-glow); }
.form-hint { color: var(--cold-purple); }

.btn-upload { background-color: var(--input-bg); color: var(--default-text-color); border-color: var(--border-color); }
.input-group-flat .input-group-text { background: var(--input-bg); border-color: var(--border-color); }
.input-group-flat:focus-within .form-control, .input-group-flat:focus-within .input-group-text { border-color: var(--primary) !important; }
.link-secondary:hover, .link-secondary:focus { color: var(--cold-purple); }

#cnemoji-leftlist, .cnemoji-categname, #cnemoji-info { background-color: var(--dark-bg) !important; }
#cnemoji-leftlist>svg { fill: var(--cold-purple) !important; }
.nav-link:hover, .nav-link:focus { color: var(--cold-purple); }

.current-reacts { background: var(--dark-bg); border: 1px solid var(--border-color); }
.channel-list-bottom { background: var(--dark-bg); }

.non-login-message, .non-join-message, .non-chat-select, .user-restricted, .permission-denied-editor, .forward-selection { background-color: var(--input-bg); border: 1px solid var(--border-color); }

.disc-cat-row { color: var(--default-text-color); }
.disc-cat-row:hover { color: #ffffff; background-color: var(--surface-hover); }
.disc-cat-row.active { background-color: var(--primary) !important; color: #ffffff !important; }

.card { background-color: var(--dark-bg); border: 1px solid var(--border-color); transition: 0.3s; }
.card-header { color: var(--default-text-color); background-color: var(--darker-bg); border-bottom-color: var(--border-color); }
.card-footer { background-color: var(--dark-bg); border-top-color: var(--border-color); }
a .card:hover { background-color: var(--surface-hover); border-color: var(--primary); box-shadow: 0 4px 20px var(--primary-glow); }

.room-image { border-color: var(--dark-bg); }
.room-list-row a:hover { color: var(--default-text-color); text-decoration: none; }

.profile-header { border: 1px solid var(--border-color); }
.profile-header .profile-header-info { color: var(--default-text-color); background-color: var(--dark-bg); }
.profile-header-user-avatar { border-color: var(--dark-bg); }

.nav-pills .nav-link.active, .nav-pills .show > .nav-link { color: #ffffff; background-color: var(--primary); }
.sidebar-profile .nav-link { color: var(--default-text-color); }
.sidebar-profile .nav-link:hover { color: #ffffff; background-color: var(--surface-hover); }
.sidebar-profile .nav-link.active { background: var(--primary) !important; color: #ffffff !important; }

.topbar-private { background-color: var(--surface); }
.search_chatroom { border: none !important; }

.modal-header, .modal-content { background-color: var(--dark-bg); border-color: var(--border-color); }
.media-tab .file-section { background-color: var(--received-background); }
.media-tab .file-header { color: var(--received-color); }

.radio-station, .radio-volume-display { color: var(--default-text-color); }
.radio-station:hover { color: var(--cold-purple); }

.navbar-scrolled { background-color: var(--dark-bg) !important; color: var(--default-text-color); box-shadow: 0 2px 16px rgba(0,0,0,0.4); }
.navbar-scrolled, .navbar-scrolled .nav-link { color: var(--default-text-color) !important; }
.navbar-scrolled .nav-link.active, .navbar-scrolled .nav-link:hover { color: var(--cold-purple) !important; }

.btn-outline-dark:hover { background-color: var(--primary) !important; border-color: var(--primary) !important; }

.form-selectgroup-label { background: var(--input-bg); border: 1px solid var(--border-color); color: var(--default-text-color); }
.form-selectgroup-input:checked + .form-selectgroup-label { color: #fff; background: var(--primary); border-color: var(--primary); }
.form-selectgroup-label:hover { color: #fff; background: var(--scarlet-gum); }

.footer { border-color: var(--border-color); background-color: var(--dark-bg); }
.text-muted { color: #787878 !important; }

#main-login { background: linear-gradient(135deg, var(--primary) 0%, var(--scarlet-gum) 100%); }
.btn-dark { background: var(--primary); border-color: var(--primary); }
.btn-dark:hover { background: var(--primary-hover); border-color: var(--primary-hover); }

.select2-container--bootstrap4 .select2-selection { background-color: var(--input-bg); border: 1px solid var(--border-color); }
.select2-dropdown { background-color: var(--dark-bg); border: 1px solid var(--border-color); }
.select2-container--bootstrap4 .select2-dropdown, .select2-container--bootstrap4 .select2-dropdown.select2-dropdown--above { border-color: var(--border-color); }
.select2-search--dropdown .select2-search__field { background: var(--input-bg); border: 1px solid var(--border-color); color: var(--default-text-color); }

.login-selector .nav-link { background: var(--surface); }
.login-selector .nav-link.active { color: #fff !important; background-color: var(--primary) !important; }

.replied-content, .replies .replied-to { background: var(--surface-hover); color: var(--default-text-color); }
.reply-msg-row .replied-to { background-color: var(--surface); }
.mini-brand-seperator { background-color: var(--border-color); }

.is-typing { background-color: var(--input-bg); color: var(--cold-purple); }
.reply-msg-row { background-color: var(--input-bg); }
.reply-msg-row .replied-content, .reply-msg-row .replied-to { background: var(--surface); color: var(--default-text-color); }

.chat-actions i { color: var(--cold-purple); }
.chat-actions i:hover { color: #fff; }

.popover { background-color: var(--dark-bg); color: var(--default-text-color); border: 1px solid var(--border-color); box-shadow: 0 8px 32px rgba(0,0,0,0.5); }
.popover-body { color: var(--default-text-color); }

.bs-popover-top>.popover-arrow::after, .bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,
.bs-popover-top>.popover-arrow::before, .bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before { border-top-color: var(--dark-bg); }
.bs-popover-bottom>.popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,
.bs-popover-bottom>.popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before { border-bottom-color: var(--dark-bg); }
.bs-popover-start>.popover-arrow::after, .bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,
.bs-popover-start>.popover-arrow::before, .bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before { border-left-color: var(--dark-bg); }
.bs-popover-end>.popover-arrow::after, .bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,
.bs-popover-end>.popover-arrow::before, .bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before { border-right-color: var(--dark-bg); }

.user-image { border-color: var(--dark-bg); }
.navbar.topbar { background-color: var(--dark-bg); border-bottom-color: var(--border-color); }
.form-selectgroup-boxes .form-selectgroup-input:checked + .form-selectgroup-label .form-selectgroup-title { color: #ffffff; }

.ms-container .ms-selectable, .ms-container .ms-selection { background: var(--dark-bg); color: var(--default-text-color); }
.ms-list { border-color: var(--border-color) !important; }
.ms-container .ms-selectable li.ms-elem-selectable, .ms-container .ms-selection li.ms-elem-selection { border-color: var(--border-color) !important; color: var(--default-text-color); }
.ms-container .ms-selectable li.disabled, .ms-container .ms-selection li.disabled { background-color: var(--surface); }

.room-manage-row { color: var(--default-text-color); }
.room-manage-row:hover { background-color: var(--surface-hover); }

.card-header-tabs .nav-link.active, .card-header-tabs .nav-link:hover { background-color: var(--surface); border-bottom-color: var(--surface); color: var(--cold-purple); border-color: var(--border-color) var(--border-color) transparent; }
.toast { background: var(--scarlet-gum); color: #fff; border: 1px solid var(--border-color); }

.online-status .ti { background: var(--dark-bg); }
.user-row:hover .online-status .ti { background: var(--surface-hover); }

.social-seperator div { background: #0a0812; }
#auth-modal .social-seperator div { background: var(--dark-bg); }
.is-typing:before { border-left-color: var(--input-bg); border-top-color: var(--input-bg); }

.noti-content { color: var(--default-text-color); }
.noti-item.noti-read { background: var(--surface); }
.noti-item { background: var(--scarlet-gum); }
.noti-time { color: var(--accent); }
.noti-item:hover { background: var(--surface-hover); }

.offcanvas { background: var(--dark-bg); border-color: var(--border-color); }
.offcanvas.offcanvas-end { border-color: var(--border-color); }
.offcanvas-header .btn-close { filter: invert(1); }

.chat-search-results { color: var(--default-text-color); }
.chat-search-result { background: var(--surface); border: 1px solid var(--border-color); }
.chat-search-result:hover { background-color: var(--surface-hover); border-color: var(--primary); }

.form-control:-webkit-autofill { box-shadow: 0 0 0 1000px var(--input-bg) inset; -webkit-text-fill-color: var(--default-text-color); }
#pills-guest .input-group-text { color: var(--default-text-color); }
.channel-list-bottom .dropdown-toggle:hover { background-color: var(--surface-hover); }
.green-audio-player { background-color: var(--surface); }

.icon-lock { background-image: url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" fill="%23af93d7" height="800px" width="800px" version="1.1" viewBox="0 0 330 330"><g><path d="M65,330h200c8.284,0,15-6.716,15-15V145c0-8.284-6.716-15-15-15h-15V85c0-46.869-38.131-85-85-85 S80.001,38.131,80.001,85v45H65c-8.284,0-15,6.716-15,15v170C50,323.284,56.716,330,65,330z M110.001,85 c0-30.327,24.673-55,54.999-55c30.327,0,55,24.673,55,55v45H110.001V85z"/></g></svg>'); }

.pvt-cnl { background: var(--surface); }
.active .pvt-cnl, .channel-item:hover .pvt-cnl { background: var(--surface-hover); }
.top-channel-icon .pvt-cnl { background: var(--dark-bg); }
.forwarding .cht:hover, .forwarding .selected { background: var(--surface-hover) !important; }
.voice-channel-container { background: var(--dark-bg); border-top: 1px solid var(--border-color); }

.room-list-name { color: var(--default-text-color); }
.sidebar-item-name { color: var(--default-text-color); }
.room-list .room-list-item:hover { background-color: var(--surface-hover); }
.room-list .room-list-item.active { background-color: rgba(104,52,212,0.2); border-left: 3px solid var(--primary); }

.video-call-container { background: linear-gradient(135deg, var(--scarlet-gum), #0a0812); }
.video-call-container.voice-only-call { background: linear-gradient(135deg, var(--primary), var(--scarlet-gum)); }

.gradient-anim-bg { background: linear-gradient(320deg, var(--primary), var(--scarlet-gum), var(--accent)); background-size: 300% 300%; animation: gradientanim 30s ease infinite; }

.form-selectgroup-input:checked+.room-cat-select-label,
.form-selectgroup-input:checked+.room-manage-label { background: var(--primary); color: #fff; }

.dark .notepad-panel { background: var(--dark-bg); }
.dark .notepad-header, .dark .notepad-search-bar { background: var(--surface); border-color: var(--border-color); }
.dark .notepad-card { background: var(--surface); border-color: var(--border-color); }
.dark .notepad-card:hover { background: var(--surface-hover); border-color: var(--primary); }
.dark .notepad-code-preview, .dark .note-view-code, .dark .note-view-chat { background: var(--dark-bg); }

.call-alert, .group-call-alert { background: linear-gradient(135deg, var(--primary), var(--scarlet-gum)); }
.radio-panel { background: var(--dark-bg); color: var(--default-text-color); box-shadow: 0 -4px 16px rgba(0,0,0,0.4); }
.dark .alert { color: #ffffff; background: var(--surface); border-color: var(--border-color); }

/* Highlight entire user row when there are unread private messages (dark) */
.private-list .user-row.active { background-color: var(--scarlet-gum); }
.private-list .user-row.active:hover { background-color: rgba(104,52,212,0.35); }
