@use "../../../css/colors" as *; @use "../../../css/material" as *; @use "sass:color"; .header { display: flex; background-color: $color-dark-surface-container; color: white; padding: 16px 16px; justify-content: end; width: fit-content; z-index: 1000; position: absolute; top: 0; right: 0; .header-content { display: flex; justify-content: space-between; align-items: center; .logo { font-size: 1.8rem; font-weight: 700; display: flex; align-items: center; } #logouts { display: none; list-style: none; gap: 10px; li { a { color: white; text-decoration: none; font-weight: 500; transition: all 0.3s ease; padding: 10px; border-radius: 10px; display: flex; flex-direction: row; align-items: center; gap: 10px; &:hover { background-color: rgba(255, 255, 255, 0.2); } } } } } } #profile { display: none; flex-direction: column; z-index: 2000; top: 0; left: 0; position: fixed; height: 100vh; width: 27%; background-color: $color-dark-surface-container; position: relative; .profileheader { display: flex; gap: 200px; p { color: white; } a { text-decoration: none; color: white; border: solid 2px $color-dark-on-surface-variant; padding: 5px; border-radius: 10px; &:hover { background-color: rgba(255, 255, 255, 0.241); } } } } #chat-list { display: flex; flex-direction: column; flex-grow: 0; width: 40%; background-color: $color-dark-surface-container; height: 100%; z-index: 1000; min-height: 0; // allow children to manage their own scrolling position: relative; // provide positioning context for absolute children .chat-header-left { display: flex; color: white; font-size: 25px; background-color: $color-dark-surface-container; width: 100%; justify-content: center; align-items: center; padding: 16px; .product-name { flex-grow: 1; } .profile { font-size: 24px; display: flex; justify-content: start; flex-shrink: 0; flex-grow: 0; #closeprofile a { text-decoration: none; color: white; border: solid 2px $color-dark-on-surface-variant; padding: 5px; border-radius: 10px; &:hover { background-color: rgba(255, 255, 255, 0.241); } } img { $size: 45px; display: flex; border-radius: 50%; width: $size; height: $size; } } } .chat-tabs { margin-top: 5px; width: 100%; height: calc(100% - 80px); display: flex; flex-direction: column; min-height: 0; // prevent flex collapse when inner overflows --mdui-color-surface: $color-dark-surface-container; --mdui-color-surface-variant: transparent; img { width: 45px; height: 45px; border-radius: 20%; object-fit: cover; } mdui-tabs { height: 100%; display: flex; flex-direction: column; min-height: 0; // enable inner panel to scroll } mdui-tab-panel[active] { flex: 1; display: flex; flex-direction: column; min-height: 0; // critical to avoid collapsing overflow: hidden; } mdui-list { flex: 1; min-height: 0; // allow scroll area to size correctly overflow-y: auto; padding: 0; margin: 0; } } mdui-bottom-app-bar { position: relative; width: 100%; padding-left: 16px; padding-right: 16px; margin-top: auto; } } // Search container .search-container { position: relative; flex-shrink: 0; height: 48px + 8px; } // ChatHeader component styles .chat-header-left { .product-name { font-size: 1.8rem; font-weight: 700; background: linear-gradient(45deg, $color-dark-primary, $color-dark-tertiary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-shadow: 0 0 20px rgba($color-dark-primary, 0.5); } .profile { a { display: flex; align-items: center; text-decoration: none; transition: transform 0.3s ease; &:hover { transform: scale(1.05); } img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid rgba($color-dark-primary, 0.4); box-shadow: 0 0 15px rgba($color-dark-primary, 0.3); transition: all 0.3s ease; &:hover { box-shadow: 0 0 25px rgba($color-dark-primary, 0.5); border-color: rgba($color-dark-primary, 0.6); } } } } } // Description styling for list items .list-description { word-wrap: break-word; overflow: hidden; display: -webkit-box; line-clamp: 2; -webkit-box-orient: vertical; }