Spaces:
Running
Running
| /* 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 ; | |
| } | |
| /* Hide left sidebar */ | |
| .col-lg-3.col-md-4 { | |
| display: none ; | |
| } | |
| /* Main content takes full width */ | |
| .col-lg-9.col-md-8 { | |
| flex: 0 0 100%; | |
| max-width: 100%; | |
| } | |
| /* Hide hidden panels */ | |
| .hidden { | |
| display: none ; | |
| } | |
| /* Remove box-shadow and hover effects */ | |
| .card, | |
| .card:hover, | |
| .btn, | |
| .btn:hover, | |
| .list-group-item, | |
| .list-group-item:hover { | |
| box-shadow: none ; | |
| transform: none ; | |
| } | |
| /* 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 ; | |
| } | |
| /* Graph container: allow auto height for print image */ | |
| #graphContainer { | |
| height: auto ; | |
| overflow: visible ; | |
| border: none ; | |
| } | |
| /* Static graph image */ | |
| #graph-print-image { | |
| max-width: 100%; | |
| height: auto; | |
| display: block ; | |
| 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 ; | |
| } | |
| } | |