* { box-sizing: border-box; } body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; color: #333; } #app { position: relative; display: flex; flex-direction: column; height: 100vh; } header { background: #fff; padding: 1rem 2rem; box-shadow: 0 2px 4px rgba(0,0,0,0.1); display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; z-index: 20; } header h1 { margin: 0; font-size: 1.5rem; } #search-form { display: flex; gap: 0.5rem; flex: 1; min-width: 300px; } #search-input { flex: 1; padding: 0.5rem 0.75rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; } button { padding: 0.5rem 1rem; background: #0066cc; color: #fff; border: none; border-radius: 4px; cursor: pointer; font-size: 1rem; } button:hover { background: #0052a3; } #status { padding: 0.5rem 2rem; font-size: 0.9rem; min-height: 2rem; } #status.loading { color: #0066cc; } #status.error { color: #cc0000; } #help { background: #fff; padding: 0.75rem 2rem; border-bottom: 1px solid #eee; font-size: 0.9rem; color: #555; } #help p { margin: 0; } #search-results { background: #fff; padding: 1rem 2rem; border-bottom: 1px solid #ddd; max-height: 250px; overflow-y: auto; z-index: 20; } #search-results.hidden, #info-panel.hidden { display: none; } #search-results h2 { margin-top: 0; font-size: 1rem; } #results-list { list-style: none; padding: 0; margin: 0; } #results-list li { padding: 0.75rem; border-bottom: 1px solid #eee; cursor: pointer; } #results-list li:hover { background: #f0f8ff; } #results-list li strong { display: block; margin-bottom: 0.25rem; } #results-list li span { font-size: 0.85rem; color: #666; } main { flex: 1; position: relative; overflow: hidden; background: #fff; } #graph { width: 100%; height: 100%; } .empty-graph { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; color: #666; padding: 2rem; } .empty-graph p { margin: 0.5rem 0; max-width: 600px; } #info-panel { position: absolute; top: 80px; right: 20px; width: 320px; max-height: calc(100vh - 120px); overflow-y: auto; background: #fff; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 1rem; z-index: 10; } #info-panel h2 { margin-top: 0; font-size: 1.1rem; } #info-content h3 { margin-top: 0; font-size: 1rem; } #info-content p { margin: 0.5rem 0; font-size: 0.9rem; }