/* ============================================
   CryptoBot Pro - Dark Mode Styles
   ============================================ */

[data-theme="dark"] {
    /* Background Colors */
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --bg-card: #1e293b;
    
    /* Text Colors */
    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --text-inverse: #0f172a;
    
    /* Border Colors */
    --border-color: #334155;
    --border-light: #475569;
    
    /* Status Colors - Slightly adjusted for dark mode */
    --success-bg: rgba(34, 197, 94, 0.15);
    --warning-bg: rgba(245, 158, 11, 0.15);
    --danger-bg: rgba(239, 68, 68, 0.15);
    --info-bg: rgba(59, 130, 246, 0.15);
    
    /* Shadows - More subtle in dark mode */
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.2);
    --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.3), 0 1px 2px -1px rgb(0 0 0 / 0.3);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.3), 0 2px 4px -2px rgb(0 0 0 / 0.3);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.3), 0 4px 6px -4px rgb(0 0 0 / 0.3);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.4);
    
    /* Gradients */
    --gradient-card: linear-gradient(135deg, #4c1d95 0%, #1e3a5f 100%);
}

/* Dark mode specific overrides */

[data-theme="dark"] body {
    background-color: var(--bg-primary);
}

/* Auth pages */
[data-theme="dark"] .auth-container {
    background: linear-gradient(135deg, #1e1b4b 0%, #0f172a 100%);
}

[data-theme="dark"] .auth-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

/* Dark mode toggle icon */
[data-theme="dark"] .theme-toggle .fa-sun {
    display: block;
}

[data-theme="dark"] .theme-toggle .fa-moon {
    display: none;
}

/* Form controls */
[data-theme="dark"] .form-control {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .form-control:focus {
    border-color: var(--primary);
    background: var(--bg-tertiary);
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--text-muted);
}

[data-theme="dark"] .form-control:disabled {
    background: var(--bg-primary);
}

[data-theme="dark"] .form-select,
[data-theme="dark"] select.form-control {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-color: #1e293b !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem center !important;
    background-size: 12px !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}

[data-theme="dark"] .form-select option,
[data-theme="dark"] select.form-control option {
    background-color: #1e293b;
    color: #e2e8f0;
}

[data-theme="dark"] .form-select::-ms-expand,
[data-theme="dark"] select.form-control::-ms-expand {
    display: none;
}

/* Cards */
[data-theme="dark"] .card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

[data-theme="dark"] .stat-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

/* Tables */
[data-theme="dark"] .table th {
    background: var(--bg-tertiary);
}

[data-theme="dark"] .table tbody tr:hover {
    background: var(--bg-tertiary);
}

/* Sidebar */
[data-theme="dark"] .sidebar {
    background: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .sidebar-header {
    border-color: var(--border-color);
}

[data-theme="dark"] .sidebar-footer {
    border-color: var(--border-color);
}

[data-theme="dark"] .menu-item:hover {
    background: var(--bg-tertiary);
}

[data-theme="dark"] .menu-item.active {
    background: linear-gradient(90deg, rgba(99, 102, 241, 0.2) 0%, transparent 100%);
}

/* Header */
[data-theme="dark"] .header {
    background: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .user-dropdown-toggle:hover {
    background: var(--bg-tertiary);
}

/* Input group text addon */
[data-theme="dark"] .input-group-text {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

/* Buttons */
[data-theme="dark"] .btn-secondary {
    background: var(--bg-tertiary);
    color: var(--text-primary);
}

[data-theme="dark"] .btn-secondary:hover:not(:disabled) {
    background: var(--border-color);
    color: var(--text-primary) !important;
}

[data-theme="dark"] .btn-outline {
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .btn-outline:hover:not(:disabled) {
    background: var(--bg-tertiary);
    border-color: var(--primary);
    color: var(--primary) !important;
}

/* Ensure all buttons maintain visible text color on hover */
[data-theme="dark"] .btn:hover:not(:disabled),
[data-theme="dark"] .btn:hover:not(:disabled) * {
    color: inherit !important;
}

/* Secondary button - keep text visible */
[data-theme="dark"] .btn-secondary:hover:not(:disabled),
[data-theme="dark"] .btn-secondary:hover:not(:disabled) * {
    color: var(--text-primary) !important;
}

/* Outline button - use primary color on hover */
[data-theme="dark"] .btn-outline:hover:not(:disabled),
[data-theme="dark"] .btn-outline:hover:not(:disabled) * {
    color: var(--primary) !important;
}

/* Warning button - keep dark text visible */
[data-theme="dark"] .btn-warning:hover:not(:disabled),
[data-theme="dark"] .btn-warning:hover:not(:disabled) * {
    color: var(--text-inverse) !important;
}

/* Links styled as buttons - ensure text stays visible */
[data-theme="dark"] a.btn:hover:not(:disabled),
[data-theme="dark"] a.btn:hover:not(:disabled) * {
    color: inherit !important;
}

[data-theme="dark"] a.btn-secondary:hover:not(:disabled),
[data-theme="dark"] a.btn-secondary:hover:not(:disabled) * {
    color: var(--text-primary) !important;
}

[data-theme="dark"] a.btn-outline:hover:not(:disabled),
[data-theme="dark"] a.btn-outline:hover:not(:disabled) * {
    color: var(--primary) !important;
}

[data-theme="dark"] a.btn-warning:hover:not(:disabled),
[data-theme="dark"] a.btn-warning:hover:not(:disabled) * {
    color: var(--text-inverse) !important;
}

/* Modals */
[data-theme="dark"] .modal {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

[data-theme="dark"] .modal-header {
    border-color: var(--border-color);
}

[data-theme="dark"] .modal-footer {
    border-color: var(--border-color);
}

/* Toast */
[data-theme="dark"] .toast {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

/* Badges */
[data-theme="dark"] .badge-secondary {
    background: var(--bg-tertiary);
}

/* Alerts */
[data-theme="dark"] .alert-warning {
    color: #fbbf24;
}

[data-theme="dark"] .alert-info {
    color: #60a5fa;
}

/* Card footer */
[data-theme="dark"] .card-footer {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}

/* Bot cards */
[data-theme="dark"] .bot-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

/* Wallet card */
[data-theme="dark"] .wallet-card {
    background: var(--gradient-card);
}

/* Pagination */
[data-theme="dark"] .pagination-item:hover {
    background: var(--bg-tertiary);
}

/* Scrollbar styling for dark mode */
[data-theme="dark"] ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
    background: var(--bg-secondary);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: var(--text-muted);
}

/* Selection - Ensure text doesn't turn blue when selected */
[data-theme="dark"] ::selection {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-primary) !important;
}

[data-theme="dark"] ::-moz-selection {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-primary) !important;
}

/* Links in dark mode - Only style actual links with href, exclude buttons and styled elements */
[data-theme="dark"] a[href]:not(.btn):not(.menu-item):not(.dropdown-item):not(.pagination-item):not(.filter-tab):not(.badge):not(.card-title):not(.stat-card):not(.bot-card *) {
    color: var(--primary-light);
    text-decoration: none;
}

[data-theme="dark"] a[href]:not(.btn):not(.menu-item):not(.dropdown-item):not(.pagination-item):not(.filter-tab):not(.badge):not(.card-title):not(.stat-card):not(.bot-card *):hover {
    color: var(--primary);
    text-decoration: underline;
}

/* Regular text should not change color on hover */
[data-theme="dark"] p:hover,
[data-theme="dark"] span:hover,
[data-theme="dark"] div:hover,
[data-theme="dark"] h1:hover,
[data-theme="dark"] h2:hover,
[data-theme="dark"] h3:hover,
[data-theme="dark"] h4:hover,
[data-theme="dark"] h5:hover,
[data-theme="dark"] h6:hover,
[data-theme="dark"] .text-primary:hover,
[data-theme="dark"] .text-secondary:hover,
[data-theme="dark"] .card-body *:not(a):hover,
[data-theme="dark"] .card *:not(a):hover,
[data-theme="dark"] .stat-card *:not(a):hover {
    color: inherit !important;
}

/* Ensure text inside cards and containers doesn't inherit link colors */
[data-theme="dark"] .card p:not(.form-error):not(.text-danger):not(.text-success):not(.text-warning),
[data-theme="dark"] .card span:not(.form-error):not(.text-danger):not(.text-success):not(.text-warning):not(.badge),
[data-theme="dark"] .card div:not(.card-header):not(.card-footer):not(.alert):not(.form-error),
[data-theme="dark"] .stat-card p,
[data-theme="dark"] .stat-card span:not(.badge),
[data-theme="dark"] .card-body p:not(.form-error):not(.text-danger):not(.text-success):not(.text-warning),
[data-theme="dark"] .card-body span:not(.form-error):not(.text-danger):not(.text-success):not(.text-warning):not(.badge),
[data-theme="dark"] .card-body div:not(.form-error):not(.alert):not(.earning-amount),
[data-theme="dark"] .form-group div:not(.form-error),
[data-theme="dark"] .input-group div:not(.form-error) {
    color: var(--text-primary) !important;
}

/* Form error - always red in dark mode - highest specificity */
[data-theme="dark"] .form-error,
[data-theme="dark"] div.form-error,
[data-theme="dark"] .card .form-error,
[data-theme="dark"] .card-body .form-error,
[data-theme="dark"] .form-group .form-error,
[data-theme="dark"] .input-group .form-error,
[data-theme="dark"] .text-danger {
    color: var(--danger) !important;
}

/* Success text - highest priority for earning amounts */
[data-theme="dark"] .text-success,
[data-theme="dark"] .earning-amount,
[data-theme="dark"] .text-success.earning-amount,
[data-theme="dark"] .earning-amount.text-success,
[data-theme="dark"] .card-body .text-success,
[data-theme="dark"] .card-body .earning-amount,
[data-theme="dark"] .card-body .text-success.earning-amount,
[data-theme="dark"] .card-body .earning-amount.text-success,
[data-theme="dark"] .card-body div.text-success.earning-amount,
[data-theme="dark"] .card-body div.earning-amount.text-success,
[data-theme="dark"] .earning-item .text-success.earning-amount,
[data-theme="dark"] .earning-item .earning-amount.text-success,
[data-theme="dark"] .card-body .earning-item .text-success.earning-amount,
[data-theme="dark"] .card-body .earning-item .earning-amount.text-success {
    color: #22c55e !important;
}

/* Warning text */
[data-theme="dark"] .text-warning {
    color: var(--warning) !important;
}

/* Links styled as buttons - override link color */
[data-theme="dark"] a.btn,
[data-theme="dark"] a.btn-primary,
[data-theme="dark"] a.btn-success,
[data-theme="dark"] a.btn-danger,
[data-theme="dark"] a.btn-secondary,
[data-theme="dark"] a.btn-outline {
    color: inherit;
}

[data-theme="dark"] a.btn-primary,
[data-theme="dark"] a.btn-success,
[data-theme="dark"] a.btn-danger {
    color: white !important;
}

[data-theme="dark"] a.btn-primary:hover,
[data-theme="dark"] a.btn-success:hover,
[data-theme="dark"] a.btn-danger:hover {
    color: white !important;
}

/* Warning button in dark mode - ensure text stays visible */
[data-theme="dark"] .btn-warning {
    background: var(--warning);
    color: var(--text-inverse);
}

[data-theme="dark"] .btn-warning:hover:not(:disabled) {
    background: #f59e0b;
    color: var(--text-inverse) !important;
}

[data-theme="dark"] a.btn-warning,
[data-theme="dark"] a.btn-warning:hover {
    color: var(--text-inverse) !important;
}

/* Menu items and navigation links - keep their own colors */
[data-theme="dark"] .menu-item,
[data-theme="dark"] .dropdown-item,
[data-theme="dark"] .pagination-item,
[data-theme="dark"] .filter-tab {
    color: inherit;
}

/* Prevent text selection from turning blue */
[data-theme="dark"] ::selection {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-primary) !important;
}

[data-theme="dark"] ::-moz-selection {
    background: rgba(99, 102, 241, 0.3);
    color: var(--text-primary) !important;
}

/* Stat icons */
[data-theme="dark"] .stat-icon.primary {
    background: rgba(99, 102, 241, 0.2);
}

/* Code blocks */
[data-theme="dark"] code {
    background: var(--bg-tertiary);
    color: var(--primary-light);
}

/* HR */
[data-theme="dark"] hr {
    border-color: var(--border-color);
}

/* Dropdown in dark mode */
[data-theme="dark"] .dropdown-menu {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .dropdown-item:hover {
    background: var(--bg-tertiary);
}

[data-theme="dark"] .user-dropdown-toggle:hover {
    background: var(--bg-tertiary);
}

/* Wallet Balance Badge in dark mode */
[data-theme="dark"] .wallet-balance-badge {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .wallet-balance-badge:hover {
    background: var(--bg-tertiary);
    border-color: var(--primary);
}

/* Buttons - Ensure white text for colored buttons in dark mode */
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .btn-primary:hover,
[data-theme="dark"] .btn-primary:focus,
[data-theme="dark"] .btn-primary:active {
    color: white !important;
}

[data-theme="dark"] .btn-success,
[data-theme="dark"] .btn-success:hover,
[data-theme="dark"] .btn-success:focus,
[data-theme="dark"] .btn-success:active {
    color: white !important;
}

[data-theme="dark"] .btn-danger,
[data-theme="dark"] .btn-danger:hover,
[data-theme="dark"] .btn-danger:focus,
[data-theme="dark"] .btn-danger:active {
    color: white !important;
}

/* Links styled as buttons */
[data-theme="dark"] a.btn-primary,
[data-theme="dark"] a.btn-primary:hover,
[data-theme="dark"] a.btn-success,
[data-theme="dark"] a.btn-success:hover,
[data-theme="dark"] a.btn-danger,
[data-theme="dark"] a.btn-danger:hover {
    color: white !important;
}

/* Notification dropdown dark mode */
[data-theme="dark"] .notification-toggle {
    background: var(--bg-tertiary);
}

[data-theme="dark"] .notification-toggle:hover {
    background: var(--bg-secondary);
}

[data-theme="dark"] .notification-menu {
    background: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .notification-header {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .notification-item:hover {
    background: var(--bg-tertiary);
}

[data-theme="dark"] .notification-item.unread {
    background: rgba(99, 102, 241, 0.1);
}

[data-theme="dark"] .notification-item.unread:hover {
    background: rgba(99, 102, 241, 0.15);
}

[data-theme="dark"] .notification-footer {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .notification-badge {
    border-color: var(--bg-primary);
}

[data-theme="dark"] .toggle-slider {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .toggle-slider::before {
    background-color: var(--text-primary);
}

[data-theme="dark"] .toggle-switch input:checked + .toggle-slider {
    background-color: var(--success);
    border-color: var(--success);
}

/* Transition for theme change */
body,
.sidebar,
.header,
.card,
.modal,
.toast,
.dropdown-menu,
.form-control,
.btn,
.notification-toggle,
.notification-menu {
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
