/* Dark Theme Styles */
.dark {
    --bg-primary: #1f2937;
    --bg-secondary: #111827;
    --bg-tertiary: #374151;
    --text-primary: #ffffff;
    --text-secondary: #d1d5db;
    --text-tertiary: #9ca3af;
    --border-primary: #374151;
    --border-secondary: #4b5563;
    --accent-primary: #3b82f6;
    --accent-secondary: #2563eb;
}

/* Base dark styles */
.dark body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

.dark .bg-white {
    background-color: var(--bg-secondary) !important;
}

.dark .bg-gray-50 {
    background-color: var(--bg-tertiary) !important;
}

.dark .bg-gray-100 {
    background-color: var(--bg-tertiary) !important;
}

.dark .bg-gray-200 {
    background-color: var(--border-primary) !important;
}

.dark .text-gray-900 {
    color: var(--text-primary) !important;
}

.dark .text-gray-800 {
    color: var(--text-primary) !important;
}

.dark .text-gray-700 {
    color: var(--text-secondary) !important;
}

.dark .text-gray-600 {
    color: var(--text-tertiary) !important;
}

.dark .text-gray-500 {
    color: var(--text-tertiary) !important;
}

.dark .text-gray-400 {
    color: var(--text-tertiary) !important;
}

.dark .border-gray-200 {
    border-color: var(--border-primary) !important;
}

.dark .border-gray-300 {
    border-color: var(--border-primary) !important;
}

.dark .border-gray-400 {
    border-color: var(--border-secondary) !important;
}

.dark .hover\:bg-gray-100:hover {
    background-color: var(--bg-tertiary) !important;
}

.dark .hover\:bg-gray-200:hover {
    background-color: var(--border-primary) !important;
}

.dark .hover\:bg-gray-50:hover {
    background-color: var(--bg-tertiary) !important;
}

/* Navigation */
.dark .bg-gradient-to-r {
    background: linear-gradient(to right, var(--bg-tertiary), var(--bg-secondary)) !important;
}

.dark .nav-link {
    color: var(--text-secondary) !important;
}

.dark .nav-link:hover {
    color: var(--text-primary) !important;
}

/* Cards */
.dark .card {
    background-color: var(--bg-secondary);
    border-color: var(--border-primary);
}

.dark .hover\:shadow-xl:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2) !important;
}

/* Forms */
.dark input,
.dark textarea,
.dark select {
    background-color: var(--bg-tertiary);
    border-color: var(--border-primary);
    color: var(--text-primary);
}

.dark input:focus,
.dark textarea:focus,
.dark select:focus {
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.dark input::placeholder,
.dark textarea::placeholder {
    color: var(--text-tertiary);
}

/* Buttons */
.dark .btn-primary {
    background-color: var(--accent-primary);
    border-color: var(--accent-primary);
}

.dark .btn-primary:hover {
    background-color: var(--accent-secondary);
}

.dark .btn-secondary {
    background-color: var(--bg-tertiary);
    border-color: var(--border-primary);
    color: var(--text-secondary);
}

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

/* Tables */
.dark table {
    background-color: var(--bg-secondary);
}

.dark th {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-primary);
}

.dark td {
    border-color: var(--border-primary);
    color: var(--text-secondary);
}

.dark tbody tr:hover {
    background-color: var(--bg-tertiary);
}

/* Code blocks */
.dark pre {
    background-color: var(--bg-tertiary);
    border-color: var(--border-primary);
}

.dark code {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Alerts */
.dark .alert {
    background-color: var(--bg-tertiary);
    border-color: var(--border-primary);
    color: var(--text-secondary);
}

.dark .alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border-color: rgba(34, 197, 94, 0.3);
    color: #4ade80;
}

.dark .alert-warning {
    background-color: rgba(251, 191, 36, 0.1);
    border-color: rgba(251, 191, 36, 0.3);
    color: #fbbf24;
}

.dark .alert-error {
    background-color: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.3);
    color: #ef4444;
}

.dark .alert-info {
    background-color: rgba(59, 130, 246, 0.1);
    border-color: rgba(59, 130, 246, 0.3);
    color: #3b82f6;
}

/* Modals */
.dark .modal {
    background-color: var(--bg-secondary);
    border-color: var(--border-primary);
}

.dark .modal-backdrop {
    background-color: rgba(0, 0, 0, 0.7);
}

/* Dropdowns */
.dark .dropdown {
    background-color: var(--bg-secondary);
    border-color: var(--border-primary);
}

.dark .dropdown-item {
    color: var(--text-secondary);
}

.dark .dropdown-item:hover {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Scrollbar */
.dark ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.dark ::-webkit-scrollbar-track {
    background: var(--bg-tertiary);
}

.dark ::-webkit-scrollbar-thumb {
    background: var(--border-secondary);
    border-radius: 4px;
}

.dark ::-webkit-scrollbar-thumb:hover {
    background: var(--text-tertiary);
}

/* Selection */
.dark ::selection {
    background-color: var(--accent-primary);
    color: var(--text-primary);
}

/* Focus styles */
.dark *:focus {
    outline-color: var(--accent-primary);
}

/* Transitions */
.dark * {
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
