:root { --neptune-bg: #0a0e1a; --neptune-card: #131a2b; --neptune-border: #1e2a45; --neptune-accent: #3b82f6; } body { background-color: var(--neptune-bg); color: #e2e8f0; font-size: .9rem; } .navbar { background: linear-gradient(135deg, #0a0e1a 0%, #121828 100%) !important; } .card, .modal-content, .list-group-item { background-color: var(--neptune-card); border-color: var(--neptune-border); } .form-control, .form-select { background-color: #0d1117; border-color: var(--neptune-border); color: #e2e8f0; } .form-control:focus, .form-select:focus { background-color: #0d1117; border-color: var(--neptune-accent); color: #e2e8f0; box-shadow: 0 0 0 .2rem rgba(59,130,246,.15); } .btn-primary { background-color: var(--neptune-accent); border-color: var(--neptune-accent); } .btn-primary:hover { background-color: #2563eb; border-color: #2563eb; } /* Timeline */ .timeline-item { position: relative; padding-left: 1.6rem; margin-bottom: 1rem; } .timeline-item::before { content: ''; position: absolute; left: .5rem; top: 0; bottom: -1.5rem; width: 2px; background: var(--neptune-border); } .timeline-item:last-child::before { display: none; } .timeline-dot { position: absolute; left: .15rem; top: .45rem; width: 10px; height: 10px; border-radius: 50%; border: 2px solid; background: var(--neptune-card); z-index: 1; } .severity-critical { border-color: #ef4444; color: #ef4444; } .severity-high { border-color: #f97316; color: #f97316; } .severity-medium { border-color: #eab308; color: #eab308; } .severity-low { border-color: #22c55e; color: #22c55e; } .severity-info { border-color: #3b82f6; color: #3b82f6; } .timeline-card { border-left: 3px solid var(--neptune-accent); transition: border-color .2s; } .timeline-card:hover { border-left-color: #60a5fa; } .severity-badge { font-size: .65rem; text-transform: uppercase; letter-spacing: .05em; } .comment-box { background: #0d1117; border-radius: .375rem; padding: .35rem .6rem; margin-top: .3rem; } .comment-box .comment-author { color: var(--neptune-accent); font-weight: 600; font-size: .8rem; } .comment-box .comment-body { font-size: .8rem; margin-top: .05rem; } .comment-box + .comment-box { border-top: 1px solid var(--neptune-border); padding-top: .3rem; } .comment-log { max-height: 200px; overflow-y: auto; margin-bottom: .25rem; } /* Network Map */ #networkCanvas { cursor: grab; } #networkCanvas:active { cursor: grabbing; } .node-list-item i { width: 1rem; text-align: center; } .nav-pills .nav-link { color: #94a3b8; } .nav-pills .nav-link.active { background: var(--neptune-accent); color: #fff; } kbd { border: 1px solid var(--neptune-border); padding: 1px 5px; border-radius: 3px; font-size: .7rem; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--neptune-bg); } ::-webkit-scrollbar-thumb { background: var(--neptune-border); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #2a3a60; } /* Nav tabs in navbar */ .nav-tabs .nav-link { color: #94a3b8; border: none; padding: .5rem 1rem; } .nav-tabs .nav-link.active { color: #fff; background: transparent; border-bottom: 2px solid var(--neptune-accent); } .nav-tabs .nav-link:hover { color: #fff; border-bottom: 2px solid transparent; } /* Node list items */ .node-list-item { cursor: pointer; transition: background .15s; border-left: 3px solid transparent; } .node-list-item:hover { background: rgba(59,130,246,.1); } .node-list-item.active { border-left-color: var(--neptune-accent); background: rgba(59,130,246,.15); } .status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: .4rem; } .status-online { background: #22c55e; } .status-offline { background: #6b7280; } .status-unknown { background: #9ca3af; } .status-compromised { background: #ef4444; animation: pulse 1.5s infinite; } .status-monitoring { background: #eab308; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } } .event-meta { font-size: .7rem; color: #64748b; white-space: nowrap; } .event-title { color: #f1f5f9; font-size: .9rem; } .comment-input-group .btn { border-color: var(--neptune-border); color: var(--neptune-accent); } .comment-input-group .btn:hover { background: var(--neptune-accent); color: #fff; } /* Document Cards */ .doc-card { transition: border-color .2s, transform .15s; } .doc-card:hover { border-color: var(--neptune-accent); transform: translateY(-2px); } .doc-card .card-header { background: rgba(59,130,246,.05); } .doc-card .card-footer { background: transparent; } .doc-card .badge { font-size: .65rem; text-transform: uppercase; letter-spacing: .03em; } /* Attachments */ .attachments-list { border-top: 1px solid var(--neptune-border); padding-top: .35rem; margin-top: .35rem; } .attachment-item { border-bottom: 1px solid rgba(30, 42, 69, 0.5); } .attachment-item:last-child { border-bottom: none; } .attachment-item a { color: var(--neptune-accent); } .attachment-item a:hover { color: #60a5fa; text-decoration: underline !important; } /* File Viewer */ #fileViewerModal .modal-content { border-color: var(--neptune-border); } #fileViewerBody pre { margin: 0; white-space: pre-wrap; word-break: break-word; }