Files
TimeTrack/static/css/dark-mode.css
Jens Luedicke 80edb1be55 Add comprehensive dark mode support with UI consistency fixes
This commit introduces a complete dark mode implementation across the entire application,
along with various UI consistency improvements and mobile responsiveness fixes.

Dark Mode Implementation:
- Added new dark-mode.css with comprehensive CSS variable system
- Implemented theme switcher with localStorage persistence
- Created dark mode color palette optimized for readability
- Added smooth transitions between light and dark themes

Component-Specific Dark Mode Styling:
- Headers: Added glowing gradient effects with animations (pulse, shimmer)
- Tables: Unified table styling across all views with proper dark mode support
- Forms: Updated all form controls, inputs, and buttons for dark mode
- Cards: Fixed white backgrounds in project cards, stat cards, and activity items
- Navigation: Enhanced sidebar and mobile navigation dark mode styling
- Modals: Added dark mode support for all modal dialogs including task modal
- Charts: Updated chart colors for dark mode visibility

UI Consistency Improvements:
- Standardized container padding (1rem) across all pages
- Unified page widths (regular: 1400px, admin: 1600px)
- Fixed mobile bottom navigation to only show on devices ≤768px
- Resolved page header positioning inconsistencies
- Improved text contrast ratios for better accessibility

Table Consolidation:
- Created tables-consolidated.css for unified table styling
- Removed duplicate table styles across components
- Standardized table headers, borders, and hover states
- Added responsive table behavior for mobile devices

Mobile Improvements:
- Fixed splash screen viewport coverage
- Enhanced mobile menu accessibility
- Improved touch targets for mobile interactions
- Added proper mobile-specific dark mode adjustments

Technical Details:
- CSS variables for easy theme customization
- Proper specificity management with [data-theme="dark"] selectors
- Performance optimized with minimal repaints
- Browser compatibility for modern browsers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 20:41:11 +02:00

2885 lines
73 KiB
CSS

/* Dark Mode Theme for TimeTrack */
/* Dark mode CSS variables */
[data-theme="dark"] {
/* Background colors */
--bg-primary: #0f0f0f;
--bg-secondary: #1a1a1a;
--bg-tertiary: #242424;
--bg-card: #1e1e1e;
--bg-hover: #2a2a2a;
--bg-active: #333333;
--bg-input: #1a1a1a;
--bg-modal: #1e1e1e;
/* Text colors */
--text-primary: #f0f0f0; /* Brighter for better readability */
--text-secondary: #b8b8b8; /* Slightly brighter */
--text-tertiary: #8c8c8c; /* More readable */
--text-muted: #7b7b7b;
--text-inverse: #0f0f0f;
--text-heading: #ffffff; /* Pure white for headings */
--text-title: #f8f8f8; /* Near white for titles */
/* Border colors */
--border-primary: #333333;
--border-secondary: #2a2a2a;
--border-hover: #404040;
--border-focus: #5a5a5a;
/* Brand colors (slightly adjusted for dark mode) */
--primary-color: #7a8df5;
--primary-gradient-start: #7a8df5;
--primary-gradient-end: #8b5bc9;
--primary-hover: #8e9ff7;
--primary-active: #6a7de5;
/* Semantic colors */
--success-color: #4ade80;
--success-bg: rgba(74, 222, 128, 0.1);
--warning-color: #fbbf24;
--warning-bg: rgba(251, 191, 36, 0.1);
--error-color: #f87171;
--error-bg: rgba(248, 113, 113, 0.1);
--info-color: #60a5fa;
--info-bg: rgba(96, 165, 250, 0.1);
/* Shadows (more subtle in dark mode) */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.6);
/* Specific component colors */
--sidebar-bg: #1e1e1e; /* Lighter sidebar background */
--sidebar-hover: #2a2a2a;
--sidebar-active: #333333;
--sidebar-text: #f5f5f5; /* Even brighter sidebar text */
--sidebar-icon: #d4d4d4; /* Much brighter icons */
--header-bg: linear-gradient(135deg, #7a8df5 0%, #8b5bc9 100%);
--header-text: #ffffff;
--table-header-bg: #242424;
--table-row-hover: #1e1e1e;
--table-row-stripe: #1a1a1a;
--dropdown-bg: #242424;
--dropdown-hover: #2a2a2a;
--badge-bg: rgba(122, 141, 245, 0.2);
--badge-text: #a8b9ff;
/* Chart colors */
--chart-grid: #333333;
--chart-text: #a8a8a8;
/* Scrollbar */
--scrollbar-track: #1a1a1a;
--scrollbar-thumb: #4a4a4a;
--scrollbar-thumb-hover: #5a5a5a;
}
/* Base dark mode styles */
[data-theme="dark"] {
color-scheme: dark;
}
[data-theme="dark"] body {
background-color: var(--bg-primary);
color: var(--text-primary);
}
/* Global heading styles for better readability */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
color: var(--text-title);
}
[data-theme="dark"] h1 {
color: var(--text-heading);
}
[data-theme="dark"] h2 {
color: var(--text-heading);
}
/* Main layout components */
[data-theme="dark"] .main-content {
background-color: var(--bg-primary);
color: var(--text-primary);
}
[data-theme="dark"] .sidebar {
background-color: var(--sidebar-bg);
color: var(--sidebar-text);
border-right: 1px solid var(--border-primary);
}
[data-theme="dark"] .sidebar-header {
background: linear-gradient(135deg,
rgba(122, 141, 245, 0.12) 0%,
rgba(139, 91, 201, 0.12) 50%,
rgba(122, 141, 245, 0.08) 100%) !important;
border-bottom: 1px solid rgba(122, 141, 245, 0.25);
box-shadow:
0 2px 10px rgba(122, 141, 245, 0.15),
inset 0 -1px 0 rgba(122, 141, 245, 0.2);
position: relative;
overflow: hidden;
}
[data-theme="dark"] .sidebar-header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent 0%,
rgba(122, 141, 245, 0.6) 50%,
transparent 100%);
animation: shimmer 3s ease-in-out infinite;
}
@keyframes shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
[data-theme="dark"] .sidebar-header h2,
[data-theme="dark"] .sidebar-header h2 a {
color: var(--sidebar-text) !important;
}
[data-theme="dark"] .sidebar-header h2 a:hover {
color: var(--primary-color) !important;
}
[data-theme="dark"] .sidebar-header small {
color: var(--text-tertiary) !important;
}
/* Sidebar Navigation - Lighter colors for better visibility */
[data-theme="dark"] .sidebar-nav {
background-color: transparent;
}
[data-theme="dark"] .sidebar-nav ul {
background-color: transparent;
}
[data-theme="dark"] .sidebar-nav li {
background-color: transparent;
}
[data-theme="dark"] .sidebar-nav a,
[data-theme="dark"] .nav-link {
color: var(--sidebar-text);
transition: all 0.2s ease;
}
[data-theme="dark"] .sidebar-nav a:hover,
[data-theme="dark"] .nav-link:hover {
background-color: var(--sidebar-hover);
color: var(--text-heading);
}
[data-theme="dark"] .sidebar-nav a.active,
[data-theme="dark"] .nav-link.active {
background-color: var(--sidebar-active);
color: var(--text-heading);
}
[data-theme="dark"] .sidebar-nav i,
[data-theme="dark"] .nav-link i {
color: var(--sidebar-icon);
}
[data-theme="dark"] .sidebar-nav a:hover i,
[data-theme="dark"] .nav-link:hover i,
[data-theme="dark"] .sidebar-nav a.active i,
[data-theme="dark"] .nav-link.active i {
color: var(--primary-color);
}
/* Nav divider */
[data-theme="dark"] .nav-divider {
color: var(--text-tertiary);
border-top: 1px solid var(--border-primary);
margin: 0.5rem 0;
padding-top: 0.5rem;
opacity: 0.7;
}
/* Cards and containers */
[data-theme="dark"] .card,
[data-theme="dark"] .admin-card,
[data-theme="dark"] .feature-card,
[data-theme="dark"] .management-card,
[data-theme="dark"] .widget {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .card-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
color: var(--text-heading);
}
/* Card titles and headings */
[data-theme="dark"] .card-header h1,
[data-theme="dark"] .card-header h2,
[data-theme="dark"] .card-header h3,
[data-theme="dark"] .card-header h4,
[data-theme="dark"] .card-header h5,
[data-theme="dark"] .card-header h6 {
color: var(--text-heading);
}
[data-theme="dark"] .card h1,
[data-theme="dark"] .card h2,
[data-theme="dark"] .card h3,
[data-theme="dark"] .card h4,
[data-theme="dark"] .card h5,
[data-theme="dark"] .card h6 {
color: var(--text-title);
}
[data-theme="dark"] .page-container {
background-color: transparent;
}
/* ==========================================
COMMON HEADER STYLES
All headers follow this consistent pattern:
- Background: gradient or solid secondary
- Text: white or heading color
- Border: primary color
- Consistent padding and spacing
========================================== */
/* Primary page headers with gradient */
[data-theme="dark"] .page-header {
background: linear-gradient(135deg,
rgba(122, 141, 245, 0.15) 0%,
rgba(139, 91, 201, 0.15) 50%,
rgba(122, 141, 245, 0.10) 100%);
color: var(--header-text);
border: 1px solid rgba(122, 141, 245, 0.3);
padding: 2rem;
border-radius: 12px;
box-shadow:
0 0 20px rgba(122, 141, 245, 0.2),
0 0 40px rgba(139, 91, 201, 0.1),
inset 0 0 20px rgba(122, 141, 245, 0.05);
position: relative;
overflow: hidden;
}
[data-theme="dark"] .page-header::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(
circle,
rgba(122, 141, 245, 0.1) 0%,
transparent 70%
);
animation: pulse-glow 4s ease-in-out infinite;
pointer-events: none;
}
@keyframes pulse-glow {
0%, 100% { opacity: 0.5; transform: scale(1); }
50% { opacity: 0.8; transform: scale(1.05); }
}
margin-bottom: 2rem;
}
[data-theme="dark"] .page-title,
[data-theme="dark"] .page-subtitle {
color: var(--header-text);
}
/* Secondary headers (cards, sections, panels) */
[data-theme="dark"] .card-header,
[data-theme="dark"] .section-header,
[data-theme="dark"] .panel-header,
[data-theme="dark"] .widget-header,
[data-theme="dark"] .modal-header,
[data-theme="dark"] .settings-header,
[data-theme="dark"] .table-header,
[data-theme="dark"] .form-header,
[data-theme="dark"] .admin-header,
[data-theme="dark"] .system-header,
[data-theme="dark"] .company-header,
[data-theme="dark"] .config-header,
[data-theme="dark"] .management-header {
background-color: var(--bg-secondary);
color: var(--text-heading);
border-bottom: 1px solid var(--border-primary);
padding: 1.5rem;
}
/* Ensure all header titles use heading color */
[data-theme="dark"] .card-header h1,
[data-theme="dark"] .card-header h2,
[data-theme="dark"] .card-header h3,
[data-theme="dark"] .card-header h4,
[data-theme="dark"] .section-header h1,
[data-theme="dark"] .section-header h2,
[data-theme="dark"] .section-header h3,
[data-theme="dark"] .panel-header h1,
[data-theme="dark"] .panel-header h2,
[data-theme="dark"] .panel-header h3,
[data-theme="dark"] .settings-header h1,
[data-theme="dark"] .settings-header h2,
[data-theme="dark"] .settings-header h3 {
color: var(--text-heading);
}
/* Header content and actions */
[data-theme="dark"] .header-content {
color: inherit;
}
[data-theme="dark"] .header-actions .btn {
background-color: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
color: var(--text-heading);
}
[data-theme="dark"] .header-actions .btn:hover {
background-color: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.3);
}
/* Forms and inputs */
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea {
background-color: var(--bg-input);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] input:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] textarea:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(122, 141, 245, 0.2);
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
color: var(--text-tertiary);
}
[data-theme="dark"] label {
color: var(--text-secondary);
}
/* Buttons */
[data-theme="dark"] .btn {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .btn:hover {
background-color: var(--bg-hover);
border-color: var(--border-hover);
}
[data-theme="dark"] .btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
color: white;
}
[data-theme="dark"] .btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
}
[data-theme="dark"] .btn-secondary {
background-color: transparent;
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .btn-secondary:hover {
background-color: var(--bg-hover);
border-color: var(--border-hover);
}
[data-theme="dark"] .btn-danger {
background-color: var(--error-color);
border-color: var(--error-color);
color: white;
}
[data-theme="dark"] .btn-success {
background-color: var(--success-color);
border-color: var(--success-color);
color: var(--text-inverse);
}
/* Tables */
[data-theme="dark"] .data-table,
[data-theme="dark"] table {
background-color: var(--bg-card);
color: var(--text-primary);
}
[data-theme="dark"] .data-table thead,
[data-theme="dark"] table thead {
background-color: var(--table-header-bg);
}
[data-theme="dark"] .data-table th,
[data-theme="dark"] table th {
color: var(--text-title);
font-weight: 600;
border-bottom: 2px solid var(--border-primary);
}
[data-theme="dark"] .data-table td,
[data-theme="dark"] table td {
border-bottom: 1px solid var(--border-secondary);
}
[data-theme="dark"] .data-table tbody tr:hover,
[data-theme="dark"] table tbody tr:hover {
background-color: var(--table-row-hover);
}
[data-theme="dark"] .data-table tbody tr:nth-child(even),
[data-theme="dark"] table tbody tr:nth-child(even) {
background-color: var(--table-row-stripe);
}
/* Modals */
[data-theme="dark"] .modal-content {
background-color: var(--bg-modal);
color: var(--text-primary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .modal-header {
border-bottom: 1px solid var(--border-primary);
}
[data-theme="dark"] .modal-footer {
border-top: 1px solid var(--border-primary);
}
[data-theme="dark"] .close {
color: var(--text-secondary);
}
[data-theme="dark"] .close:hover {
color: var(--text-primary);
}
/* Dropdowns */
[data-theme="dark"] .dropdown-menu {
background-color: var(--dropdown-bg);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .dropdown-item {
color: var(--text-primary);
}
[data-theme="dark"] .dropdown-item:hover {
background-color: var(--dropdown-hover);
}
[data-theme="dark"] .dropdown-divider {
border-top: 1px solid var(--border-primary);
}
/* Badges and alerts */
[data-theme="dark"] .badge {
background-color: var(--badge-bg);
color: var(--badge-text);
}
[data-theme="dark"] .alert {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .alert-success {
background-color: var(--success-bg);
border-color: var(--success-color);
color: var(--success-color);
}
[data-theme="dark"] .alert-danger {
background-color: var(--error-bg);
border-color: var(--error-color);
color: var(--error-color);
}
[data-theme="dark"] .alert-warning {
background-color: var(--warning-bg);
border-color: var(--warning-color);
color: var(--warning-color);
}
[data-theme="dark"] .alert-info {
background-color: var(--info-bg);
border-color: var(--info-color);
color: var(--info-color);
}
/* Scrollbars */
[data-theme="dark"] ::-webkit-scrollbar {
width: 12px;
height: 12px;
}
[data-theme="dark"] ::-webkit-scrollbar-track {
background: var(--scrollbar-track);
}
[data-theme="dark"] ::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
border-radius: 6px;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
background: var(--scrollbar-thumb-hover);
}
/* Mobile header */
[data-theme="dark"] .mobile-header {
background: linear-gradient(135deg,
rgba(122, 141, 245, 0.12) 0%,
rgba(139, 91, 201, 0.12) 50%,
rgba(122, 141, 245, 0.08) 100%) !important;
border-bottom: 1px solid rgba(122, 141, 245, 0.25);
box-shadow:
0 2px 15px rgba(122, 141, 245, 0.2),
inset 0 -1px 0 rgba(122, 141, 245, 0.2);
position: relative;
overflow: hidden;
}
[data-theme="dark"] .mobile-header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent 0%,
rgba(122, 141, 245, 0.6) 50%,
transparent 100%);
animation: shimmer 3s ease-in-out infinite;
}
[data-theme="dark"] .mobile-nav-toggle span {
background-color: var(--primary-color) !important;
}
/* Footer */
[data-theme="dark"] footer {
background-color: var(--bg-secondary);
color: var(--text-secondary);
border-top: 1px solid var(--border-primary);
}
/* Links */
[data-theme="dark"] a {
color: var(--primary-color);
}
[data-theme="dark"] a:hover {
color: var(--primary-hover);
}
/* Code blocks */
[data-theme="dark"] pre,
[data-theme="dark"] code {
background-color: var(--bg-tertiary);
color: var(--text-primary);
border: 1px solid var(--border-primary);
}
/* Pagination */
[data-theme="dark"] .pagination .page-link {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .pagination .page-link:hover {
background-color: var(--bg-hover);
border-color: var(--border-hover);
}
[data-theme="dark"] .pagination .page-item.active .page-link {
background-color: var(--primary-color);
border-color: var(--primary-color);
color: white;
}
/* Progress bars */
[data-theme="dark"] .progress {
background-color: var(--bg-tertiary);
}
/* Tooltips */
[data-theme="dark"] .tooltip-inner {
background-color: var(--bg-tertiary);
color: var(--text-primary);
}
/* User dropdown */
[data-theme="dark"] .user-dropdown-modal {
background-color: var(--dropdown-bg) !important;
border: 1px solid var(--border-primary);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3) !important;
}
[data-theme="dark"] .user-dropdown-header {
background-color: var(--bg-secondary) !important;
color: var(--text-primary) !important;
border-bottom: 1px solid var(--border-primary) !important;
}
[data-theme="dark"] .user-dropdown-header h3 {
color: var(--text-heading) !important;
}
[data-theme="dark"] .user-dropdown-header .user-info {
color: var(--text-secondary) !important;
}
[data-theme="dark"] .user-dropdown-menu a {
color: var(--text-primary);
}
[data-theme="dark"] .user-dropdown-menu a:hover {
background-color: var(--dropdown-hover);
color: var(--text-heading);
}
[data-theme="dark"] .user-dropdown-divider {
border-top: 1px solid var(--border-primary);
}
/* Override mobile-specific white background */
@media (max-width: 1024px) {
[data-theme="dark"] .sidebar.active .user-dropdown-modal.active,
[data-theme="dark"] .sidebar.mobile-open .user-dropdown-modal.active {
background: var(--dropdown-bg) !important;
}
}
/* Theme toggle button */
.theme-toggle {
position: fixed;
bottom: 20px;
right: 20px;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: var(--bg-secondary, #f3f4f6);
border: 2px solid var(--border-primary, #e5e7eb);
color: var(--text-primary, #1f2937);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
z-index: 1000;
box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));
}
/* Light mode theme toggle */
[data-theme="light"] .theme-toggle,
:root:not([data-theme]) .theme-toggle {
background-color: #ffffff;
border: 2px solid #e5e7eb;
color: #1f2937;
box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .theme-toggle:hover,
:root:not([data-theme]) .theme-toggle:hover {
background-color: #f3f4f6;
border-color: #d1d5db;
}
.theme-toggle:hover {
transform: scale(1.1);
box-shadow: var(--shadow-xl);
}
.theme-toggle i {
font-size: 1.25rem;
}
/* Smooth transitions */
* {
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
/* Enhanced title and heading styles */
[data-theme="dark"] .modal-title,
[data-theme="dark"] .section-title,
[data-theme="dark"] .widget-title,
[data-theme="dark"] .panel-title,
[data-theme="dark"] .form-title {
color: var(--text-heading);
}
[data-theme="dark"] .page-title {
color: var(--text-heading);
font-weight: 600;
}
[data-theme="dark"] .card-title {
color: var(--text-title);
}
[data-theme="dark"] .list-group-item-heading {
color: var(--text-title);
}
/* Bottom navigation with better contrast */
[data-theme="dark"] .nav-item a {
color: var(--text-secondary);
transition: color 0.2s ease;
}
[data-theme="dark"] .nav-item.active a,
[data-theme="dark"] .nav-item a:hover {
color: var(--primary-color);
}
/* Specific component overrides */
[data-theme="dark"] .timer-card {
background-color: var(--bg-card);
}
[data-theme="dark"] .stat-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .feature-icon {
background: var(--header-bg);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
[data-theme="dark"] .section-title::after {
background: var(--header-bg);
}
/* Charts (if using Chart.js) */
[data-theme="dark"] .chart-container {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
/* Calendar styling */
[data-theme="dark"] .calendar-day {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .calendar-day:hover {
background-color: var(--bg-hover);
}
[data-theme="dark"] .calendar-day.active {
background-color: var(--primary-color);
color: white;
}
/* Email nag banner */
[data-theme="dark"] .email-nag-banner {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
/* Bottom navigation */
[data-theme="dark"] .mobile-bottom-nav {
background-color: var(--bg-secondary);
border-top: 1px solid var(--border-primary);
}
/* Adjust theme toggle position when bottom nav is present */
@media (max-width: 768px) {
.has-bottom-nav .theme-toggle {
bottom: 80px;
}
}
[data-theme="dark"] .nav-item a {
color: var(--text-secondary);
}
[data-theme="dark"] .nav-item.active a {
color: var(--primary-color);
}
/* Announcement styles */
[data-theme="dark"] .announcement {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .announcement-priority-high {
border-left: 4px solid var(--error-color);
}
[data-theme="dark"] .announcement-priority-medium {
border-left: 4px solid var(--warning-color);
}
[data-theme="dark"] .announcement-priority-low {
border-left: 4px solid var(--info-color);
}
/* Task cards */
[data-theme="dark"] .task-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .subtask-item {
background-color: var(--bg-secondary);
border: 1px solid var(--border-secondary);
}
/* Invoice specific */
[data-theme="dark"] .invoice-header {
background-color: var(--bg-secondary);
border-bottom: 2px solid var(--border-primary);
}
[data-theme="dark"] .invoice-status {
background-color: var(--bg-tertiary);
border: 1px solid var(--border-primary);
}
/* Sprint board and Task columns */
[data-theme="dark"] .sprint-column,
[data-theme="dark"] .task-column {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .sprint-task,
[data-theme="dark"] .task-card {
background-color: var(--bg-card);
border: 1px solid var(--border-secondary);
}
[data-theme="dark"] .column-header {
background-color: var(--bg-tertiary);
color: var(--text-heading) !important;
border-bottom: 1px solid var(--border-primary);
}
[data-theme="dark"] .column-header h1,
[data-theme="dark"] .column-header h2,
[data-theme="dark"] .column-header h3,
[data-theme="dark"] .column-header h4,
[data-theme="dark"] .column-header h5,
[data-theme="dark"] .column-header h6,
[data-theme="dark"] .column-header .column-title,
[data-theme="dark"] .column-header span,
[data-theme="dark"] .column-header p {
color: var(--text-heading) !important;
}
[data-theme="dark"] .column-content {
background-color: var(--bg-secondary);
}
[data-theme="dark"] .task-board {
background-color: var(--bg-primary);
}
/* Note editor */
[data-theme="dark"] .note-editor {
background-color: var(--bg-card);
color: var(--text-primary);
}
[data-theme="dark"] .ace_editor {
background-color: var(--bg-tertiary) !important;
color: var(--text-primary) !important;
}
/* Notes sidebar and cards */
[data-theme="dark"] .notes-sidebar {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .note-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .note-card:hover {
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
background-color: var(--bg-hover);
}
[data-theme="dark"] .note-card.pinned {
border-color: var(--warning-color);
}
[data-theme="dark"] .note-card.drag-over {
border: 2px dashed var(--primary-color);
}
[data-theme="dark"] .note-card-header {
border-bottom: 1px solid var(--border-secondary);
}
[data-theme="dark"] .linked-notes-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .note-meta {
color: var(--text-secondary);
}
[data-theme="dark"] .note-tags .tag {
background-color: var(--bg-tertiary);
color: var(--text-secondary);
border: 1px solid var(--border-secondary);
}
[data-theme="dark"] .note-excerpt {
color: var(--text-secondary);
}
/* Time tracking specific */
[data-theme="dark"] .timer-display {
color: var(--primary-color);
}
[data-theme="dark"] .active-timer {
background-color: var(--bg-card);
border: 2px solid var(--success-color);
}
/* Export options */
[data-theme="dark"] .export-option {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .export-option:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
}
/* Team summary */
[data-theme="dark"] .team-member-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .hours-badge {
background-color: var(--bg-tertiary);
color: var(--text-primary);
}
/* Analytics charts */
[data-theme="dark"] .chart-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
/* Project categories */
[data-theme="dark"] .category-badge {
filter: brightness(0.8);
}
/* Project cards */
[data-theme="dark"] .project-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .project-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
background-color: var(--bg-hover);
}
[data-theme="dark"] .project-card.inactive {
opacity: 0.6;
}
[data-theme="dark"] .project-header {
background-color: var(--bg-secondary) !important;
border-bottom: 1px solid var(--border-secondary);
}
/* Override inline gradient styles on project headers */
[data-theme="dark"] .project-header[style*="background: linear-gradient"] {
background: var(--bg-secondary) !important;
position: relative;
}
[data-theme="dark"] .project-header[style*="background: linear-gradient"]::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, rgba(122, 141, 245, 0.1) 0%, rgba(122, 141, 245, 0.05) 100%);
pointer-events: none;
border-radius: inherit;
}
[data-theme="dark"] .project-meta {
color: var(--text-secondary);
}
[data-theme="dark"] .project-description {
color: var(--text-secondary);
}
[data-theme="dark"] .project-stats {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .project-actions {
background-color: var(--bg-secondary);
border-top: 1px solid var(--border-secondary);
padding: 1rem;
}
[data-theme="dark"] .project-actions .btn {
background-color: var(--bg-tertiary);
border-color: var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .project-actions .btn:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
color: var(--primary-color);
}
[data-theme="dark"] .project-info {
background-color: var(--bg-secondary);
color: var(--text-primary);
}
[data-theme="dark"] .project-info .info-item {
color: var(--text-secondary);
}
[data-theme="dark"] .project-info .info-icon {
color: var(--text-tertiary);
}
/* Billing badges */
[data-theme="dark"] .billing-badge {
opacity: 0.9;
}
/* Admin panels */
[data-theme="dark"] .admin-panel {
background-color: transparent;
}
[data-theme="dark"] .admin-stat {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
/* Filter panels */
[data-theme="dark"] .filter-panel {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
/* Tab navigation */
[data-theme="dark"] .tab-btn {
background-color: var(--bg-secondary);
color: var(--text-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .tab-btn:hover {
background-color: var(--bg-hover);
color: var(--text-primary);
}
[data-theme="dark"] .tab-btn.active {
background-color: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
/* Loading states */
[data-theme="dark"] .loading-spinner {
border-color: var(--border-primary);
border-top-color: var(--primary-color);
}
/* Empty states */
[data-theme="dark"] .empty-state {
background-color: var(--bg-card);
color: var(--text-secondary);
border: 2px dashed var(--border-primary);
}
[data-theme="dark"] .empty-state h3 {
color: var(--text-title);
}
[data-theme="dark"] .empty-state p {
color: var(--text-secondary);
}
[data-theme="dark"] .empty-state-icon,
[data-theme="dark"] .empty-icon {
color: var(--text-tertiary);
}
/* Search inputs */
[data-theme="dark"] .search-box {
background-color: var(--bg-input);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .search-box input {
background-color: var(--bg-input);
color: var(--text-primary);
border-color: var(--border-primary);
}
[data-theme="dark"] .search-box input:focus {
background-color: var(--bg-input);
border-color: var(--primary-color);
color: var(--text-primary);
box-shadow: 0 0 0 2px rgba(122, 141, 245, 0.2);
}
[data-theme="dark"] .search-container {
background-color: var(--bg-input);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .search-container .search-input {
background-color: var(--bg-input);
color: var(--text-primary);
}
[data-theme="dark"] .search-container .search-icon {
color: var(--text-tertiary);
}
[data-theme="dark"] .search-input {
background-color: var(--bg-input);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .search-input:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(122, 141, 245, 0.2);
}
/* File upload areas */
[data-theme="dark"] .upload-area {
background-color: var(--bg-secondary);
border: 2px dashed var(--border-primary);
}
[data-theme="dark"] .upload-area:hover {
border-color: var(--primary-color);
background-color: var(--bg-hover);
}
/* Status indicators */
[data-theme="dark"] .status-indicator {
filter: brightness(1.2);
}
/* Breadcrumbs */
[data-theme="dark"] .breadcrumb {
background-color: var(--bg-secondary);
}
[data-theme="dark"] .breadcrumb-item a {
color: var(--text-secondary);
}
[data-theme="dark"] .breadcrumb-item.active {
color: var(--text-primary);
}
/* Settings panels and containers */
[data-theme="dark"] .settings-section,
[data-theme="dark"] .settings-container,
[data-theme="dark"] .settings-panel {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-group {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-item {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-item:hover {
background-color: var(--bg-hover);
}
[data-theme="dark"] .settings-label {
color: var(--text-secondary);
}
[data-theme="dark"] .settings-title {
color: var(--text-heading);
}
/* Help text */
[data-theme="dark"] .help-text,
[data-theme="dark"] .form-text {
color: var(--text-tertiary);
}
/* Info panels */
[data-theme="dark"] .info-panel {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .info-item {
color: var(--text-secondary);
}
[data-theme="dark"] .info-box {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
/* Invitations */
[data-theme="dark"] .invitation-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .invitation-card.pending {
border-left: 4px solid var(--warning-color);
}
[data-theme="dark"] .invitation-card.accepted {
border-left: 4px solid var(--success-color);
}
[data-theme="dark"] .invitation-card.expired {
border-left: 4px solid var(--error-color);
}
[data-theme="dark"] .invitation-card:hover {
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
background-color: var(--bg-hover);
}
[data-theme="dark"] .invitation-header {
border-bottom: 1px solid var(--border-secondary);
}
[data-theme="dark"] .invitation-details {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .invitation-meta {
color: var(--text-secondary);
}
[data-theme="dark"] .invitation-actions {
border-top: 1px solid var(--border-secondary);
}
/* Focus states */
[data-theme="dark"] *:focus {
outline-color: var(--primary-color);
}
/* Selection */
[data-theme="dark"] ::selection {
background-color: var(--primary-color);
color: white;
}
[data-theme="dark"] ::-moz-selection {
background-color: var(--primary-color);
color: white;
}
/* Action items */
[data-theme="dark"] .action-item {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .action-item:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
}
[data-theme="dark"] .action-icon {
background-color: var(--bg-secondary);
color: var(--primary-color);
}
[data-theme="dark"] .action-content h3 {
color: var(--text-primary);
}
[data-theme="dark"] .action-content p {
color: var(--text-secondary);
}
/* Company items */
[data-theme="dark"] .company-item {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .company-item:hover {
background-color: var(--bg-hover);
}
[data-theme="dark"] .company-info h4 {
color: var(--text-primary);
}
[data-theme="dark"] .company-stats,
[data-theme="dark"] .company-meta {
color: var(--text-secondary);
}
/* Override inline styles that set white backgrounds */
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background-color: white"],
[data-theme="dark"] [style*="background-color:white"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background-color: #ffffff"],
[data-theme="dark"] [style*="background-color:#ffffff"],
[data-theme="dark"] [style*="background: rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background:rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background-color: rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background-color:rgb(255, 255, 255)"] {
background-color: var(--bg-card) !important;
}
/* Override inline styles for info panels and settings */
[data-theme="dark"] [style*="background: #f3f4f6"],
[data-theme="dark"] [style*="background:#f3f4f6"],
[data-theme="dark"] [style*="background-color: #f3f4f6"],
[data-theme="dark"] [style*="background-color:#f3f4f6"] {
background-color: var(--bg-secondary) !important;
}
/* Override inline white borders */
[data-theme="dark"] [style*="border-color: white"],
[data-theme="dark"] [style*="border-color:white"],
[data-theme="dark"] [style*="border-color: #fff"],
[data-theme="dark"] [style*="border-color:#fff"],
[data-theme="dark"] [style*="border-color: #ffffff"],
[data-theme="dark"] [style*="border-color:#ffffff"],
[data-theme="dark"] [style*="border: 1px solid white"],
[data-theme="dark"] [style*="border:1px solid white"],
[data-theme="dark"] [style*="border: 1px solid #fff"],
[data-theme="dark"] [style*="border:1px solid #fff"] {
border-color: var(--border-primary) !important;
}
/* Fix light box-shadows that appear as white borders in dark mode */
[data-theme="dark"] .filter-panel,
[data-theme="dark"] .card,
[data-theme="dark"] .panel,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .dropdown-menu {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4) !important;
}
[data-theme="dark"] .table,
[data-theme="dark"] table {
box-shadow: none !important;
}
/* Specific overrides for components that might have inline styles */
[data-theme="dark"] .form-card,
[data-theme="dark"] .content-card,
[data-theme="dark"] .detail-card {
background-color: var(--bg-card) !important;
border: 1px solid var(--border-primary) !important;
color: var(--text-primary) !important;
}
/* System Settings and Company Admin Styles */
[data-theme="dark"] .company-admin-container,
[data-theme="dark"] .system-admin-container,
[data-theme="dark"] .admin-container {
background-color: transparent;
}
[data-theme="dark"] .admin-section,
[data-theme="dark"] .system-section,
[data-theme="dark"] .company-section {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
margin-bottom: 2rem;
border-radius: 12px;
}
[data-theme="dark"] .config-section,
[data-theme="dark"] .config-card,
[data-theme="dark"] .config-panel {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .config-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
color: var(--text-heading);
}
[data-theme="dark"] .system-info-card,
[data-theme="dark"] .company-info-card {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .stats-section {
background-color: transparent;
}
[data-theme="dark"] .stat-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .stat-card:hover {
background-color: var(--bg-hover);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
}
[data-theme="dark"] .stat-value {
color: var(--primary-color);
}
[data-theme="dark"] .stat-label {
color: var(--text-secondary);
}
/* Content grid styles */
[data-theme="dark"] .content-grid {
background-color: transparent;
}
[data-theme="dark"] .content-card,
[data-theme="dark"] .info-card,
[data-theme="dark"] .feature-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .content-card:hover,
[data-theme="dark"] .info-card:hover,
[data-theme="dark"] .feature-card:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
}
/* System health indicators */
[data-theme="dark"] .health-indicator {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .health-good {
color: var(--success-color);
}
[data-theme="dark"] .health-warning {
color: var(--warning-color);
}
[data-theme="dark"] .health-error {
color: var(--error-color);
}
/* Tax configuration styles */
[data-theme="dark"] .tax-config-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .tax-config-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
color: var(--text-heading);
}
/* Billing configuration */
[data-theme="dark"] .billing-section,
[data-theme="dark"] .billing-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .billing-rate {
color: var(--text-primary);
}
[data-theme="dark"] .currency-symbol {
color: var(--text-secondary);
}
/* Timer Section */
[data-theme="dark"] .timer-section {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .timer-section .card {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
/* Settings Groups - Fixed typo from setting-group */
[data-theme="dark"] .setting-group,
[data-theme="dark"] .settings-group {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
padding: 1.5rem;
margin-bottom: 1.5rem;
border-radius: 8px;
}
[data-theme="dark"] .setting-group h3,
[data-theme="dark"] .settings-group h3 {
color: var(--text-heading);
margin-bottom: 1rem;
}
[data-theme="dark"] .setting-group .form-group,
[data-theme="dark"] .settings-group .form-group {
background-color: transparent;
}
/* Action Cards */
[data-theme="dark"] .action-card {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
transition: all 0.3s ease;
}
[data-theme="dark"] .action-card:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(122, 141, 245, 0.2);
}
[data-theme="dark"] .action-card .action-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
padding: 1rem;
}
[data-theme="dark"] .action-card .action-body {
padding: 1rem;
}
[data-theme="dark"] .action-card h4,
[data-theme="dark"] .action-card h5 {
color: var(--text-heading);
}
/* Danger Zone */
[data-theme="dark"] .danger-zone {
background-color: rgba(239, 68, 68, 0.1);
border: 2px solid var(--error-color);
color: var(--text-primary);
padding: 2rem;
border-radius: 12px;
margin-top: 2rem;
}
[data-theme="dark"] .danger-zone h3,
[data-theme="dark"] .danger-zone h4 {
color: var(--error-color);
}
[data-theme="dark"] .danger-zone p {
color: var(--text-secondary);
}
[data-theme="dark"] .danger-zone .btn-danger {
background-color: var(--error-color);
border-color: var(--error-color);
color: white;
}
[data-theme="dark"] .danger-zone .btn-danger:hover {
background-color: #dc2626;
border-color: #dc2626;
}
/* Additional settings-related elements */
[data-theme="dark"] .settings-content {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
padding: 2rem;
border-radius: 8px;
}
[data-theme="dark"] .settings-row {
background-color: var(--bg-secondary);
padding: 1rem;
margin-bottom: 0.5rem;
border-radius: 6px;
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .settings-row:hover {
background-color: var(--bg-hover);
}
[data-theme="dark"] .config-item {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
padding: 1.5rem;
margin-bottom: 1rem;
border-radius: 8px;
}
[data-theme="dark"] .config-value {
background-color: var(--bg-secondary);
padding: 0.5rem 1rem;
border-radius: 4px;
color: var(--text-primary);
}
/* Activity Items - Fix dark font color */
[data-theme="dark"] .activity-item {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .activity-item h4,
[data-theme="dark"] .activity-item h5,
[data-theme="dark"] .activity-item .activity-title {
color: var(--text-heading);
}
[data-theme="dark"] .activity-item p,
[data-theme="dark"] .activity-item .activity-description,
[data-theme="dark"] .activity-item .activity-text {
color: var(--text-secondary);
}
[data-theme="dark"] .activity-item .activity-meta,
[data-theme="dark"] .activity-item .activity-time,
[data-theme="dark"] .activity-item .activity-date {
color: var(--text-tertiary);
}
/* Activity Value - Fix dark text */
[data-theme="dark"] .activity-value {
color: var(--text-heading) !important;
}
[data-theme="dark"] .activity-label {
color: var(--text-secondary) !important;
}
/* Search Section - Fix white border */
[data-theme="dark"] .search-section {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .search-box,
[data-theme="dark"] .search-container {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .search-input,
[data-theme="dark"] .search-field {
background-color: var(--bg-input);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .search-input:focus,
[data-theme="dark"] .search-field:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(122, 141, 245, 0.2);
}
/* Table Headers - Fix white on white issue */
[data-theme="dark"] .table thead th,
[data-theme="dark"] .data-table thead th,
[data-theme="dark"] table thead th {
background-color: var(--table-header-bg) !important;
color: var(--text-heading) !important;
border-color: var(--border-primary) !important;
}
/* Specifically for admin tables */
[data-theme="dark"] .admin-table thead,
[data-theme="dark"] .users-table thead,
[data-theme="dark"] .system-table thead {
background-color: var(--table-header-bg) !important;
}
[data-theme="dark"] .admin-table th,
[data-theme="dark"] .users-table th,
[data-theme="dark"] .system-table th {
background-color: var(--table-header-bg) !important;
color: var(--text-heading) !important;
border-bottom: 2px solid var(--border-primary) !important;
}
/* Filter Panel and Filter Row */
[data-theme="dark"] .filter-panel {
background: var(--bg-card) !important;
border: 1px solid var(--border-primary) !important;
color: var(--text-primary);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}
[data-theme="dark"] .filter-row {
background-color: var(--bg-secondary) !important;
border: 1px solid var(--border-primary) !important;
padding: 1rem;
border-radius: 6px;
}
[data-theme="dark"] .filter-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary) !important;
color: var(--text-heading);
}
[data-theme="dark"] .filter-body {
background-color: var(--bg-card);
border: none !important;
}
[data-theme="dark"] .filter-group {
background-color: transparent !important;
border: none !important;
margin-bottom: 0;
padding: 0;
}
[data-theme="dark"] .filter-label {
color: var(--text-secondary);
}
[data-theme="dark"] .filter-option {
color: var(--text-primary);
}
[data-theme="dark"] .filter-option:hover {
background-color: var(--bg-hover);
}
/* Table Responsive - Custom mobile table wrapper */
[data-theme="dark"] .table-responsive {
background-color: transparent;
border: none !important;
box-shadow: none !important;
}
[data-theme="dark"] .table-responsive table {
background-color: var(--bg-card);
border: 1px solid var(--border-primary) !important;
}
[data-theme="dark"] .table-responsive::-webkit-scrollbar {
height: 8px;
}
[data-theme="dark"] .table-responsive::-webkit-scrollbar-track {
background: var(--scrollbar-track);
}
[data-theme="dark"] .table-responsive::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
border-radius: 4px;
}
/* Override any inline white borders */
[data-theme="dark"] .table-responsive[style*="border"] {
border-color: var(--border-primary) !important;
}
/* Entries Table - Override hardcoded colors from time-tracking.css */
[data-theme="dark"] .entries-table {
background-color: var(--bg-card) !important;
border: 1px solid var(--border-primary) !important;
box-shadow: none !important;
}
[data-theme="dark"] .entries-table th {
background-color: var(--table-header-bg) !important;
color: var(--text-heading) !important;
border-bottom: 2px solid var(--border-primary) !important;
border-left: none !important;
border-right: none !important;
border-top: none !important;
}
[data-theme="dark"] .entries-table td {
border-bottom: 1px solid var(--border-secondary) !important;
border-left: none !important;
border-right: none !important;
border-top: none !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .entries-table tbody tr:hover {
background-color: var(--table-row-hover) !important;
}
[data-theme="dark"] .entries-table-container {
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
outline: none !important;
}
/* Stat Card - Fix positioning and colors */
[data-theme="dark"] .stat-card {
position: relative !important; /* Required for absolute positioned stat-link */
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .stat-card span {
color: var(--text-primary) !important;
}
[data-theme="dark"] .stat-card .stat-value {
color: var(--primary-color);
}
[data-theme="dark"] .stat-card .stat-label {
color: var(--text-secondary);
}
[data-theme="dark"] .stat-card .stat-icon {
color: var(--primary-color);
opacity: 0.8;
}
[data-theme="dark"] .stat-card .stat-subtitle,
[data-theme="dark"] .stat-card .stat-description {
color: var(--text-secondary);
}
/* Fix stat-link positioning */
[data-theme="dark"] .stat-link {
position: absolute !important;
bottom: 0.75rem !important;
right: 1rem !important;
left: auto !important;
color: var(--primary-color) !important;
font-size: 0.875rem;
opacity: 0.8;
z-index: 1;
}
[data-theme="dark"] .stat-link:hover {
color: var(--primary-hover) !important;
opacity: 1;
}
/* View Content and Headers */
[data-theme="dark"] .view-content {
background-color: transparent;
color: var(--text-primary);
}
[data-theme="dark"] .view-header {
border-bottom: 1px solid var(--border-primary) !important;
}
[data-theme="dark"] .view-header h3 {
color: var(--text-heading) !important;
}
[data-theme="dark"] .export-buttons .btn {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .export-buttons .btn:hover {
background-color: var(--bg-hover);
border-color: var(--border-hover);
}
/* Table Container */
[data-theme="dark"] .table-container {
background: var(--bg-card) !important;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
border: 1px solid var(--border-primary);
}
/* Time History Table */
[data-theme="dark"] .time-history {
background-color: var(--bg-card);
box-shadow: none !important;
}
[data-theme="dark"] .time-history th,
[data-theme="dark"] .time-history td {
border-bottom: 1px solid var(--border-secondary) !important;
color: var(--text-primary);
}
[data-theme="dark"] .time-history th {
background-color: var(--table-header-bg) !important;
color: var(--text-heading) !important;
}
[data-theme="dark"] .time-history tr:hover {
background-color: var(--table-row-hover) !important;
}
[data-theme="dark"] .time-history .text-center {
color: var(--text-secondary);
}
/* Content Section */
[data-theme="dark"] .content-section {
background-color: transparent;
color: var(--text-primary);
}
/* Company Cell */
[data-theme="dark"] .company-cell {
color: var(--text-primary);
}
[data-theme="dark"] .company-name {
color: var(--text-heading);
font-weight: 500;
}
[data-theme="dark"] .company-slug {
color: var(--text-secondary);
font-size: 0.875rem;
}
/* Badge Overrides - Fix light backgrounds */
[data-theme="dark"] .badge-freelancer {
background-color: rgba(139, 92, 201, 0.2) !important;
color: #c4b5fd !important;
border: 1px solid rgba(139, 92, 201, 0.3);
}
[data-theme="dark"] .badge-company {
background-color: rgba(122, 141, 245, 0.2) !important;
color: #a8b9ff !important;
border: 1px solid rgba(122, 141, 245, 0.3);
}
/* Stat Cell in Tables */
[data-theme="dark"] .stat-cell {
color: var(--text-primary);
}
[data-theme="dark"] .stat-cell .stat-number {
color: var(--text-heading);
font-weight: 600;
}
[data-theme="dark"] .stat-cell .stat-label {
color: var(--text-secondary);
font-size: 0.875rem;
}
/* Status Badge Overrides - Fix light backgrounds */
[data-theme="dark"] .status-badge {
border: 1px solid transparent;
}
[data-theme="dark"] .status-active,
[data-theme="dark"] .status-badge.status-active {
background-color: var(--success-bg) !important;
color: var(--success-color) !important;
border-color: var(--success-color) !important;
}
[data-theme="dark"] .status-inactive,
[data-theme="dark"] .status-badge.status-inactive {
background-color: rgba(239, 68, 68, 0.1) !important;
color: #f87171 !important;
border-color: #f87171 !important;
}
[data-theme="dark"] .status-badge.PLANNING {
background-color: var(--warning-bg) !important;
color: var(--warning-color) !important;
border-color: var(--warning-color) !important;
}
[data-theme="dark"] .status-badge.ACTIVE,
[data-theme="dark"] .status-badge.IN_PROGRESS {
background-color: var(--info-bg) !important;
color: var(--info-color) !important;
border-color: var(--info-color) !important;
}
[data-theme="dark"] .status-badge.COMPLETED {
background-color: var(--success-bg) !important;
color: var(--success-color) !important;
border-color: var(--success-color) !important;
}
[data-theme="dark"] .status-badge.CANCELLED {
background-color: var(--error-bg) !important;
color: var(--error-color) !important;
border-color: var(--error-color) !important;
}
[data-theme="dark"] .status-badge.NOT_STARTED,
[data-theme="dark"] .status-badge.ON_HOLD {
background-color: rgba(156, 163, 175, 0.1) !important;
color: #d1d5db !important;
border-color: #9ca3af !important;
}
/* Date Text */
[data-theme="dark"] .date-text {
color: var(--text-secondary);
}
/* Table Actions */
[data-theme="dark"] .table-actions {
display: flex;
gap: 0.5rem;
}
[data-theme="dark"] .table-actions .btn-icon {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .table-actions .btn-icon:hover {
background-color: var(--bg-hover);
border-color: var(--primary-color);
color: var(--primary-color);
}
/* Inactive Row */
[data-theme="dark"] .inactive-row {
opacity: 0.6;
}
[data-theme="dark"] .inactive-row:hover {
opacity: 0.8;
}
/* Override data-table specific light backgrounds */
[data-theme="dark"] .data-table {
box-shadow: none !important;
}
[data-theme="dark"] .data-table th {
background-color: var(--table-header-bg) !important;
border-bottom: 2px solid var(--border-primary) !important;
}
[data-theme="dark"] .data-table td {
border-bottom: 1px solid var(--border-secondary) !important;
}
/* Email Preview */
[data-theme="dark"] .email-preview {
background-color: var(--bg-card);
border: 1px solid var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .email-preview-header {
background-color: var(--bg-secondary);
border-bottom: 1px solid var(--border-primary);
color: var(--text-heading);
}
[data-theme="dark"] .email-preview-body {
background-color: var(--bg-card);
color: var(--text-primary);
}
[data-theme="dark"] .email-subject {
color: var(--text-heading);
}
[data-theme="dark"] .email-from,
[data-theme="dark"] .email-to,
[data-theme="dark"] .email-meta {
color: var(--text-secondary);
}
[data-theme="dark"] .email-content {
background-color: var(--bg-secondary);
border: 1px solid var(--border-primary);
padding: 1.5rem;
border-radius: 6px;
color: var(--text-primary);
}
[data-theme="dark"] .email-preview pre,
[data-theme="dark"] .email-preview code {
background-color: var(--bg-tertiary);
color: var(--text-primary);
border: 1px solid var(--border-primary);
}
/* MOBILE BOTTOM NAVIGATION */
@media (max-width: 768px) {
[data-theme="dark"] .mobile-bottom-nav {
background: var(--bg-secondary);
border-top: 1px solid var(--border-primary);
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .bottom-nav-item {
color: var(--text-secondary);
}
[data-theme="dark"] .bottom-nav-item i {
color: var(--text-secondary);
}
[data-theme="dark"] .bottom-nav-item span {
color: var(--text-secondary);
}
[data-theme="dark"] .bottom-nav-item.active {
color: var(--primary-color);
}
[data-theme="dark"] .bottom-nav-item.active i {
color: var(--primary-color);
}
[data-theme="dark"] .bottom-nav-item.active span {
color: var(--primary-color);
}
/* Touch feedback in dark mode */
[data-theme="dark"] .bottom-nav-item:active {
opacity: 0.6;
}
/* FAB button in dark mode */
[data-theme="dark"] .bottom-nav-item.nav-fab .fab-button {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
box-shadow: 0 4px 12px rgba(122, 141, 245, 0.3);
}
[data-theme="dark"] .bottom-nav-item.nav-fab .fab-button i {
color: white;
}
/* Notification badge in dark mode */
[data-theme="dark"] .nav-badge {
background: var(--error-color);
color: white;
}
}
/* SPLASH PAGE MOBILE DARK MODE */
@media (max-width: 768px) {
/* Hero section mobile adjustments */
[data-theme="dark"] .splash-hero::before {
background-image:
radial-gradient(circle at 50% 20%, rgba(255,255,255,0.08) 0%, transparent 40%);
}
/* Mobile CTA buttons */
[data-theme="dark"] .cta-buttons .btn-primary {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
box-shadow: 0 4px 12px rgba(122, 141, 245, 0.3);
}
[data-theme="dark"] .cta-buttons .btn-primary:hover {
box-shadow: 0 2px 8px rgba(122, 141, 245, 0.2);
}
[data-theme="dark"] .cta-buttons .btn-secondary {
background: rgba(255, 255, 255, 0.1);
border: 2px solid rgba(255, 255, 255, 0.6);
color: white;
}
[data-theme="dark"] .cta-buttons .btn-secondary:hover {
background: rgba(255, 255, 255, 0.15);
}
/* Mobile feature cards */
[data-theme="dark"] .feature-card {
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
/* Mobile testimonial cards */
[data-theme="dark"] .testimonial-card {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* Mobile pricing cards */
[data-theme="dark"] .pricing-card {
box-shadow: 0 5px 20px rgba(0,0,0,0.3);
}
/* Mobile pricing buttons */
[data-theme="dark"] .btn-pricing {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
}
/* Mobile statistics section */
[data-theme="dark"] .statistics {
background: linear-gradient(135deg, #2a3142 0%, #3a3e4a 100%);
}
/* Mobile final CTA */
[data-theme="dark"] .final-cta {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
}
/* Focus states for mobile */
[data-theme="dark"] .splash-container *:focus {
outline: 3px solid var(--primary-color);
}
/* Mobile secondary button focus */
[data-theme="dark"] .cta-buttons .btn-secondary:active {
border: 2px solid white;
}
[data-theme="dark"] .cta-buttons .btn-secondary:focus {
background: rgba(255, 255, 255, 0.9);
color: var(--primary-color);
border: 2px solid var(--primary-color);
}
}
/* TASK MODAL DARK MODE STYLES */
/* Override inline styles with higher specificity */
[data-theme="dark"] .task-modal .modal-content {
background-color: var(--bg-modal) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .task-modal-content {
background-color: var(--bg-modal) !important;
color: var(--text-primary) !important;
}
/* Form sections */
[data-theme="dark"] .task-modal .form-section,
[data-theme="dark"] .form-section {
border-bottom-color: var(--border-primary) !important;
}
[data-theme="dark"] .form-section h3 {
color: var(--text-heading) !important;
border-bottom-color: var(--border-secondary) !important;
}
/* Dependencies section */
[data-theme="dark"] .task-modal .dependency-column,
[data-theme="dark"] .dependency-column {
background: var(--bg-secondary) !important;
border: 1px solid var(--border-primary) !important;
}
[data-theme="dark"] .dependency-column h4 {
color: var(--text-heading) !important;
}
[data-theme="dark"] .dependency-help {
color: var(--text-secondary) !important;
}
[data-theme="dark"] .task-modal .dependency-item,
[data-theme="dark"] .dependency-item {
background: var(--bg-card) !important;
border-color: var(--border-primary) !important;
box-shadow: 0 1px 2px rgba(0,0,0,0.2) !important;
}
[data-theme="dark"] .dependency-task-number {
color: var(--primary-color) !important;
background: rgba(122, 141, 245, 0.15) !important;
}
[data-theme="dark"] .dependency-task-title {
color: var(--text-primary) !important;
}
[data-theme="dark"] .task-modal .dependency-input,
[data-theme="dark"] .dependency-input {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .dependency-input:focus {
border-color: var(--primary-color) !important;
box-shadow: 0 0 0 2px rgba(122, 141, 245, 0.1) !important;
}
[data-theme="dark"] .dependency-input::placeholder {
color: var(--text-muted) !important;
}
/* Subtasks */
[data-theme="dark"] .task-modal .subtask-item,
[data-theme="dark"] .subtask-item {
background: var(--bg-secondary) !important;
border: 1px solid var(--border-primary) !important;
}
[data-theme="dark"] .subtask-item input[type="text"] {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
/* Date inputs */
[data-theme="dark"] .task-modal .date-input-formatted,
[data-theme="dark"] .date-input-formatted {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .task-modal .calendar-picker-btn,
[data-theme="dark"] .calendar-picker-btn {
background: var(--bg-tertiary) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .calendar-picker-btn:hover {
background: var(--bg-hover) !important;
}
/* Comments section */
[data-theme="dark"] .task-modal .comment-item,
[data-theme="dark"] .comment-item {
background: var(--bg-secondary) !important;
border-color: var(--border-primary) !important;
}
[data-theme="dark"] .comment-author {
color: var(--text-heading) !important;
}
[data-theme="dark"] .comment-time {
color: var(--text-tertiary) !important;
}
[data-theme="dark"] .comment-visibility-badge {
background: var(--bg-tertiary) !important;
color: var(--text-secondary) !important;
}
[data-theme="dark"] .comment-visibility-badge.team {
background: rgba(251, 191, 36, 0.15) !important;
color: var(--warning-color) !important;
}
[data-theme="dark"] .comment-content {
color: var(--text-primary) !important;
}
[data-theme="dark"] .comment-action {
color: var(--text-secondary) !important;
}
[data-theme="dark"] .comment-action:hover {
background: var(--bg-hover) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .task-modal .comment-form,
[data-theme="dark"] .comment-form {
background: var(--bg-secondary) !important;
border-color: var(--border-primary) !important;
}
[data-theme="dark"] .task-modal #new-comment,
[data-theme="dark"] #new-comment,
[data-theme="dark"] .comment-edit-textarea {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .comment-visibility-select {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .comment-reply {
background: var(--bg-card) !important;
border-color: var(--border-primary) !important;
}
[data-theme="dark"] .no-comments {
color: var(--text-tertiary) !important;
}
/* Form inputs in modal */
[data-theme="dark"] .task-modal .form-group label,
[data-theme="dark"] .form-group label {
color: var(--text-secondary) !important;
}
[data-theme="dark"] .task-modal .form-group input,
[data-theme="dark"] .task-modal .form-group select,
[data-theme="dark"] .task-modal .form-group textarea,
[data-theme="dark"] .form-group input,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .form-group textarea {
background: var(--bg-input) !important;
border-color: var(--border-primary) !important;
color: var(--text-primary) !important;
}
[data-theme="dark"] .task-modal .form-group input:focus,
[data-theme="dark"] .task-modal .form-group select:focus,
[data-theme="dark"] .task-modal .form-group textarea:focus,
[data-theme="dark"] .form-group input:focus,
[data-theme="dark"] .form-group select:focus,
[data-theme="dark"] .form-group textarea:focus {
border-color: var(--primary-color) !important;
box-shadow: 0 0 0 0.1rem rgba(122, 141, 245, 0.25) !important;
}
/* Modal overlay */
[data-theme="dark"] .task-modal {
background-color: rgba(0, 0, 0, 0.8) !important;
}
/* Select dropdowns - fix option colors */
[data-theme="dark"] .task-modal option,
[data-theme="dark"] select option {
background-color: var(--bg-secondary) !important;
color: var(--text-primary) !important;
}
/* Fix any remaining white text issues */
[data-theme="dark"] .task-modal h3 i,
[data-theme="dark"] .task-modal h4 i {
color: var(--text-heading) !important;
}
/* Modal footer */
[data-theme="dark"] .task-modal .modal-footer {
background-color: var(--bg-modal) !important;
border-top-color: var(--border-primary) !important;
}
/* Modal header */
[data-theme="dark"] .task-modal .modal-header {
background-color: var(--bg-modal) !important;
border-bottom-color: var(--border-primary) !important;
color: var(--text-heading) !important;
}
[data-theme="dark"] .task-modal .modal-header h2 {
color: var(--text-heading) !important;
}
/* Close button */
[data-theme="dark"] .task-modal .close {
color: var(--text-secondary) !important;
}
[data-theme="dark"] .task-modal .close:hover {
color: var(--text-primary) !important;
}
/* Sprint Management Dark Mode */
[data-theme="dark"] .filter-section {
background: var(--bg-tertiary);
border-color: var(--border-primary);
}
[data-theme="dark"] .view-switcher {
background: var(--bg-secondary);
}
[data-theme="dark"] .view-btn {
color: var(--text-secondary);
}
[data-theme="dark"] .view-btn.active {
background: var(--primary-color);
color: white;
}
[data-theme="dark"] .view-btn:hover:not(.active) {
background: var(--bg-hover);
color: var(--text-primary);
}
/* Sprint Metrics */
[data-theme="dark"] .metric {
background: var(--bg-tertiary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .metric-number {
color: var(--primary-color);
}
[data-theme="dark"] .metric-label {
color: var(--text-secondary);
}
/* Sprint Cards */
[data-theme="dark"] .sprint-card {
background: var(--bg-secondary);
border-color: var(--border-primary);
}
[data-theme="dark"] .sprint-header {
border-bottom-color: var(--border-primary);
}
[data-theme="dark"] .sprint-title {
color: var(--text-primary);
}
[data-theme="dark"] .sprint-dates {
color: var(--text-secondary);
}
[data-theme="dark"] .sprint-goal {
color: var(--text-secondary);
}
/* Notes Tags Dark Mode */
[data-theme="dark"] .tag-link {
background: var(--bg-tertiary);
border: 1px solid var(--border-primary);
color: var(--text-secondary);
}
[data-theme="dark"] .tag-link:hover {
background: var(--bg-hover);
border-color: var(--border-hover);
color: var(--text-primary);
}
[data-theme="dark"] .tag-link.active {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
color: white;
border-color: transparent;
}
[data-theme="dark"] .tag-count {
color: var(--text-tertiary);
}
[data-theme="dark"] .tag-chip {
background: var(--bg-tertiary);
color: var(--text-secondary);
border: 1px solid var(--border-primary);
}
[data-theme="dark"] .visibility-link {
background: var(--bg-tertiary);
border: 1px solid var(--border-primary);
color: var(--text-secondary);
}
[data-theme="dark"] .visibility-link:hover {
background: var(--bg-hover);
border-color: var(--border-hover);
color: var(--text-primary);
}
[data-theme="dark"] .visibility-link.active {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-gradient-end) 100%);
color: white;
border-color: transparent;
}
/* Active Filters Dark Mode */
[data-theme="dark"] .active-filters {
background: var(--bg-secondary);
border-color: var(--border-primary);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
color: var(--text-secondary);
}
[data-theme="dark"] .filter-tag {
background: var(--bg-tertiary);
border-color: var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] .filter-tag i {
color: var(--primary-color);
}
[data-theme="dark"] .remove-filter {
color: var(--error-color);
}
[data-theme="dark"] .remove-filter:hover {
color: #ff6b6b;
}
[data-theme="dark"] .clear-all {
color: var(--primary-color);
}
[data-theme="dark"] .clear-all:hover {
color: var(--primary-hover);
}
/* View Toggle Buttons Dark Mode */
[data-theme="dark"] .view-toggle {
background: transparent;
}
[data-theme="dark"] .toggle-btn {
background: var(--bg-secondary);
border-color: var(--border-primary);
color: var(--text-secondary);
}
[data-theme="dark"] .toggle-btn:hover {
background: var(--bg-hover);
border-color: var(--border-hover);
color: var(--text-primary);
}
[data-theme="dark"] .toggle-btn.active {
background: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
[data-theme="dark"] .view-controls {
background: transparent;
}
/* Ensure all view switcher patterns are covered */
[data-theme="dark"] .view-container {
background: transparent;
}
[data-theme="dark"] .entries-grid {
background: transparent;
}
[data-theme="dark"] .entry-card {
background: var(--bg-secondary);
border-color: var(--border-primary);
}
[data-theme="dark"] .entry-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* Pinned Notes Dark Mode */
[data-theme="dark"] .notes-table tr.pinned {
background: rgba(251, 191, 36, 0.1); /* warning color with low opacity */
}
[data-theme="dark"] .notes-table tr.pinned:hover {
background: rgba(251, 191, 36, 0.15);
}
[data-theme="dark"] .note-row.pinned {
background: rgba(251, 191, 36, 0.1);
}
[data-theme="dark"] .note-row.pinned:hover {
background: rgba(251, 191, 36, 0.15);
}
[data-theme="dark"] .pin-indicator {
color: var(--warning-color);
}
/* Categories Section Dark Mode */
[data-theme="dark"] .categories-section {
background: var(--bg-tertiary);
border-color: var(--border-primary);
}
[data-theme="dark"] .section-header {
color: var(--text-primary);
}
[data-theme="dark"] .section-title {
color: var(--text-primary);
}
[data-theme="dark"] .category-card {
background: var(--bg-secondary);
border-color: var(--border-primary);
}
[data-theme="dark"] .category-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .category-header {
/* The gradient and border color are inline styled, so we need to ensure text is readable */
color: var(--text-primary);
}
[data-theme="dark"] .category-name {
color: var(--text-primary);
}
[data-theme="dark"] .category-description {
color: var(--text-secondary);
}
[data-theme="dark"] .category-stats {
color: var(--text-secondary);
}
[data-theme="dark"] .category-actions .btn-icon {
background: var(--bg-tertiary);
border-color: var(--border-primary);
color: var(--text-secondary);
}
[data-theme="dark"] .category-actions .btn-icon:hover {
background: var(--bg-hover);
color: var(--text-primary);
}
/* Category Modal Dark Mode */
[data-theme="dark"] #category-modal .modal-content {
background: var(--bg-secondary);
color: var(--text-primary);
}
[data-theme="dark"] #category-modal .modal-header {
background: var(--bg-secondary);
border-bottom-color: var(--border-primary);
}
[data-theme="dark"] #category-modal .modal-body {
background: var(--bg-secondary);
}
[data-theme="dark"] #category-modal .modal-footer {
background: var(--bg-secondary);
border-top-color: var(--border-primary);
}
[data-theme="dark"] #category-modal .form-control {
background: var(--bg-tertiary);
border-color: var(--border-primary);
color: var(--text-primary);
}
[data-theme="dark"] #category-modal .form-control:focus {
background: var(--bg-tertiary);
border-color: var(--primary-color);
}
[data-theme="dark"] #category-modal .form-label {
color: var(--text-primary);
}
[data-theme="dark"] #category-modal .form-hint {
color: var(--text-secondary);
}