/* Chat Widget Optimized CSS */

/* Hide global header when chat is open on mobile */
@media (max-width: 768px) {
    #global-sticky-header.chat-hidden {
        transform: translateY(-100%) !important;
        transition: transform 0.3s ease-in-out !important;
        visibility: hidden !important;
        opacity: 0 !important;
        z-index: 1 !important;
    }
}

/* Base Widget Styles */
.floating-chat-widget {
        position: fixed;
    top: -3px;
    right: 5px;
    width: 370px;
    border-radius: 12px;
    z-index: 99999;
    backdrop-filter: blur(10px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
    contain: layout style paint;
}

.floating-chat-widget.minimized {
    height: 60px;
    overflow: hidden;
}

.floating-chat-widget.hidden {
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
}

/* Header Optimization */
.chat-widget-header {
        background: #202020;
    padding: 15px;
    border-bottom: 1px solid #44444447;
    border-radius: 12px 12px 0 0;
    display: flex
;
    justify-content: space-between;
    align-items: center;
    cursor: move;
    user-select: none;
    contain: layout style;
}

.chat-widget-title {
    color: white;
    font-weight: 600;
    font-size: 16px;
    margin: 0;
    display: flex;
    align-items: center;
    contain: layout style;
}

.chat-widget-controls {
    display: flex;
    gap: 8px;
    contain: layout;
}

.chat-widget-btn {
    background: none;
    border: none;
    color: #ccc;
    cursor: pointer;
    padding: 5px;
    border-radius: 4px;
    transition: all 0.2s ease;
    will-change: background-color, color;
}

.chat-widget-btn:hover {
    background: rgba(255,255,255,0.1);
    color: white;
}

/* Tabs Optimization */
.chat-widget-tabs {
    display: flex;
    background: unset;
    border-bottom: 1px solid transparent !important;
    contain: layout style;
    background-color: transparent !important;
}

.chat-widget-tab {
    flex: 1;
    padding: 12px 15px;
    background: none;
    border: none;
    color: #ccc;
    cursor: pointer;
    transition: all 0.2s ease;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    user-select: none;
    will-change: background-color, color, border-bottom-color;
}

.chat-widget-tab.active {
    color: #fff;
    background: #2b2b2b;
    border-bottom-color: var(--main-color);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
 

/* Content Area - Optimized for iframe */
.chat-widget-content { 
    overflow: hidden;
    contain: layout style;
}

 

/* Show Chat Button */
.show-chat-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9998;
    contain: layout style;
}

.show-chat-btn button {
    border-radius: 50%;
    width: 60px;
    height: 60px;
    background: #007bff;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,123,255,0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, box-shadow;
}

.show-chat-btn button:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 16px rgba(0,123,255,0.4);
}

/* Responsive Design */
@media (max-width: 768px) {
    .floating-chat-widget:not(.minimized):not(.hidden),
    .floating-chat-widget.mobile-show:not(.minimized) {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        max-width: none !important;
        border-radius: 0 !important; 
        transform: translateX(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    
    .floating-chat-widget.minimized {
        position: fixed !important;
        top: 75px !important;
        left: 10px !important;
        right: 10px !important;
        bottom: auto !important;
        width: calc(100vw - 20px) !important;
        height: 60px !important;
        border-radius: 12px !important;
        z-index: 9999 !important;
    }
    
    .floating-chat-widget:not(.minimized) .chat-widget-messages {
        height: calc(100vh - 160px) !important;
        overflow-y: auto;
        padding: 10px;
        font-size: 13px;
    }
    
    .floating-chat-widget:not(.minimized) .chat-widget-input {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        padding: 10px;
        background: #0f1f2d !important;
        border-top: 1px solid #44444447 !important;
    }
    
    .floating-chat-widget:not(.minimized) .chat-widget-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 10001 !important;
        background: #0f1f2d !important;
        border-bottom: 1px solid #44444447 !important;
    }
    
    /* Private Chat Containers - Full Screen trên mobile */
    .floating-chat-widget:not(.minimized) .pr-chat-content-header,
    .floating-chat-widget:not(.minimized) .pr-chat-container,
    .floating-chat-widget:not(.minimized) .pr-chat-input-container,
    .floating-chat-widget:not(.minimized) .pr-chat-list-panel {
        width: 100% !important;
        max-width: none !important;
    }
    
 
 
    
  
    
    /* Private chat content panel - full width */
    .floating-chat-widget:not(.minimized) .pr-chat-content-panel {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
    }
    
 
 
    
    /* Khi chat list panel ẩn, content panel full width */
    .floating-chat-widget:not(.minimized) .pr-chat-list-panel[style*="display: none"] + .pr-chat-content-panel,
    .floating-chat-widget:not(.minimized) .pr-chat-content-panel:only-child {
        width: 100% !important;
        flex: 1 !important;
    }
    
    .chat-widget-tab {
        padding: 10px 8px;
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .floating-chat-widget:not(.minimized):not(.hidden) {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        border-radius: 0 !important; 
    }
    
    .floating-chat-widget.minimized {
        position: fixed !important;
        top: 75px !important;
        left: 5px !important;
        right: 5px !important;
        bottom: auto !important;
        width: calc(100vw - 10px) !important;
        height: 60px !important;
        border-radius: 12px !important;
        z-index: 9999 !important;
    }
    
    .chat-widget-header {
        padding: 12px;
    }
    
    .chat-widget-title {
        font-size: 14px;
    }
}

/* Animations - GPU Accelerated */
@keyframes slideInRight {
    from { 
        transform: translateX(100%) translateZ(0); 
        opacity: 0; 
    }
    to { 
        transform: translateX(0) translateZ(0); 
        opacity: 1; 
    }
}

@keyframes slideOutRight {
    from { 
        transform: translateX(0) translateZ(0); 
        opacity: 1; 
    }
    to { 
        transform: translateX(100%) translateZ(0); 
        opacity: 0; 
    }
}

.chat-widget-slide-enter {
    animation: slideInRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.chat-widget-slide-exit {
    animation: slideOutRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Message styling (từ train_box.php) */
.chat-widget-messages .message {
    margin-bottom: 8px;
    padding: 6px 0;
    word-wrap: break-word;
    contain: layout style;
}

.chat-widget-messages .message .username {
    font-weight: 600;
    color: #ffd700;
}

.chat-widget-messages .message .timestamp {
    font-size: 11px;
    color: #888;
    margin-left: 8px;
}

.chat-widget-messages .message .content {
    margin-top: 2px;
    line-height: 1.4;
}

/* Performance optimizations */
.floating-chat-widget * {
    box-sizing: border-box;
}

/* Reduce paint on scroll */
.chat-widget-messages {
    transform: translateZ(0);
}

/* Optimize animations */
.floating-chat-widget,
.chat-widget-btn,
.chat-widget-tab,
.chat-widget-input input,
.chat-widget-send-btn,
.show-chat-btn button {
    backface-visibility: hidden;
    perspective: 1000px;
}

/* Mobile backdrop for chat widget */
.chat-widget-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 9998;
    opacity: 0;
    transition: opacity 0.3s ease;
    background: #030609db !important;
}

/* Chat indicator animation */
@keyframes pulse {
    0% { 
        transform: scale(1); 
        opacity: 1; 
    }
    50% { 
        transform: scale(1.2); 
        opacity: 0.7; 
    }
    100% { 
        transform: scale(1); 
        opacity: 1; 
    }
}
 

/* Noti-box hover effect on mobile */
@media (max-width: 1639px) {
    #noti-box {
        transition: transform 0.2s ease, background-color 0.2s ease;
    }
 #menuModal .modal-content {
        height: calc(100dvh - 62px) !important; 
    }
    #noti-box:hover {
        transform: scale(1.05);
        background-color: rgba(255, 255, 255, 0.1);
        border-radius: 4px;
    }
    
    #noti-box.has-chat-indicator {
        position: relative;
    }
}
 .footer-margin {
        margin-bottom:60px;
    }
/* Desktop Menu Modal Styles - Show permanently on PC */
@media (min-width: 1640px) {
    .my-logo {
        display: none;
    }
    /* Hide hamburger button */
   
    .hamburger {
        display: none !important;
    }
    
    /* Show menuModal permanently */
    #menuModal {
        display: block !important;
        position: fixed !important;
        left: 5px !important;
        top: 76px !important;
        margin-top: 0 !important;
        transform: translateX(0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        z-index: 2git p !important;
        height: calc(100vh - 90px) !important;
        border-radius: 12px;
    }
    
    /* Remove modal backdrop and behavior */
    #menuModal .modal-dialog {
        position: fixed;
        left: 0;
        top: 0;
        margin: 0;
        width: 370px;
        max-width: 370px;
        height: calc(100vh - 60px);
    }
    
    /* Ensure modal content is always visible */
    #menuModal .modal-content {
        height: 100%;
        border-radius: 12px;
        box-shadow: 2px 0 10px rgba(0,0,0,0.1);
    }
    
    /* Adjust navbar and sticky header width when chat widget is open */
    .navbar.chat-widget-open {
        width: calc(-375px + 100vw) !important;
        transition: width 0.3s ease;
    }
    
    #global-sticky-header.chat-widget-open {
        width: calc(-375px + 100vw) !important;
        transition: width 0.3s ease;
    }
    
    /* Adjust main content to accommodate both fixed sidebars */
    .container, 
    main,
    .main-content,
    body > .container  {
        margin-left: 390px !important; /* Menu modal width + gap */
        margin-right: 390px !important; /* Chat widget width + gap */
        max-width: calc(100% - 780px) !important;
        transition: margin 0.3s ease;
    }
    
 
   
    
    /* Special handling for full-width elements */
    .bg-primary,
    .bg-secondary,
    .bg-dark,
    .bg-light,
    .jumbotron,
    .hero-section {
        margin-left: -380px !important;
        margin-right: -380px !important;
        padding-left: 380px !important;
        padding-right: 380px !important;
    }
 
}

/* Mobile/Tablet - Revert to original behavior */
@media (max-width: 1639px) {
    .hamburger {
        display: flex !important;
    }
    
    .floating-chat-widget {
        transform: translateX(100%) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        display: none;
    }
    
    .floating-chat-widget.mobile-show {
        transform: translateX(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        display: block !important;
        width: 481px;
        max-width: unset;
    }
    
    .floating-chat-widget.hidden.mobile-show {
        transform: translateX(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    
    .floating-chat-widget.mobile-show ~ #showChatButton {
        display: none !important;
    }
    
    #menuModal {
        position: fixed !important;
        left: auto !important;
        top: 0 !important;
        margin-top: 60px !important;
        transform: translateX(-100%) !important;
        z-index: 1050 !important;
    }
    
    #menuModal.show {
        transform: translateX(0) !important;
    }
    
    .navbar,
    .navbar-nav {
        padding-left: inherit !important;
        padding-right: inherit !important;
    }
    
    .bg-primary,
    .bg-secondary,
    .bg-dark,
    .bg-light,
    .jumbotron,
    .hero-section {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: inherit !important;
        padding-right: inherit !important;
    }
}

/* Private Badge Notification - Badge tròn màu đỏ */
.private-badge-notification {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #ff4444 !important;
    color: white !important;
    border-radius: 50% !important;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
    line-height: 1;
    padding: 0 4px;
    box-shadow: 0 2px 4px rgba(255, 68, 68, 0.3);
    border: 2px solid #0f1f2d;
    z-index: 10;
    animation: pulse 2s infinite;
}

.private-badge-notification:empty {
    display: none;
}

/* Guild Chat Badge Notification - giống style private chat */
a[href="#tab-guild-private-chat"] .badge-notification {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #ff4444 !important;
    color: white !important;
    border-radius: 50% !important;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
    line-height: 1;
    padding: 0 4px;
    box-shadow: 0 2px 4px rgba(255, 68, 68, 0.3);
    border: 2px solid #0f1f2d;
    z-index: 10;
    animation: pulse 2s infinite;
}

a[href="#tab-guild-private-chat"] .badge-notification:empty {
    display: none;
}

/* Animation cho badge */
@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 2px 4px rgba(255, 68, 68, 0.3);
    }
    50% {
        transform: scale(1.1);
        box-shadow: 0 4px 8px rgba(255, 68, 68, 0.5);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 2px 4px rgba(255, 68, 68, 0.3);
    }
}
