/* CVE Monitor - Custom Styles */ :root { --sidebar-width: 250px; --navbar-height: 56px; } body { font-size: 0.95rem; min-height: 100vh; } /* Sidebar */ .sidebar { position: fixed; top: var(--navbar-height); bottom: 0; left: 0; z-index: 100; padding: 0; box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1); overflow-y: auto; } .sidebar .nav-link { font-weight: 500; color: #333; padding: 0.75rem 1rem; border-left: 3px solid transparent; transition: all 0.2s; } .sidebar .nav-link:hover { color: #0d6efd; background-color: rgba(0, 0, 0, 0.05); } .sidebar .nav-link.active { color: #0d6efd; border-left-color: #0d6efd; background-color: rgba(13, 110, 253, 0.1); } .sidebar .nav-link i { margin-right: 0.5rem; width: 20px; text-align: center; } .sidebar-heading { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.05em; } /* Dark mode */ [data-bs-theme="dark"] .sidebar { box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.1); } [data-bs-theme="dark"] .sidebar .nav-link { color: #dee2e6; } [data-bs-theme="dark"] .sidebar .nav-link:hover { background-color: rgba(255, 255, 255, 0.1); } [data-bs-theme="dark"] .sidebar .nav-link.active { background-color: rgba(13, 110, 253, 0.2); } /* Main content */ main { margin-left: var(--sidebar-width); padding-top: 1rem; } @media (max-width: 767.98px) { .sidebar { position: static; height: auto; } main { margin-left: 0; } } /* Cards */ .card { border-radius: 0.5rem; box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); margin-bottom: 1rem; } .card-body { padding: 1.25rem; } /* Stats cards */ .card .fs-1 { opacity: 0.2; } .card:hover .fs-1 { opacity: 0.3; transition: opacity 0.3s; } /* Table */ .table { font-size: 0.9rem; } .table thead th { border-bottom: 2px solid #dee2e6; font-weight: 600; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; color: #6c757d; } .table tbody tr { cursor: pointer; transition: background-color 0.2s; } .table tbody tr:hover { background-color: rgba(0, 0, 0, 0.02); } [data-bs-theme="dark"] .table tbody tr:hover { background-color: rgba(255, 255, 255, 0.05); } /* Severity badges */ .badge-critical { background-color: #dc3545; color: white; } .badge-high { background-color: #fd7e14; color: white; } .badge-medium { background-color: #0dcaf0; color: black; } .badge-low { background-color: #6c757d; color: white; } /* CVE ID column */ .cve-id { font-family: 'Courier New', monospace; font-weight: 600; color: #0d6efd; } /* Loading spinner overlay */ .loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.8); display: flex; align-items: center; justify-content: center; z-index: 1000; } [data-bs-theme="dark"] .loading-overlay { background: rgba(0, 0, 0, 0.8); } /* Pagination */ .pagination { margin-top: 1rem; } /* Search results */ #searchResults .list-group-item { cursor: pointer; transition: background-color 0.2s; } #searchResults .list-group-item:hover { background-color: rgba(0, 0, 0, 0.05); } /* Charts */ canvas { max-height: 300px; } /* Responsive */ @media (max-width: 575.98px) { .btn-toolbar { flex-direction: column; align-items: flex-start !important; } .btn-group { margin-bottom: 0.5rem; } } /* Scrollbar customization */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #888; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #555; } [data-bs-theme="dark"] ::-webkit-scrollbar-track { background: #2d2d2d; } [data-bs-theme="dark"] ::-webkit-scrollbar-thumb { background: #666; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.3s ease-in; } /* Vendor badge counter */ .vendor-badge { font-size: 0.7rem; padding: 0.25rem 0.5rem; border-radius: 10px; }