.graph-filters-panel{top:calc(var(--space-1) + 3rem);right:var(--space-3);width:280px;max-height:calc(100% - var(--header-height));background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--space-3);padding:var(--space-4);z-index:100;box-shadow:var(--shadow-lg);position:absolute;overflow-y:auto}.graph-filters-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.graph-filters-title{color:var(--text-primary);font-size:14px;font-weight:600}.graph-filters-close{color:var(--text-secondary);cursor:pointer;padding:0 var(--space-1);background:0 0;border:none;font-size:18px;line-height:1}.graph-filters-spacing{margin:var(--space-3) 0 var(--space-2)}.graph-filters-slider{appearance:none;cursor:pointer;background:var(--border-color);border-radius:3px;outline:none;width:100%;height:6px}.graph-filters-slider-labels{color:var(--text-tertiary);margin-top:var(--space-1);justify-content:space-between;font-size:11px;display:flex}.graph-filters-panel input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);border:2px solid var(--bg-secondary);cursor:pointer;width:16px;height:16px;box-shadow:0 2px 8px var(--glow-color);border-radius:50%}.graph-filters-panel input[type=range]::-moz-range-thumb{background:var(--accent-primary);border:2px solid var(--bg-secondary);cursor:pointer;width:16px;height:16px;box-shadow:0 2px 8px var(--glow-color);border-radius:50%}.graph-filters-divider{border:none;border-top:1px solid var(--border-color);margin:0 0 var(--space-4) 0}.graph-filters-divider--spaced{border:none;border-top:1px solid var(--border-color);margin:var(--space-3) 0}.graph-filters-presets{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.graph-filters-preset-label{align-items:center;gap:var(--space-2);cursor:pointer;font-size:13px;display:flex}.graph-filters-preset-radio{accent-color:var(--accent-primary);margin:0}.graph-filters-section{margin-bottom:var(--space-3)}.graph-filters-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);font-size:11px}.graph-filters-checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:flex}.graph-filters-checkbox{margin:0}.graph-filters-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.graph-filters-legend{flex-direction:column;gap:6px;display:flex}.graph-filters-legend-item{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:12px;display:flex}.graph-filters-dot--placeholder{background:var(--node-placeholder);border:1.5px dashed var(--text-tertiary);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.graph-filters-chips{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.graph-filters-chip{padding:var(--space-1) var(--space-3);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;background:0 0;border-radius:20px;font-size:12px}.graph-filters-chip:hover{border-color:var(--accent-primary);color:var(--text-primary)}.graph-filters-chip--active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--accent-fg);font-weight:600}.graph-filters-reset{width:100%;margin:var(--space-3) 0 0;padding:var(--space-2) 0;border:1px solid var(--border-color);border-radius:var(--space-2);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;font-size:12px}.graph-filters-reset:hover{border-color:var(--accent-primary);color:var(--text-primary)}.graph-filters-toggle-row{margin:var(--space-3) 0 var(--space-2)}.graph-filters-legend--edges{gap:var(--space-3)}.graph-filters-edge-group{flex-direction:column;gap:4px;display:flex}.graph-filters-edge-group-label{color:var(--text-tertiary);margin-bottom:2px;font-size:11px}.graph-svg-container{width:100%;height:100%;position:relative}.graph-svg{cursor:grab;touch-action:none;display:block}.node{cursor:pointer}.node.dragging circle{stroke:var(--accent-primary);stroke-width:3px;stroke-opacity:.8}.node text{font-family:var(--font-condensed);pointer-events:none;user-select:none;font-weight:700}.graph-svg-building{align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.graph-svg-building p{color:var(--text-secondary);font-size:14px}.graph-loading{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;height:100%;display:flex}.graph-depth-selector{top:calc(var(--space-3) + 52px);gap:var(--space-1);background:var(--bg-overlay);border:1px solid var(--border-color);padding:var(--space-1) var(--space-2);z-index:20;pointer-events:all;border-radius:20px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.graph-depth-selector[data-mobile]{top:var(--space-3)}.graph-depth-btn{color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:14px;padding:4px 12px;font-size:12px;font-weight:600}.graph-depth-btn:hover{color:var(--text-primary)}.graph-depth-btn--active{background:var(--accent-primary);color:var(--accent-fg)}.relationship-graph-container{width:100%;height:100%;position:relative;overflow:hidden}.relationship-graph-container--desktop{flex-direction:row;display:flex}.graph-filters-sidebar{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:row;flex-shrink:0;width:280px;min-width:180px;max-width:420px;height:100%;transition:width .25s;display:flex;position:relative;overflow:hidden}.graph-filters-sidebar--collapsed{min-width:0;width:0!important}.graph-sidebar-content{opacity:1;flex:1;min-width:0;transition:opacity .15s;overflow:hidden auto}.graph-filters-sidebar--collapsed .graph-sidebar-content{opacity:0;pointer-events:none}.graph-sidebar-collapse-btn{top:var(--space-3);z-index:15;background:var(--bg-overlay);border:1px solid var(--border-color);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;transition:left .25s ease, background var(--transition-fast), color var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex;position:absolute;transform:translate(-50%)}.graph-sidebar-collapse-btn:hover{background:var(--accent-primary);color:var(--accent-fg);border-color:var(--accent-primary)}.graph-sidebar-drag-handle{cursor:col-resize;z-index:10;width:6px;height:100%;position:absolute;top:0;right:0}.graph-sidebar-drag-handle:hover,.graph-sidebar-drag-handle:active{background:var(--accent-primary);opacity:.35}.relationship-graph-container--desktop .graph-filters-panel{width:100%;max-height:none;box-shadow:none;background:0 0;border:none;border-radius:0;position:static}.relationship-graph-container--desktop .graph-filters-header{display:none}.graph-canvas-wrapper{flex:1;min-width:0;height:100%;position:relative}.graph-canvas-container{width:100%;height:100%;animation:.3s fadeIn;position:absolute;top:0;left:0}.graph-container{background:var(--bg-primary);width:100%;height:100%;position:relative;overflow:hidden}.graph-filters-toggle{top:var(--space-3);right:var(--space-3);z-index:101;padding:var(--space-2) 14px;border:1px solid var(--border-color);border-radius:var(--space-2);cursor:pointer;transition:all var(--transition-fast);font-size:13px;font-weight:500;position:absolute}.graph-corner-btn{bottom:var(--space-5);z-index:10;background:var(--bg-overlay);height:32px;color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--space-2);cursor:pointer;align-items:center;display:flex;position:absolute}.graph-corner-btn--fit{left:var(--space-3);letter-spacing:.05em;padding:0 10px;font-size:12px;font-weight:600}.graph-corner-btn--fullscreen{right:var(--space-3);justify-content:center;width:32px;padding:0}.graph-node-bar{top:var(--space-3);left:var(--space-3);right:var(--space-3);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-overlay);border:1px solid var(--border-color);border-radius:var(--space-2);z-index:20;backdrop-filter:blur(8px);display:flex;position:absolute}.graph-node-bar__dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:10px;height:10px}.graph-node-bar__dot[data-type=muscle],.graph-node-bar__dot[data-type=muscle_group]{background:var(--layer-muscles)}.graph-node-bar__dot[data-type=tendon]{background:var(--node-tendon)}.graph-node-bar__dot[data-type=protocol]{background:var(--layer-goals)}.graph-node-bar__dot[data-type=state]{background:var(--node-state)}.graph-node-bar__dot[data-type=article_general]{background:var(--layer-nervous)}.graph-node-bar__info{align-items:baseline;gap:var(--space-2);flex:1;min-width:0;display:flex;overflow:hidden}.graph-node-bar__title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:2ch;font-size:14px;font-weight:600;overflow:hidden}.graph-node-bar__title-en{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:2;min-width:0;font-size:12px;overflow:hidden}.graph-node-bar__link{background:var(--accent-primary);color:var(--accent-fg);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:600}.graph-node-bar__close{color:var(--text-secondary);cursor:pointer;padding:0 var(--space-1);background:0 0;border:none;flex-shrink:0;font-size:18px;line-height:1}.graph-empty{justify-content:center;align-items:center;gap:var(--space-4);height:100%;color:var(--text-secondary);flex-direction:column;font-size:14px;display:flex}.graph-empty p{margin:0}.graph-empty-reset{padding:var(--space-2) var(--space-4);background:var(--accent-primary);color:var(--accent-fg);cursor:pointer;border:none;border-radius:6px;font-size:.875rem;font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.graph-canvas{cursor:grab;width:100%;height:100%;transition:opacity .3s;display:block}.graph-canvas:active{cursor:grabbing}
