:root{--seer-fuchsia: #fc0a5e;--seer-purple: #ba38ff;--seer-teal: #54dedb;--seer-yellow: #f5cc52;--seer-orange: #ff9033;--bg-primary: #0d0f16;--bg-secondary: #141825;--bg-card: #191e2e;--bg-hover: #21283b;--bg-zone: #121827;--bg-zone-hover: #1a2234;--text-primary: #f4f6fb;--text-secondary: #bac3d9;--text-muted: #7f8aa6;--text-inverse: #ffffff;--border: #28314a;--border-hover: #3a4666;--border-zone: #2a3450;--color-skill: #4361ee;--color-command: #e63946;--color-agent: #2a9d8f;--color-mcp: #e87a24;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0,0,0,.35);--shadow-md: 0 4px 12px rgba(0,0,0,.45);--shadow-lg: 0 8px 24px rgba(0,0,0,.55);--shadow-zone: 0 2px 10px rgba(0,0,0,.25)}*{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;height:100%;font-family:Poppins,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,kbd,.mono{font-family:Source Code Pro,SF Mono,Monaco,monospace}a{color:var(--text-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--seer-fuchsia)}.app{display:flex;flex-direction:column;height:100vh}.header-bar{padding:.75rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.header-left{display:flex;align-items:center;gap:1rem}.header-back{font-size:.8125rem;color:var(--text-secondary);display:inline-flex;align-items:center;gap:.375rem;transition:color .2s ease}.header-back:hover{color:var(--seer-fuchsia)}.header-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:.75rem}.header-stat{font-size:.75rem;color:var(--text-secondary);font-weight:500}.header-stat strong{color:var(--text-primary);font-weight:700}.main-content{display:flex;flex:1;min-height:0;overflow:hidden}#sidebar{width:280px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:1rem 1rem 1.5rem;overflow-y:auto;flex-shrink:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#sidebar::-webkit-scrollbar{width:5px}#sidebar::-webkit-scrollbar-track{background:transparent}#sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}#sidebar::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:.75rem}.stat{text-align:center;padding:.5rem .375rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);position:relative;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.stat:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.stat:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.stat:nth-child(1):before{background:var(--color-skill)}.stat:nth-child(2):before{background:var(--color-command)}.stat:nth-child(3):before{background:var(--color-agent)}.stat:nth-child(4):before{background:var(--color-mcp)}.stat-num{font-size:1.25rem;font-weight:700;line-height:1.2;color:var(--text-primary)}.stat-label{font-size:.5625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.search-wrapper{position:relative;margin-bottom:.75rem}.search-wrapper .search-icon{position:absolute;left:.625rem;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--text-muted);pointer-events:none}.search-input{width:100%;padding:.4375rem .75rem .4375rem 2rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.8125rem;font-family:inherit;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--seer-fuchsia);box-shadow:0 0 0 3px #fc0a5e14;background:var(--bg-secondary)}.search-input::placeholder{color:var(--text-muted)}.filter-group{margin-bottom:.75rem}.filter-group h3{font-size:.5625rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.1em;margin-bottom:.375rem;font-weight:600}.filter-btn{display:inline-block;padding:.1875rem .625rem;margin:.125rem;border-radius:100px;font-size:.6875rem;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);transition:all .2s ease;font-family:inherit;-webkit-user-select:none;user-select:none}.filter-btn:hover{border-color:var(--border-hover);background:var(--bg-hover)}.filter-btn.active{color:var(--text-inverse);border-color:transparent;box-shadow:0 1px 4px #0000001f}.details-panel{margin-top:.75rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);display:none;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.details-panel h3{font-size:.875rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.detail-row{font-size:.75rem;margin-bottom:.25rem;color:var(--text-secondary);line-height:1.5}.detail-label{font-weight:600;color:var(--text-primary);font-size:.6875rem;text-transform:uppercase;letter-spacing:.03em}.detail-badge{display:inline-block;padding:.0625rem .4375rem;border-radius:4px;font-size:.625rem;margin:.125rem;font-weight:500;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);transition:transform .15s ease;cursor:default}.detail-badge:hover{transform:translateY(-1px)}.legend{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.legend h3{font-size:.5625rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.1em;margin-bottom:.5rem;font-weight:600}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.6875rem;color:var(--text-secondary);margin-bottom:.25rem;padding:.125rem 0}.legend-shape{width:14px;height:14px;flex-shrink:0}.legend-shape.circle{border-radius:50%}.legend-shape.square{border-radius:2px}.legend-shape.diamond{transform:rotate(45deg);width:10px;height:10px;margin:2px;border-radius:2px}.legend-shape.hexagon{clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)}.legend-line{width:24px;height:0;flex-shrink:0}.legend-line.solid{border-top:2px solid var(--text-muted)}.legend-line.dashed{border-top:2px dashed var(--text-muted)}.hint-bar{padding:.375rem 0;margin-top:.5rem;border-top:1px solid var(--border);font-size:.5625rem;color:var(--text-muted);line-height:1.7}.hint-bar kbd{display:inline-block;padding:0 .3125rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;font-size:.5rem;font-weight:500;margin:0 .0625rem;vertical-align:baseline}#canvas-area{flex:1;height:100%;min-height:400px;background:var(--bg-primary);position:relative;overflow:hidden}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);z-index:10;gap:.75rem;transition:opacity .5s ease}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--seer-fuchsia);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:.8125rem;color:var(--text-muted);letter-spacing:.02em}@keyframes spin{to{transform:rotate(360deg)}}.graph-svg{width:100%;height:100%;cursor:grab}.graph-svg:active{cursor:grabbing}.zone-bg{rx:12;ry:12;fill:var(--bg-secondary);stroke:var(--border-zone);stroke-width:1;transition:fill .2s ease}.zone-bg:hover{fill:var(--bg-zone-hover)}.zone-label{font-family:Poppins,sans-serif;font-size:11px;font-weight:700;fill:var(--text-primary);text-transform:uppercase;letter-spacing:.08em}.zone-count{font-family:Poppins,sans-serif;font-size:9px;font-weight:400;fill:var(--text-muted)}.zone-accent{rx:12;ry:12;stroke-width:2;fill:none;opacity:.2}.node-group{cursor:pointer;transition:filter .12s ease;transform-box:fill-box;transform-origin:center}.node-group:hover{filter:drop-shadow(0 0 5px rgba(84,222,219,.28))}.node-group.selected{filter:drop-shadow(0 0 8px rgba(252,10,94,.35))}.node-hit-area{fill:transparent;stroke:none;pointer-events:all}.node-shape{stroke-width:1.5;transition:all .15s ease}.node-group:hover .node-shape{stroke-width:2.2}.node-group.selected .node-shape{stroke-width:2.6}.node-label{font-family:Poppins,sans-serif;font-size:9px;font-weight:500;fill:var(--text-primary);pointer-events:none;text-anchor:middle;opacity:0;transition:opacity .12s ease}.node-label.command-label{font-family:Source Code Pro,monospace;font-size:8px}.node-group:hover .node-label,.node-group.selected .node-label{opacity:1}.edge-line{fill:none;stroke-width:1;opacity:.16;transition:opacity .2s ease,stroke-width .2s ease}.edge-line.skill-edge{stroke:var(--text-muted)}.edge-line.mcp-edge{stroke:var(--color-mcp);stroke-dasharray:4 3}.edge-line.highlighted{opacity:.75;stroke-width:2}.edge-line.dimmed{opacity:.03}.arrow-skill{fill:var(--text-muted)}.arrow-mcp{fill:var(--color-mcp)}.zoom-controls{position:absolute;bottom:1rem;right:1rem;display:flex;flex-direction:column;gap:4px;z-index:5}.zoom-btn{width:32px;height:32px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;font-weight:500;color:var(--text-secondary);transition:all .15s ease;-webkit-user-select:none;user-select:none;font-family:inherit}.zoom-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.graph-tooltip{position:absolute;pointer-events:none;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:.5rem .625rem;box-shadow:var(--shadow-md);font-size:.6875rem;color:var(--text-primary);z-index:20;opacity:0;transition:opacity .15s ease;max-width:200px;will-change:transform,opacity,left,top}.graph-tooltip.visible{opacity:1}.graph-tooltip .tt-name{font-weight:600;margin-bottom:2px}.graph-tooltip .tt-meta{color:var(--text-muted);font-size:.625rem}.view-toggle{display:inline-flex;background:var(--bg-primary);border:1px solid var(--border);border-radius:100px;padding:2px;gap:2px}.view-btn{padding:.25rem 1rem;border:none;border-radius:100px;font-family:Poppins,sans-serif;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;background:transparent;color:var(--text-muted);line-height:1.4}.view-btn:hover:not(.active){color:var(--text-secondary);background:var(--bg-hover)}.view-btn.active{background:var(--seer-fuchsia);color:#fff;box-shadow:0 1px 4px #fc0a5e40}.zone-list-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;margin-bottom:2px;border-radius:6px;cursor:pointer;transition:background .15s ease;font-size:.75rem;color:var(--text-secondary)}.zone-list-item:hover{background:var(--bg-hover)}.zone-list-item.active{background:var(--bg-card);color:var(--text-primary)}.zone-list-accent{width:8px;height:8px;border-radius:50%;flex-shrink:0}.zone-list-name{flex:1;font-weight:500}.zone-list-count{font-size:.625rem;color:var(--text-muted);font-weight:400}.zone-health-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.product-layer{pointer-events:all}.product-zone-card{cursor:pointer;transition:filter .15s ease}.product-zone-card:hover{filter:drop-shadow(0 0 8px rgba(252,10,94,.2))}.product-zone-bg{rx:14;ry:14;fill:var(--bg-secondary);stroke-width:2;opacity:.92;transition:opacity .15s ease,stroke-width .15s ease}.product-zone-card:hover .product-zone-bg{opacity:1;stroke-width:2.5}.product-zone-card.selected .product-zone-bg{opacity:1;stroke-width:3}.pz-label{font-family:Poppins,sans-serif;font-weight:700;fill:var(--text-primary)}.pz-count{font-family:Poppins,sans-serif;font-weight:400;fill:var(--text-muted)}.pz-narrative{font-family:Poppins,sans-serif;font-size:9px;fill:var(--text-secondary)}.pz-health-dot{transition:fill .2s ease}.zone-edge-line{fill:none;stroke:var(--text-muted);opacity:.3;transition:opacity .2s ease,stroke-width .2s ease}.zone-edge-line:hover{opacity:.6}.zone-edge-label{font-family:Poppins,sans-serif;font-size:8px;font-weight:600;fill:var(--text-muted);text-anchor:middle;pointer-events:none}@media (max-width: 768px){.main-content{flex-direction:column}#sidebar{width:100%;max-height:35vh;border-right:none;border-bottom:1px solid var(--border)}#canvas-area{min-height:55vh}.header-right,.hint-bar{display:none}}@media (prefers-reduced-motion: reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
