/* Main Styles */ :root { --primary-color: #007bff; --secondary-color: #6c757d; --success-color: #28a745; --danger-color: #dc3545; --warning-color: #ffc107; --info-color: #17a2b8; --light-color: #f8f9fa; --dark-color: #343a40; --border-color: #dee2e6; --shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); } * { box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background-color: #f5f5f5; color: #333; } #app { padding: 0; } /* Header */ header { box-shadow: var(--shadow); margin-bottom: 2rem; z-index: 1030; } /* Offset body content below the fixed header */ body { padding-top: 56px; } header .navbar-brand { font-weight: 600; font-size: 1.25rem; } /* Buttons */ .btn { border-radius: 0.375rem; font-weight: 500; transition: all 0.2s ease; } .btn:hover { transform: translateY(-1px); box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1); } .btn:disabled { opacity: 0.6; cursor: not-allowed; } /* Cards */ .card { border: 1px solid var(--border-color); border-radius: 0.5rem; box-shadow: var(--shadow); transition: all 0.2s ease; } .card:hover { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); } .card-header { background-color: #f8f9fa; border-bottom: 1px solid var(--border-color); padding: 1rem; } .card-header h5 { color: #333; font-weight: 600; } .card-body { padding: 1rem; } /* List Group */ .list-group-item { border: 1px solid var(--border-color); padding: 0.75rem 1rem; cursor: pointer; transition: all 0.2s ease; } .list-group-item:hover { background-color: #f8f9fa; border-color: var(--primary-color); } .list-group-item.active { background-color: var(--primary-color); border-color: var(--primary-color); color: white; } /* Form Controls */ .form-control { border-radius: 0.375rem; border: 1px solid var(--border-color); padding: 0.5rem 0.75rem; font-size: 0.95rem; } .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } /* Text Utilities */ .text-muted { color: #6c757d; } .text-center { text-align: center; } /* Spacing */ .mb-0 { margin-bottom: 0; } .mb-2 { margin-bottom: 0.5rem; } .mb-3 { margin-bottom: 1rem; } .mb-4 { margin-bottom: 1.5rem; } .me-2 { margin-right: 0.5rem; } .mt-5 { margin-top: 3rem; } /* Utility Classes */ .hidden { display: none; } .loading { opacity: 0.6; pointer-events: none; } .error-message { color: var(--danger-color); font-size: 0.875rem; margin-top: 0.25rem; } .success-message { color: var(--success-color); font-size: 0.875rem; margin-top: 0.25rem; } /* Scrollbar Styling */ ::-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; } /* Print Header - hidden in normal view */ .print-header { display: none; } /* Print Styles */ @media print { /* Hide navbar header */ header.navbar { display: none !important; } /* Hide left sidebar */ .col-lg-3.col-md-4 { display: none !important; } /* Main content takes full width */ .col-lg-9.col-md-8 { flex: 0 0 100%; max-width: 100%; } /* Hide hidden panels */ .hidden { display: none !important; } /* Remove box-shadow and hover effects */ .card, .card:hover, .btn, .btn:hover, .list-group-item, .list-group-item:hover { box-shadow: none !important; transform: none !important; } /* White background, black text */ body { background-color: #fff; color: #000; } /* Page-break for cards */ .card { page-break-inside: avoid; break-inside: avoid; } /* Show print header */ .print-header { display: block; font-size: 1.5rem; font-weight: 700; text-align: center; margin-bottom: 1rem; } /* Hide interactive buttons not needed in print */ #graphExportContainer, .fullscreen-btn, #fullscreenBtn, #sidebarToggleBtn, #copyLinkBtn, #uploadBtn, #exportBtn, #printBtn, .graph-controls, .graph-search-container, .graph-layout-switcher, .node-grouping-controls, .graph-annotation-controls, .minimap-container, .guided-tour-btn, #tourBtn { display: none !important; } /* Graph container: allow auto height for print image */ #graphContainer { height: auto !important; overflow: visible !important; border: none !important; } /* Static graph image */ #graph-print-image { max-width: 100%; height: auto; display: block !important; page-break-inside: avoid; break-inside: avoid; } /* Graph card: allow page break and full width for graph column */ .col-md-8:has(#graphContainer) { flex: 0 0 100%; max-width: 100%; } /* Hide node detail panel in print (it's beside the graph) */ .col-md-4:has(#nodeDetailContainer) { display: none !important; } }