.security-graph-container{position:relative;width:100%;height:100%;overflow:hidden;font-family:Inter,system-ui,-apple-system,sans-serif;min-width:320px;min-height:240px}.security-graph-svg{display:block;width:100%;height:100%;cursor:grab}.security-graph-svg:active{cursor:grabbing}.security-graph-node{cursor:pointer;transition:all .2s ease}.security-graph-node:hover{filter:brightness(1.1)}.security-graph-node.selected{filter:drop-shadow(0 0 8px rgba(20,184,166,.6))}.security-graph-node.faded{opacity:.3}.node-bg{transition:all .2s ease;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}.node-glow{opacity:.7}.node-glow,.node-icon{pointer-events:none}.label{font-weight:600;font-size:11px;fill:#2d3748;text-shadow:0 1px 2px hsla(0,0%,100%,.8)}.label,.subtitle{font-family:Inter,system-ui,sans-serif}.subtitle{font-weight:400;font-size:9px;fill:#718096;pointer-events:none}.node-circle{display:none}.edge{cursor:pointer;transition:all .2s ease}.edge:hover{stroke-width:3!important;opacity:1!important}.edge.selected{filter:drop-shadow(0 0 4px rgba(20,184,166,.6))}.edge.faded{opacity:.15}.node.disconnected-component{transition:all .3s ease}.node.disconnected-component:hover{transform:scale(1.05);filter:brightness(1.15) drop-shadow(0 0 8px rgba(59,130,246,.5))}.component-cluster,.edge.disconnected-component{transition:all .3s ease}.component-cluster:hover .node{filter:brightness(1.1)}.compact-layout .node{transition:all .2s ease}.compact-layout .node:hover{transform:translateY(-2px);filter:brightness(1.1) drop-shadow(0 4px 12px rgba(0,0,0,.25))}.component-group{filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.component-group:hover{filter:drop-shadow(0 4px 16px rgba(0,0,0,.15))}.component-background{fill:rgba(59,130,246,.02);stroke:rgba(59,130,246,.1);stroke-width:1;stroke-dasharray:2,2;rx:8;ry:8;transition:all .3s ease}.component-background:hover{fill:rgba(59,130,246,.05);stroke:rgba(59,130,246,.2)}.compact-layout .label{font-size:10px;font-weight:500;text-shadow:0 1px 3px hsla(0,0%,100%,.9)}.compact-layout .subtitle{font-size:8px;opacity:.8}.compact-layout .node:hover .label{font-weight:600;text-shadow:0 2px 4px #fff}.component-separator{stroke:rgba(156,163,175,.3);stroke-width:1;stroke-dasharray:3,3;opacity:.5;transition:opacity .3s ease}.component-separator:hover{opacity:.8}.node.attack-path-node .node-bg{filter:drop-shadow(0 0 8px rgba(239,68,68,.8))!important}.node.attack-path-glow .node-bg{filter:drop-shadow(0 0 12px rgba(239,68,68,.9))!important}.node.attack-path-node.attack-path-highlighted .node-bg{filter:drop-shadow(0 0 12px rgba(239,68,68,1))!important}.edge.attack-path-edge{stroke:#ef4444!important;stroke-width:4px!important;stroke-dasharray:5,5!important;animation:attack-path-flow 2s linear infinite}.edge.attack-path-edge.attack-path-highlighted{stroke:#dc2626!important;stroke-width:6px!important;filter:drop-shadow(0 0 4px rgba(239,68,68,.8))}.edge.attack-path{stroke-dasharray:8,4;animation:attack-path-flow 2s linear infinite}@keyframes attack-path-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:12}}.label{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.security-graph-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:#6b7280}.security-graph-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:security-graph-spin 1s linear infinite;margin-bottom:16px}@keyframes security-graph-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.security-graph-error{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:#ef4444;text-align:center;padding:20px}.security-graph-error-icon{font-size:48px;margin-bottom:16px}.security-graph-error h3{margin:0 0 8px;font-size:18px;font-weight:600}.security-graph-error p{margin:0 0 16px;color:#6b7280;max-width:400px}.security-graph-retry-button{background:#3b82f6;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.security-graph-retry-button:hover{background:#2563eb}.security-graph-tooltip{position:absolute;pointer-events:none;background:rgba(0,0,0,.9);color:#fff;padding:12px;border-radius:8px;font-size:12px;font-family:Inter,system-ui,sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:10000;max-width:300px;line-height:1.4;backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.1)}.security-graph-tooltip strong{font-weight:600}.security-graph-legend{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.security-graph-legend::-webkit-scrollbar{width:6px}.security-graph-legend::-webkit-scrollbar-track{background:transparent}.security-graph-legend::-webkit-scrollbar-thumb{background:rgba(156,163,175,.5);border-radius:3px}.security-graph-legend::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.7)}.legend-toggle{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease;color:inherit}.legend-toggle:hover{background:rgba(156,163,175,.2)}.legend-item{transition:all .2s ease}.legend-item:hover{transform:translateX(2px)}.security-graph-controls button{transition:all .2s ease}.security-graph-controls button:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.security-graph-controls button:active{transform:translateY(0)}.security-graph-controls input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.security-graph-controls input[type=range]::-webkit-slider-track{background:#d1d5db;height:4px;border-radius:2px}.security-graph-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#3b82f6;height:16px;width:16px;border-radius:50%;cursor:pointer}.security-graph-controls input[type=range]::-moz-range-track{background:#d1d5db;height:4px;border-radius:2px;border:none}.security-graph-controls input[type=range]::-moz-range-thumb{background:#3b82f6;height:16px;width:16px;border-radius:50%;cursor:pointer;border:none}.security-graph-minimap{transition:all .2s ease}.security-graph-minimap:hover{box-shadow:0 4px 16px rgba(0,0,0,.25)}.minimap-viewport-rect{transition:all .1s ease}.minimap-edge,.minimap-node{transition:all .2s ease}.security-graph-debug{position:absolute;bottom:4px;left:4px;background:rgba(0,0,0,.7);color:#fff;padding:4px 8px;border-radius:4px;font-size:10px;font-family:Monaco,Menlo,monospace;pointer-events:none;z-index:1001}.security-graph-icon{transition:all .2s ease}.security-graph-icon:hover{transform:scale(1.05)}.node-type-vulnerability{animation:vulnerability-pulse 2s ease-in-out infinite}@keyframes vulnerability-pulse{0%,to{opacity:1}50%{opacity:.7}}.risk-level-critical{filter:drop-shadow(0 0 6px rgba(224,88,88,.5))}.risk-level-high{filter:drop-shadow(0 0 4px rgba(224,124,56,.3))}@media (max-width:768px){.security-graph-controls,.security-graph-legend{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90vw;max-height:80vh;z-index:2000;box-shadow:0 8px 32px rgba(0,0,0,.3)}.security-graph-minimap{width:120px;height:90px;bottom:8px;right:8px}}@media (max-width:480px){.security-graph-controls,.security-graph-legend{width:95vw;height:90vh;padding:12px}.security-graph-minimap{display:none}}[data-theme=dark] .security-graph-tooltip{background:rgba(31,41,55,.95);border-color:rgba(75,85,99,.8)}[data-theme=dark] .security-graph-controls input[type=range]::-webkit-slider-track{background:#4b5563}[data-theme=dark] .security-graph-controls input[type=range]::-moz-range-track{background:#4b5563}.fade-in{animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in-right{animation:slide-in-right .3s ease-out}@keyframes slide-in-right{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.security-graph-container:focus-within{outline:2px solid #3b82f6;outline-offset:2px}button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-contrast:high){.security-graph-tooltip{background:#000;border:2px solid #fff}.edge,.node-circle{stroke-width:3px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.security-graph-controls,.security-graph-debug,.security-graph-legend,.security-graph-minimap{display:none}.security-graph-container{width:100%;height:100vh;background:#fff}.security-graph-svg{background:#fff}}