@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#070a13;--bg-secondary:#090e1a;--bg-tertiary:#0e1525;--bg-hover:#10192d;--text-primary:#f1f5f9;--text-secondary:#7588a3;--text-muted:#576375;--border-color:#1d2330;--border-light:#181d25;--shadow-color:#0000004d;--canvas-bg:#070a13;--canvas-dots:#1d2330;--watermark-color:#ffffff05;--accent-cyan:#20cfdf;--accent-green:#1abc55;--accent-amber:#f59f0a;--accent-red:#f42525;--glow-cyan:0 0 20px #20cfdf26;--glow-green:0 0 12px #1abc554d}[data-theme=light]{--bg-primary:#f6f7f9;--bg-secondary:#edeff2;--bg-tertiary:#e1e4ea;--bg-hover:#d6dae0;--text-primary:#151c28;--text-secondary:#576175;--text-muted:#89909f;--border-color:#cacfd8;--border-light:#dddfe4;--shadow-color:#00000014;--canvas-bg:#f6f7f9;--canvas-dots:#cacfd8;--watermark-color:#00000005;--accent-cyan:#1295a1;--accent-green:#178c42;--accent-amber:#cb850b;--accent-red:#d41111;--glow-cyan:0 0 12px #1295a11f;--glow-green:0 0 8px #178c4233}html,body,#root{width:100%;height:100%;font-family:JetBrains Mono,monospace;overflow:hidden}.app{background:var(--bg-primary);flex-direction:column;width:100%;height:100%;display:flex}.branding-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080c16d9;border-bottom:1px solid #20cfdf1a;justify-content:space-between;align-items:center;padding:10px 24px;display:flex;position:relative;box-shadow:0 1px 12px #20cfdf0d}.archbyte-brand{align-items:center;gap:10px;display:flex}.archbyte-logo{font-size:20px}.archbyte-logo-img{width:auto;height:22px}.archbyte-name{color:var(--text-primary);letter-spacing:-.3px;font-size:20px;font-weight:700}.archbyte-tagline{color:var(--text-muted);border-left:1px solid var(--border-color);margin-left:4px;padding-left:14px;font-size:13px}.branding-account{align-items:center;gap:10px;display:flex}.account-tier-badge{letter-spacing:.3px;text-transform:uppercase;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600}.account-tier-badge.premium{color:#fff;background:#672eb8}.account-tier-badge.free{color:var(--text-muted);background:#182543}.account-email{color:var(--text-muted);font-size:12px;position:relative}.account-pro-tag{letter-spacing:.5px;color:#a65eed;vertical-align:middle;background:#a65eed26;border:1px solid #a65eed66;border-radius:3px;margin-left:6px;padding:1px 4px;font-size:9px;font-weight:700}.project-info-wrapper{align-items:center;display:inline-flex;position:relative}.project-info-trigger{color:var(--text-secondary);cursor:pointer;border:1px solid #0000;border-left:1px solid var(--border-color);background:0 0;border-radius:0;margin-left:10px;padding:3px 10px 3px 14px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;transition:all .2s}.project-info-trigger:hover{color:var(--text-primary);background:var(--bg-tertiary)}.project-info-popup{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);z-index:100;width:340px;box-shadow:0 8px 32px var(--shadow-color);background:#090e1af2;border-radius:12px;padding:16px;animation:.15s ease-out popupFadeIn;position:absolute;top:calc(100% + 8px);left:0}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.project-info-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.project-info-name{color:var(--text-primary);letter-spacing:-.3px;font-size:15px;font-weight:700}.project-info-lang{color:#4dd9e6;text-transform:uppercase;letter-spacing:.5px;background:#20cfdf1f;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.project-info-desc{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin:0 0 14px;padding-bottom:14px;font-size:12px;line-height:1.5}.project-info-stats{flex-wrap:wrap;gap:6px;display:flex}.project-info-stat{background:var(--bg-tertiary);border-radius:8px;flex-direction:column;flex:1;align-items:center;min-width:56px;padding:8px 12px;display:flex}.project-info-stat-value{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.project-info-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:9px}.project-info-badge{color:#f6c155;background:#f2a60d1a;border-radius:10px;margin-top:10px;padding:3px 10px;font-size:10px;font-weight:600;display:inline-block}.project-info-vscode{color:#75b3f0;cursor:pointer;background:#1a80e61a;border:1px solid #1a80e633;border-radius:8px;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.project-info-vscode:hover{color:#a3ccf5;background:#1a80e633;border-color:#1a80e666}.project-info-vscode svg{flex-shrink:0}[data-theme=light] .project-info-popup{background:#f9fafbf5}[data-theme=light] .project-info-vscode{color:#1466b8;background:#1a80e614;border-color:#1a80e633}[data-theme=light] .project-info-vscode:hover{color:#0f4d8a;background:#1a80e626;border-color:#1a80e659}.brand-attribution{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;text-decoration:none;transition:color .2s;display:flex}.brand-attribution:hover{color:var(--text-primary)}.brand-avatar{object-fit:cover;border:2px solid #20cfdf4d;border-radius:50%;width:28px;height:28px;transition:border-color .2s,box-shadow .2s}.brand-attribution:hover .brand-avatar{border-color:var(--accent-cyan);box-shadow:0 0 12px #20cfdf4d}.brand-attribution-link{color:var(--accent-cyan);font-weight:600}.brand-attribution:hover .brand-attribution-link{color:#63dee9}.toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:6px 16px;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:16px;display:flex}.toolbar-right{gap:8px}.toolbar-right .dropdown-menu{left:auto;right:0}.toolbar-section{border-right:1px solid #2d3853;flex-direction:column;gap:3px;padding-right:12px;display:flex}.toolbar-section:last-child{border-right:none;padding-right:0}.toolbar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:600}.toolbar-section-items,.toolbar-group{align-items:center;gap:6px;display:flex}.toolbar-btn-icon{background:var(--bg-tertiary);border:1px solid var(--border-color);text-align:center;width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;font-family:system-ui,sans-serif;font-size:15px;font-weight:600;line-height:1;transition:all .2s;display:flex}.toolbar-btn-icon:hover{background:var(--bg-hover);color:var(--text-primary);box-shadow:var(--glow-cyan)}.toolbar-btn-icon:disabled{opacity:.5;cursor:not-allowed}.toolbar-analyzing{color:var(--accent-cyan,#20cfdf);background:#20cfdf1a;border:1px solid #20cfdf4d;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.analyzing-pulse{background:var(--accent-cyan,#20cfdf);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pulse-analyzing}@keyframes pulse-analyzing{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.toolbar-error-btn{font-size:11px;animation:2s ease-in-out infinite pulse-error;color:#ef4444!important;background:#ef444426!important;border-color:#ef444466!important}.toolbar-error-btn:hover{background:#ef444440!important}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.toolbar-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);height:32px;color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);box-shadow:var(--glow-cyan)}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#20cfdf26}.premium-btn{position:relative;border:1px solid #a65eed80!important}.premium-btn.premium-locked{opacity:.4;cursor:not-allowed}.premium-btn.premium-locked:hover{opacity:.55}.premium-btn:after{content:"PRO";letter-spacing:.5px;color:#a65eed;font-size:7px;font-weight:700;line-height:1;position:absolute;top:3px;right:4px}.dropdown-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.dropdown-item.active{color:var(--accent-cyan);background:var(--bg-hover)}.shortcut-item{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 14px;font-size:12px;display:flex}.shortcut-item kbd{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;margin-right:12px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.dropdown-menu{background:var(--bg-secondary);border:1px solid var(--border-color);z-index:50;min-width:160px;box-shadow:0 4px 16px var(--shadow-color);border-radius:8px;margin-top:4px;padding:4px;animation:.15s ease-out fade-in-up;position:absolute;top:100%;left:0}.dropdown-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 10px 4px;font-size:9px;font-weight:600}.dropdown-separator{background:var(--border-color);height:1px;margin:4px 0}.panel-btn{cursor:pointer;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;transition:all .2s;display:inline-flex}.panel-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.panel-btn.cyan{color:var(--accent-cyan);background:#20cfdf1a;border-color:#20cfdf4d}.panel-btn.cyan:hover{background:#20cfdf33}.panel-btn.green{color:var(--accent-green);background:#1abc551a;border-color:#1abc554d}.panel-btn.green:hover{background:#1abc5533}.panel-btn.amber{color:var(--accent-amber);background:#f59f0a1a;border-color:#f59f0a4d}.panel-btn.amber:hover{background:#f59f0a33}.panel-btn.red{color:var(--accent-red);background:#f425251a;border-color:#f425254d}.panel-btn.red:hover{background:#f4252533}.panel-btn.small{flex:0;padding:3px 8px;font-size:10px}.panel-close-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:inline-flex}.panel-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.save-btn{background:var(--accent-cyan);color:var(--bg-primary);cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;transition:background .2s}.save-btn:hover{background:#4dd9e6}.save-btn:disabled{opacity:.5;cursor:not-allowed}.discard-btn{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:12px;transition:all .2s}.discard-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.discard-btn:disabled{opacity:.5;cursor:not-allowed}.tech-badge{color:var(--accent-cyan);background:#20cfdf1a;border:1px solid #20cfdf4d;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-flex}.active-badge{color:var(--accent-cyan);background:#20cfdf26;border:1px solid #20cfdf4d;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.validation-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.validation-badge.pass{color:var(--accent-green);background:#1abc5526;border:1px solid #1abc554d}.validation-badge.fail{color:var(--accent-red);background:#f4252526;border:1px solid #f425254d}.ops-tabs{background:var(--bg-tertiary);border-radius:6px;gap:2px;padding:2px;display:flex}.ops-tab{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;transition:all .2s}.ops-tab.active{background:var(--bg-hover);color:var(--text-primary)}.ops-tab:hover{color:var(--text-primary)}.dropdown-item.disabled{opacity:.4;cursor:default;pointer-events:none}.watermark{color:var(--watermark-color);pointer-events:none;z-index:0;-webkit-user-select:none;user-select:none;letter-spacing:-2px;font-size:72px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.environment-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);align-items:stretch;gap:4px;height:48px;padding:0 16px;display:flex}.env-tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:0 20px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;transition:all .2s;display:flex}.env-tab:hover{background:var(--bg-hover)}.env-tab.selected{border-bottom-color:var(--env-color);color:var(--text-primary);box-shadow:0 2px 12px color-mix(in srgb, var(--env-color) 20%, transparent)}.env-indicator{background:var(--env-color);opacity:.4;border-radius:50%;width:8px;height:8px;transition:opacity .2s}.env-tab.selected .env-indicator{opacity:1;animation:3s infinite breathe}.env-label{font-weight:600}.env-meta{color:var(--text-muted);border-left:1px solid var(--border-color);margin-left:8px;padding-left:8px;font-size:11px;font-weight:400}.component-info-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);color:var(--text-primary);z-index:10;width:280px;box-shadow:0 2px 12px var(--shadow-color);background:#090e1ae6;border-radius:12px;padding:16px;font-size:12px;position:absolute;top:16px;left:16px}.node-details-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);color:var(--text-primary);z-index:15;width:300px;max-height:calc(100vh - 200px);box-shadow:0 2px 12px var(--shadow-color);background:#090e1ae6;border-radius:12px;padding:16px;font-size:12px;position:absolute;top:16px;left:16px;overflow-y:auto}.node-details-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;display:flex}.node-details-title{color:var(--text-primary);font-size:14px;font-weight:600}.node-details-type{color:var(--text-muted);text-transform:uppercase;margin-top:2px;font-size:10px}.node-details-type-row{color:var(--text-muted);text-transform:uppercase;align-items:center;gap:8px;margin-top:2px;font-size:10px;display:flex}.node-details-type-row .panel-btn{text-transform:none;padding:2px 8px;font-size:10px}.node-details-section{margin-bottom:12px}.node-details-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:10px;font-weight:600}.node-details-path{color:var(--text-secondary);background:var(--bg-tertiary);word-break:break-all;border:1px solid var(--border-light);border-radius:4px;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.node-details-tech-stack{flex-wrap:wrap;gap:4px;display:flex}.node-details-connections{flex-direction:column;gap:4px;display:flex}.connection-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.connection-item-detailed{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:6px;margin-bottom:6px;padding:8px 10px}.connection-header{color:var(--text-primary);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.connection-arrow{color:var(--text-muted)}.connection-target{color:var(--text-primary)}.connection-label{color:var(--text-secondary);margin-top:4px;padding-left:18px;font-size:11px;line-height:1.4}.node-details-actions{border-top:1px solid var(--border-color);gap:8px;margin-top:12px;padding-top:12px;display:flex}.env-badge{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;border-radius:20px;margin-bottom:12px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-block}.env-details{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin-bottom:12px;padding:10px 0}.env-detail-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.env-detail-label{color:var(--text-muted);text-transform:uppercase;font-size:10px}.env-detail-value{color:var(--text-secondary);font-size:11px;font-weight:500}.component-list{flex-direction:column;gap:6px;display:flex}.component-list-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:10px;font-weight:600}.component-item{background:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;transition:all .2s;display:flex}.component-item:hover{background:var(--bg-hover);border-color:var(--accent-cyan);box-shadow:var(--glow-cyan);transform:translate(2px)}.component-name{color:var(--text-primary);font-size:12px;font-weight:600}.component-path{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px}.git-info{align-items:center;gap:8px;margin-top:4px;display:flex}.git-branch{color:var(--accent-cyan);background:#20cfdf1a;border:1px solid #20cfdf4d;border-radius:4px;align-items:center;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-flex}.git-hash{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:4px;align-items:center;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-flex}.no-git-info{color:var(--text-muted);text-align:center;padding:12px;font-style:italic}.canvas-container{flex:1;position:relative}.react-flow{background:var(--canvas-bg)!important}.react-flow__background{background:var(--canvas-bg)}.react-flow__controls{background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:0 2px 8px var(--shadow-color);border-radius:8px}.react-flow__controls-button{background:var(--bg-secondary);border-color:var(--border-color);fill:#fff;color:#fff}.react-flow__controls-button:hover{background:var(--bg-hover);fill:var(--text-primary)}.arch-node{text-align:left;border:1.5px solid;border-radius:12px;flex-direction:column;gap:6px;min-width:130px;padding:14px 16px;font-size:12px;font-weight:500;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #00000040,inset 0 1px #ffffff0d}.arch-node:before{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);height:1px;position:absolute;top:0;left:0;right:0}.arch-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000059,inset 0 1px #ffffff0d}.arch-node .node-type-icon{opacity:.35;font-size:16px;line-height:1;position:absolute;top:10px;right:12px}.arch-node .node-content{flex:1;min-width:0}.arch-node .label{letter-spacing:-.2px;margin-bottom:2px;padding-right:20px;font-size:13px;font-weight:700}.arch-node .sublabel{opacity:.7;font-size:10px}.arch-node .node-desc{opacity:.5;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:9px;line-height:1.3;display:-webkit-box;overflow:hidden}.arch-node .node-tech-row{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.arch-node .node-tech-pill{opacity:.7;letter-spacing:.2px;text-transform:uppercase;background:#ffffff0f;border:1px solid #ffffff14;border-radius:3px;padding:1px 6px;font-size:8px;font-weight:600}.arch-node.presentation{color:#c6d9ec;background:linear-gradient(145deg,#122436 0%,#152e47 100%);border-color:#2680d999}.arch-node.presentation:hover{border-color:#3c8cdd;box-shadow:0 0 24px #2680d933,0 8px 24px #00000059}.arch-node.presentation .node-tech-pill{color:#99bfe6;border-color:#2680d940}.arch-node.application{color:#ecd9c6;background:linear-gradient(145deg,#322415 0%,#432e19 100%);border-color:#e88c3099}.arch-node.application:hover{border-color:#eb9947;box-shadow:0 0 24px #e88c3033,0 8px 24px #00000059}.arch-node.application .node-tech-pill{color:#e6bf99;border-color:#e88c3040}.arch-node.data{color:#c9e8d4;background:linear-gradient(145deg,#14291b 0%,#183923 100%);border-color:#2eb85c99}.arch-node.data:hover{border-color:#3c6;box-shadow:0 0 24px #2eb85c33,0 8px 24px #00000059}.arch-node.data .node-tech-pill{color:#9fdfb5;border-color:#2eb85c40}.arch-node.external{color:#ddcde4;background:linear-gradient(145deg,#27192e 0%,#331e3e 100%);border-color:#9f53c699}.arch-node.external:hover{border-color:#a6c;box-shadow:0 0 24px #9f53c633,0 8px 24px #00000059}.arch-node.external .node-tech-pill{color:#c8a6d9;border-color:#9f53c640}.arch-node.deployment{color:#e4cdcd;background:linear-gradient(145deg,#2e1919 0%,#3e1e1e 100%);border-color:#c339}.arch-node.deployment:hover{border-color:#d14747;box-shadow:0 0 24px #c333,0 8px 24px #00000059}.arch-node.deployment .node-tech-pill{color:#df9f9f;border-color:#cc333340}.react-flow__resize-control{border-radius:2px!important}.react-flow__resize-control.handle{width:8px!important;height:8px!important}.react-flow__node.selected .arch-node{box-shadow:0 0 0 2px #20cfdf66,0 4px 16px #0006}.arch-node.active{animation:2s infinite pulse-border}@keyframes pulse-border{0%,to{box-shadow:0 0 #1abc5566}50%{box-shadow:0 0 0 8px #1abc5500}}.arch-node.highlighted{z-index:100;animation:1.5s ease-in-out highlight-glow;transform:scale(1.05);box-shadow:0 0 20px #20cfdf99,0 0 40px #20cfdf4d}@keyframes highlight-glow{0%{transform:scale(1);box-shadow:0 0 #20cfdf00}20%{transform:scale(1.08);box-shadow:0 0 30px #20cfdfcc,0 0 60px #20cfdf66}to{transform:scale(1.05);box-shadow:0 0 20px #20cfdf99,0 0 40px #20cfdf4d}}.node-actions-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);box-shadow:0 4px 12px var(--shadow-color);z-index:10;background:#090e1ae6;border-radius:10px;min-width:180px;padding:12px;position:absolute;top:60px;right:16px}.node-actions-title{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin-bottom:10px;font-size:11px;font-weight:600;overflow:hidden}.node-actions-buttons{gap:8px;margin-bottom:8px;display:flex}.node-actions-hint{color:var(--text-muted);text-align:center;border-top:1px solid var(--border-color);padding-top:8px;font-size:10px}.lock-icon{margin-right:6px}.arch-node.locked{opacity:.7;cursor:not-allowed}.arch-node.locked:after{content:"🔒";font-size:10px;position:absolute;top:4px;right:4px}.hidden-nodes-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);box-shadow:0 4px 12px var(--shadow-color);z-index:10;background:#090e1ae6;border-radius:10px;min-width:200px;max-width:280px;max-height:300px;padding:12px;position:absolute;bottom:60px;right:16px;overflow-y:auto}.hidden-nodes-title{color:var(--text-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;font-size:12px;font-weight:600;display:flex}.hidden-nodes-list{flex-direction:column;gap:6px;display:flex}.hidden-node-item{background:var(--bg-tertiary);border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.hidden-node-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:11px;overflow:hidden}.status-bar{background:var(--bg-secondary);border-top:1px solid var(--border-color);color:var(--text-secondary);grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 20px;font-size:12px;display:grid}.status-left{justify-self:start;align-items:center;gap:16px;display:flex}.status-center{justify-self:center;align-items:center;display:flex}.status-indicator{align-items:center;gap:8px;display:flex}.status-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px;animation:2s infinite breathe}.status-dot.disconnected{background:var(--accent-red);animation:none}@keyframes breathe{0%,to{opacity:1}50%{opacity:.4}}.status-right{justify-self:end;align-items:center;gap:20px;display:flex}.layer-dropdown-item{transition:opacity .2s;gap:10px!important}.layer-dropdown-item.hidden-layer{opacity:.4}.layer-toggle-indicator{color:var(--text-muted);margin-left:auto;font-size:10px}.legend-color{border:2px solid;border-radius:4px;width:16px;height:16px}.legend-color.presentation{background:#132639;border-color:#2680d9}.legend-color.application{background:#362617;border-color:#e88c30}.legend-color.data{background:#162d1d;border-color:#2eb85c}.legend-color.external{background:#2a1b32;border-color:#9f53c6}.legend-color.deployment{background:#321b1b;border-color:#c33}.loading{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-cyan);border-radius:50%;width:24px;height:24px;margin-right:12px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.agent-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);color:var(--text-primary);z-index:10;max-width:300px;box-shadow:0 2px 12px var(--shadow-color);background:#090e1ae6;border-radius:10px;padding:12px 16px;font-size:11px;position:absolute;bottom:60px;left:16px}.agent-panel-title{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:600}.agent-item{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:6px 0;display:flex}.agent-item:last-child{border-bottom:none}.agent-dot{border-radius:50%;width:6px;height:6px}.agent-dot.active{background:var(--accent-green);animation:1.5s infinite breathe}.agent-name{color:var(--text-primary);font-weight:500}.agent-target{color:var(--text-muted);margin-left:auto}.flow-dropdown{min-width:240px}.flow-dot-inline{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.toolbar-btn.has-active-flow{color:var(--accent-cyan);background:#20cfdf1a;border-color:#20cfdf4d;gap:6px}.toolbar-btn.has-new-flow{position:relative}.flow-new-indicator{background:var(--accent-green);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:5px;animation:1.2s ease-in-out infinite flow-new-blink;display:inline-block}@keyframes flow-new-blink{0%,to{opacity:1}50%{opacity:.2}}.toolbar-btn.has-hidden{color:var(--accent-amber)}.flow-category-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:6px;padding:6px 10px 4px;font-size:9px;font-weight:600;display:flex}.flow-dropdown-item{gap:10px!important}.flow-dropdown-item.active{color:var(--accent-cyan)!important;background:#20cfdf1a!important}.flow-dropdown-name{flex:1}.flow-clear{color:var(--accent-red)!important}.flow-progress-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:15;max-width:90vw;box-shadow:0 4px 20px var(--shadow-color), var(--glow-cyan);background:#090e1af2;border-radius:12px;align-items:center;gap:12px;padding:10px 16px;animation:.3s ease-out slide-up;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.flow-progress-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:2s infinite breathe}.flow-progress-name{color:var(--text-primary);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:600}.flow-progress-steps{gap:4px;max-width:500px;display:flex;overflow-x:auto}.flow-progress-step{background:var(--bg-tertiary);opacity:.4;color:var(--text-secondary);white-space:nowrap;border-left:2px solid #0000;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:10px;transition:all .3s}.flow-progress-step.active{opacity:1;background:var(--bg-hover);color:var(--text-primary)}.flow-progress-step.current{box-shadow:0 1px 4px var(--shadow-color);font-weight:600}.flow-progress-controls{flex-shrink:0;gap:4px;margin-left:4px;display:flex}.flow-progress-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;font-size:12px;transition:all .2s;display:flex}.flow-progress-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.flow-progress-btn.stop{color:var(--accent-red);border-color:#f425254d}.flow-progress-btn.stop:hover{background:#f4252526}.flow-hud-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#070a13d9;justify-content:center;align-items:center;animation:.2s ease-out flowHudFadeIn;display:flex;position:fixed;inset:0}@keyframes flowHudFadeIn{0%{opacity:0}to{opacity:1}}.flow-hud-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;width:90vw;max-width:1400px;height:85vh;display:flex;overflow:hidden;box-shadow:0 0 60px #20cfdf14,0 8px 32px #0006}.flow-hud-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.flow-hud-title{color:var(--text-primary);letter-spacing:.3px;align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.flow-hud-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.flow-hud-controls{align-items:center;gap:6px;display:flex}.flow-hud-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .15s;display:flex}.flow-hud-btn:hover{background:var(--bg-hover);border-color:var(--accent-cyan)}.flow-hud-close{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:600;transition:all .15s;display:flex}.flow-hud-close:hover{border-color:var(--accent-red);color:var(--accent-red);background:#f4252526}.flow-hud-description{color:var(--text-muted);border-bottom:1px solid var(--border-color);flex-shrink:0;padding:10px 20px;font-size:12px}.flow-hud-canvas{flex:1;min-height:0;position:relative}.flow-hud-canvas .react-flow__controls{bottom:10px;left:10px}.flow-hud-steps{border-top:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:8px;padding:14px 20px;display:flex;overflow-x:auto}.flow-hud-step{color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border-color);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;transition:all .3s;display:flex}.flow-hud-step.active{color:var(--text-primary);border-color:currentColor}.flow-hud-step.current{box-shadow:0 0 12px}.flow-hud-step-num{width:18px;height:18px;color:var(--text-primary);background:var(--border-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;transition:background .3s;display:inline-flex}.git-repo-badge{color:#bf8cd9;background:#2a1b32;border:1px solid #9f53c64d;border-radius:4px;align-items:center;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.git-repo-badge:hover{background:#382442;border-color:#9f53c680}.save-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);border:1px solid var(--accent-cyan);box-shadow:var(--glow-cyan);z-index:100;background:#20cfdf26;border-radius:10px;align-items:center;gap:16px;padding:12px 20px;animation:.3s ease-out slide-up;display:flex;position:fixed;bottom:55px;left:50%;transform:translate(-50%)}@keyframes slide-up{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.save-panel-text{font-size:13px;font-weight:500}.react-flow__node.selected{outline:2px solid var(--accent-cyan);outline-offset:2px}.react-flow__handle{background:var(--accent-cyan);border:2px solid var(--bg-primary);opacity:0;width:10px;height:10px;transition:opacity .2s}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:1}.react-flow__handle:hover{transform:scale(1.2)}.clipboard-indicator{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color);z-index:100;pointer-events:none;border-radius:6px;padding:8px 16px;font-size:12px;animation:2s ease-in-out fade-in-out;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}@keyframes fade-in-out{0%,to{opacity:0;transform:translate(-50%)translateY(10px)}20%,80%{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scan-line{0%{top:-100%}to{top:200%}}.stats-overlay{background:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:200px;box-shadow:var(--glow-cyan);border-radius:12px;padding:12px;position:absolute;top:60px;right:16px}[data-drag-handle]{cursor:grab}[data-drag-handle]:active{cursor:grabbing}.stats-overlay-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stats-overlay-title{text-transform:uppercase;letter-spacing:1px;color:var(--accent-cyan);font-size:10px;font-weight:600}.stats-scan-info{border-bottom:1px solid var(--border-color);color:var(--text-muted);flex-wrap:wrap;gap:6px 12px;margin-bottom:8px;padding:8px 0;font-size:11px;display:flex}.scan-info-item{white-space:nowrap}.scan-info-item:not(:last-child):after{content:"|";opacity:.3;margin-left:12px}.stats-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.stat-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:6px 8px;overflow:hidden}.stat-value{color:var(--text-primary);font-size:16px;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:2px;font-size:9px}.stat-card.highlight{border-color:var(--accent-cyan);box-shadow:var(--glow-cyan)}.validation-panel{background:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:280px;max-height:calc(100vh - 200px);box-shadow:0 2px 12px var(--shadow-color);border-radius:12px;padding:16px;position:absolute;top:60px;right:16px;overflow-y:auto}.validation-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.validation-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:600}.violation-item{background:var(--bg-tertiary);cursor:pointer;border-left:3px solid;border-radius:8px;margin-bottom:6px;padding:10px;transition:all .2s}.violation-item:hover{background:var(--bg-hover)}.violation-item.error{border-left-color:var(--accent-red)}.violation-item.warn{border-left-color:var(--accent-amber)}.violation-rule{text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:600}.violation-message{color:var(--text-secondary);font-size:11px}.ops-panel{background:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:280px;max-height:calc(100vh - 200px);box-shadow:0 2px 12px var(--shadow-color);border-radius:12px;position:absolute;top:60px;right:16px;overflow-y:auto}.audit-panel{background:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:340px;max-height:calc(100vh - 200px);box-shadow:0 2px 12px var(--shadow-color);border-radius:12px;flex-direction:column;padding:0;display:flex;position:absolute;top:60px;right:16px;overflow-y:auto}.audit-header{justify-content:space-between;align-items:center;padding:12px 16px 0;display:flex}.audit-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:600}.audit-tabs{border-bottom:1px solid var(--border-color);gap:4px;margin:12px 0 0;padding:0 8px;display:flex}.audit-tab{color:var(--text-muted);text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:10px;font-weight:600;transition:all .2s}.audit-tab:hover{color:var(--text-secondary)}.audit-tab.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}.audit-panel>:not(.audit-header):not(.audit-tabs){padding:0 16px}.audit-summary{background:var(--bg-tertiary);text-align:center;border-radius:8px;margin:12px 0;padding:10px}.audit-metrics{background:var(--bg-tertiary);border-radius:8px;margin-bottom:12px;padding:10px}.audit-metric-row{color:var(--text-secondary);justify-content:space-between;padding:6px 0;font-size:11px;display:flex}.audit-metric-label{flex:1}.audit-section{margin-bottom:12px}.audit-section-title{text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;padding:0 4px;font-size:10px;font-weight:600}.audit-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:6px;padding:8px 4px;transition:all .2s;display:flex}.audit-section-header:hover{background:rgba(185, 75%, 50%, .08)}.audit-section-toggle{color:#20cfdf;justify-content:center;align-items:center;width:12px;font-size:8px;transition:transform .2s;display:inline-flex}.audit-section-content{flex-direction:column;gap:6px;padding:0 4px 8px;animation:.2s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.audit-issue{background:var(--bg-tertiary);cursor:pointer;border-left:3px solid;border-radius:8px;margin-bottom:6px;padding:10px;transition:all .2s}.audit-issue:hover{background:var(--bg-hover)}.audit-issue.error{border-left-color:var(--accent-red)}.audit-issue.warn{border-left-color:var(--accent-amber)}.audit-issue-rule{color:var(--text-primary);margin-bottom:4px;font-size:11px;font-weight:600}.audit-issue-message{color:var(--text-secondary);font-size:10px;line-height:1.4}.audit-components{margin-top:12px}.audit-component-item{background:var(--bg-tertiary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:10px;font-size:11px;transition:all .2s;display:flex}.audit-component-item:hover{background:var(--bg-hover)}.audit-component-info{flex:1;min-width:0}.audit-component-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.audit-badge{border-radius:4px;margin-left:8px;padding:4px 8px;font-size:9px;font-weight:600;display:inline-block}.audit-badge.pass{background:var(--accent-green);color:#000}.audit-badge.fail{background:var(--accent-red);color:#fff}.ops-header{justify-content:space-between;align-items:center;padding:10px 12px 0;display:flex}.ops-section{padding:12px}.ops-empty{color:var(--text-muted);text-align:center;padding:20px 12px;font-size:11px}.ops-hint{color:var(--accent-cyan);opacity:.7;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:10px;display:block}.wf-item{border:1px solid var(--border-color);border-radius:8px;margin-bottom:6px;overflow:hidden}.wf-header{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 10px;transition:background .15s;display:flex}.wf-header:hover{background:var(--bg-hover)}.wf-header-left{align-items:center;gap:6px;display:flex;overflow:hidden}.wf-expand{color:var(--text-muted);flex-shrink:0;width:12px;font-size:11px}.wf-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.wf-tag{color:var(--text-muted);background:var(--bg-tertiary);border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:8px}.wf-status{flex-shrink:0;font-size:9px;font-weight:600}.wf-status.completed{color:var(--accent-green)}.wf-status.running{color:var(--accent-amber)}.wf-status.failed{color:var(--accent-red)}.wf-detail{border-top:1px solid var(--border-color);padding:0 10px 10px}.wf-desc{color:var(--text-muted);padding:8px 0 6px;font-size:10px}.wf-steps{flex-direction:column;gap:3px;display:flex}.wf-step{align-items:center;gap:6px;padding:3px 0;font-size:10px;display:flex}.wf-step-icon{text-align:center;width:14px;font-size:10px}.wf-step.completed .wf-step-icon{color:var(--accent-green)}.wf-step.running .wf-step-icon{color:var(--accent-amber)}.wf-step.failed .wf-step-icon{color:var(--accent-red)}.wf-step.pending .wf-step-icon{color:var(--text-muted)}.wf-step-id{color:var(--text-secondary)}.wf-step.completed .wf-step-id{color:var(--text-muted)}.wf-progress{align-items:center;gap:8px;margin-top:6px;display:flex}.wf-progress-bar{background:var(--bg-tertiary);border-radius:2px;flex:1;height:4px;overflow:hidden}.wf-progress-fill{background:var(--accent-cyan);border-radius:2px;height:100%;transition:width .3s}.wf-progress-label{color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;font-weight:600}.wf-steps-preview{color:var(--text-muted);padding:4px 0;font-family:JetBrains Mono,monospace;font-size:10px}.wf-run-hint{color:var(--accent-cyan);opacity:.6;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:9px}.wf-actions{gap:6px;margin-top:8px;display:flex}.wf-actions .panel-btn{flex:1}.wf-error{color:var(--accent-red);background:#f425251a;border:1px solid #f4252540;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:11px}.change-indicator{z-index:10;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;animation:2s ease-in-out infinite change-pulse;display:flex;position:absolute;top:-6px;right:-6px}.change-indicator.change-added{background:var(--accent-green);color:#fff}.change-indicator.change-modified{background:var(--accent-amber);color:#000}.change-indicator.change-removed{background:var(--accent-red);color:#fff}.arch-node.change-added{box-shadow:0 0 0 2px var(--accent-green), 0 0 12px #1abc554d}.arch-node.change-modified{box-shadow:0 0 0 2px var(--accent-amber), 0 0 12px #f59f0a4d}.arch-node.change-removed{box-shadow:0 0 0 2px var(--accent-red), 0 0 12px #f425254d;opacity:.6}@keyframes change-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.chat-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);z-index:20;width:350px;height:400px;box-shadow:0 4px 24px var(--shadow-color), var(--glow-cyan);background:#090e1af2;border-radius:12px;flex-direction:column;animation:.2s ease-out slide-up-chat;display:flex;position:absolute;bottom:16px;right:16px}@keyframes slide-up-chat{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chat-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.chat-title{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-cyan);font-size:11px;font-weight:600}.chat-messages{flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow-y:auto}.chat-empty{color:var(--text-muted);text-align:center;padding:40px 20px;font-size:12px}.chat-message{word-wrap:break-word;white-space:pre-wrap;border-radius:10px;max-width:85%;padding:8px 12px;font-size:12px;line-height:1.5}.chat-message.user{color:var(--text-primary);background:#20cfdf26;border:1px solid #20cfdf40;align-self:flex-end}.chat-message.assistant{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);align-self:flex-start}.chat-message-content{font-family:JetBrains Mono,monospace}.chat-cursor{background:var(--accent-cyan);vertical-align:text-bottom;width:6px;height:14px;margin-left:2px;animation:.8s step-end infinite chat-blink;display:inline-block}@keyframes chat-blink{0%,to{opacity:1}50%{opacity:0}}.chat-input-bar{border-top:1px solid var(--border-color);flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.chat-input{background:var(--bg-tertiary);border:1px solid var(--border-color);height:32px;color:var(--text-primary);border-radius:6px;outline:none;flex:1;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:12px;transition:border-color .2s}.chat-input::placeholder{color:var(--text-muted)}.chat-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 2px #20cfdf26}.chat-send-btn,.chat-stop-btn{border:1px solid var(--border-color);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.chat-send-btn{color:var(--accent-cyan);background:#20cfdf26;border-color:#20cfdf4d}.chat-send-btn:hover:not(:disabled){background:#20cfdf40}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-stop-btn{color:var(--accent-red);background:#f4252526;border-color:#f425254d;font-size:10px}.chat-stop-btn:hover{background:#f4252540}[data-theme=light] .arch-node{box-shadow:0 2px 12px #00000014,inset 0 1px #fff9}[data-theme=light] .arch-node:hover{box-shadow:0 4px 20px #0000001f,inset 0 1px #fff9}[data-theme=light] .arch-node:before{background:linear-gradient(90deg,#0000,#fff6,#0000)}[data-theme=light] .arch-node .node-tech-pill{background:#0000000a;border-color:#0000001a}[data-theme=light] .arch-node.presentation{color:#19334d;background:linear-gradient(145deg,#e9f0f7 0%,#d7e6f4 100%);border-color:#428cd780}[data-theme=light] .arch-node.presentation:hover{border-color:#428cd7;box-shadow:0 0 20px #428cd726,0 4px 20px #0000001f}[data-theme=light] .arch-node.presentation .node-tech-pill{color:#2e669e}[data-theme=light] .arch-node.application{color:#452e17;background:linear-gradient(145deg,#f7f0e8 0%,#f5e6d6 100%);border-color:#df802080}[data-theme=light] .arch-node.application:hover{border-color:#df8020;box-shadow:0 0 20px #df802026,0 4px 20px #0000001f}[data-theme=light] .arch-node.application .node-tech-pill{color:#8f5924}[data-theme=light] .arch-node.data{color:#1c4028;background:linear-gradient(145deg,#e6f4eb 0%,#d5f1de 100%);border-color:#2e9e5380}[data-theme=light] .arch-node.data:hover{border-color:#2e9e53;box-shadow:0 0 20px #2e9e5326,0 4px 20px #0000001f}[data-theme=light] .arch-node.data .node-tech-pill{color:#2a6f41}[data-theme=light] .arch-node.external{color:#392145;background:linear-gradient(145deg,#f1eaf5 0%,#e9daf1 100%);border-color:#9540bf80}[data-theme=light] .arch-node.external:hover{border-color:#9540bf;box-shadow:0 0 20px #9540bf26,0 4px 20px #0000001f}[data-theme=light] .arch-node.external .node-tech-pill{color:#743d8f}[data-theme=light] .arch-node.deployment{color:#452121;background:linear-gradient(145deg,#f7eded 0%,#f4dddd 100%);border-color:#be373780}[data-theme=light] .arch-node.deployment:hover{border-color:#be3737;box-shadow:0 0 20px #be373726,0 4px 20px #0000001f}[data-theme=light] .arch-node.deployment .node-tech-pill{color:#813131}[data-theme=light] .legend-color.presentation{background:#d9e6f2;border-color:#428cd7}[data-theme=light] .legend-color.application{background:#f2e6d9;border-color:#df8020}[data-theme=light] .legend-color.data{background:#dbf0e2;border-color:#2e9e53}[data-theme=light] .legend-color.external{background:#e8ddee;border-color:#9540bf}[data-theme=light] .legend-color.deployment{background:#f0dbdb;border-color:#be3737}[data-theme=light] .branding-header{background:#f6f7f9eb;border-bottom-color:#1295a126;box-shadow:0 1px 12px #1295a10f}[data-theme=light] .component-info-panel,[data-theme=light] .node-details-panel,[data-theme=light] .node-actions-panel,[data-theme=light] .hidden-nodes-panel,[data-theme=light] .agent-panel,[data-theme=light] .chat-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f7f9eb}[data-theme=light] .flow-progress-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f7f9f2}[data-theme=light] .save-panel{background:#1295a11a}[data-theme=light] ::-webkit-scrollbar-track{background:var(--bg-secondary)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#bec4cf}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#a1a9ba}[data-theme=light] .git-repo-badge{color:#739;background:#efe7f3;border-color:#9540bf4d}[data-theme=light] .git-repo-badge:hover{background:#e4d6eb;border-color:#9540bf80}[data-theme=light] .toolbar-btn.active{background:#1295a11a}[data-theme=light] .flow-progress-btn.stop{border-color:#d4111140}[data-theme=light] .flow-progress-btn.stop:hover{background:#d411111a}[data-theme=light] .react-flow__controls-button{background:var(--bg-secondary);border-color:var(--border-color);fill:var(--text-primary);color:var(--text-primary)}[data-theme=light] .react-flow__controls-button:hover{background:var(--bg-hover)}[data-theme=light] .react-flow__handle{border-color:var(--bg-primary)}[data-theme=light] .react-flow__node.selected .arch-node{box-shadow:0 0 0 2px #1295a159,0 4px 12px #0000001f}.health-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:320px;max-height:70vh;box-shadow:0 4px 24px var(--shadow-color);background:#090e1aeb;border-radius:12px;position:absolute;top:16px;right:16px;overflow-y:auto}.health-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.health-title{color:var(--text-primary);font-size:13px;font-weight:700}.health-graph-summary{border-bottom:1px solid var(--border-color);gap:4px;padding:10px 14px;display:flex}.health-stat{background:var(--bg-tertiary);border-radius:6px;flex-direction:column;flex:1;align-items:center;padding:6px;display:flex}.health-stat-value{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.health-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:9px}.health-list{max-height:350px;padding:4px 0;overflow-y:auto}.health-item{cursor:pointer;align-items:center;gap:10px;padding:8px 14px;transition:background .15s;display:flex}.health-item:hover{background:var(--bg-hover)}.health-item-score{text-align:center;min-width:32px;font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.health-item-info{flex:1;min-width:0}.health-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.health-item-badges{gap:4px;margin-top:2px;display:flex}.health-flag{text-transform:uppercase;letter-spacing:.3px;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600}.health-flag.orphan{color:var(--accent-amber);background:#f59f0a26;border:1px solid #f59f0a4d}.health-flag.hub{color:#a65eed;background:#a65eed26;border:1px solid #a65eed4d}.health-flag.cycle{color:var(--accent-red);background:#f4252526;border:1px solid #f425254d}.health-flag.ok{color:var(--accent-green);background:#1abc5526;border:1px solid #1abc554d}.health-item-connections{color:var(--text-muted);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10px}.arch-node.health-green{border-color:var(--accent-green)!important;box-shadow:0 0 8px #1abc554d!important}.arch-node.health-amber{border-color:var(--accent-amber)!important;box-shadow:0 0 8px #f59f0a4d!important}.arch-node.health-red{border-color:var(--accent-red)!important;box-shadow:0 0 12px #f4252566!important}.arch-node.health-orphan{border-style:dashed!important}.arch-node.health-cycle{animation:2s ease-in-out infinite health-pulse!important}@keyframes health-pulse{0%,to{box-shadow:0 0 8px #f425254d}50%{box-shadow:0 0 20px #f4252599}}.health-hub-badge{color:#fff;letter-spacing:.3px;z-index:2;background:#a65eed;border-radius:4px;padding:2px 5px;font-size:8px;font-weight:700;position:absolute;top:-8px;right:-8px}.pending-change-badge{background:var(--accent-amber);color:#070a13;cursor:pointer;z-index:2;border-radius:8px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;position:absolute;top:-6px;right:-6px}.pending-sticky-note{color:#38332e;background:#fceec5;border:1px solid #e0c285;border-radius:4px;margin:0 -2px 4px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.5}.pending-sticky-header{text-transform:uppercase;letter-spacing:.3px;color:#74593e;border-bottom:1px solid #dfca9f;margin-bottom:3px;padding-bottom:3px;font-size:8px;font-weight:700}.pending-file-row{align-items:center;gap:3px;display:flex}.pending-file-event{flex-shrink:0;width:8px;font-weight:700}.pending-file-row.add .pending-file-event{color:#1f7a40}.pending-file-row.change .pending-file-event{color:#ad661f}.pending-file-row.unlink .pending-file-event{color:#c32222}.pending-file-name{text-overflow:ellipsis;white-space:nowrap;color:#464039;overflow:hidden}.pending-file-more{color:#998066;margin-top:2px;font-size:7px}.arch-node.has-pending-changes{box-shadow:0 0 0 2px #f59f0a66,0 0 12px #f59f0a26}.changelog-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);z-index:10;width:340px;max-height:65vh;box-shadow:0 4px 24px var(--shadow-color);background:#090e1aeb;border-radius:12px;position:absolute;top:16px;right:16px;overflow-y:auto}.changelog-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.changelog-title{color:var(--text-primary);font-size:13px;font-weight:700}.changelog-summary{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.changelog-summary-total{color:var(--text-secondary);font-weight:600}.changelog-badge{border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.changelog-badge.added{color:var(--accent-green);background:#1abc5526}.changelog-badge.modified{color:var(--accent-amber);background:#f59f0a26}.changelog-badge.removed{color:var(--accent-red);background:#f4252526}.changelog-list{padding:4px 0}.changelog-entry{border-bottom:1px solid var(--border-light)}.changelog-entry:last-child{border-bottom:none}.changelog-entry-header{cursor:pointer;align-items:center;gap:8px;padding:8px 14px;transition:background .15s;display:flex}.changelog-entry-header:hover{background:var(--bg-hover)}.changelog-entry-time{color:var(--text-muted);min-width:50px;font-family:JetBrains Mono,monospace;font-size:11px}.changelog-entry-stats{flex:1;align-items:center;gap:6px;display:flex}.changelog-entry-files{color:var(--text-secondary);font-size:11px}.changelog-expand{color:var(--text-muted);font-size:10px}.changelog-entry-details{border-top:1px solid var(--border-light);margin:0 8px;padding:4px 14px 10px}.changelog-diff-section{margin-top:6px}.changelog-diff-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:9px;font-weight:700}.changelog-diff-label.added{color:var(--accent-green)}.changelog-diff-label.modified{color:var(--accent-amber)}.changelog-diff-label.removed{color:var(--accent-red)}.changelog-diff-item{color:var(--text-secondary);border-left:2px solid var(--border-color);padding:2px 0 2px 8px;font-size:11px}.changelog-entry-meta{color:var(--text-muted);text-align:right;margin-top:6px;font-size:10px}.changelog-dot{background:var(--accent-green);border-radius:50%;width:6px;height:6px;margin-left:4px;animation:2s infinite breathe;display:inline-block}.rules-config-toggle{border-top:1px solid var(--border-color);justify-content:center;padding:8px 14px;display:flex}.rules-config{border-top:1px solid var(--border-color);padding:8px 14px 12px}.rules-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:700}.rule-config-item{background:var(--bg-tertiary);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;display:flex;position:relative}.rule-config-item.custom{border-left:3px solid #20cfdf80}.rule-config-name{color:var(--text-primary);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.rule-config-desc{color:var(--text-muted);width:100%;font-size:10px}.rule-config-matcher{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:10px}.rule-level-badge{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:8px;font-weight:700}.rule-level-badge.error{color:var(--accent-red);background:#f4252526}.rule-level-badge.warn{color:var(--accent-amber);background:#f59f0a26}.rule-type-badge{text-transform:uppercase;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:8px;font-weight:700}.rule-type-badge.custom{color:var(--accent-cyan);background:#20cfdf26}.rule-delete-btn{min-width:auto;position:absolute;top:50%;right:4px;transform:translateY(-50%);flex:0!important;padding:2px 6px!important}.rule-add-form{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-top:10px;padding:10px}.rule-add-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:700}.rule-input{background:var(--bg-secondary);border:1px solid var(--border-color);width:100%;height:28px;color:var(--text-primary);border-radius:4px;outline:none;margin-bottom:4px;padding:0 8px;font-family:JetBrains Mono,monospace;font-size:11px}.rule-input:focus{border-color:var(--accent-cyan)}.rule-input::placeholder{color:var(--text-muted)}.rule-add-row{align-items:center;gap:6px;display:flex}.rule-arrow{color:var(--text-muted);flex-shrink:0;font-size:12px}.rule-select{background:var(--bg-secondary);border:1px solid var(--border-color);height:28px;color:var(--text-primary);border-radius:4px;outline:none;flex:1;padding:0 8px;font-family:JetBrains Mono,monospace;font-size:11px}.rules-save-row{justify-content:flex-end;margin-top:10px;display:flex}[data-theme=light] .health-panel,[data-theme=light] .changelog-panel{background:#f9fafbf5}[data-theme=light] .arch-node.health-green{box-shadow:0 0 6px #178c4240!important}.rules-config-modal{background:var(--bg-primary);border:1px solid var(--border-color);z-index:10000;border-radius:12px;flex-direction:column;width:95%;max-width:650px;max-height:75vh;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 25px 80px #000c}.rules-modal-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px;display:flex}.rules-modal-title{color:var(--text-primary);letter-spacing:.5px;font-size:14px;font-weight:600}.rules-modal-tabs{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;display:flex}.rules-modal-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:11px;transition:all .2s}.rules-modal-tab:hover{color:var(--text-primary);background:rgba(185, 75%, 50%, .05)}.rules-modal-tab.active{color:#20cfdf;border-bottom-color:#20cfdf}.rules-modal-content{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex:1;padding:16px;overflow-y:auto}[data-theme=light] .arch-node.health-amber{box-shadow:0 0 6px #cb850b40!important}[data-theme=light] .arch-node.health-red{box-shadow:0 0 8px #d411114d!important}.changes-banner{background:#f59f0a14;border-bottom:1px solid #f59f0a40;align-items:center;gap:10px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:12px;animation:.25s ease-out changes-banner-slide-in;display:flex}@keyframes changes-banner-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.changes-banner-pulse{background:var(--accent-amber);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.8s ease-in-out infinite changes-pulse}@keyframes changes-pulse{0%,to{opacity:1;box-shadow:0 0 #f59f0a66}50%{opacity:.6;box-shadow:0 0 0 4px #f59f0a00}}.changes-banner-text{color:var(--accent-amber);letter-spacing:.02em;white-space:nowrap;font-weight:600}.changes-banner-actions{gap:6px;margin-left:4px;display:flex}.changes-banner-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;transition:all .15s}.changes-banner-btn.quick{color:var(--accent-cyan);background:#20cfdf1f;border-color:#20cfdf4d}.changes-banner-btn.quick:hover{background:#20cfdf38;border-color:#20cfdf80}.changes-banner-btn.full{color:#aa7de8;background:#8d52e01f;border-color:#8d52e04d}.changes-banner-btn.full:hover{background:#8d52e038;border-color:#8d52e080}.changes-banner-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:16px;line-height:1;transition:color .15s}.changes-banner-dismiss:hover{color:var(--text-primary)}.changes-banner-file-count{color:var(--text-muted);margin-left:4px;font-size:11px;font-weight:400}.changes-banner-components{flex-wrap:wrap;gap:4px;display:flex}.changes-component-chip{color:var(--accent-amber);cursor:pointer;white-space:nowrap;background:#f59f0a1a;border:1px solid #f59f0a40;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;transition:background .15s;display:inline-flex}.changes-component-chip:hover{background:#f59f0a33}.changes-component-chip.unmapped{color:var(--text-muted);background:var(--bg-tertiary);border-color:var(--border-color);cursor:default}.changes-component-count{text-align:center;background:#f59f0a33;border-radius:3px;min-width:14px;padding:0 4px;font-size:9px;font-weight:700}.changes-event-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.changes-event-dot.new{background:var(--accent-green)}.changes-event-dot.mod{background:var(--accent-amber)}.changes-event-dot.del{background:var(--accent-red)}[data-theme=light] .changes-banner{background:#cb850b0f;border-bottom-color:#cb850b33}[data-theme=light] .changes-banner-text{color:var(--accent-amber)}[data-theme=light] .changes-banner-btn.quick{color:var(--accent-cyan);background:#1295a11a;border-color:#1295a140}[data-theme=light] .changes-banner-btn.full{color:#672eb8;background:#7333cc1a;border-color:#7333cc40}.deep-drill-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);z-index:16;background:#090e1aeb;border:1px solid #1abc5533;border-radius:12px;width:400px;max-width:calc(100vw - 32px);max-height:80vh;padding:0;font-size:12px;position:absolute;top:16px;left:16px;overflow-y:auto;box-shadow:0 4px 24px #0006,0 0 0 1px #1abc5514}.deep-drill-header{background:#1abc550d;border-bottom:1px solid #1abc5526;border-radius:12px 12px 0 0;justify-content:space-between;align-items:flex-start;padding:14px 16px;display:flex}.deep-drill-title{color:var(--accent-green);font-size:14px;font-weight:600}.deep-drill-subtitle{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:10px}.deep-drill-loading{color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;padding:40px 16px;font-size:12px;display:flex}.deep-drill-body{padding:8px 0}.deep-drill-meta{color:var(--text-muted);padding:4px 16px 8px;font-size:10px}.dd-section{border-top:1px solid var(--border-light)}.dd-section-header{width:100%;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:10px 16px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;transition:color .15s;display:flex}.dd-section-header:hover{color:var(--text-primary)}.dd-section-chevron{color:var(--text-muted);font-size:10px}.dd-section-content{padding:0 16px 12px}.dd-metric-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px;display:grid}.dd-metric-card{background:var(--bg-tertiary);border:1px solid var(--border-light);text-align:center;border-radius:8px;padding:10px}.dd-metric-value{color:var(--accent-cyan);font-size:18px;font-weight:700;line-height:1.2}.dd-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:9px}.dd-lang-badges{flex-wrap:wrap;gap:4px;display:flex}.dd-lang-badge{color:var(--accent-cyan);background:#20cfdf1a;border:1px solid #20cfdf33;border-radius:4px;padding:2px 8px;font-size:10px;display:inline-block}.dd-key-files{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.dd-key-file-item{align-items:center;gap:8px;padding:4px 0;display:flex}.dd-role-badge{color:var(--accent-green);text-transform:uppercase;white-space:nowrap;text-align:center;background:#1abc551a;border:1px solid #1abc5533;border-radius:3px;min-width:60px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-block}.dd-file-path{color:var(--text-secondary);word-break:break-all;font-family:JetBrains Mono,monospace;font-size:10px}.dd-subsection-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 6px;font-size:10px;font-weight:600}.dd-exports{flex-wrap:wrap;gap:4px;display:flex}.dd-export-name{color:var(--accent-amber);background:#f59f0a1a;border:1px solid #f59f0a33;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-block}.dd-dep-list{flex-wrap:wrap;gap:4px;display:flex}.dd-dep-badge{background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-secondary);border-radius:4px;padding:2px 8px;font-size:10px;display:inline-block}.dd-dep-badge.categorized{color:var(--accent-cyan);background:#20cfdf14;border-color:#20cfdf26}.dd-dep-badge.dev{opacity:.7}.dd-dep-more{color:var(--text-muted);padding:2px 4px;font-size:10px}.dd-pattern-group{margin-bottom:10px}.dd-pattern-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.dd-pattern-label{color:var(--text-primary);font-size:11px;font-weight:500}.dd-pattern-count{color:var(--text-muted);background:var(--bg-tertiary);border-radius:3px;padding:1px 6px;font-size:10px}.dd-pattern-matches{flex-direction:column;gap:2px;display:flex}.dd-pattern-match{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;flex-direction:column;padding:4px 8px;display:flex}.dd-match-file{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.dd-match-content{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:10px;overflow:hidden}.dd-connection-item{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;display:flex}.dd-conn-arrow{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.dd-conn-name{color:var(--text-primary);font-size:11px;font-weight:500}.dd-conn-type{color:var(--text-muted);background:var(--bg-hover);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px}.dd-file-tree{max-height:200px;font-family:JetBrains Mono,monospace;font-size:10px;overflow-y:auto}.dd-tree-entry{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:1px 0;overflow:hidden}.dd-tree-entry.dir{color:var(--accent-cyan)}.dd-tree-icon{margin-right:2px;font-size:10px}[data-theme=light] .deep-drill-panel{background:#f6f7f9f2;border-color:#178c4233}[data-theme=light] .deep-drill-header{background:#178c420d;border-bottom-color:#178c4226}[data-theme=light] .dd-metric-value{color:var(--accent-cyan)}.sessions-panel{background:var(--bg-panel,#0b111ef2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle,#252a37);z-index:100;border-radius:12px;flex-direction:column;max-height:calc(100vh - 90px);transition:width .25s,max-height .25s;display:flex;position:absolute;top:60px;right:16px;overflow:hidden;box-shadow:0 8px 32px #0006}.sessions-resize-handle{z-index:10;position:absolute}.sessions-resize-handle:hover,.sessions-resize-handle:active{background:var(--accent-cyan,#20cfdf);opacity:.4}.sessions-resize-left{cursor:ew-resize;border-radius:3px;width:6px;height:100%;top:0;left:-3px}.sessions-resize-bottom{cursor:ns-resize;border-radius:3px;height:6px;bottom:-3px;left:12px;right:12px}.sessions-resize-corner{cursor:nesw-resize;border-radius:3px;width:12px;height:12px;bottom:-4px;left:-4px}.sessions-header{border-bottom:1px solid var(--border-subtle,#252a37);background:var(--accent-cyan,#20cfdf);cursor:grab;background:linear-gradient(135deg,#20cfdf1f,#0000);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sessions-header-actions{align-items:center;gap:4px;display:flex}.sessions-expand-btn{color:var(--text-secondary,#999);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px;line-height:1;transition:color .15s,background .15s}.sessions-expand-btn:hover{color:var(--text-primary,#e8eaed);background:#182239}.sessions-title{color:var(--text-primary,#e8eaed);letter-spacing:.5px;font-size:14px;font-weight:600}.sessions-category-filter{border-bottom:1px solid var(--border-light);flex-wrap:wrap;gap:4px;padding:6px 14px;display:flex}.sessions-category-btn{background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;border:1px solid #0000;border-radius:3px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;transition:all .15s}.sessions-category-btn:hover{color:var(--text-secondary);background:var(--bg-hover)}.sessions-category-btn.active{color:var(--text-primary);border-color:var(--border-color);background:var(--bg-hover)}.sessions-cat-implementation.active{border-color:var(--accent-cyan);color:var(--accent-cyan)}.sessions-cat-exploration.active{border-color:var(--accent-amber);color:var(--accent-amber)}.sessions-cat-conversation.active{border-color:var(--accent-green);color:var(--accent-green)}.sessions-selector{border-bottom:1px solid var(--border-subtle,#252a37);align-items:center;gap:8px;padding:10px 14px;display:flex}.sessions-select{background:var(--bg-elevated,#121a2b);color:var(--text-primary,#e8eaed);border:1px solid var(--border-subtle,#292f3d);cursor:pointer;border-radius:6px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:12px}.sessions-select:focus{border-color:var(--accent-cyan,#20cfdf)}.sessions-summary{border-bottom:1px solid var(--border-subtle,#252a37);align-items:center;gap:12px;padding:8px 14px;display:flex}.sessions-summary-item{align-items:baseline;gap:4px;display:flex}.sessions-summary-value{color:var(--text-primary,#e8eaed);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.sessions-summary-label{color:var(--text-muted,#666);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.sessions-summary-success{color:var(--accent-green,#1abc55)}.sessions-summary-error{color:var(--accent-red,#f42525)}.sessions-status{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.sessions-status-success{color:var(--accent-green);background:#1abc5526}.sessions-status-error{color:var(--accent-red);background:#f4252526}.sessions-status-running{color:var(--accent-cyan);background:#20cfdf26}.sessions-status-partial{color:var(--accent-amber,#f59f0a);background:#f59f0a26}.sessions-content{flex:1;min-height:200px;padding:8px;overflow:auto}.sessions-loading,.sessions-empty{height:120px;color:var(--text-muted,#666);justify-content:center;align-items:center;font-size:13px;display:flex}.sessions-empty code{background:var(--bg-elevated,#121a2b);color:var(--accent-cyan);border-radius:4px;padding:2px 6px;font-size:12px}.session-timeline{position:relative;overflow:auto hidden}.session-timeline-svg{display:block}.session-timeline-axis-label{fill:var(--text-muted,#666);font-family:JetBrains Mono,monospace;font-size:9px}.session-timeline-phase-label{fill:var(--text-secondary,#999);font-size:11px;font-weight:500}.session-timeline-bar-label{fill:#fff;pointer-events:none;font-size:10px;font-weight:500}.session-timeline-bar{transition:opacity .15s}.session-timeline-bar:hover rect{opacity:1!important}@keyframes session-pulse{0%,to{opacity:.4}50%{opacity:1}}.session-timeline-pulse{animation:1.5s ease-in-out infinite session-pulse}.session-timeline-tooltip{border:1px solid var(--border-subtle,#292f3d);pointer-events:none;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0e1525f2;border-radius:8px;min-width:160px;padding:8px 12px;position:absolute;transform:translate(-50%)translateY(-100%);box-shadow:0 4px 16px #0006}.session-timeline-tooltip-title{color:var(--text-primary,#e8eaed);margin-bottom:4px;font-size:12px;font-weight:600}.session-timeline-tooltip-row{color:var(--text-secondary,#999);justify-content:space-between;gap:12px;font-size:11px;line-height:1.6;display:flex}.session-timeline-tooltip-row span:last-child{color:var(--text-primary,#e8eaed);font-variant-numeric:tabular-nums}.session-status-success{color:var(--accent-green,#1abc55)}.session-status-error{color:var(--accent-red,#f42525)}.session-status-running{color:var(--accent-cyan,#20cfdf)}.session-status-skipped{color:var(--text-muted,#666)}.session-run-detail{border-top:1px solid var(--border-subtle,#252a37);max-height:300px;padding:12px 14px;overflow-y:auto}.session-run-detail-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.session-run-detail-status{border-radius:50%;flex-shrink:0;width:8px;height:8px}.session-run-detail-title{color:var(--text-primary,#e8eaed);flex:1;margin:0;font-size:14px;font-weight:600}.session-run-detail-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.session-run-detail-field{flex-direction:column;gap:2px;display:flex}.session-run-detail-label{color:var(--text-muted,#666);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.session-run-detail-value{color:var(--text-primary,#e8eaed);font-variant-numeric:tabular-nums;font-size:12px}.session-run-detail-section{margin-bottom:10px}.session-run-detail-section-title{color:var(--text-secondary,#999);text-transform:uppercase;letter-spacing:.5px;margin:0 0 6px;font-size:11px;font-weight:600}.session-run-detail-tokens{flex-direction:column;gap:4px;display:flex}.session-run-detail-token-bar{align-items:center;gap:8px;height:20px;display:flex}.session-run-detail-token-label{color:var(--text-muted,#666);flex-shrink:0;width:44px;font-size:10px}.session-run-detail-token-fill{opacity:.8;border-radius:3px;flex:1;height:6px;transition:width .3s}.session-run-detail-token-count{color:var(--text-primary,#e8eaed);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;width:64px;font-size:11px}.session-run-detail-cost{color:var(--accent-amber,#f59f0a);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.session-run-detail-tools{flex-direction:column;gap:3px;display:flex}.session-run-detail-tool{background:var(--bg-elevated,#121a2b);border-radius:4px;align-items:center;gap:6px;padding:3px 6px;font-size:11px;display:flex}.session-run-detail-tool-status.success{color:var(--accent-green)}.session-run-detail-tool-status.error{color:var(--accent-red)}.session-run-detail-tool-name{color:var(--text-primary,#e8eaed);flex:1;font-family:JetBrains Mono,monospace}.session-run-detail-tool-duration{color:var(--text-muted,#666);font-variant-numeric:tabular-nums}.session-run-detail-error-title{color:var(--accent-red)!important}.session-run-detail-error{color:var(--accent-red);white-space:pre-wrap;word-break:break-word;background:#f4252514;border:1px solid #f4252533;border-radius:6px;max-height:80px;margin:0;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:11px;overflow-y:auto}.session-run-detail-timestamps{color:var(--text-muted,#666);border-top:1px solid var(--border-subtle,#252a37);gap:16px;margin-top:8px;padding-top:8px;font-size:10px;display:flex}.sessions-tabs{border-bottom:1px solid var(--border-subtle,#252a37);gap:0;padding:0 14px;display:flex}.sessions-tab{color:var(--text-secondary,#999);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-family:inherit;font-size:12px;font-weight:500;transition:color .15s,border-color .15s}.sessions-tab.active{color:var(--accent-cyan,#20cfdf);border-bottom-color:var(--accent-cyan,#20cfdf)}.sessions-tab:hover:not(.active){color:var(--text-primary,#e8eaed)}.sessions-project-meta{color:var(--text-muted,#666);border-bottom:1px solid var(--border-subtle,#252a37);flex-wrap:wrap;gap:12px;padding:6px 14px;font-size:11px;display:flex}.sessions-project-meta span{font-family:JetBrains Mono,monospace;font-size:10px}.session-run-artifact{background:var(--bg-elevated,#0b0f19);border:1px solid var(--border-subtle,#252a37);border-radius:8px;overflow:hidden}.session-run-artifact-content{max-height:400px;color:var(--text-primary,#e8eaed);padding:12px 16px;font-size:12px;line-height:1.6;overflow-y:auto}.session-run-artifact-content h1,.session-run-artifact-content h2,.session-run-artifact-content h3,.session-run-artifact-content h4{color:var(--text-primary,#e8eaed);margin:12px 0 6px;font-size:13px;font-weight:600}.session-run-artifact-content h1{font-size:16px}.session-run-artifact-content h2{font-size:14px}.session-run-artifact-content p{margin:6px 0}.session-run-artifact-content ul,.session-run-artifact-content ol{margin:6px 0;padding-left:20px}.session-run-artifact-content li{margin:2px 0}.session-run-artifact-content code{color:var(--accent-cyan,#20cfdf);background:#151e32;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.session-run-artifact-content pre{border:1px solid var(--border-subtle,#252a37);background:#090d15;border-radius:6px;margin:8px 0;padding:10px 12px;overflow-x:auto}.session-run-artifact-content pre code{color:var(--text-primary,#e8eaed);background:0 0;padding:0}.session-run-artifact-content blockquote{border-left:3px solid var(--accent-cyan,#20cfdf);color:var(--text-secondary,#999);margin:8px 0;padding:4px 12px}.session-run-artifact-content a{color:var(--accent-cyan,#20cfdf);text-decoration:none}.session-run-artifact-content a:hover{text-decoration:underline}.session-run-artifact-toggle{color:var(--text-secondary,#999);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;font-family:inherit;font-size:11px;font-weight:600;transition:color .15s;display:flex}.session-run-artifact-toggle:hover{color:var(--text-primary,#e8eaed)}.session-logs-view{flex-direction:column;gap:4px;padding:4px;display:flex}.session-logs-empty{height:120px;color:var(--text-muted,#666);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;font-size:13px;display:flex}.session-logs-empty code{background:var(--bg-elevated,#121a2b);color:var(--accent-cyan);border-radius:4px;padding:2px 6px;font-size:11px}.session-logs-group{border:1px solid var(--border-subtle,#252a37);border-radius:8px;overflow:hidden}.session-logs-group-header{background:var(--bg-elevated,#0f1524);cursor:pointer;width:100%;color:var(--text-primary,#e8eaed);text-align:left;border:none;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:12px;transition:background .15s;display:flex}.session-logs-group-header:hover{background:#151e32}.session-logs-group-arrow{color:var(--text-muted,#666);width:10px;font-size:10px}.session-logs-group-id{color:var(--accent-cyan,#20cfdf);font-family:JetBrains Mono,monospace;font-size:11px}.session-logs-group-time{color:var(--text-muted,#666);font-variant-numeric:tabular-nums;font-size:11px}.session-logs-group-count{color:var(--text-secondary,#999);margin-left:auto;font-size:10px}.session-logs-group-run{color:var(--accent-green,#1abc55);font-family:JetBrains Mono,monospace;font-size:10px}.session-logs-entries{max-height:300px;padding:4px 0;overflow-y:auto}.session-logs-entry{align-items:baseline;gap:8px;padding:2px 12px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5;display:flex}.session-logs-entry:hover{background:#0f1524}.session-logs-entry-empty{color:var(--text-muted,#666);justify-content:center;padding:8px;font-style:italic}.session-logs-entry-time{color:var(--text-muted,#666);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.session-logs-entry-tool{flex-shrink:0;min-width:72px;font-size:10px;font-weight:600}.session-logs-entry-detail{color:var(--text-secondary,#999);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.session-logs-tool-cyan{color:var(--accent-cyan,#20cfdf)}.session-logs-tool-green{color:var(--accent-green,#1abc55)}.session-logs-tool-amber{color:var(--accent-amber,#f59f0a)}.session-logs-tool-purple{color:#95d}.session-logs-tool-muted{color:var(--text-muted,#666)}.session-logs-tool-default{color:var(--text-secondary,#999)}[data-theme=light] .sessions-panel{background:#fafafaf2;border-color:#d9d9d9}[data-theme=light] .sessions-header{background:linear-gradient(135deg,#20cfdf14,#0000)}[data-theme=light] .sessions-select{color:#10192d;background:#fff;border-color:#d9d9d9}[data-theme=light] .session-timeline-tooltip{background:#fafafaf2;border-color:#d9d9d9}[data-theme=light] .session-run-detail-tool{background:#f2f2f2}.session-transcript{flex-direction:column;gap:6px;display:flex}.session-transcript-filters{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.session-transcript-agent-select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.session-transcript-type-toggles{flex-wrap:wrap;gap:4px;display:flex}.session-transcript-type-btn{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-light);cursor:pointer;opacity:.5;border-radius:3px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px;transition:opacity .15s}.session-transcript-type-btn.active{opacity:1;color:var(--text-primary)}.session-transcript-type-btn.session-transcript-type-user.active{border-color:#308ce880}.session-transcript-type-btn.session-transcript-type-assistant.active{border-color:#1abc5580}.session-transcript-type-btn.session-transcript-type-thinking.active{border-color:#a347d180}.session-transcript-type-btn.session-transcript-type-tool_use.active{border-color:#20cfdf80}.session-transcript-type-btn.session-transcript-type-tool_result.active{border-color:#f59f0a80}.session-transcript-type-btn.session-transcript-type-system.active{border-color:var(--border-color)}.session-transcript-count{color:var(--text-muted);padding:2px 0;font-size:10px}.session-transcript-events{flex-direction:column;gap:2px;display:flex}.session-transcript-event{border-left:3px solid #0000;border-radius:4px;padding:6px 8px;font-size:12px;line-height:1.4}.session-transcript-event-user{background:#308ce80f;border-left-color:#308ce8}.session-transcript-event-assistant{border-left-color:var(--accent-green);background:#1abc550f}.session-transcript-event-thinking{cursor:pointer;background:#a347d10a;border-left-color:#a347d1}.session-transcript-event-tool_use{border-left-color:var(--accent-cyan);cursor:pointer;background:#20cfdf0f}.session-transcript-event-tool_result{border-left-color:var(--accent-amber);cursor:pointer;background:#f59f0a0a}.session-transcript-event-system{border-left-color:var(--border-color);background:0 0}.session-transcript-event-meta{align-items:center;gap:6px;margin-bottom:3px;display:flex}.session-transcript-time{color:var(--text-muted);min-width:64px;font-family:JetBrains Mono,monospace;font-size:10px}.session-transcript-badge{white-space:nowrap;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px}.transcript-badge-orchestrator{color:var(--accent-cyan);background:#20cfdf26}.transcript-badge-explorer{color:var(--accent-amber);background:#f59f0a26}.transcript-badge-planner{color:var(--accent-green);background:#1abc5526}.transcript-badge-tester{color:#a347d1;background:#a347d126}.transcript-badge-git{color:var(--accent-red);background:#f4252526}.transcript-badge-docker{color:#308ce8;background:#308ce826}.transcript-badge-general{background:var(--bg-tertiary);color:var(--text-secondary)}.session-transcript-type-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:9px}.session-transcript-tool-badge{color:var(--accent-cyan);background:#20cfdf1f;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px}.session-transcript-expand{color:var(--text-muted);margin-left:auto;font-size:8px}.session-transcript-text{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-family:JetBrains Mono,monospace;font-size:12px}.session-transcript-collapsible.collapsed{text-overflow:ellipsis;white-space:nowrap;max-height:1.4em;overflow:hidden}.session-transcript-system-text{color:var(--text-muted);font-style:italic}.session-transcript-error{color:var(--accent-red);font-weight:600}.session-transcript-success{color:var(--accent-green)}.session-transcript-load-more{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;text-align:center;border-radius:4px;margin-top:4px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.session-transcript-load-more:hover{background:var(--bg-hover);color:var(--text-primary)}.sessions-summary-cost{color:var(--accent-amber)}.sessions-payload-btn{border:1px solid var(--border-color);color:var(--accent-cyan);cursor:pointer;background:0 0;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px}.sessions-payload-btn:hover{background:var(--bg-hover)}.session-payload{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;margin:4px 8px;overflow:hidden}.session-payload-header{color:var(--text-secondary);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:6px 10px;font-size:11px;display:flex}.session-payload-table{max-height:200px;overflow:auto}.session-payload-table table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:10px}.session-payload-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-light);background:var(--bg-secondary);padding:4px 8px;font-size:9px;font-weight:500;position:sticky;top:0}.session-payload-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);padding:3px 8px}.session-payload-path{text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.session-payload-time{color:var(--text-muted);white-space:nowrap}.session-payload-agent{color:var(--accent-cyan);white-space:nowrap}[data-theme=light] .session-transcript-event-user{background:#308ce80a}[data-theme=light] .session-transcript-event-assistant{background:#1abc550a}[data-theme=light] .session-transcript-event-thinking{background:#a347d108}[data-theme=light] .session-transcript-event-tool_use{background:#20cfdf0a}[data-theme=light] .session-transcript-event-tool_result{background:#f59f0a08}[data-theme=light] .session-payload{background:#fff}.session-graph{width:100%;height:100%;min-height:280px;position:relative}.session-graph-canvas{background:var(--bg-primary);border-radius:6px;width:100%;height:100%;display:block}.session-graph-tooltip{pointer-events:none;border:1px solid var(--border-color);z-index:10;background:#0e1525f2;border-radius:5px;max-width:220px;padding:6px 10px;position:absolute}.session-graph-tooltip-label{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;overflow:hidden}.session-graph-tooltip-meta{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:9px}.session-graph-tooltip-dirs{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.session-graph-dir-tag{color:var(--text-secondary);border:1px solid;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:8px}.session-graph-tooltip-connected{color:var(--text-muted);margin-top:3px;font-family:JetBrains Mono,monospace;font-size:8px;font-style:italic}.session-graph-legend{color:var(--text-muted);gap:10px;font-family:JetBrains Mono,monospace;font-size:9px;display:flex;position:absolute;bottom:8px;right:8px}.session-graph-legend-item{align-items:center;gap:4px;display:flex}.session-graph-legend-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.sessions-tab:disabled{opacity:.3;cursor:not-allowed}.graph-view-switcher{z-index:10;border:1px solid var(--border-color);background:#0b111ed9;border-radius:6px;gap:2px;padding:2px;display:flex;position:absolute;top:8px;left:8px}.graph-view-pill{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:9px;transition:all .15s}.graph-view-pill:hover{color:var(--text-secondary)}.graph-view-pill.active{color:var(--text-primary);background:#141f38}.component-graph{width:100%;height:100%;min-height:280px;position:relative}.component-graph canvas{border-radius:6px;width:100%;height:100%;display:block}.component-graph-tooltip{pointer-events:none;border:1px solid var(--border-color);z-index:10;background:#0e1525f2;border-radius:5px;max-width:200px;padding:6px 10px;position:absolute}.component-graph-tooltip-label{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.component-graph-tooltip-meta{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:9px}.component-graph-tooltip-cost{color:#1abc55;margin-top:3px;font-family:JetBrains Mono,monospace;font-size:9px}.component-graph-legend{color:var(--text-muted);pointer-events:none;gap:10px;font-family:JetBrains Mono,monospace;font-size:9px;display:flex;position:absolute;bottom:8px;right:8px}.component-graph-legend-item{align-items:center;gap:4px;display:flex}.component-graph-legend-bar{border-radius:1px;width:12px;height:3px;display:inline-block}[data-theme=light] .session-graph-canvas{background:var(--bg-primary)}[data-theme=light] .session-graph-tooltip{background:#fafafaf2;border-color:#d9d9d9}[data-theme=light] .graph-view-switcher{background:#f5f5f5e6;border-color:#d9d9d9}[data-theme=light] .graph-view-pill.active{color:#141f38;background:#fff}.component-graph{background:var(--bg-primary);border-radius:6px}[data-theme=light] .component-graph-tooltip{background:#fafafaf2;border-color:#d9d9d9}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--bg-primary:#f6f7f9;--bg-secondary:#edeff2;--bg-tertiary:#e1e4ea;--bg-hover:#d6dae0;--text-primary:#151c28;--text-secondary:#576175;--text-muted:#89909f;--border-color:#cacfd8;--border-light:#dddfe4;--shadow-color:#00000014;--canvas-bg:#f6f7f9;--grid-color:#dcdfe5;--accent-cyan:#1295a1;--accent-green:#178c42;--accent-amber:#cb850b;--accent-red:#d41111;--glow-cyan:0 0 12px #1295a11f;--nav-bg:#f9fafbeb;--nav-border:#dcdfe5;--terminal-bg:#f0f1f5;--toolbar-bg:#f3f4f7eb;--status-bg:#f3f4f7;--node-tech-bg:#e8eaee;--node-tech-border:#d6dae1;--file-hover-bg:#e8eaee80;--flow-step-active-bg:#e8eaee;--flow-overlay-bg:#f6f7f999}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:Inter,JetBrains Mono,monospace;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.playground{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.playground-nav{background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--nav-border);box-shadow:0 1px 8px var(--shadow-color);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 24px;display:flex}.playground-nav-brand{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:14px;text-decoration:none}.playground-nav-brand b{color:var(--accent-cyan)}.playground-nav-links{align-items:center;gap:24px;display:flex}.playground-nav-links a{color:var(--text-secondary);font-size:13px;text-decoration:none;transition:color .2s}.playground-nav-links a:hover{color:var(--text-primary)}.playground-nav-active{color:var(--accent-cyan)!important}.playground-nav-cta{background:var(--accent-cyan);border-radius:6px;padding:6px 16px;font-weight:600;color:var(--bg-primary)!important}.terminal-replay{background:var(--terminal-bg);border-bottom:1px solid var(--border-color);cursor:pointer;flex-shrink:0;max-height:300px;transition:max-height .4s,padding .4s;overflow:hidden}.terminal-replay.collapsed{max-height:36px}.terminal-content{padding:16px 24px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.7}.terminal-line{white-space:pre}.terminal-command{color:var(--accent-cyan);font-weight:600}.terminal-info{color:var(--text-secondary)}.terminal-success{color:var(--accent-green)}.terminal-result{color:var(--accent-amber);font-weight:600}.terminal-link{color:var(--accent-cyan)}.terminal-cursor{color:var(--accent-cyan);animation:1s step-end infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.terminal-collapsed-bar{color:var(--text-muted);align-items:center;gap:12px;padding:8px 24px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.terminal-collapsed-icon{color:var(--accent-cyan);font-weight:700}.terminal-expand-hint{opacity:.5;margin-left:auto;font-size:11px}.playground-tabs{border-bottom:1px solid var(--border-color);flex-shrink:0;display:flex}.playground-tab{background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border:none;flex:1;padding:10px;font-family:JetBrains Mono,monospace;font-size:13px;transition:all .2s}.playground-tab.active{color:var(--accent-cyan);background:var(--bg-primary);border-bottom:2px solid var(--accent-cyan)}.project-context{background:#1295a10f;border-bottom:1px solid #1295a11f;flex-shrink:0;padding:8px 24px}.project-context-inner{align-items:center;gap:8px;font-size:13px;display:flex}.project-context-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:11px;font-weight:600}.project-context-name{color:var(--accent-cyan);align-items:center;gap:3px;font-family:JetBrains Mono,monospace;font-weight:700;text-decoration:none;transition:opacity .2s;display:flex}.project-context-name:hover{opacity:.8}.project-context-arrow{opacity:.6;font-size:11px}.project-context-sep{color:var(--border-color);font-size:12px}.project-context-desc{color:var(--text-secondary);font-size:12px}@media (width<=768px){.project-context-desc,.project-context-sep{display:none}}.playground-main{flex:1;min-height:0;display:flex;overflow:hidden}.playground-panel-full{width:100%;height:100%;overflow:hidden}.playground-left{border-right:1px solid var(--border-color);flex-direction:column;display:flex;overflow:hidden}.playground-right{flex-direction:column;display:flex;overflow:hidden}.split-handle{cursor:col-resize;background:var(--bg-secondary);flex-shrink:0;justify-content:center;align-items:center;width:6px;transition:background .2s;display:flex}.split-handle:hover{background:#20cfdf26}.split-handle-grip{background:var(--border-color);border-radius:1px;width:2px;height:32px}.file-browser{background:var(--bg-secondary);flex-direction:column;height:100%;display:flex}.file-tree{border-bottom:1px solid var(--border-color);flex:0 0 45%;overflow-y:auto}.file-tree-header{border-bottom:1px solid var(--border-light);background:var(--bg-secondary);z-index:2;justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.file-tree-title{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.file-tree-count{color:var(--text-muted);font-size:11px}.file-tree-list{padding:4px 0}.file-tree-item{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:4px 12px;font-size:13px;transition:background .15s,color .15s;display:flex}.file-tree-item:hover{background:var(--bg-hover);color:var(--text-primary)}.file-tree-item.selected{color:var(--accent-cyan);background:#20cfdf1a}.file-tree-item.pinned{color:var(--accent-cyan)}.file-tree-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.file-tree-name{text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:12px;overflow:hidden}.file-tree-badge{color:var(--accent-cyan);background:#20cfdf26;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.file-viewer{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow:hidden}.file-viewer-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.file-viewer-icon{font-size:14px}.file-viewer-name{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.file-viewer-path{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:11px;overflow:hidden}.file-viewer-content{flex:1;padding:8px 0;overflow:auto}.file-viewer-content pre{margin:0;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.6}.file-viewer-line{padding:0 12px;display:flex}.file-viewer-line:hover{background:var(--file-hover-bg)}.line-number{color:var(--text-muted);text-align:right;-webkit-user-select:none;user-select:none;flex-shrink:0;min-width:36px;padding-right:16px}.line-content{white-space:pre;color:var(--text-secondary)}.file-viewer-empty{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.file-viewer-empty-icon{opacity:.3;font-family:JetBrains Mono,monospace;font-size:24px}.file-viewer-empty p{font-size:13px}.diagram-panel{flex-direction:column;width:100%;height:100%;display:flex}.diagram-canvas{--bg-primary:#070a13;--bg-secondary:#090e1a;--bg-tertiary:#0e1525;--bg-hover:#10192d;--text-primary:#f1f5f9;--text-secondary:#7588a3;--text-muted:#576375;--border-color:#1d2330;--border-light:#181d25;--shadow-color:#0000004d;--accent-cyan:#20cfdf;--accent-green:#1abc55;--accent-amber:#f59f0a;--accent-red:#f42525;--glow-cyan:0 0 20px #20cfdf26;background:var(--bg-primary);flex:1;min-height:0}.diagram-canvas .react-flow{background:var(--bg-primary)!important}.diagram-canvas .react-flow__controls{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;box-shadow:0 4px 16px var(--shadow-color)!important;border-radius:8px!important}.diagram-canvas .react-flow__controls-button{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;fill:var(--text-secondary)!important}.diagram-canvas .react-flow__controls-button:hover{background:var(--bg-hover)!important}.diagram-canvas .react-flow__minimap{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:8px!important}.playground-toolbar{background:var(--toolbar-bg);border-bottom:1px solid var(--border-light);flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.toolbar-section{align-items:center;gap:4px;display:flex}.toolbar-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-right:4px;font-size:11px}.toolbar-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:12px;transition:all .2s;display:flex}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent-cyan)}.toolbar-btn-icon{border:1px solid var(--border-color);background:var(--bg-tertiary);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex}.toolbar-btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn-icon.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#20cfdf26}.toolbar-divider{background:var(--border-color);width:1px;height:20px;margin:0 4px}.toolbar-stats{color:var(--text-muted);margin-left:auto;font-size:12px}.toolbar-stat-sep{opacity:.4;margin:0 6px}.dropdown-arrow{opacity:.6;font-size:10px}.dropdown-wrapper{position:relative}.dropdown-menu{background:var(--bg-secondary);border:1px solid var(--border-color);min-width:200px;box-shadow:0 8px 32px var(--shadow-color);z-index:50;border-radius:8px;padding:4px;position:absolute;top:calc(100% + 4px);left:0}.dropdown-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:12px;transition:all .15s;display:flex}.dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.flow-dot-inline{border-radius:50%;flex-shrink:0;width:8px;height:8px}.node-details-popover{z-index:60;background:var(--bg-secondary);border:1px solid var(--border-color);width:300px;box-shadow:0 8px 32px var(--shadow-color);border-radius:10px;position:fixed;overflow:hidden}.ndp-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.ndp-title{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.ndp-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:14px}.ndp-description{color:var(--text-secondary);padding:8px 16px;font-size:12px;line-height:1.5}.ndp-meta{border-top:1px solid var(--border-light);padding:8px 16px}.ndp-meta-row{justify-content:space-between;padding:3px 0;display:flex}.ndp-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.ndp-value{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:12px}.ndp-path{text-overflow:ellipsis;max-width:180px;font-size:10px;overflow:hidden}.ndp-layer-presentation{color:#3b82f6}.ndp-layer-application{color:#f59e0b}.ndp-layer-data{color:#22c55e}.ndp-layer-external{color:#a855f7}.ndp-tech{border-top:1px solid var(--border-light);padding:8px 16px}.ndp-tech-pills{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.ndp-tech-pill{color:var(--accent-cyan);background:#20cfdf1a;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px}.ndp-connections{border-top:1px solid var(--border-light);padding:8px 16px 12px}.ndp-conn-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.ndp-conn-item{color:var(--text-secondary);align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.ndp-conn-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.ndp-conn-dot.ndp-layer-presentation{background:#3b82f6}.ndp-conn-dot.ndp-layer-application{background:#f59e0b}.ndp-conn-dot.ndp-layer-data{background:#22c55e}.ndp-conn-dot.ndp-layer-external{background:#a855f7}.playground-status{background:var(--status-bg);border-top:1px solid var(--border-light);color:var(--text-muted);flex-shrink:0;align-items:center;gap:4px;padding:6px 24px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.status-project{color:var(--accent-cyan);font-weight:600}.status-sep{opacity:.4;margin:0 4px}.status-hint{opacity:.5;margin-left:auto}.tour-overlay{z-index:999;pointer-events:none;opacity:0;transition:opacity .3s;position:fixed;inset:0}.tour-overlay.tour-visible{opacity:1}.tour-spotlight{z-index:1000;pointer-events:none;border-radius:8px;transition:top .35s,left .35s,width .35s,height .35s;position:fixed;box-shadow:0 0 0 9999px #00000073}.tour-tooltip{z-index:1001;pointer-events:auto;align-items:center;gap:8px;transition:top .35s,left .35s;display:flex;position:fixed}.tour-card{background:var(--bg-secondary);border:1px solid var(--accent-cyan);box-shadow:0 8px 32px #0003, var(--glow-cyan);border-radius:12px;min-width:220px;max-width:300px;padding:16px 20px}.tour-progress{color:var(--accent-cyan);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.tour-message{color:var(--text-primary);margin-bottom:4px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;line-height:1.3}.tour-detail{color:var(--text-secondary);margin-bottom:14px;font-family:Inter,sans-serif;font-size:12px;line-height:1.5}.tour-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:5px 12px;font-family:Inter,sans-serif;font-size:12px;transition:color .2s}.tour-skip:hover{color:var(--text-primary)}.tour-next{background:var(--accent-cyan);color:var(--bg-primary);cursor:pointer;border:none;border-radius:6px;padding:6px 18px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;transition:opacity .2s}.tour-next:hover{opacity:.85}.tour-arrow{color:var(--accent-cyan);flex-shrink:0;font-size:22px;line-height:1}.tour-arrow-up{animation:1s ease-in-out infinite tourBounceDown}.tour-arrow-down{animation:1s ease-in-out infinite tourBounceUp}.tour-arrow-left{animation:1s ease-in-out infinite tourBounceRight}.tour-arrow-right{animation:1s ease-in-out infinite tourBounceLeft}@keyframes tourBounceUp{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes tourBounceDown{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes tourBounceLeft{0%,to{transform:translate(0)}50%{transform:translate(-6px)}}@keyframes tourBounceRight{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.change-indicator,.pending-change-badge,.health-hub-badge{display:none}@media (width<=768px){.playground-nav-links a:not(.playground-nav-active):not(.playground-nav-cta){display:none}.playground-status{padding:6px 12px;font-size:10px}.status-hint,.toolbar-stats{display:none}.playground-toolbar{padding:6px 8px}.tour-overlay{display:none}}
