Spaces:
Running
Running
| /* Doc_Map_Agent Styles */ | |
| :root { | |
| --primary-color: #2c3e50; | |
| --secondary-color: #3498db; | |
| --accent-color: #e74c3c; | |
| --light-color: #ecf0f1; | |
| --dark-color: #2c3e50; | |
| --success-color: #2ecc71; | |
| --warning-color: #f39c12; | |
| --danger-color: #e74c3c; | |
| --text-color: #333; | |
| --border-radius: 4px; | |
| --box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); | |
| --transition: all 0.3s ease; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| font-family: 'Roboto', Arial, sans-serif; | |
| line-height: 1.6; | |
| color: var(--text-color); | |
| background-color: #f5f7fa; | |
| } | |
| .container { | |
| width: 100%; | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 0 15px; | |
| } | |
| /* Header Styles */ | |
| header { | |
| background-color: var(--primary-color); | |
| color: white; | |
| padding: 1rem 0; | |
| box-shadow: var(--box-shadow); | |
| } | |
| .header-container { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .logo { | |
| display: flex; | |
| align-items: center; | |
| } | |
| .logo img { | |
| height: 40px; | |
| margin-right: 10px; | |
| background-color: #fff; /* Add background for placeholder visibility */ | |
| border-radius: 50%; | |
| } | |
| .logo h1 { | |
| font-size: 1.5rem; | |
| font-weight: 500; | |
| } | |
| .header-actions { | |
| display: flex; | |
| align-items: center; | |
| } | |
| .search-bar { | |
| margin-right: 15px; | |
| position: relative; | |
| } | |
| .search-bar input { | |
| padding: 8px 15px; | |
| border-radius: 20px; | |
| border: none; | |
| width: 200px; | |
| font-size: 0.9rem; | |
| } | |
| .search-bar button { | |
| position: absolute; | |
| right: 0px; | |
| top: 0; | |
| height: 100%; | |
| width: 40px; | |
| background: var(--secondary-color); | |
| border: none; | |
| color: white; | |
| border-radius: 0 20px 20px 0; | |
| cursor: pointer; | |
| transition: var(--transition); | |
| } | |
| .search-bar button:hover { | |
| background: #2980b9; | |
| } | |
| .settings-btn { | |
| background: none; | |
| border: none; | |
| color: white; | |
| cursor: pointer; | |
| font-size: 1.2rem; | |
| } | |
| /* Breadcrumb */ | |
| .breadcrumb { | |
| padding: 0.8rem 0; | |
| background-color: #fff; | |
| border-bottom: 1px solid #ddd; | |
| font-size: 0.9rem; | |
| } | |
| .breadcrumb ul { | |
| list-style: none; | |
| display: flex; | |
| flex-wrap: wrap; /* Allow wrapping on small screens */ | |
| } | |
| .breadcrumb li { | |
| margin-right: 8px; | |
| white-space: nowrap; | |
| } | |
| .breadcrumb li:after { | |
| content: ">"; | |
| margin-left: 8px; | |
| color: #999; | |
| } | |
| .breadcrumb li:last-child:after { | |
| content: ""; | |
| } | |
| .breadcrumb a { | |
| text-decoration: none; | |
| color: var(--secondary-color); | |
| cursor: pointer; | |
| } | |
| .breadcrumb a:hover { | |
| text-decoration: underline; | |
| } | |
| .breadcrumb li:last-child a { | |
| color: var(--text-color); | |
| font-weight: 500; | |
| cursor: default; | |
| pointer-events: none; /* Prevent click on last item */ | |
| } | |
| /* Main Content */ | |
| main { | |
| padding: 2rem 0; | |
| } | |
| .page-section { | |
| animation: fadeIn 0.5s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; } | |
| to { opacity: 1; } | |
| } | |
| .page-title { | |
| margin-bottom: 1.5rem; | |
| font-size: 1.8rem; | |
| color: var(--primary-color); | |
| border-bottom: 2px solid var(--secondary-color); | |
| padding-bottom: 0.5rem; | |
| } | |
| /* Card Styles */ | |
| .card { | |
| background-color: #fff; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| margin-bottom: 1.5rem; | |
| overflow: hidden; /* Important for child margins */ | |
| } | |
| .card-header { | |
| padding: 1rem 1.2rem; | |
| background-color: var(--light-color); | |
| border-bottom: 1px solid #ddd; | |
| font-weight: 500; | |
| color: var(--primary-color); | |
| } | |
| .card-body { | |
| padding: 1.2rem; | |
| } | |
| .card-body p, .card-body ul { | |
| margin-bottom: 0.8rem; | |
| } | |
| .card-body ul { | |
| padding-left: 20px; | |
| } | |
| .card-body h4 { | |
| margin-top: 1rem; | |
| margin-bottom: 0.5rem; | |
| color: var(--primary-color); | |
| } | |
| .card-body li { | |
| margin-bottom: 0.3rem; | |
| } | |
| /* Grid Layout */ | |
| .grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); | |
| gap: 1.5rem; | |
| } | |
| /* Dashboard Cards */ | |
| .dashboard-card { | |
| background-color: #fff; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| padding: 1.5rem; | |
| text-align: center; | |
| transition: var(--transition); | |
| cursor: pointer; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: space-between; | |
| } | |
| .dashboard-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| } | |
| .dashboard-card i { | |
| font-size: 2.5rem; | |
| color: var(--secondary-color); | |
| margin-bottom: 1rem; | |
| } | |
| .dashboard-card h3 { | |
| margin-bottom: 0.5rem; | |
| color: var(--primary-color); | |
| } | |
| .dashboard-card p { | |
| color: #777; | |
| font-size: 0.9rem; | |
| flex-grow: 1; /* Push button down */ | |
| margin-bottom: 1rem; | |
| } | |
| /* Two Column Layout */ | |
| .two-column { | |
| display: grid; | |
| grid-template-columns: 250px 1fr; /* Fixed sidebar width */ | |
| gap: 1.5rem; | |
| } | |
| @media (max-width: 768px) { | |
| .two-column { | |
| grid-template-columns: 1fr; | |
| } | |
| .sidebar { | |
| margin-bottom: 1.5rem; /* Add space when stacked */ | |
| } | |
| } | |
| /* Sidebar */ | |
| .sidebar { | |
| background-color: #fff; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| padding: 1.2rem; | |
| height: fit-content; /* Stop sidebar stretching */ | |
| } | |
| .sidebar-title { | |
| margin-bottom: 1rem; | |
| padding-bottom: 0.5rem; | |
| border-bottom: 1px solid #ddd; | |
| font-size: 1.2rem; | |
| } | |
| /* Filter Groups */ | |
| .filter-group { | |
| margin-bottom: 1.5rem; | |
| } | |
| .filter-group h4 { | |
| margin-bottom: 0.5rem; | |
| font-size: 1rem; | |
| } | |
| .filter-options { | |
| display: flex; | |
| flex-direction: column; | |
| max-height: 200px; /* Limit height for long lists */ | |
| overflow-y: auto; /* Add scroll if needed */ | |
| } | |
| .filter-option { | |
| margin-bottom: 0.5rem; | |
| } | |
| .filter-option label { | |
| display: flex; | |
| align-items: center; | |
| cursor: pointer; | |
| font-size: 0.9rem; | |
| } | |
| .filter-option input { | |
| margin-right: 0.5rem; | |
| } | |
| /* Buttons */ | |
| .btn { | |
| display: inline-block; | |
| padding: 8px 15px; | |
| border-radius: var(--border-radius); | |
| border: none; | |
| cursor: pointer; | |
| font-size: 0.9rem; | |
| transition: var(--transition); | |
| text-decoration: none; | |
| text-align: center; | |
| font-weight: 500; | |
| } | |
| .btn-primary { | |
| background-color: var(--secondary-color); | |
| color: white; | |
| } | |
| .btn-primary:hover { | |
| background-color: #2980b9; | |
| } | |
| .btn-secondary { | |
| background-color: var(--light-color); | |
| color: var(--text-color); | |
| border: 1px solid #ccc; | |
| } | |
| .btn-secondary:hover { | |
| background-color: #e0e0e0; | |
| } | |
| .btn-danger { | |
| background-color: var(--danger-color); | |
| color: white; | |
| } | |
| .btn-danger:hover { | |
| background-color: #c0392b; | |
| } | |
| .btn-block { | |
| display: block; | |
| width: 100%; | |
| } | |
| /* Document Cards Container */ | |
| .document-card-container { | |
| display: grid; | |
| grid-template-columns: 1fr; /* Default single column */ | |
| gap: 1rem; | |
| } | |
| /* Adjust container for wider screens if desired */ | |
| /* @media (min-width: 992px) { | |
| .document-card-container { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1.5rem; | |
| } | |
| } */ | |
| /* Document Cards */ | |
| .document-card { | |
| background-color: #fff; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| padding: 1.2rem; | |
| transition: var(--transition); | |
| border-left: 4px solid var(--light-color); /* Default border */ | |
| } | |
| /* Add phase-specific colors */ | |
| .document-card[data-phase="Discovery"] { border-left-color: #1abc9c; } | |
| .document-card[data-phase="Preclinical"] { border-left-color: #2ecc71; } | |
| .document-card[data-phase="Preclinical/Clinical"] { border-left-color: #3498db; } | |
| .document-card[data-phase="Clinical"] { border-left-color: #3498db; } | |
| .document-card[data-phase="Regulatory"] { border-left-color: #9b59b6; } | |
| .document-card[data-phase="Clinical/Regulatory"] { border-left-color: #9b59b6; } | |
| .document-card[data-phase="Post-Marketing"] { border-left-color: #e67e22; } | |
| .document-card[data-phase="Medical Affairs"] { border-left-color: #f1c40f; } | |
| .document-card:hover { | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |
| transform: scale(1.01); | |
| } | |
| .document-card h3 { | |
| margin-bottom: 0.5rem; | |
| color: var(--primary-color); | |
| font-size: 1.1rem; | |
| } | |
| .document-card-meta { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem 1rem; | |
| margin-bottom: 0.7rem; | |
| } | |
| .document-card-meta span { | |
| font-size: 0.85rem; | |
| color: #777; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .document-card-meta i { | |
| margin-right: 5px; | |
| color: var(--secondary-color); | |
| } | |
| .document-card p.purpose { | |
| font-size: 0.9rem; | |
| color: #555; | |
| margin-bottom: 1rem; | |
| } | |
| .document-card-actions { | |
| margin-top: 1rem; | |
| text-align: right; | |
| } | |
| .document-card-actions .btn { | |
| font-size: 0.85rem; | |
| padding: 6px 12px; | |
| } | |
| /* Forms */ | |
| .form-group { | |
| margin-bottom: 1rem; | |
| } | |
| .form-group label { | |
| display: block; | |
| margin-bottom: 0.5rem; | |
| font-weight: 500; | |
| } | |
| .form-control { | |
| width: 100%; | |
| padding: 8px 12px; | |
| border-radius: var(--border-radius); | |
| border: 1px solid #ddd; | |
| font-size: 0.9rem; | |
| } | |
| .form-control:focus { | |
| outline: none; | |
| border-color: var(--secondary-color); | |
| box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2); | |
| } | |
| textarea.form-control { | |
| min-height: 100px; | |
| resize: vertical; | |
| } | |
| /* Visualization Containers & Tabs */ | |
| .tabs { | |
| border-bottom: 1px solid #ddd; | |
| margin-bottom: 1.5rem; | |
| } | |
| .tab-button { | |
| padding: 10px 15px; | |
| cursor: pointer; | |
| border: none; | |
| background-color: transparent; | |
| border-bottom: 3px solid transparent; | |
| margin-bottom: -1px; /* Overlap border */ | |
| font-size: 1rem; | |
| transition: var(--transition); | |
| } | |
| .tab-button:hover { | |
| color: var(--secondary-color); | |
| } | |
| .tab-button.active { | |
| border-bottom-color: var(--secondary-color); | |
| color: var(--primary-color); | |
| font-weight: 500; | |
| } | |
| .visualization-container { | |
| min-height: 500px; /* Ensure space for the graph */ | |
| position: relative; | |
| overflow: hidden; /* Contain SVG */ | |
| } | |
| /* D3 Visualization Styles */ | |
| #dependency-network, #process-flow { | |
| width: 100%; | |
| height: 500px; /* Default height */ | |
| overflow: hidden; /* Hide scrollbars if SVG is larger */ | |
| } | |
| #dependency-network svg, #process-flow svg { | |
| display: block; /* Remove extra space below SVG */ | |
| width: 100%; | |
| height: 100%; | |
| } | |
| /* D3 Dependency Graph Specifics */ | |
| .links line { | |
| stroke-opacity: 0.6; | |
| } | |
| .nodes circle { | |
| stroke: #fff; | |
| stroke-width: 1.5px; | |
| cursor: pointer; | |
| } | |
| .nodes circle:hover { | |
| stroke: var(--primary-color); | |
| } | |
| .nodes text { | |
| font-size: 10px; | |
| pointer-events: none; /* Allow clicking through text to node */ | |
| fill: #333; | |
| } | |
| .nodes .node-label-bg { /* Optional background for better readability */ | |
| stroke: white; | |
| stroke-width: 3px; | |
| opacity: 0.8; | |
| } | |
| .legend { | |
| font-size: 10px; | |
| } | |
| .legend rect, .legend line { | |
| margin-right: 5px; | |
| } | |
| /* D3 Process Flow Specifics */ | |
| #process-flow .node rect { | |
| fill: var(--secondary-color); | |
| stroke: #2980b9; | |
| stroke-width: 1px; | |
| rx: 5; /* Rounded corners */ | |
| ry: 5; | |
| } | |
| #process-flow .node text { | |
| fill: white; | |
| font-size: 11px; | |
| text-anchor: middle; | |
| dominant-baseline: middle; | |
| } | |
| #process-flow .link { | |
| fill: none; | |
| stroke: #95a5a6; | |
| stroke-width: 2px; | |
| } | |
| #process-flow marker path { | |
| fill: #95a5a6; | |
| } | |
| /* Footer */ | |
| footer { | |
| background-color: var(--dark-color); /* Use dark color */ | |
| color: var(--light-color); /* Light text */ | |
| padding: 1.5rem 0; | |
| margin-top: 3rem; | |
| } | |
| .footer-container { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| flex-wrap: wrap; /* Allow wrapping */ | |
| gap: 1rem; | |
| } | |
| .footer-links a { | |
| color: var(--light-color); | |
| margin-left: 1rem; | |
| text-decoration: none; | |
| font-size: 0.9rem; | |
| } | |
| .footer-links a:hover { | |
| text-decoration: underline; | |
| color: var(--secondary-color); | |
| } | |
| /* Responsive Adjustments */ | |
| @media (max-width: 768px) { | |
| .header-container { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| .header-actions { | |
| margin-top: 1rem; | |
| width: 100%; | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .search-bar { | |
| width: 100%; | |
| margin-right: 0; | |
| margin-bottom: 0.5rem; | |
| } | |
| .search-bar input { | |
| width: 100%; | |
| } | |
| .search-bar button { | |
| border-radius: 20px; /* Adjust button on mobile */ | |
| width: 100%; | |
| position: static; | |
| margin-top: 5px; | |
| } | |
| .settings-btn { | |
| align-self: flex-end; /* Move settings button to right */ | |
| } | |
| .grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .footer-container { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .footer-links { | |
| margin-top: 1rem; | |
| } | |
| .footer-links a { | |
| margin: 0 0.5rem; | |
| } | |
| } | |
| /* Utility Classes */ | |
| .text-center { text-align: center; } | |
| .mt-1 { margin-top: 0.5rem; } | |
| .mt-2 { margin-top: 1rem; } | |
| .mt-3 { margin-top: 1.5rem; } | |
| .mb-1 { margin-bottom: 0.5rem; } | |
| .mb-2 { margin-bottom: 1rem; } | |
| .mb-3 { margin-bottom: 1.5rem; } | |
| .p-1 { padding: 0.5rem; } | |
| .p-2 { padding: 1rem; } | |
| .p-3 { padding: 1.5rem; } | |
| /* Visually hidden class for accessibility */ | |
| .sr-only { | |
| position: absolute; | |
| width: 1px; | |
| height: 1px; | |
| padding: 0; | |
| margin: -1px; | |
| overflow: hidden; | |
| clip: rect(0, 0, 0, 0); | |
| white-space: nowrap; | |
| border-width: 0; | |
| } |