/* Interactive Elements Styles - All elements keep original classes and structure */

/* Sidebar Toggle Functionality */
.gx-linebar .gx-icon-btn {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 8px !important;
    border-radius: 4px !important;
}

.gx-linebar .gx-icon-btn:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
}

.gx-app-sidebar {
    transition: all 0.3s ease !important;
    overflow: hidden !important;
}

.gx-app-sidebar.sidebar-collapsed {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    flex: 0 0 60px !important;
}

/* Smooth slide animations for logo */
.gx-app-sidebar .gx-site-logo {
    transition: opacity 0.3s ease, transform 0.3s ease !important;
    opacity: 1 !important;
    transform: translateX(0) !important;
}

.gx-app-sidebar.sidebar-collapsed .gx-site-logo {
    opacity: 0 !important;
    transform: translateX(-20px) !important;
    pointer-events: none !important;
}

/* Smooth slide animations for sidebar content */
.gx-app-sidebar .gx-sidebar-merchant-status,
.gx-app-sidebar .gx-sidebar-content {
    transition: opacity 0.3s ease, transform 0.3s ease !important;
    opacity: 1 !important;
    transform: translateX(0) !important;
}

.gx-app-sidebar.sidebar-collapsed .gx-sidebar-merchant-status,
.gx-app-sidebar.sidebar-collapsed .gx-sidebar-content {
    opacity: 0 !important;
    transform: translateX(-20px) !important;
    pointer-events: none !important;
}

/* Header adjustments for collapsed state */
.gx-app-sidebar .gx-layout-sider-header {
    transition: justify-content 0.3s ease, padding 0.3s ease !important;
}

.gx-app-sidebar.sidebar-collapsed .gx-layout-sider-header {
    justify-content: center !important;
    padding: 0 !important;
}

/* Hamburger icon positioning */
.gx-app-sidebar .gx-linebar {
    transition: all 0.3s ease !important;
}

.gx-app-sidebar.sidebar-collapsed .gx-linebar {
    width: 100% !important;
    text-align: center !important;
}

/* Hamburger icon smooth transitions */
.gx-linebar .gx-icon-btn {
    transition: all 0.3s ease !important;
}

/* Menu items smooth slide animations */
.gx-app-sidebar .ant-menu,
.gx-app-sidebar .ant-menu-item,
.gx-app-sidebar .ant-menu-submenu {
    transition: opacity 0.3s ease, transform 0.3s ease !important;
}

.gx-app-sidebar.sidebar-collapsed .ant-menu,
.gx-app-sidebar.sidebar-collapsed .ant-menu-item,
.gx-app-sidebar.sidebar-collapsed .ant-menu-submenu {
    opacity: 0 !important;
    transform: translateX(-20px) !important;
    pointer-events: none !important;
}

/* Better sidebar collapse animation */
.gx-app-sidebar * {
    box-sizing: border-box !important;
}

.gx-app-sidebar.sidebar-collapsed * {
    white-space: nowrap !important;
    margin: 0 !important;
}

/* Chart tooltip styling */
.recharts-tooltip-wrapper {
    z-index: 1000 !important;
    transition: all 0.1s ease !important;
}

.chart-tooltip {
    background: rgba(255, 255, 255, 0.95) !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    max-width: 200px !important;
    backdrop-filter: blur(4px) !important;
}

.chart-tooltip>span {
    font-weight: 600 !important;
    color: #262626 !important;
    display: block !important;
    margin-bottom: 4px !important;
}

.chart-tooltip .ant-divider {
    margin: 4px 0 !important;
    border-color: #e8e8e8 !important;
}

.chart-tooltip ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.chart-tooltip li {
    color: #595959 !important;
    font-size: 11px !important;
    margin: 0 !important;
    padding: 2px 0 !important;
    display: flex !important;
    align-items: center !important;
}

.chart-tooltip li::before {
    content: '' !important;
    width: 8px !important;
    height: 8px !important;
    background-color: #34a4a5 !important;
    border-radius: 2px !important;
    margin-right: 6px !important;
    flex-shrink: 0 !important;
}

/* Chart rectangle hover effect */
.recharts-rectangle:hover {
    filter: brightness(1.1) !important;
    transition: filter 0.2s ease !important;
}

/* SPA Loader styling to match original loader */
.spa-loader {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    display: none !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 10000 !important;
    backdrop-filter: blur(2px) !important;
}

.spa-loader .loader.loading {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.spa-loader .loader.loading img {
    width: 50px !important;
    height: 50px !important;
    animation: spin 1s linear infinite !important;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Main loader styling - ensure proper visibility control */
.loader.true {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 9999 !important;
    visibility: visible !important;
}

.loader.true img {
    width: 64px !important;
    height: 64px !important;
    max-width: none !important;
    max-height: none !important;
    animation: spin 1s linear infinite !important;
}

/* Hidden state for loader */
.loader.true[style*="display: none"],
.loader.true[style*="visibility: hidden"] {
    display: none !important;
    visibility: hidden !important;
}

/* Ensure main content expands when sidebar is collapsed */
.gx-app-layout .ant-layout {
    flex: 1 !important;
    transition: margin-left 0.3s ease !important;
}

/* User Navigation Dropdown */
.gx-user-nav .gx-avatar-row {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.gx-user-nav .gx-avatar-row:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
    border-radius: 4px !important;
}

.user-nav-dropdown {
    position: fixed !important;
    background: white !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
    z-index: 1060 !important;
    min-width: 180px !important;
}

.user-nav-dropdown .dropdown-item {
    padding: 10px 16px !important;
    cursor: pointer !important;
    transition: background-color 0.2s !important;
    display: flex !important;
    align-items: center !important;
    color: #333 !important;
    text-decoration: none !important;
}

.user-nav-dropdown .dropdown-item:hover {
    background-color: #f5f5f5 !important;
}

/* Collapse Headers */
.ant-collapse-header {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.ant-collapse-header:hover {
    background-color: rgba(52, 164, 165, 0.05) !important;
}

.ant-collapse-header:focus {
    outline: 2px solid rgba(52, 164, 165, 0.3) !important;
    outline-offset: 2px !important;
}

/* Collapse Content */
.ant-collapse-content {
    overflow: hidden !important;
}

.ant-collapse-content-box {
    padding: 16px !important;
    border-top: 1px solid #f0f0f0 !important;
}

/* Chevron rotation animation */
.ant-collapse-header .anticon-down,
.ant-collapse-header .icon-chevron-down {
    transition: transform 0.3s ease !important;
}

/* Menu Items */
.ant-menu-item {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.ant-menu-item:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
}

.ant-menu-item-selected {
    background-color: rgba(52, 164, 165, 0.15) !important;
    border-right: 3px solid #34a4a5 !important;
}

/* Submenu toggles */
.ant-menu-submenu-title {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.ant-menu-submenu-title:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
}

/* Button ripple effects */
[role="button"],
.ant-btn,
.gx-btn,
.gx-btn-link,
button {
    position: relative !important;
    overflow: hidden !important;
    transition: all 0.2s ease !important;
}

/* Button hover effects */
[role="button"]:hover,
.ant-btn:hover,
.gx-btn:hover,
.gx-btn-link:hover,
button:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

/* Focus styles for accessibility */
[role="button"]:focus,
.ant-btn:focus,
.gx-btn:focus,
.gx-btn-link:focus,
button:focus {
    outline: 2px solid rgba(52, 164, 165, 0.5) !important;
    outline-offset: 2px !important;
}

/* Table sorting visual feedback */
.ant-table-column-sorters:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
}

.ant-table-column-sorters.sorted {
    background-color: rgba(52, 164, 165, 0.15) !important;
    color: #34a4a5 !important;
}

/* Pagination buttons */
.ant-pagination-item,
.ant-pagination-prev,
.ant-pagination-next {
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.ant-pagination-item:hover,
.ant-pagination-prev:hover,
.ant-pagination-next:hover {
    border-color: #34a4a5 !important;
    color: #34a4a5 !important;
}

/* Search input focus */
.gx-search .ant-btn:hover {
    color: #34a4a5 !important;
}

/* Language selector */
.gx-language:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
    border-radius: 4px !important;
}

/* Icon hover effects */
.icon:hover {
    color: #34a4a5 !important;
    transition: color 0.2s ease !important;
}

/* Ensure all interactive elements are properly styled */
*[data-collapse-initialized],
*[data-usernav-initialized],
*[data-menu-initialized],
*[data-menuitem-initialized],
*[data-button-initialized],
*[data-dropdown-initialized],
*[data-date-picker-initialized],
*[data-interactive-initialized] {
    cursor: pointer !important;
}

/* Date picker button hover effects */
.gx-filter-summary .ant-tag[style*="cursor: pointer"] {
    transition: all 0.2s ease !important;
}

.gx-filter-summary .ant-tag[style*="cursor: pointer"]:hover {
    background-color: #e6f7ff !important;
    border-color: #40a9ff !important;
    transform: translateY(-1px);
}

/* Dropdown buttons hover effects */
.gx-pointer {
    transition: all 0.2s ease !important;
}

.gx-pointer:hover {
    background-color: rgba(52, 164, 165, 0.1) !important;
    transform: translateY(-1px);
}

/* Custom dropdown styles */
.custom-dropdown {
    position: absolute !important;
    background: white !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    z-index: 1050 !important;
    min-width: 200px !important;
    max-height: 300px !important;
    overflow-y: auto !important;
}

.custom-dropdown ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 4px 0 !important;
}

.custom-dropdown li {
    padding: 8px 12px !important;
    cursor: pointer !important;
    transition: background-color 0.2s !important;
}

.custom-dropdown li:hover {
    background-color: #f5f5f5 !important;
}

.custom-dropdown label {
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
}

.custom-dropdown input[type="checkbox"] {
    margin-right: 8px !important;
}

/* Date picker modal styles */
#date-picker-modal .modal {
    display: block !important;
    background: rgba(0, 0, 0, 0.5) !important;
}

#date-picker-modal .modal-content {
    border-radius: 8px !important;
    border: none !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2) !important;
}

#date-picker-modal .modal-header {
    border-bottom: 1px solid #e9ecef !important;
    padding: 16px 20px !important;
}

#date-picker-modal .modal-body {
    padding: 20px !important;
}

#date-picker-modal .modal-footer {
    border-top: 1px solid #e9ecef !important;
    padding: 16px 20px !important;
}

#date-picker-modal .btn-close {
    background: none !important;
    border: none !important;
    font-size: 24px !important;
    font-weight: bold !important;
    color: #999 !important;
    cursor: pointer !important;
}

#date-picker-modal .btn-close:hover {
    color: #333 !important;
}

/* Form styles in modal */
#date-picker-modal .form-control {
    border: 1px solid #d9d9d9 !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    transition: border-color 0.2s !important;
}

#date-picker-modal .form-control:focus {
    border-color: #40a9ff !important;
    box-shadow: 0 0 0 2px rgba(64, 169, 255, 0.2) !important;
    outline: none !important;
}

#date-picker-modal .form-label {
    font-weight: 500 !important;
    margin-bottom: 4px !important;
    color: #333 !important;
}

/* Button group styles */
#date-picker-modal .btn-group .btn {
    flex: 1 !important;
    border: 1px solid #d9d9d9 !important;
    background: white !important;
    color: #333 !important;
    padding: 6px 12px !important;
    transition: all 0.2s !important;
}

#date-picker-modal .btn-group .btn:hover {
    background: #f0f0f0 !important;
    border-color: #40a9ff !important;
}

#date-picker-modal .btn-group .btn:first-child {
    border-top-left-radius: 6px !important;
    border-bottom-left-radius: 6px !important;
}

#date-picker-modal .btn-group .btn:last-child {
    border-top-right-radius: 6px !important;
    border-bottom-right-radius: 6px !important;
}

#date-picker-modal .btn-group .btn:not(:first-child) {
    border-left: none !important;
}

/* Primary and secondary buttons */
#date-picker-modal .btn-primary {
    background-color: #34a4a5 !important;
    border-color: #34a4a5 !important;
    color: white !important;
}

#date-picker-modal .btn-primary:hover {
    background-color: #2a8a8b !important;
    border-color: #2a8a8b !important;
}

#date-picker-modal .btn-secondary {
    background-color: #6c757d !important;
    border-color: #6c757d !important;
    color: white !important;
}

#date-picker-modal .btn-secondary:hover {
    background-color: #545b62 !important;
    border-color: #545b62 !important;
}

/* Table sorting feedback */
.ant-table-column-sorters.sorted {
    background-color: rgba(52, 164, 165, 0.1) !important;
}

/* Loading states */
.interactive-loading {
    opacity: 0.6 !important;
    pointer-events: none !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    #date-picker-modal .modal-dialog {
        margin: 10px !important;
    }

    #date-picker-modal .btn-group {
        flex-direction: column !important;
    }

    #date-picker-modal .btn-group .btn {
        border-radius: 6px !important;
        margin-bottom: 4px !important;
        border: 1px solid #d9d9d9 !important;
    }

    .custom-dropdown {
        max-width: calc(100vw - 20px) !important;
        left: 10px !important;
    }
}

.chart-tooltip li:nth-of-type(1)::before {
    background-color: #0093c9 !important;
}

.chart-tooltip li:nth-of-type(2)::before {
    background-color: #f4b223 !important;
}

.chart-tooltip li:nth-of-type(3)::before {
    background-color: #40c1ac !important;
}

.chart-tooltip li:nth-of-type(4)::before {
    background-color: #a1d683 !important;
}

button.gx-link.gx-btn-link {
    background-color: #34a4a5;
    color: #fff;
    height: 30px;
    line-height: 30px;
    cursor: auto;
    border: initial;
    border-radius: 5px;
}