:root{--primary-color: #2563eb;--secondary-color: #64748b;--success-color: #10b981;--warning-color: #f59e0b;--danger-color: #ef4444;--external-color: #8b5cf6;--bg-color: #ffffff;--surface-color: #f8fafc;--border-color: #e2e8f0;--text-primary: #1e293b;--text-secondary: #64748b;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}html,body{margin:0;height:100%;font-family:Noto Sans JP,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-primary);font-size:14px;line-height:1.5}#app{display:flex;height:100vh}#sidebar{width:320px;background:var(--surface-color);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}#toolbar{padding:16px;border-bottom:1px solid var(--border-color);background:var(--bg-color)}#toolbar h1{margin:0 0 12px;font-size:18px;font-weight:700;color:var(--primary-color)}.section-selector{margin-top:12px}.section-selector label{display:block;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.section-selector select{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-color);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s ease}.section-selector select:hover{border-color:var(--primary-color)}.section-selector select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.filter-group{display:flex;gap:12px;margin-bottom:8px}.filter-group label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-color)}#details{flex:1;overflow-y:auto;padding:16px}.concept-card{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.concept-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.concept-tier{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase}.tier-core{background:var(--primary-color);color:#fff}.tier-supplementary{background:var(--success-color);color:#fff}.tier-advanced{background:var(--warning-color);color:#fff}.concept-title{font-weight:700;font-size:15px;margin:0;flex:1}.concept-definition{color:var(--text-secondary);font-size:13px;margin-bottom:12px;line-height:1.4}.evidence-section,.aliases-section{margin-top:12px}.section-title{font-weight:600;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.evidence-item{background:#f1f5f9;padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.4;margin-bottom:8px;border-left:3px solid var(--primary-color)}.evidence-source-icon{display:inline-flex;align-items:center;margin-left:6px;color:var(--primary-color);text-decoration:none;transition:all .15s ease;opacity:.7;vertical-align:baseline}.evidence-source-icon:hover{color:#1d4ed8;opacity:1;transform:translateY(-1px)}.evidence-source-icon svg{width:12px;height:12px}.tier-edge{background:linear-gradient(135deg,var(--primary-color),var(--success-color));color:#fff}.tier-concept{background:var(--primary-color);color:#fff}.relationship-info{margin-top:12px}.relationship-info p{margin:4px 0;font-size:13px;color:var(--text-primary)}.related-concepts-section{margin-top:12px}.related-concepts{display:flex;flex-direction:column;gap:8px}.related-concept{background:#f8fafc;border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.related-concept.clickable{cursor:pointer;transition:all .2s ease}.related-concept.clickable:hover{background:#e2e8f0;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.relation-direction{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.concept-name{font-weight:600;font-size:13px;color:var(--text-primary);margin-bottom:2px}.concept-def{font-size:11px;color:var(--text-secondary);line-height:1.3}.relations-section{margin-top:12px}.relations{display:flex;flex-direction:column;gap:6px}.relation-item{background:#f1f5f9;border:1px solid var(--border-color);border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .2s ease}.relation-item:hover{background:#e2e8f0;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.relation-description{font-size:12px;color:var(--text-primary);line-height:1.4;font-weight:500}.related-concept-link{color:var(--text-primary);text-decoration:underline;cursor:pointer}.related-concept-link:hover{color:var(--primary-color)}.aliases{display:flex;gap:6px;flex-wrap:wrap}.alias-tag{background:#e2e8f0;color:var(--text-secondary);padding:2px 8px;border-radius:12px;font-size:11px}.external-reference{margin-top:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-label{background:var(--external-color);color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.confidence-badge{background:var(--secondary-color);color:#fff;padding:2px 6px;border-radius:3px;font-size:10px}.cross-chapter-label{font-size:11px;color:var(--external-color);font-weight:500;margin-top:4px}.relation-item.cross-chapter{border-left:3px solid var(--external-color);padding-left:8px;background:#8b5cf60d}.tier-external{background:var(--external-color)!important;color:#fff!important}.external-section-link{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.section-link-button{width:100%;background:var(--external-color);color:#fff;border:none;border-radius:6px;padding:12px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.section-link-button:hover{background:#7c3aed;transform:translateY(-1px);box-shadow:var(--shadow)}#graph-container{flex:1;position:relative;overflow:hidden}#graph{width:100%;height:100%}.node{cursor:move}.node circle{stroke:#333;stroke-width:2px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.node.core circle{fill:var(--primary-color);stroke:#1d4ed8}.node.supplementary circle{fill:var(--success-color);stroke:#059669}.node.advanced circle{fill:var(--warning-color);stroke:#d97706}.node.external circle{fill:var(--external-color);stroke:#7c3aed;stroke-dasharray:3 2}.node text{font-size:12px;pointer-events:none;font-weight:500;fill:var(--text-primary)}.node.selected circle{stroke-width:4px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.node.highlighted circle{stroke-width:3px;stroke:var(--primary-color)!important;filter:drop-shadow(0 2px 6px rgba(37,99,235,.4));animation:pulse 2s ease-in-out infinite}.node.dimmed circle{fill:#e2e8f0!important;stroke:#94a3b8!important}.node.dimmed text{fill:var(--text-primary)!important}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.link{stroke:var(--text-secondary);stroke-opacity:.6;stroke-width:2px;transition:all .3s ease}.link.selected{stroke:var(--primary-color);stroke-opacity:.8;stroke-width:3px}.link.cross-chapter{stroke:var(--external-color);stroke-opacity:.8;stroke-dasharray:5 3;stroke-width:2px}.link.cross-chapter.selected{stroke:var(--external-color);stroke-opacity:1;stroke-width:3px}.link.highlighted{stroke:var(--primary-color)!important;stroke-opacity:1!important;stroke-width:3px!important;filter:drop-shadow(0 0 3px rgba(37,99,235,.5))}.link.dimmed{stroke-opacity:.15!important}.edge-label{font-size:10px;fill:var(--text-secondary);text-anchor:middle;pointer-events:all;background:var(--bg-color);padding:2px 4px;border-radius:3px;transition:all .3s ease}.edge-label.highlighted{fill:var(--text-primary)!important;font-weight:600;font-size:11px;paint-order:stroke fill;stroke:#fffc;stroke-width:3px}.edge-label.dimmed{opacity:.2;cursor:pointer;transition:fill .2s}.edge-label:hover{fill:var(--primary-color);font-weight:700}.tooltip{position:absolute;background:var(--bg-color);border:1px solid var(--border-color);padding:12px;font-size:13px;border-radius:8px;box-shadow:var(--shadow-lg);max-width:300px;z-index:1000;pointer-events:none}.zoom-controls{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:4px}.zoom-btn{width:36px;height:36px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);font-weight:700;font-size:18px;color:var(--text-primary);transition:all .2s}.zoom-btn:hover{background:var(--surface-color);transform:translateY(-1px)}.concept-list-section{margin-top:20px;padding:16px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow)}.concept-list{max-height:300px;overflow-y:auto;margin-top:12px}.concept-list-item{padding:10px 12px;margin-bottom:6px;background:var(--surface-color);border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;justify-content:space-between;align-items:center;font-size:14px;border:1px solid transparent}.concept-list-item:hover{background:#e2e8f0;border-color:var(--primary-color);transform:translate(4px)}.concept-list-item.selected{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.concept-list-item.selected:hover{background:#1d4ed8;transform:translate(4px)}.concept-list-label{flex:1;font-weight:500}.concept-list-badge{padding:2px 8px;background:var(--primary-color);color:#fff;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.concept-list-item.selected .concept-list-badge{background:#fff;color:var(--primary-color)}.concept-list-item.supplementary{opacity:.85}.concept-list-item.contextual{opacity:.7}.concept-list::-webkit-scrollbar{width:6px}.concept-list::-webkit-scrollbar-track{background:var(--surface-color);border-radius:3px}.concept-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.concept-list::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (max-width: 768px){#app{flex-direction:column}#sidebar{width:100%;max-width:100%;height:auto;max-height:60vh;overflow-y:auto}#graph-container{height:40vh}.zoom-controls{bottom:20px;right:20px}.concept-list-section{padding:12px;margin-top:16px}.concept-list{max-height:200px}.concept-list-item{padding:8px 10px;font-size:13px}}.relation-legend{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.legend-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.legend-line{width:24px;height:2px;background:var(--text-secondary)}
