Spaces:
Running
Running
| /* 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 ; | |
| padding: 0.42rem 0.85rem; | |
| border-radius: 6px; | |
| background: #1976D2; | |
| border: 1px solid #1565C0; | |
| color: #ffffff ; | |
| transition: background-color 0.15s ease, transform 0.15s ease, color 0.15s ease; | |
| text-decoration: none ; | |
| 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 ; | |
| text-decoration: none ; | |
| } | |
| [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) ; | |
| } | |
| .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%) ; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); | |
| z-index: 1030 ; | |
| } | |
| /* Ensure navbar container spans full width comfortably */ | |
| .navbar .container { | |
| max-width: 100% ; | |
| padding-left: 1rem ; | |
| padding-right: 1rem ; | |
| } | |
| /* Dropdown menus should overlay the page and scroll internally if too tall */ | |
| .navbar-nav .dropdown-menu { | |
| z-index: 2000 ; /* stay above navbar */ | |
| max-height: 70vh ; /* avoid pushing page */ | |
| overflow-y: auto ; /* scroll inside menu when needed */ | |
| margin-top: 0.5rem ; /* small gap below trigger */ | |
| border-radius: 12px ; | |
| box-shadow: 0 12px 28px rgba(0,0,0,0.22) ; | |
| } | |
| /* Navbar dropdown visual style */ | |
| .navbar-nav .dropdown-menu { | |
| background: #ffffff ; | |
| border: 1px solid rgba(0,0,0,0.08) ; | |
| border-radius: 12px ; | |
| padding: 0.5rem 0 ; | |
| box-shadow: 0 12px 28px rgba(0,0,0,0.18) ; | |
| min-width: 220px ; | |
| } | |
| .navbar-nav .dropdown-item { | |
| padding: 0.6rem 1rem ; | |
| font-weight: 500 ; | |
| color: #2b2b2b ; | |
| border-radius: 8px ; | |
| margin: 0.1rem 0.5rem ; | |
| } | |
| .navbar-nav .dropdown-item:hover, | |
| .navbar-nav .dropdown-item:focus { | |
| background: linear-gradient(135deg, var(--primary-color), var(--primary-hover)) ; | |
| color: #ffffff ; | |
| } | |
| /* Dark mode dropdown contrast */ | |
| [data-theme="dark"] .navbar-nav .dropdown-menu { | |
| background: #1f1f1f ; | |
| border-color: rgba(255,255,255,0.12) ; | |
| } | |
| [data-theme="dark"] .navbar-nav .dropdown-item { color: #e0e0e0 ; } | |
| [data-theme="dark"] .navbar-nav .dropdown-item:hover, [data-theme="dark"] .navbar-nav .dropdown-item:focus { color: #ffffff ; } | |
| /* Mobile: let dropdowns be part of the flow inside the collapse */ | |
| @media (max-width: 991.98px) { | |
| .navbar-nav .dropdown-menu { | |
| position: static ; | |
| max-height: none ; | |
| overflow: visible ; | |
| width: 100% ; | |
| margin: 0.25rem 0 ; | |
| box-shadow: 0 6px 18px rgba(0,0,0,0.18) ; | |
| } | |
| .navbar-collapse { | |
| max-height: 80vh ; | |
| overflow-y: auto ; | |
| overflow-x: hidden ; | |
| padding-bottom: 1rem ; | |
| } | |
| } | |
| /* Anchor dropdowns directly under their toggles (desktop) */ | |
| .navbar-nav .dropdown { position: relative ; } | |
| .navbar-nav .dropdown-menu { | |
| position: absolute ; | |
| top: 100% ; | |
| left: 0 ; | |
| right: auto ; | |
| transform: none ; | |
| } | |
| / * Respect Bootstrap end-aligned menus */ | |
| .navbar-nav .dropdown-menu-end { left: auto ; right: 0 ; } | |
| /* Constrain dropdown height so page doesn't vertically scroll when open */ | |
| .navbar-nav .dropdown-menu { max-height: 70vh ; overflow-y: auto ; } | |
| .navbar-nav .dropdown-menu { overflow-x: hidden ; } | |
| .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 ; /* solid dark, no glassy gradient */ | |
| } | |
| [data-theme="dark"] .modern-footer::before { | |
| background: transparent ; /* 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 ; | |
| 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%) ; | |
| 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 ; max-width: 100% ; } | |
| .container-fluid, .container { overflow-x: hidden ; max-width: 100% ; } | |
| /* Reset dropdown positioning to Bootstrap defaults */ | |
| .navbar-nav .dropdown { position: static ; } | |
| .navbar-nav .dropdown-menu { position: absolute ; top: auto ; left: auto ; right: auto ; } | |
| /* Cap dropdown width to viewport and allow wrapping */ | |
| .navbar-nav .dropdown-menu { max-width: calc(100vw - 2rem) ; overflow-wrap: anywhere; } | |
| /* Ensure quick-nav and badges shadows don't trigger scroll */ | |
| .quick-nav, .entity-text-container, .card { overflow: visible ; } | |
| /* --- Dark mode global text legibility --- */ | |
| [data-theme="dark"] body, | |
| [data-theme="dark"] .container, | |
| [data-theme="dark"] .container-fluid { | |
| color: #e6e6e6 ; | |
| } | |
| /* Links in dark mode */ | |
| [data-theme="dark"] a { color: #82b1ff ; } | |
| [data-theme="dark"] a:hover { color: #b3c8ff ; } | |
| /* Cards */ | |
| [data-theme="dark"] .card { background-color: #1f1f1f ; color: #e8e8e8 ; border-color: rgba(255,255,255,0.08) ; } | |
| [data-theme="dark"] .card-header { background-color: #242424 ; color: #e8e8e8 ; border-bottom-color: rgba(255,255,255,0.08) ; } | |
| [data-theme="dark"] .card .text-muted { color: #b0b0b0 ; } | |
| /* Alerts */ | |
| [data-theme="dark"] .alert { background-color: #262626 ; color: #f0f0f0 ; border-color: rgba(255,255,255,0.12) ; } | |
| [data-theme="dark"] .alert-info { background-color: rgba(33,150,243,0.12) ; color: #dbe9ff ; border-color: rgba(33,150,243,0.35) ; } | |
| [data-theme="dark"] .alert-warning { background-color: rgba(255,193,7,0.12) ; color: #ffe6a3 ; border-color: rgba(255,193,7,0.35) ; } | |
| /* Forms */ | |
| [data-theme="dark"] .form-control, | |
| [data-theme="dark"] .form-select, | |
| [data-theme="dark"] textarea.form-control { | |
| background-color: #1e1e1e ; | |
| color: #f0f0f0 ; | |
| border-color: rgba(255,255,255,0.15) ; | |
| } | |
| [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) ; border-color: #64B5F6 ; } | |
| [data-theme="dark"] ::placeholder { color: #b8b8b8 ; opacity: 1 ; } | |
| /* Tables */ | |
| [data-theme="dark"] .table { color: #e6e6e6 ; } | |
| [data-theme="dark"] .table-striped>tbody>tr:nth-of-type(odd) { --bs-table-accent-bg: rgba(255,255,255,0.04) ; color: #e6e6e6 ; } | |
| [data-theme="dark"] .table-hover tbody tr:hover { background-color: rgba(255,255,255,0.06) ; } | |
| /* 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 ; | |
| } | |
| [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 ; | |
| } | |
| /* 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 ; | |
| 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 ; | |
| } | |
| [data-theme="dark"] .btn { text-shadow: 0 1px 2px rgba(0,0,0,0.35); } | |