/* Custom CSS for NLP Ultimate Tutorial */ :root { --primary-color: #1976D2; --primary-hover: #1565C0; --secondary-color: #424242; --success-color: #4CAF50; --info-color: #2196F3; --warning-color: #FF9800; --danger-color: #F44336; --light-color: #f8f9fa; --dark-color: #212529; --gradient-subtle: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); } /* Dark theme variables */ [data-theme="dark"] { --primary-color: #64B5F6; --primary-hover: #42A5F5; --secondary-color: #e0e0e0; --success-color: #81C784; --info-color: #64B5F6; --warning-color: #FFB74D; --danger-color: #FF8A80; --light-color: #2d2d2d; --dark-color: #e0e0e0; --gradient-subtle: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%); } /* Developer Banner */ .developer-banner { margin: 1.5rem 0; padding: 0.75rem 1.5rem; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(20px); border-radius: 50px; border: 1px solid rgba(25, 118, 210, 0.2); max-width: fit-content; margin-left: auto; margin-right: auto; box-shadow: 0 8px 32px rgba(25, 118, 210, 0.12); transition: all 0.3s ease; } .developer-banner:hover { transform: translateY(-1px); box-shadow: 0 8px 30px rgba(25, 118, 210, 0.15); } [data-theme="dark"] .developer-banner { background: rgba(45, 45, 45, 0.95); backdrop-filter: blur(20px); border-color: rgba(100, 181, 246, 0.3); box-shadow: 0 8px 32px rgba(100, 181, 246, 0.15); } [data-theme="dark"] .developer-banner:hover { box-shadow: 0 8px 30px rgba(100, 181, 246, 0.2); } .developer-banner .dev-btn { font-size: 0.88rem; font-weight: 500 !important; padding: 0.42rem 0.85rem; border-radius: 6px; background: #1976D2; border: 1px solid #1565C0; color: #ffffff !important; transition: background-color 0.15s ease, transform 0.15s ease, color 0.15s ease; text-decoration: none !important; display: inline-flex; align-items: center; box-shadow: none; /* ensure clear spacing inside the banner */ margin-left: 0.5rem; margin-top: 2px; margin-bottom: 2px; line-height: 1.1; letter-spacing: 0.2px; } .developer-banner .dev-btn:hover { background: #1565C0; transform: translateY(-1px); border-color: #11539d; color: #ffffff !important; text-decoration: none !important; } [data-theme="dark"] .developer-banner .dev-btn { background: #42A5F5; border-color: #2e8bd6; } [data-theme="dark"] .developer-banner .dev-btn:hover { background: #2196F3; border-color: #1c7ccc; } .developer-banner .dev-btn i { margin-right: 0.35rem; font-size: 0.9rem; } .developer-banner strong { font-size: 1rem; color: var(--secondary-color); } [data-theme="dark"] .developer-banner strong { color: #e0e0e0; } /* Developer Modal Styling */ .developer-hero { position: relative; height: 200px; overflow: hidden; } .hero-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, #1976D2 0%, #42A5F5 50%, #64B5F6 100%); } .hero-content { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 2rem; } .profile-image-wrapper { margin-bottom: 1rem; } .profile-image { width: 80px; height: 80px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(10px); border: 3px solid rgba(255, 255, 255, 0.3); display: flex; align-items: center; justify-content: center; margin: 0 auto; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); } .profile-image i { color: white; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); } .hero-name { font-weight: 700; margin-bottom: 0.5rem; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .hero-title { opacity: 0.9; margin-bottom: 0.5rem; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .hero-education { opacity: 0.8; margin-bottom: 0; font-size: 0.9rem; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .modal-content-body { background: #ffffff; } [data-theme="dark"] .modal-content-body { background: #2d2d2d; color: #e0e0e0; } .info-card { background: #ffffff; border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); } .info-card:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); border-color: rgba(25, 118, 210, 0.2); } [data-theme="dark"] .info-card { background: #1a1a1a; border-color: rgba(255, 255, 255, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } [data-theme="dark"] .info-card:hover { box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); border-color: rgba(100, 181, 246, 0.3); } .info-icon { width: 50px; height: 50px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; font-size: 1.5rem; color: white; } .info-icon.education { background: linear-gradient(135deg, #4CAF50, #66BB6A); } .info-icon.vision { background: linear-gradient(135deg, #FF9800, #FFB74D); } .info-icon.plans { background: linear-gradient(135deg, #9C27B0, #BA68C8); } .info-icon.thanks { background: linear-gradient(135deg, #F44336, #EF5350); } .info-card h6 { color: #2d2d2d; font-weight: 600; margin-bottom: 0.8rem; font-size: 1.1rem; } [data-theme="dark"] .info-card h6 { color: #e0e0e0; } .info-card p { color: #666666; line-height: 1.6; margin-bottom: 0; } [data-theme="dark"] .info-card p { color: #cccccc; } .social-section { padding-top: 2rem; border-top: 1px solid rgba(0, 0, 0, 0.08); } [data-theme="dark"] .social-section { border-top-color: rgba(255, 255, 255, 0.1); } .social-btn { display: flex; align-items: center; justify-content: center; padding: 1rem; border-radius: 12px; text-decoration: none; font-weight: 500; transition: all 0.3s ease; border: 1px solid transparent; } .social-btn.linkedin { background: linear-gradient(135deg, #0077B5, #00A0DC); color: white; box-shadow: 0 4px 15px rgba(0, 119, 181, 0.3); } .social-btn.linkedin:hover { background: linear-gradient(135deg, #005885, #0077B5); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 119, 181, 0.4); color: white; } .social-btn.github { background: linear-gradient(135deg, #333333, #555555); color: white; box-shadow: 0 4px 15px rgba(51, 51, 51, 0.3); } .social-btn.github:hover { background: linear-gradient(135deg, #1a1a1a, #333333); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(51, 51, 51, 0.4); color: white; } .social-btn i { margin-right: 0.5rem; font-size: 1.2rem; } .social-btn span { font-size: 1rem; } .modal-content { border: none; border-radius: 15px; overflow: hidden; } .modal-header { border-bottom: none; background: linear-gradient(135deg, var(--primary-color), #42A5F5) !important; } .modal-footer { border-top: 1px solid #dee2e6; } [data-theme="dark"] .modal-content { background-color: #2d2d2d; color: #e0e0e0; } [data-theme="dark"] .modal-footer { background-color: #1a1a1a; border-top-color: #404040; } /* Body and background */ body { background: var(--gradient-subtle); transition: all 0.3s ease; overflow-x: hidden; max-width: 100%; } /* Navbar styling */ .navbar { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%) !important; box-shadow: 0 2px 4px rgba(0,0,0,0.1); z-index: 1030 !important; } /* Ensure navbar container spans full width comfortably */ .navbar .container { max-width: 100% !important; padding-left: 1rem !important; padding-right: 1rem !important; } /* Dropdown menus should overlay the page and scroll internally if too tall */ .navbar-nav .dropdown-menu { z-index: 2000 !important; /* stay above navbar */ max-height: 70vh !important; /* avoid pushing page */ overflow-y: auto !important; /* scroll inside menu when needed */ margin-top: 0.5rem !important; /* small gap below trigger */ border-radius: 12px !important; box-shadow: 0 12px 28px rgba(0,0,0,0.22) !important; } /* Navbar dropdown visual style */ .navbar-nav .dropdown-menu { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.08) !important; border-radius: 12px !important; padding: 0.5rem 0 !important; box-shadow: 0 12px 28px rgba(0,0,0,0.18) !important; min-width: 220px !important; } .navbar-nav .dropdown-item { padding: 0.6rem 1rem !important; font-weight: 500 !important; color: #2b2b2b !important; border-radius: 8px !important; margin: 0.1rem 0.5rem !important; } .navbar-nav .dropdown-item:hover, .navbar-nav .dropdown-item:focus { background: linear-gradient(135deg, var(--primary-color), var(--primary-hover)) !important; color: #ffffff !important; } /* Dark mode dropdown contrast */ [data-theme="dark"] .navbar-nav .dropdown-menu { background: #1f1f1f !important; border-color: rgba(255,255,255,0.12) !important; } [data-theme="dark"] .navbar-nav .dropdown-item { color: #e0e0e0 !important; } [data-theme="dark"] .navbar-nav .dropdown-item:hover, [data-theme="dark"] .navbar-nav .dropdown-item:focus { color: #ffffff !important; } /* Mobile: let dropdowns be part of the flow inside the collapse */ @media (max-width: 991.98px) { .navbar-nav .dropdown-menu { position: static !important; max-height: none !important; overflow: visible !important; width: 100% !important; margin: 0.25rem 0 !important; box-shadow: 0 6px 18px rgba(0,0,0,0.18) !important; } .navbar-collapse { max-height: 80vh !important; overflow-y: auto !important; overflow-x: hidden !important; padding-bottom: 1rem !important; } } /* Anchor dropdowns directly under their toggles (desktop) */ .navbar-nav .dropdown { position: relative !important; } .navbar-nav .dropdown-menu { position: absolute !important; top: 100% !important; left: 0 !important; right: auto !important; transform: none !important; } / * Respect Bootstrap end-aligned menus */ .navbar-nav .dropdown-menu-end { left: auto !important; right: 0 !important; } /* Constrain dropdown height so page doesn't vertically scroll when open */ .navbar-nav .dropdown-menu { max-height: 70vh !important; overflow-y: auto !important; } .navbar-nav .dropdown-menu { overflow-x: hidden !important; } .navbar-brand { font-weight: 600; font-size: 1.5rem; } /* Modern Footer Styling */ .modern-footer { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); color: #ffffff; padding: 3rem 0 2rem; margin-top: 4rem; position: relative; overflow: hidden; } .modern-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); } .footer-brand h5 { color: #64B5F6; font-weight: 700; margin-bottom: 1rem; font-size: 1.4rem; } .footer-description { color: rgba(255,255,255,0.8); font-size: 0.95rem; line-height: 1.6; margin: 0; } .footer-credit { display: flex; justify-content: center; align-items: center; } .credit-badge { background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.2); border-radius: 12px; padding: 1rem 1.5rem; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.1); transition: all 0.3s ease; } .credit-badge:hover { background: rgba(255,255,255,0.15); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.15); } .credit-text { display: block; font-size: 0.85rem; color: rgba(255,255,255,0.8); margin-bottom: 0.25rem; } .developer-name { display: block; font-size: 1.1rem; color: #64B5F6; font-weight: 700; } .social-links { display: flex; gap: 1rem; justify-content: flex-end; align-items: center; } .social-link { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: 8px; text-decoration: none; transition: all 0.3s ease; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.05); color: #ffffff; font-weight: 500; } .social-link:hover { color: #ffffff; text-decoration: none; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.2); } .github-link:hover { background: #333333; border-color: #333333; } .linkedin-link:hover { background: #0077B5; border-color: #0077B5; } .social-link i { font-size: 1.2rem; } /* Dark mode footer adjustments */ [data-theme="dark"] .modern-footer { background: #0d1117 !important; /* solid dark, no glassy gradient */ } [data-theme="dark"] .modern-footer::before { background: transparent !important; /* remove glossy top line */ } [data-theme="dark"] .credit-badge { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.15); } [data-theme="dark"] .social-link { background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.15); } /* Responsive footer */ @media (max-width: 768px) { .modern-footer { padding: 2rem 0 1.5rem; text-align: center; } .social-links { justify-content: center; margin-top: 1rem; } .footer-credit { margin: 1.5rem 0; } } /* Card styling */ .card { border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-radius: 10px; transition: transform 0.2s ease, box-shadow 0.2s ease; } .card:hover { transform: translateY(-2px); box-shadow: 0 8px 15px rgba(0,0,0,0.15); } .card-header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); color: white; border-radius: 10px 10px 0 0 !important; border: none; } /* Button styling */ .btn { border-radius: 8px; font-weight: 500; transition: all 0.3s ease; border: none; } .btn:hover { transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0,0,0,0.2); } .btn-primary { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); } .btn-success { background: linear-gradient(135deg, var(--success-color) 0%, #388E3C 100%); } .btn-info { background: linear-gradient(135deg, var(--info-color) 0%, #1976D2 100%); } /* Form styling */ .form-control, .form-select { border-radius: 8px; border: 2px solid #e0e0e0; transition: border-color 0.3s ease, box-shadow 0.3s ease; } .form-control:focus, .form-select:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.2rem rgba(25, 118, 210, 0.25); } /* Alert styling */ .alert { border-radius: 10px; border: none; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .alert-info { background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%); color: #1565C0; border-left: 5px solid var(--primary-color); } .alert-warning { background: linear-gradient(135deg, #FFF8E1 0%, #FFECB3 100%); color: #E65100; border-left: 5px solid var(--warning-color); } .alert-success { background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%); color: #2E7D32; border-left: 5px solid var(--success-color); } .alert-danger { background: linear-gradient(135deg, #FFEBEE 0%, #FFCDD2 100%); color: #C62828; border-left: 5px solid var(--danger-color); } /* Tab styling */ .nav-tabs { border-bottom: 2px solid #e0e0e0; } .nav-tabs .nav-link { border: none; border-radius: 8px 8px 0 0; margin-right: 5px; color: var(--secondary-color); font-weight: 500; transition: all 0.3s ease; } .nav-tabs .nav-link:hover { border-color: transparent; background-color: rgba(25, 118, 210, 0.1); } .nav-tabs .nav-link.active { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); color: white; border-color: transparent; } /* Statistics cards */ .card.text-center { background: white; border: 2px solid #e0e0e0; } .card.text-center:hover { border-color: var(--primary-color); transform: scale(1.02); } /* Footer styling */ footer { background: linear-gradient(135deg, var(--dark-color) 0%, #1a1a1a 100%) !important; margin-top: auto; } /* Loading spinner */ .spinner-border { color: var(--primary-color); } /* Results container */ #resultsContainer { min-height: 200px; } /* Dark theme styles */ [data-theme="dark"] { background: var(--gradient-subtle); color: var(--dark-color); } [data-theme="dark"] .card { background-color: #2d2d2d; color: var(--dark-color); } [data-theme="dark"] .card-header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); } [data-theme="dark"] .form-control, [data-theme="dark"] .form-select { background-color: #2d2d2d; color: var(--dark-color); border-color: #555; } [data-theme="dark"] .form-control:focus, [data-theme="dark"] .form-select:focus { background-color: #2d2d2d; color: var(--dark-color); border-color: var(--primary-color); } [data-theme="dark"] .nav-tabs { border-bottom-color: #555; } [data-theme="dark"] .nav-tabs .nav-link { color: var(--dark-color); } [data-theme="dark"] .nav-tabs .nav-link:hover { background-color: rgba(100, 181, 246, 0.1); } [data-theme="dark"] .card.text-center { background-color: #2d2d2d; border-color: #555; color: var(--dark-color); } [data-theme="dark"] .alert-info { background: linear-gradient(135deg, #1a3c5a 0%, #0d2a3f 100%); color: var(--primary-color); } [data-theme="dark"] .alert-warning { background: linear-gradient(135deg, #3e2e00 0%, #2a1f00 100%); color: var(--warning-color); } [data-theme="dark"] .alert-success { background: linear-gradient(135deg, #1b3525 0%, #0f1f15 100%); color: var(--success-color); } [data-theme="dark"] .alert-danger { background: linear-gradient(135deg, #4A1515 0%, #2a0a0a 100%); color: var(--danger-color); } /* Mobile responsiveness */ @media (max-width: 768px) { .container-fluid { padding: 10px; } .card { margin-bottom: 15px; } .btn { margin-bottom: 10px; } .display-4 { font-size: 2rem; } .lead { font-size: 1rem; } } /* Animation classes */ .fade-in { animation: fadeIn 0.5s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .slide-in { animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { transform: translateX(-100%); } to { transform: translateX(0); } } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--primary-color); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--primary-hover); } [data-theme="dark"] ::-webkit-scrollbar-track { background: #2d2d2d; } [data-theme="dark"] ::-webkit-scrollbar-thumb { background: var(--primary-color); } /* Table styling */ .table { border-radius: 8px; overflow: hidden; } .table thead th { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); color: white; border: none; font-weight: 600; } .table tbody tr:hover { background-color: rgba(25, 118, 210, 0.1); } [data-theme="dark"] .table { color: var(--dark-color); } [data-theme="dark"] .table tbody tr:hover { background-color: rgba(100, 181, 246, 0.1); } /* Chart container */ .chart-container { position: relative; height: 400px; margin: 20px 0; } /* Code blocks */ pre { background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 15px; overflow-x: auto; } [data-theme="dark"] pre { background-color: #2d2d2d; border-color: #555; color: var(--dark-color); } /* Badge styling */ .badge { font-size: 0.8em; padding: 0.5em 0.75em; border-radius: 6px; } /* Progress bar */ .progress { height: 8px; border-radius: 4px; background-color: #e9ecef; } .progress-bar { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); border-radius: 4px; } [data-theme="dark"] .progress { background-color: #555; } /* Tooltip styling */ .tooltip { font-size: 0.875rem; } .tooltip-inner { background-color: var(--dark-color); border-radius: 6px; } /* Modal styling */ .modal-content { border-radius: 10px; border: none; box-shadow: 0 10px 30px rgba(0,0,0,0.3); } .modal-header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); color: white; border-radius: 10px 10px 0 0; } [data-theme="dark"] .modal-content { background-color: #2d2d2d; color: var(--dark-color); } /* Utility classes */ .text-gradient { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .shadow-custom { box-shadow: 0 8px 25px rgba(0,0,0,0.15); } .border-gradient { border: 2px solid; border-image: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%) 1; } /***** Global horizontal scroll guards *****/ html, body { overflow-x: hidden !important; max-width: 100% !important; } .container-fluid, .container { overflow-x: hidden !important; max-width: 100% !important; } /* Reset dropdown positioning to Bootstrap defaults */ .navbar-nav .dropdown { position: static !important; } .navbar-nav .dropdown-menu { position: absolute !important; top: auto !important; left: auto !important; right: auto !important; } /* Cap dropdown width to viewport and allow wrapping */ .navbar-nav .dropdown-menu { max-width: calc(100vw - 2rem) !important; overflow-wrap: anywhere; } /* Ensure quick-nav and badges shadows don't trigger scroll */ .quick-nav, .entity-text-container, .card { overflow: visible !important; } /* --- Dark mode global text legibility --- */ [data-theme="dark"] body, [data-theme="dark"] .container, [data-theme="dark"] .container-fluid { color: #e6e6e6 !important; } /* Links in dark mode */ [data-theme="dark"] a { color: #82b1ff !important; } [data-theme="dark"] a:hover { color: #b3c8ff !important; } /* Cards */ [data-theme="dark"] .card { background-color: #1f1f1f !important; color: #e8e8e8 !important; border-color: rgba(255,255,255,0.08) !important; } [data-theme="dark"] .card-header { background-color: #242424 !important; color: #e8e8e8 !important; border-bottom-color: rgba(255,255,255,0.08) !important; } [data-theme="dark"] .card .text-muted { color: #b0b0b0 !important; } /* Alerts */ [data-theme="dark"] .alert { background-color: #262626 !important; color: #f0f0f0 !important; border-color: rgba(255,255,255,0.12) !important; } [data-theme="dark"] .alert-info { background-color: rgba(33,150,243,0.12) !important; color: #dbe9ff !important; border-color: rgba(33,150,243,0.35) !important; } [data-theme="dark"] .alert-warning { background-color: rgba(255,193,7,0.12) !important; color: #ffe6a3 !important; border-color: rgba(255,193,7,0.35) !important; } /* Forms */ [data-theme="dark"] .form-control, [data-theme="dark"] .form-select, [data-theme="dark"] textarea.form-control { background-color: #1e1e1e !important; color: #f0f0f0 !important; border-color: rgba(255,255,255,0.15) !important; } [data-theme="dark"] .form-control:focus, [data-theme="dark"] .form-select:focus { box-shadow: 0 0 0 0.25rem rgba(100,181,246,0.25) !important; border-color: #64B5F6 !important; } [data-theme="dark"] ::placeholder { color: #b8b8b8 !important; opacity: 1 !important; } /* Tables */ [data-theme="dark"] .table { color: #e6e6e6 !important; } [data-theme="dark"] .table-striped>tbody>tr:nth-of-type(odd) { --bs-table-accent-bg: rgba(255,255,255,0.04) !important; color: #e6e6e6 !important; } [data-theme="dark"] .table-hover tbody tr:hover { background-color: rgba(255,255,255,0.06) !important; } /* Badges and small chips */ [data-theme="dark"] .badge { filter: brightness(1.05) contrast(1.05); } /* Home route: improve dark mode contrast for CHOOSE AN OPERATION header */ [data-theme="dark"] .card-header.bg-primary, [data-theme="dark"] .card-header.bg-primary * { color: #ffffff !important; } [data-theme="dark"] .card-header.bg-primary { filter: brightness(1.05) contrast(1.1); } /* Dark mode navbar text visibility */ [data-theme="dark"] .navbar .navbar-brand, [data-theme="dark"] .navbar .nav-link, [data-theme="dark"] .navbar .dropdown-toggle, [data-theme="dark"] .navbar .navbar-toggler-icon::after { color: #ffffff !important; } /* Strengthen gradient navbar contrast in dark mode */ [data-theme="dark"] .navbar { filter: brightness(1.05) contrast(1.15); } /* Home: CHOOSE AN OPERATION title contrast in dark mode */ [data-theme="dark"] .card-header.bg-primary h2, [data-theme="dark"] .card-header.bg-primary .mb-0 { color: #ffffff !important; text-shadow: 0 1px 2px rgba(0,0,0,0.35); } /* Dark mode: ensure button text is readable */ [data-theme="dark"] .btn, [data-theme="dark"] .btn * { color: #ffffff !important; } [data-theme="dark"] .btn { text-shadow: 0 1px 2px rgba(0,0,0,0.35); }