@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap";:root{--bg-primary:#090d16;--bg-secondary:#0f1422;--bg-elevated:#151d30;--bg-surface:#1a243a;--bg-input:#0d1220;--border-default:#ffffff14;--border-active:#3b82f680;--border-muted:#ffffff0a;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent-deployment:#10b981;--accent-replicaset:#f97316;--accent-pod:#14b8a6;--accent-service:#3b82f6;--accent-ingress:#8b5cf6;--accent-pvc:#ec4899;--accent-pv:#84cc16;--accent-sc:#6366f1;--accent-cronjob:#d946ef;--accent-gatewayclass:#f43f5e;--accent-gateway:#7c3aed;--accent-httproute:#0d9488;--accent-grpcroute:#65a30d;--accent-tcproute:#0284c7;--accent-tlsroute:#d97706;--accent-udproute:#16a34a;--toolbar-height:54px;--panel-header-height:42px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 16px 48px #0009;--shadow-glow:0 0 12px #3b82f626;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;overflow:hidden}.app{flex-direction:column;height:100%;font-family:Inter,sans-serif;display:flex;position:relative}.app-brand-watermark{opacity:.02;pointer-events:none;z-index:0;background-image:url(/Logo-nobg.png);background-position:50%;background-repeat:no-repeat;background-size:contain;width:200px;height:200px;position:absolute;bottom:25px;right:25px}.toolbar{height:var(--toolbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);z-index:1100;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:relative}.toolbar__left,.toolbar__right{align-items:center;gap:16px;display:flex}.toolbar__center{align-items:center;gap:10px;display:flex}.toolbar__brand{cursor:pointer;align-items:center;gap:12px;text-decoration:none;display:flex}.toolbar__brand:hover .toolbar__name{color:var(--accent-service)}.toolbar__logo{object-fit:contain;filter:drop-shadow(0 0 10px #3b82f666);width:30px;height:30px}.toolbar__name{letter-spacing:-.2px;color:#fff;font-family:Outfit,sans-serif;font-size:22px;font-weight:700}.toolbar__tagline{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-left:1px solid #ffffff1a;margin-left:4px;padding:2px 8px;font-size:11px;font-weight:500}.toolbar-btn{color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ffffff08;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.toolbar-btn svg{width:14px;height:14px}.toolbar-btn:hover{color:var(--text-primary);background:#ffffff14;border-color:#fff3}.toolbar-btn--danger{color:#fca5a5;border-color:#ef444433}.toolbar-btn--danger:hover{color:#ef4444;background:#ef44441a;border-color:#ef444466}.toolbar-btn--active{color:#93c5fd;background:#3b82f62e;border-color:#3b82f666}.toolbar-btn--active:hover{color:#bfdbfe;background:#3b82f642;border-color:#3b82f68c}.toolbar-export{align-items:center;display:inline-flex;position:relative}.toolbar-btn--export--open{color:var(--text-primary);background:#ffffff14;border-color:#fff3}.toolbar-btn__chevron{transition:transform var(--transition-fast)}.toolbar-btn--export--open .toolbar-btn__chevron{transform:rotate(180deg)}.toolbar-dropdown{z-index:100;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:150px;box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff0a;flex-direction:column;gap:4px;padding:6px;animation:.14s cubic-bezier(.34,1.4,.64,1) both modalIn;display:flex;position:absolute;top:calc(100% + 6px);left:0}.toolbar-dropdown__item{text-align:left;white-space:nowrap;width:100%;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:flex-start;padding:6px 10px;font-size:12px;font-weight:600}.toolbar-dropdown__item:hover{color:var(--text-primary);background:#3b82f61f;border-color:#3b82f666}.panels{flex:1;display:flex;position:relative;overflow:hidden}.panel-header{height:var(--panel-header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:relative}.panel-header__left{align-items:center;gap:8px;display:flex}.panel-header:before{content:"";background:var(--accent-service);width:2px;position:absolute;top:0;bottom:0;left:0}.panel-header__accent{background:var(--accent-service);width:8px;height:8px;box-shadow:0 0 8px var(--accent-service);border-radius:2px}.panel-header__title{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-family:Outfit,sans-serif;font-size:11px;font-weight:700}.panel-header__right{align-items:center;gap:8px;display:flex}.panel-header__btn{color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ffffff08;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.panel-header__btn svg{width:13px;height:13px}.panel-header__btn:hover{color:var(--text-primary);background:#ffffff14;border-color:#fff3}.panel-header__btn--active{color:#93c5fd;background:#3b82f62e;border-color:#3b82f666}.panel-header__btn--active:hover{color:#bfdbfe;background:#3b82f642;border-color:#3b82f68c}.yaml-import-input{display:none}.toolbar__theme{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#ffffff08;align-items:center;gap:2px;padding:2px;display:inline-flex}.toolbar__theme-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.toolbar__theme-btn svg{width:15px;height:15px}.toolbar__theme-btn:hover{color:var(--text-primary)}.toolbar__theme-btn--active{color:var(--accent-service);background:#3b82f629}.editor-panel{background:var(--bg-primary);flex-direction:column;flex-shrink:0;width:42%;min-width:280px;display:flex;position:relative}.editor-content-wrapper{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.editor-wrapper{flex:1;overflow:hidden}.yaml-error-badge{color:#ef4444;letter-spacing:.1px;background:#ef444426;border:1px solid #ef444440;border-radius:99px;align-items:center;gap:6px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.yaml-error-badge__icon{width:12px;height:12px}.yaml-error-banner{color:#fca5a5;max-height:180px;animation:slideUp var(--transition-normal);background:#180c10;border-top:1px solid #ef44444d;padding:12px 16px;font-size:12px;overflow-y:auto;box-shadow:0 -4px 16px #0006}.yaml-error-banner__header{color:#ef4444;align-items:center;gap:8px;margin-bottom:6px;font-weight:700;display:flex}.yaml-error-banner__icon{width:14px;height:14px}.yaml-error-banner__body{white-space:pre-wrap;opacity:.9;font-family:JetBrains Mono,monospace;line-height:1.5}.yaml-resource-highlight{background:#3b82f60f!important}.yaml-resource-highlight-gutter{border-left:3px solid var(--accent-service)!important}.file-view{background:var(--bg-primary);flex-shrink:0;min-width:280px;display:flex;overflow:hidden}.file-view--resizing .file-explorer,.file-view--resizing .editor-panel{-webkit-user-select:none;user-select:none}.file-explorer{background:var(--bg-secondary);border-right:1px solid var(--border-default);flex-direction:column;flex-shrink:0;min-width:0;display:flex;overflow:hidden}.file-tree{flex:1;padding:6px 4px 12px;font-family:Outfit,sans-serif;font-size:12px;overflow:hidden auto}.file-tree__row{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:6px;padding:4px 8px;display:flex}.file-tree__row:hover{color:var(--text-primary);background:#ffffff0f}.file-tree__row--active{color:var(--text-primary);background:#3b82f629}.file-tree__row--active:hover{background:#3b82f63d}.file-tree__chevron{width:12px;height:12px;transition:transform var(--transition-fast);flex-shrink:0}.file-tree__chevron--open{transform:rotate(90deg)}.file-tree__icon{flex-shrink:0;width:14px;height:14px}.file-tree__icon--folder{color:#d4a72c}.file-tree__label{text-overflow:ellipsis;flex:1;overflow:hidden}.file-tree__count{color:var(--text-secondary);background:#ffffff0f;border-radius:99px;flex-shrink:0;padding:0 6px;font-size:10px}.file-explorer__empty{color:var(--text-secondary);padding:16px 12px;font-size:12px}.canvas-panel{background:var(--bg-primary);flex-direction:column;flex:1;min-width:320px;display:flex}.panel-splitter{background:var(--border-default);cursor:col-resize;touch-action:none;z-index:60;width:5px;transition:background var(--transition-fast);flex-shrink:0;position:relative}.panel-splitter:before{content:"";position:absolute;inset:0 -4px}.panel-splitter:hover,.panels--resizing .panel-splitter{background:var(--accent-service)}.panels--resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.panels--resizing .editor-panel,.panels--resizing .canvas-panel{pointer-events:none}.canvas-toolbar{border-bottom:1px solid var(--border-default);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#0f142280;flex-shrink:0;justify-content:space-between;align-items:center;height:46px;padding:0 16px;display:flex;position:relative}.canvas-toolbar__group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:10px;font-weight:700}.canvas-toolbar__group-divider{background:#ffffff1f;flex-shrink:0;width:1px;height:18px;margin:0 4px}.canvas-button{color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ffffff05;padding:4px 10px;font-size:11px;font-weight:600}.canvas-button:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-1px)}.canvas-button--danger{color:#ef4444;border-color:#ef444433}.canvas-button--danger:hover{background:#ef44441a;border-color:#ef44444d}.canvas-button--nsmode{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.canvas-button--nsmode svg{flex-shrink:0;width:13px;height:13px}.canvas-button--active{color:#2dd4bf;background:#14b8a624;border-color:#14b8a680}.canvas-button--active:hover{background:#14b8a633;border-color:#14b8a699}.canvas-button--gateway-api:hover{background:#7c3aed1f;border-color:#7c3aed8c}.canvas-toolbar__ga-entry{border-radius:var(--radius-sm);border:1px solid #7c3aed59;flex-shrink:0;align-items:center;display:inline-flex;position:relative}.canvas-toolbar__ga-entry>.canvas-button{color:#a78bfa;background:0 0;border:none;border-radius:0}.canvas-toolbar__ga-entry>.canvas-button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.canvas-toolbar__ga-entry>.canvas-button--chevron{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.canvas-toolbar__ga-entry>.canvas-button:hover{background:#7c3aed1f;border-color:#0000}.canvas-toolbar__ga-entry>.canvas-button+.canvas-button{border-left:1px solid #7c3aed40}.canvas-button--chevron{justify-content:center;align-items:center;padding:4px 7px;display:inline-flex}.canvas-button--chevron svg{transition:transform var(--transition-fast)}.canvas-button--chevron--open svg{transform:rotate(180deg)}.canvas-toolbar__dropdown{z-index:100;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:190px;box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff0a;flex-direction:column;gap:4px;padding:6px;animation:.14s cubic-bezier(.34,1.4,.64,1) both modalIn;display:flex;position:absolute}.canvas-toolbar__dropdown-item{text-align:left;white-space:nowrap;justify-content:flex-start;width:100%}.canvas-toolbar__dropdown-item:hover{background:#7c3aed1f;border-color:#7c3aed66}.canvas-toolbar__group.canvas-toolbar__group--grow{flex:auto;min-width:0;height:100%}.canvas-toolbar__scroll{scrollbar-width:thin;scrollbar-color:#ffffff47 transparent;flex:auto;align-items:center;gap:6px;min-width:0;height:100%;padding-right:10px;display:flex;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 0% calc(100% - 26px),#0000 100%);mask-image:linear-gradient(90deg,#000 0% calc(100% - 26px),#0000 100%)}.canvas-toolbar__scroll::-webkit-scrollbar{height:6px}.canvas-toolbar__scroll::-webkit-scrollbar-thumb{background:#ffffff47;border-radius:3px}.canvas-toolbar__scroll::-webkit-scrollbar-thumb:hover{background:#ffffff73}.canvas-toolbar__scroll::-webkit-scrollbar-track{background:#ffffff0a;border-radius:3px}.canvas-toolbar__scroll>.canvas-button{white-space:nowrap;flex-shrink:0}.canvas-toolbar__scroll-nav{flex-shrink:0;align-items:center;gap:3px;padding-left:4px;display:inline-flex}.canvas-button--scroll{justify-content:center;align-items:center;padding:4px 7px;line-height:1;display:inline-flex}.canvas-button--scroll:disabled{opacity:.35;cursor:default;pointer-events:none}.canvas-button--scroll:disabled:hover{border-color:var(--border-default);background:#ffffff05;transform:none}.canvas-toolbar__group--pinned{border-left:1px solid var(--border-default);z-index:2;background:#0f1422eb;align-self:stretch;padding-left:12px;position:relative}.gateway-route-card{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#ffffff04;margin-bottom:10px;padding:10px 12px 12px}.gateway-route-card__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.gateway-route-card__title{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.gateway-route-card .modal-header__close{position:static}.gateway-route-card .modal-header__close:disabled{opacity:.3;cursor:not-allowed}.gateway-backend-row{border:1px dashed var(--border-muted);border-radius:var(--radius-xs);grid-template-columns:1fr;gap:6px;margin-bottom:8px;padding:8px;display:grid}.gateway-backend-row .modal-btn{justify-self:start}.inspector-backend-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.inspector-backend-row .inspector-field__input{flex:1}.inspector-backend-remove{border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;width:26px;height:26px;font-size:14px;line-height:1}.inspector-backend-remove:hover{color:#ef4444;border-color:#ef444466}.canvas-wrapper{flex:1;min-width:0;min-height:0;display:flex;position:relative}.canvas-body{flex:auto;min-width:0;height:100%;display:flex}.canvas-flow-host{flex:1;height:100%;position:relative}.canvas-toolbar__group{flex-shrink:0;align-items:center;gap:6px;display:flex}.k8s-node{--kind-color:var(--accent-pod);background:var(--bg-secondary);border-radius:var(--radius-md);width:100%;height:100%;box-shadow:var(--shadow-sm);box-sizing:border-box;transition:box-shadow var(--transition-fast), border-color var(--transition-fast);border:1px solid #ffffff0f;position:relative}.k8s-node:hover{box-shadow:var(--shadow-md);border-color:#ffffff26}.k8s-node.selected,.react-flow__node.selected>.k8s-node{box-shadow:0 0 0 2px #3b82f633, var(--shadow-md)!important;border-color:#3b82f68c!important}.k8s-node__header{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.k8s-node__title-group{align-items:center;gap:10px;min-width:0;display:flex}.k8s-node__icon-wrapper{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.k8s-icon{width:15px;height:15px}.k8s-node__meta{flex-direction:column;min-width:0;display:flex}.k8s-node__kind-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;font-weight:700;overflow:hidden}.k8s-node__title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;overflow:hidden}.k8s-node__badge{color:var(--text-secondary);background:#ffffff0d;border:1px solid #ffffff0f;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.k8s-node__body{flex-direction:column;gap:5px;padding:10px 14px;display:flex}.k8s-node__info-row{justify-content:space-between;align-items:center;gap:12px;font-size:10px;display:flex}.k8s-node__info-key{color:var(--text-muted);font-weight:500}.k8s-node__info-val{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-family:JetBrains Mono,monospace;overflow:hidden}.k8s-node--leaf{border-left:2px solid var(--kind-color)}.k8s-node--pod{--kind-color:var(--accent-pod)}.k8s-node--service{--kind-color:var(--accent-service)}.k8s-node--ingress{--kind-color:var(--accent-ingress)}.k8s-node--persistentvolumeclaim{--kind-color:var(--accent-pvc)}.k8s-node--persistentvolume{--kind-color:var(--accent-pv)}.k8s-node--storageclass{--kind-color:var(--accent-sc)}.k8s-node--cronjob{--kind-color:var(--accent-cronjob)}.k8s-node--gatewayclass{--kind-color:var(--accent-gatewayclass)}.k8s-node--gateway{--kind-color:var(--accent-gateway)}.k8s-node--httproute{--kind-color:var(--accent-httproute)}.k8s-node--grpcroute{--kind-color:var(--accent-grpcroute)}.k8s-node--tcproute{--kind-color:var(--accent-tcproute)}.k8s-node--tlsroute{--kind-color:var(--accent-tlsroute)}.k8s-node--udproute{--kind-color:var(--accent-udproute)}.k8s-node--container{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);background:#0f142059;flex-direction:column;display:flex}.k8s-node--container:hover{box-shadow:var(--shadow-lg)}.k8s-node--deployment{--kind-color:var(--accent-deployment);background:#10b98104;border:1px solid #10b98140}.k8s-node--deployment:hover{border-color:#10b98180;box-shadow:0 0 20px #10b98114}.k8s-node--deployment .k8s-node__header{border-bottom:1px dashed #10b98126}.k8s-node--replicaset{--kind-color:var(--accent-replicaset);border-radius:var(--radius-md);background:#f9731603;border:1px solid #f9731638}.k8s-node--replicaset:hover{border-color:#f9731673;box-shadow:0 0 16px #f973160f}.k8s-node--replicaset .k8s-node__header{border-bottom:1px dashed #f973161f}.k8s-node__container-grid-overlay{pointer-events:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);background-image:radial-gradient(#ffffff05 1px,#0000 0);background-size:12px 12px;position:absolute;inset:45px 0 0}.k8s-node__drag-handle{cursor:grab}.k8s-node__drag-handle:active{cursor:grabbing}.k8s-handle{opacity:.9;transition:transform var(--transition-fast), background var(--transition-fast);background:var(--bg-surface)!important;border:2px solid var(--kind-color)!important;border-radius:50%!important;width:10px!important;height:10px!important}.k8s-handle:hover{transform:scale(1.3);background:var(--kind-color)!important}.k8s-handle-target{top:-5px!important}.k8s-handle-source{bottom:-5px!important}.react-flow__edge-path{transition:stroke-width var(--transition-fast)}.react-flow__edge:hover .react-flow__edge-path{stroke-width:3.2px!important}.canvas-legend{border:1px solid var(--border-default);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);background:#0f1420d9;border-radius:99px;gap:12px;padding:6px 14px;display:flex}.canvas-legend__item{color:var(--text-secondary);align-items:center;gap:6px;font-size:10px;font-weight:600;display:inline-flex}.canvas-legend__item:before{content:"";flex-shrink:0}.canvas-legend__item--own:before{border:1px solid var(--text-muted);border-radius:2px;width:9px;height:9px;box-shadow:inset 2px 2px #94a3b88c}.canvas-legend__item--svc:before,.canvas-legend__item--ing:before,.canvas-legend__item--hpa:before,.canvas-legend__item--vpa:before,.canvas-legend__item--cm:before,.canvas-legend__item--pvc:before,.canvas-legend__item--pv:before,.canvas-legend__item--sc:before,.canvas-legend__item--secret:before,.canvas-legend__item--tls:before{border-radius:2px;width:14px;height:2px}.canvas-legend__item--svc:before{background:#60a5fa}.canvas-legend__item--ing:before{background:#a78bfa}.canvas-legend__item--hpa:before{background:#f59e0b}.canvas-legend__item--vpa:before{background:#0ea5e9}.canvas-legend__item--cm:before{background:#06b6d4}.canvas-legend__item--pvc:before{background:#ec4899}.canvas-legend__item--pv:before{background:#84cc16}.canvas-legend__item--sc:before{background:#6366f1}.canvas-legend__item--secret:before{background:#dc2626}.canvas-legend__item--tls:before{background:#eab308}.canvas-legend__item--auto:before{border:1px dashed var(--text-muted);border-radius:2px;width:9px;height:9px}.teaching-frame{border-radius:var(--radius-lg);pointer-events:none;z-index:-10;position:absolute}.teaching-frame--outer{background:#0ea5e914;border:1px solid #0ea5e94d}.teaching-frame--inner{background:#14b8a614;border:1px solid #14b8a64d}.teaching-frame__title{text-transform:uppercase;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-default);letter-spacing:.8px;border-radius:4px;padding:1px 7px;font-family:Outfit,sans-serif;font-size:9px;font-weight:700;position:absolute;top:-10px;left:16px}.teaching-frame__delete{text-transform:uppercase;letter-spacing:.5px;color:#ef4444;background:var(--bg-primary);cursor:pointer;z-index:6;border:1px solid #ef444473;border-radius:4px;align-items:center;gap:3px;height:16px;padding:0 5px;font-family:Outfit,sans-serif;font-size:9px;font-weight:700;display:flex;position:absolute;top:-13px;right:10px}.teaching-frame__delete:hover{color:#fff;background:#ef4444;border-color:#ef4444}.teaching-frame--editable{pointer-events:auto;cursor:move}.teaching-frame--outer.teaching-frame--editable{background:#0ea5e924;border-color:#0ea5e973}.teaching-frame--inner.teaching-frame--editable{background:#14b8a624;border-color:#14b8a673}.teaching-frame__resize-handle{z-index:5;background:#94a3b8f2;border:1px solid #0f1420e6;border-radius:2px;width:10px;height:10px;position:absolute}.teaching-frame__resize-handle:hover{background:#60a5fa;box-shadow:0 0 6px #60a5fa99}.teaching-frame__resize-handle--nw{cursor:nwse-resize;top:-5px;left:-5px}.teaching-frame__resize-handle--n{cursor:ns-resize;margin-left:-5px;top:-5px;left:50%}.teaching-frame__resize-handle--ne{cursor:nesw-resize;top:-5px;right:-5px}.teaching-frame__resize-handle--e{cursor:ew-resize;margin-top:-5px;top:50%;right:-5px}.teaching-frame__resize-handle--se{cursor:nwse-resize;bottom:-5px;right:-5px}.teaching-frame__resize-handle--s{cursor:ns-resize;margin-left:-5px;bottom:-5px;left:50%}.teaching-frame__resize-handle--sw{cursor:nesw-resize;bottom:-5px;left:-5px}.teaching-frame__resize-handle--w{cursor:ew-resize;margin-top:-5px;top:50%;left:-5px}.node-inspector{background:var(--bg-secondary);z-index:100;border-left:0 solid #0000;flex-direction:column;flex-shrink:0;width:0;transition:width .28s cubic-bezier(.4,0,.2,1),border-color .28s;display:flex;overflow:hidden;box-shadow:-4px 0 24px #0000004d}.node-inspector--open{border-left:1px solid var(--border-default);width:340px}.node-inspector__header{border-bottom:1px solid var(--border-default);background:var(--bg-secondary);z-index:2;flex-shrink:0;justify-content:space-between;align-items:center;height:50px;padding:0 18px;display:flex;position:sticky;top:0}.node-inspector__title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-family:Outfit,sans-serif;font-size:11px;font-weight:700}.node-inspector__close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);width:26px;height:26px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.node-inspector__close:hover{color:var(--text-primary);background:#ffffff12}.node-inspector__close svg{width:14px;height:14px}.node-inspector__empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:14px;padding:40px 24px;font-size:12px;line-height:1.7;display:flex}.node-inspector__empty-icon{opacity:.35;width:32px;height:32px}.inspector-content{scrollbar-width:thin;scrollbar-color:#ffffff14 transparent;flex-direction:column;flex:1;display:flex;overflow:hidden auto}.inspector-content::-webkit-scrollbar{width:4px}.inspector-content::-webkit-scrollbar-track{background:0 0}.inspector-content::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.inspector-hero{border-bottom:1px solid var(--border-default);background:#ffffff03;align-items:flex-start;gap:14px;padding:16px 18px;display:flex;position:relative}.inspector-hero:before{content:"";background:var(--kind-color,#3b82f6);width:3px;position:absolute;top:0;bottom:0;left:0}.inspector-hero__icon-wrap{border:1px solid #0000;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.inspector-hero__icon-wrap svg{width:20px;height:20px}.inspector-hero__info{flex:1;min-width:0}.inspector-hero__badges{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.inspector-hero__kind-badge{text-transform:uppercase;letter-spacing:.6px;border:1px solid #0000;border-radius:4px;padding:2px 7px;font-size:9px;font-weight:700}.inspector-hero__api-badge{color:var(--text-muted);background:#ffffff0a;border:1px solid #ffffff0f;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:500}.inspector-hero__name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.inspector-hero__namespace{color:var(--text-muted);margin-top:3px;font-family:JetBrains Mono,monospace;font-size:10px}.inspector-section{border-bottom:1px solid var(--border-muted)}.inspector-section:last-child{border-bottom:none}.inspector-section__header{text-transform:uppercase;letter-spacing:.9px;color:var(--text-muted);text-align:left;background:#ffffff03;align-items:center;gap:7px;width:100%;padding:9px 18px;font-size:9.5px;font-weight:700;display:flex}.inspector-section__header svg{opacity:.7;flex-shrink:0;width:11px;height:11px}.inspector-section__header--toggle{cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);border:none;justify-content:space-between;font-family:inherit}.inspector-section__header--toggle:hover{color:var(--text-secondary);background:#ffffff08}.inspector-section__header-inner{align-items:center;gap:7px;display:flex}.inspector-chevron{transition:transform var(--transition-fast);opacity:.5;width:12px!important;height:12px!important}.inspector-chevron--open{transform:rotate(180deg)}.inspector-section__count{color:var(--text-secondary);letter-spacing:0;background:#ffffff14;border-radius:3px;margin-left:5px;padding:1px 5px;font-size:9px;font-weight:600}.inspector-section__body{flex-direction:column;gap:11px;padding:4px 18px 14px;display:flex}.inspector-field{flex-direction:column;gap:5px;display:flex}.inspector-field__label{color:var(--text-secondary);letter-spacing:.1px;align-items:center;gap:5px;font-size:10.5px;font-weight:600;display:flex}.inspector-field__input{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;width:100%;padding:7px 10px;font-family:Inter,sans-serif;font-size:12px}.inspector-field__input:focus{border-color:#3b82f680;box-shadow:0 0 0 3px #3b82f614}.inspector-field__input--select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.inspector-field__input:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.75;background-color:#ffffff08;border-color:#ffffff0d}.inspector-field__input--select:disabled{background-image:none}.inspector-field__input--invalid{border-color:#ef44448c}.inspector-field__input--invalid:focus{border-color:#ef4444b3;box-shadow:0 0 0 3px #ef44441a}.inspector-field__error{color:#f87171;font-size:10.5px;line-height:1.4}.inspector-field__hint{color:var(--text-muted);font-size:10px;line-height:1.4}.inspector-field__input[type=number]{appearance:textfield}.inspector-field__input[type=number]::-webkit-inner-spin-button{opacity:.4}.inspector-field__input[type=number]::-webkit-outer-spin-button{opacity:.4}.inspector-label-chips{flex-wrap:wrap;gap:4px;display:flex}.inspector-label-chip{color:#60a5fa;white-space:nowrap;background:#3b82f614;border:1px solid #3b82f624;border-radius:3px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600}.inspector-rel-list{flex-direction:column;gap:7px;display:flex}.inspector-rel-item{border:1px solid var(--border-muted);border-radius:var(--radius-sm);transition:border-color var(--transition-fast);background:#ffffff05;align-items:center;gap:9px;padding:8px 10px;display:flex}.inspector-rel-item:hover{border-color:#ffffff1a}.inspector-rel-arrow{text-align:center;flex-shrink:0;width:16px;font-size:14px;font-weight:700}.inspector-rel-arrow--outgoing{color:#60a5fa}.inspector-rel-arrow--incoming{color:#a78bfa}.inspector-rel-arrow--owns{color:#10b981}.inspector-rel-arrow--owned-by{color:#f97316}.inspector-rel-item--link{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.inspector-rel-item--link:hover{background:#60a5fa0d;border-color:#60a5fa59}.inspector-rel-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.inspector-rel-kind{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:9px;font-weight:700}.inspector-rel-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;overflow:hidden}.inspector-rel-badge{color:var(--text-muted);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff0d;border-radius:3px;flex-shrink:0;padding:2px 5px;font-size:9px}.inspector-yaml-preview{color:#94a3b8;background:var(--bg-primary);white-space:pre;border-top:1px solid var(--border-muted);scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;max-height:220px;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:10.5px;line-height:1.7;overflow:auto}.inspector-footer{border-top:1px solid var(--border-default);background:var(--bg-secondary);flex-shrink:0;padding:14px 18px 16px}.inspector-footer__actions{gap:8px;margin-bottom:8px;display:flex}.inspector-validate-btn{color:#34d399;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#10b9810d;border:1px solid #10b9812e;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;display:flex}.inspector-validate-btn svg{width:13px;height:13px}.inspector-validate-btn:hover:not(:disabled){color:#10b981;background:#10b9811f;border-color:#10b98159}.inspector-validate-btn:disabled{color:var(--text-muted);border-color:var(--border-muted);cursor:not-allowed;opacity:.55;background:#ffffff08}.inspector-delete-btn{color:#f87171;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ef44440d;border:1px solid #ef44442e;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;display:flex}.inspector-delete-btn svg{width:13px;height:13px}.inspector-delete-btn:hover{color:#ef4444;background:#ef44441f;border-color:#ef444459}.canvas-empty-state{z-index:10;text-align:center;animation:fadeIn var(--transition-normal);background:#090d16d9;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.canvas-empty-state__illustration{width:64px;height:64px;color:var(--text-muted);opacity:.6;margin-bottom:18px}.canvas-empty-state__title{color:#fff;margin-bottom:8px;font-family:Outfit,sans-serif;font-size:18px;font-weight:700}.canvas-empty-state__desc{color:var(--text-secondary);max-width:440px;margin-bottom:24px;font-size:13px;line-height:1.6}.canvas-empty-state__actions{gap:12px;display:flex}.inspector-managed-banner{border-radius:var(--radius-md);background:#94a3b80f;border:1px dashed #94a3b859;flex-direction:column;gap:8px;margin:12px 14px 0;padding:11px 12px;display:flex}.inspector-managed-banner>svg{width:15px;height:15px;color:var(--text-muted)}.inspector-managed-banner__text strong{color:var(--text-primary);margin-bottom:3px;font-size:12px;display:block}.inspector-managed-banner__text p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.5}.inspector-managed-banner__btn{color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#60a5fa1f;border:1px solid #60a5fa59;align-self:flex-start;padding:5px 10px;font-size:11px;font-weight:600}.inspector-managed-banner__btn:hover{background:#60a5fa38}.inspector-static-row{justify-content:space-between;gap:10px;padding:3px 0;font-size:11.5px;display:flex}.inspector-static-row__key{color:var(--text-muted);flex-shrink:0}.inspector-static-row__val{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inspector-field__hint--pad{padding:6px 14px 10px;display:block}.k8s-node--leaf{flex-direction:column;display:flex}.k8s-node--leaf .k8s-node__body{flex:1;min-height:0;overflow:hidden}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.react-flow__background{background:linear-gradient(#090d16 0%,#0d1220 100%)!important}.react-flow__edge.edge--inferred{pointer-events:none!important}.react-flow__controls{overflow:hidden;background:var(--bg-secondary)!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-sm)!important}.react-flow__controls-button{border-bottom:1px solid var(--border-default)!important;color:var(--text-secondary)!important;width:28px!important;height:28px!important;transition:all var(--transition-fast)!important;background:0 0!important}.react-flow__controls-button:hover{color:#fff!important;background:#ffffff0d!important}.react-flow__controls-button svg{fill:currentColor!important}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);width:480px;max-width:100%;box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff0a;flex-direction:column;animation:.16s cubic-bezier(.34,1.4,.64,1) both modalIn;display:flex}.modal--compact{width:400px}.modal--gateway-api{max-height:calc(100vh - 40px)}@keyframes modalIn{0%{opacity:0;transform:scale(.92)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border-default);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 14px;display:flex}.modal-header__icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.modal-header__icon svg{width:16px;height:16px}.modal-header__title{color:var(--text-primary);flex:1;font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.modal-header__close{width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-header__close:hover{color:var(--text-primary);background:#ffffff12}.modal-body{flex-direction:column;gap:12px;padding:18px 20px;display:flex;overflow-y:auto}.modal-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal-field{flex-direction:column;gap:5px;display:flex}.modal-field__label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);flex-direction:column;gap:2px;font-size:10.5px;font-weight:600;display:flex}.modal-field__hint{text-transform:none;letter-spacing:0;color:var(--text-muted);opacity:.8;font-size:10px;font-weight:400;line-height:1.4}.modal-field__checkrow{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.modal-field__checkrow-text{text-transform:none;letter-spacing:0;color:var(--text-primary);font-size:12px;font-weight:500;line-height:1.3}.modal-field__checkbox{appearance:none;border:1px solid var(--border-default);background:var(--bg-input);cursor:pointer;width:16px;height:16px;transition:border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);border-radius:4px;flex:none;margin:0}.modal-field__checkbox:hover{border-color:var(--border-active)}.modal-field__checkbox:focus-visible{border-color:var(--border-active);outline:none;box-shadow:0 0 0 2px #3b82f61f}.modal-field__checkbox:checked{background-color:#3b82f626;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px 12px;border-color:#3b82f6}.modal-subsection{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#ffffff05;flex-direction:column;gap:10px;padding:12px;display:flex}.modal-subsection__header{color:#ec4899;align-items:center;gap:7px;display:flex}.modal-subsection__icon{flex:none;width:13px;height:13px}.modal-subsection__title{text-transform:uppercase;letter-spacing:.07em;font-size:10.5px;font-weight:600}.modal-subsection__badge{letter-spacing:.04em;text-transform:uppercase;color:#ec4899;background:#ec48991f;border:1px solid #ec48994d;border-radius:999px;margin-left:auto;padding:1px 8px;font-size:9.5px;font-weight:600}.modal-field__input{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;width:100%;padding:6px 9px;font-family:JetBrains Mono,monospace;font-size:12.5px}.modal-field__input:focus{border-color:var(--border-active);box-shadow:0 0 0 2px #3b82f61f}.modal-field__input--select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%236b7280' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:26px}.namespace-field{position:relative}.namespace-field-group{align-items:stretch;gap:8px;display:flex}.namespace-field-group .namespace-field{flex:auto;min-width:0}.namespace-field__new{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;padding:0 10px;font-size:12px}.namespace-field__new:hover{color:#8b5cf6;border-color:#8b5cf6}.namespace-field__input{padding-right:26px}.namespace-field__chevron{width:18px;height:18px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.namespace-field__chevron:hover{color:var(--text-primary)}.namespace-field__chevron svg{transition:transform var(--transition-fast)}.namespace-field__chevron--open svg{transform:rotate(180deg)}.namespace-field__list{z-index:2100;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff0a;max-height:180px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.namespace-field__option{border-radius:var(--radius-xs);color:var(--text-primary);cursor:pointer;white-space:nowrap;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:12.5px}.namespace-field__option--active{background:#3b82f61f}.namespace-field__empty{color:var(--text-muted);padding:6px 8px;font-size:12px}.modal-field__textarea{resize:vertical;min-height:64px;line-height:1.45}.modal-footer{border-top:1px solid var(--border-default);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-btn{border-radius:var(--radius-xs);cursor:pointer;transition:background var(--transition-fast), opacity var(--transition-fast);border:1px solid #0000;padding:7px 16px;font-family:Outfit,sans-serif;font-size:12.5px;font-weight:600}.modal-btn--secondary{border-color:var(--border-default);color:var(--text-secondary);background:#ffffff0f}.modal-btn--secondary:hover{color:var(--text-primary);background:#ffffff1a}.modal-btn--primary{background:var(--btn-color,#3b82f6);color:#fff;border-color:#0000}.modal-btn--primary:hover{opacity:.88}.modal-btn--primary:disabled{opacity:.4;cursor:not-allowed}.modal-field__input--invalid{border-color:#ef44448c!important}.modal-field__error{color:#f87171;font-size:10.5px;line-height:1.4}.k8s-keyval-editor{flex-direction:column;gap:6px;width:100%;display:flex}.k8s-keyval-row{grid-template-columns:92px 1fr 22px;align-items:start;gap:6px;display:grid}.k8s-keyval-row__input{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-primary);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:5px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.k8s-keyval-row__input:focus{border-color:var(--border-active);box-shadow:0 0 0 2px #3b82f61f}.k8s-keyval-row__value{resize:vertical;min-height:30px;line-height:1.45}.k8s-keyval-row__remove{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;margin-top:1px;display:flex}.k8s-keyval-row__remove:hover{color:#f87171;background:#ef44441a;border-color:#ef44444d}.k8s-keyval-add{border:1px dashed var(--border-default);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;align-self:flex-start;padding:5px 12px;font-family:Outfit,sans-serif;font-size:11.5px;font-weight:600}.k8s-keyval-add:hover{color:var(--text-primary);border-color:var(--border-active);background:#3b82f60f}.k8s-keyval-editor .modal-field__hint{padding:0 2px}.inspector-footer__hint{color:var(--text-muted);text-align:center;margin-top:8px;font-size:10px;line-height:1.4;display:block}.k8s-node--managed{border-style:dashed;border-color:#94a3b847}.k8s-node--managed>.k8s-node__header .k8s-node__title{color:var(--text-secondary)}.k8s-node__badge--managed{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:#94a3b81a;border:1px dashed #94a3b859}.canvas-toast{z-index:30;border-radius:var(--radius-md);border:1px solid var(--border-default);max-width:min(560px,100% - 32px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-primary);pointer-events:none;background:#0f1420f0;align-items:center;gap:9px;padding:9px 14px;font-size:12px;line-height:1.45;animation:.16s ease-out toast-in;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.canvas-toast svg{flex-shrink:0;width:15px;height:15px}.canvas-toast--success{border-color:#10b98173}.canvas-toast--success svg{color:#10b981}.canvas-toast--error{border-color:#ef444480}.canvas-toast--error svg{color:#ef4444}.canvas-toast--info{border-color:#60a5fa73}.canvas-toast--info svg{color:#60a5fa}.canvas-statusbar{z-index:20;pointer-events:none;flex-direction:column;align-items:center;gap:6px;max-width:min(680px,100% - 32px);display:flex;position:absolute;bottom:54px;left:50%;transform:translate(-50%)}.canvas-statusbar__item{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fbbf24;background:#1e1908f0;border:1px solid #f59e0b73;align-items:center;gap:8px;padding:7px 13px;font-size:12px;line-height:1.45;animation:.16s ease-out statusbar-in;display:flex}.canvas-statusbar__item svg{flex-shrink:0;width:14px;height:14px}@keyframes statusbar-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.inspector-field__hint--hpa{color:#fbbf24}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.react-flow.kubesketch-export-light{--xy-edge-label-background-color:#fff;--xy-edge-label-color:#000}.react-flow.kubesketch-export-light .k8s-node{color:#0f172a;background:#fff;border-color:#0f172a1f}.react-flow.kubesketch-export-light .k8s-node__header{border-bottom-color:#0f172a14}.react-flow.kubesketch-export-light .k8s-node--leaf{border-left-color:var(--kind-color)}.react-flow.kubesketch-export-light .k8s-node--deployment{border-color:#10b98140}.react-flow.kubesketch-export-light .k8s-node--deployment .k8s-node__header{border-bottom-color:#10b98126}.react-flow.kubesketch-export-light .k8s-node--replicaset{border-color:#f9731638}.react-flow.kubesketch-export-light .k8s-node--replicaset .k8s-node__header{border-bottom-color:#f973161f}.react-flow.kubesketch-export-light .k8s-node--managed{border-color:#94a3b847}.react-flow.kubesketch-export-light .k8s-node__kind-label{color:#64748b}.react-flow.kubesketch-export-light .k8s-node__title{color:#0f172a}.react-flow.kubesketch-export-light .k8s-node__badge{color:#334155;background:#0f172a0f;border-color:#0f172a1f}.react-flow.kubesketch-export-light .k8s-node__info-key{color:#64748b}.react-flow.kubesketch-export-light .k8s-node__info-val{color:#1e293b}.react-flow.kubesketch-export-light .k8s-node--container,.react-flow.kubesketch-export-light .k8s-node--deployment,.react-flow.kubesketch-export-light .k8s-node--replicaset{background:#fff}.react-flow.kubesketch-export-light .k8s-node__container-grid-overlay{background-image:radial-gradient(#0f172a0d 1px,#0000 0)}.react-flow.kubesketch-export-light .k8s-node--managed>.k8s-node__header .k8s-node__title{color:#475569}.react-flow.kubesketch-export-light .k8s-node__badge--managed{color:#475569;background:#94a3b826;border-color:#64748b73}.react-flow.kubesketch-export-light .teaching-frame__title{color:#0f172a;background:#fff;border-color:#0f172a1f}.welcome{scroll-behavior:smooth;background:var(--bg-primary);flex-direction:column;height:100%;display:flex;position:relative;overflow-y:auto}.welcome__watermark{opacity:.03;pointer-events:none;z-index:0;background-image:url(/Logo-nobg.png);background-position:50%;background-repeat:no-repeat;background-size:contain;width:320px;height:320px;position:fixed;bottom:-60px;right:-60px}.welcome a:focus-visible{outline:2px solid var(--border-active);outline-offset:2px}.welcome__nav{z-index:10;background:var(--bg-secondary);border-bottom:1px solid var(--border-default);align-items:center;gap:28px;padding:12px 40px;display:flex;position:sticky;top:0}.welcome__brand{align-items:center;gap:12px;text-decoration:none;display:flex}.welcome__logo{object-fit:contain;width:30px;height:30px}.welcome__name{letter-spacing:-.2px;color:var(--text-primary);font-family:Outfit,sans-serif;font-size:22px;font-weight:700}.welcome__nav-links{align-items:center;gap:24px;display:flex}.welcome__nav-links a{color:var(--text-secondary);transition:color var(--transition-fast);font-size:13px;font-weight:500;text-decoration:none}.welcome__nav-links a:hover{color:var(--text-primary)}.welcome__nav-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.welcome__github{border-radius:var(--radius-sm);border:1px solid var(--border-default);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);background:#ffffff08;justify-content:center;align-items:center;display:inline-flex}.welcome__github:hover{color:var(--text-primary);background:#ffffff14;border-color:#fff3}.welcome__github svg{width:18px;height:18px}.welcome__theme{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#ffffff08;align-items:center;gap:2px;padding:2px;display:inline-flex}.welcome__theme-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.welcome__theme-btn svg{width:15px;height:15px}.welcome__theme-btn:hover{color:var(--text-primary)}.welcome__theme-btn--active{color:var(--accent-service);background:#3b82f629}.welcome__main{z-index:1;flex-direction:column;flex:1;gap:80px;width:100%;max-width:960px;margin:0 auto;padding:64px 24px 24px;animation:.3s ease-out fadeIn;display:flex;position:relative}.welcome__hero{text-align:center;flex-direction:column;align-items:center;display:flex}.welcome__title{letter-spacing:-.6px;color:var(--text-primary);max-width:720px;margin-bottom:16px;font-family:Outfit,sans-serif;font-size:42px;font-weight:700;line-height:1.15}.welcome__title em{color:var(--accent-service);font-style:italic}.welcome__lede{color:var(--text-secondary);max-width:640px;margin-bottom:28px;font-size:15.5px;line-height:1.7}.welcome__cards-section{width:100%}.welcome__cards{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;display:grid}.welcome__card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);text-align:left;transition:border-color var(--transition-fast);flex-direction:column;gap:12px;padding:24px 22px;display:flex}.welcome__card:hover{border-color:#fff3}.welcome__card-icon{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--accent-service);background:#3b82f61f;justify-content:center;align-items:center;display:inline-flex}.welcome__card-icon svg{width:18px;height:18px}.welcome__card-title{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:15px;font-weight:700}.welcome__card-text{color:var(--text-secondary);font-size:13px;line-height:1.6}.welcome__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:10px;display:flex}.welcome-btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.welcome-btn svg{width:16px;height:16px}.welcome-btn--nav{border-radius:var(--radius-sm);padding:8px 16px;font-size:13px}.welcome-btn--primary{color:#fff;background:#3b82f6}.welcome-btn--primary:hover{background:#3f8bfa}.welcome-btn--secondary{border-color:var(--border-default);color:var(--text-secondary);background:#ffffff0f}.welcome-btn--secondary:hover{color:var(--text-primary);background:#ffffff1a}.welcome__hint{color:var(--text-muted);margin-bottom:28px;font-size:11.5px}.welcome__section{text-align:center;flex-direction:column;align-items:center;scroll-margin-top:76px;display:flex}.welcome__section-title{color:var(--text-primary);margin-bottom:14px;font-family:Outfit,sans-serif;font-size:28px;font-weight:700}.welcome__section-text{color:var(--text-secondary);max-width:620px;margin-bottom:28px;font-size:14.5px;line-height:1.7}.welcome__section-title--md{font-size:22px}.welcome__chips{flex-wrap:wrap;justify-content:center;gap:12px;max-width:720px;list-style:none;display:flex}.welcome__chip{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);justify-content:center;align-items:center;min-width:76px;height:48px;padding:0 18px;display:inline-flex}.welcome__chip-logo{object-fit:contain;width:auto;max-width:88px;height:auto;max-height:22px}.welcome__preview{border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid #ffffff29;width:100%;max-width:720px;overflow:hidden}.welcome__preview video{width:100%;height:auto;display:block}.welcome__preview-caption{color:var(--text-muted);max-width:520px;margin-top:12px;font-size:12px;line-height:1.5}.welcome__form{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);text-align:left;flex-direction:column;gap:14px;width:100%;max-width:560px;padding:24px;display:flex}.welcome__form-field{flex-direction:column;gap:6px;display:flex}.welcome__form-label{color:var(--text-primary);font-size:12px;font-weight:600}.welcome__form-input,.welcome__form-textarea{border:1px solid var(--border-default);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition-fast);padding:9px 12px;font-family:Inter,sans-serif;font-size:13px}.welcome__form-input:focus,.welcome__form-textarea:focus{border-color:var(--border-active);outline:none}.welcome__form-input--invalid{border-color:#ef44448c}.welcome__form-textarea{resize:vertical;min-height:110px;line-height:1.5}.welcome__form-error{color:#f87171;font-size:11px;line-height:1.4}.welcome__form .welcome-btn--primary{align-self:flex-start}.welcome__form-note{color:var(--text-muted);margin-top:12px;font-size:11.5px}.welcome__footer{z-index:1;border-top:1px solid var(--border-default);background:var(--bg-secondary);margin-top:24px;position:relative}.welcome__footer-inner{grid-template-columns:1.2fr 1fr 1fr;gap:32px;max-width:960px;margin:0 auto;padding:40px 24px 28px;display:grid}.welcome__footer-brand{flex-direction:column;gap:12px;display:flex}.welcome__footer-brand-row{align-items:center;gap:10px;display:flex}.welcome__footer-logo{object-fit:contain;width:26px;height:26px}.welcome__footer-name{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:18px;font-weight:700}.welcome__footer-tag{color:var(--text-muted);max-width:260px;font-size:12.5px;line-height:1.6}.welcome__footer-col{flex-direction:column;gap:10px;display:flex}.welcome__footer-heading{color:var(--text-primary);font-size:12px;font-weight:700}.welcome__footer-col a{color:var(--text-secondary);transition:color var(--transition-fast);font-size:13px;text-decoration:none}.welcome__footer-col a:hover{color:var(--text-primary)}.welcome__footer-bottom{border-top:1px solid var(--border-default);text-align:center;color:var(--text-muted);padding:14px 24px;font-size:11.5px}.welcome--light{--bg-primary:#f6f7fb;--bg-secondary:#fff;--bg-elevated:#eef1f7;--bg-input:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--border-default:#0f172a1f;--border-active:#3b82f68c;--shadow-sm:0 2px 8px #0f172a0f;--shadow-md:0 8px 24px #0f172a1a;--shadow-lg:0 16px 48px #0f172a24}.welcome--light .welcome__logo,.welcome--light .welcome__watermark,.welcome--light .welcome__footer-logo{filter:brightness(.15)}.welcome--light .welcome__watermark{opacity:.05}.welcome--light .welcome__github,.welcome--light .welcome__theme{background:#0f172a08}.welcome--light .welcome__github:hover{background:#0f172a12;border-color:#0f172a38}.welcome--light .welcome-btn--secondary{background:#0f172a0d}.welcome--light .welcome-btn--secondary:hover{background:#0f172a17}.welcome--light .welcome__card:hover{border-color:#0f172a40}.welcome--light .welcome__preview{border-color:#0f172a29}@media (width<=960px){.welcome__nav{padding:12px 24px}.welcome__main{gap:64px;padding:48px 24px 24px}.welcome__title{font-size:34px}.welcome__cards{grid-template-columns:repeat(2,1fr)}.welcome__footer-inner{grid-template-columns:1fr 1fr}.welcome__footer-brand{grid-column:1/-1}}@media (width<=560px){.welcome__nav{flex-wrap:wrap;gap:8px;padding:10px 16px}.welcome__nav-links{order:3;justify-content:center;gap:20px;width:100%;padding-bottom:4px}.welcome__main{gap:48px;padding:32px 20px 20px}.welcome__title{font-size:27px}.welcome__actions{flex-direction:column;align-items:stretch;width:100%}.welcome__actions .welcome-btn{width:100%}.welcome__cards{grid-template-columns:1fr}.welcome__footer-inner{grid-template-columns:1fr;gap:24px;padding:32px 20px 24px}.welcome__footer-bottom{padding:12px 20px}}@media (prefers-reduced-motion:reduce){.welcome__main{animation:none}}.app[data-theme=light]{--bg-primary:#f6f7fb;--bg-secondary:#fff;--bg-elevated:#fff;--bg-surface:#e2e8f0;--bg-input:#fff;--border-default:#0f172a1f;--border-active:#3b82f68c;--border-muted:#0f172a0f;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--shadow-sm:0 2px 8px #0f172a0f;--shadow-md:0 8px 24px #0f172a1a;--shadow-lg:0 16px 48px #0f172a24;--shadow-glow:0 0 12px #3b82f61f;background:#f6f7fb}.app[data-theme=light] .toolbar__name{color:#0f172a}.app[data-theme=light] .toolbar__brand:hover .toolbar__name{color:#1d4ed8}.app[data-theme=light] .toolbar__tagline{border-left-color:#0f172a24}.app[data-theme=light] .toolbar__logo{filter:brightness(.15)drop-shadow(0 0 10px #3b82f640)}.app[data-theme=light] .app-brand-watermark{filter:brightness(.15);opacity:.05}.app[data-theme=light] .toolbar-btn,.app[data-theme=light] .panel-header__btn{background:#0f172a08}.app[data-theme=light] .toolbar-btn:hover,.app[data-theme=light] .panel-header__btn:hover{background:#0f172a0f;border-color:#0f172a2e}.app[data-theme=light] .toolbar-btn--danger{color:#dc2626;border-color:#ef44444d}.app[data-theme=light] .toolbar-btn--danger:hover{color:#b91c1c;background:#ef444414;border-color:#ef444480}.app[data-theme=light] .toolbar-btn--active,.app[data-theme=light] .panel-header__btn--active{color:#1d4ed8;background:#3b82f61f;border-color:#3b82f673}.app[data-theme=light] .toolbar-btn--active:hover,.app[data-theme=light] .panel-header__btn--active:hover{color:#1e40af;background:#3b82f62e;border-color:#3b82f699}.app[data-theme=light] .toolbar-btn--export--open{background:#0f172a0f;border-color:#0f172a2e}.app[data-theme=light] .toolbar-dropdown,.app[data-theme=light] .canvas-toolbar__dropdown,.app[data-theme=light] .modal,.app[data-theme=light] .namespace-field__list{box-shadow:var(--shadow-lg), 0 0 0 1px #0f172a0d}.app[data-theme=light] .toolbar__theme{background:#0f172a0a}.app[data-theme=light] .canvas-toolbar{background:#ffffffb8}.app[data-theme=light] .canvas-toolbar__group-divider{background:#0f172a1f}.app[data-theme=light] .canvas-button{background:#0f172a05}.app[data-theme=light] .canvas-button:hover{background:#0f172a0f;border-color:#0f172a2e}.app[data-theme=light] .canvas-button--active{color:#0d9488}.app[data-theme=light] .canvas-toolbar__scroll{scrollbar-color:#0f172a47 transparent}.app[data-theme=light] .canvas-toolbar__scroll::-webkit-scrollbar-thumb{background:#0f172a47}.app[data-theme=light] .canvas-toolbar__scroll::-webkit-scrollbar-thumb:hover{background:#0f172a73}.app[data-theme=light] .canvas-toolbar__scroll::-webkit-scrollbar-track{background:#0f172a0a}.app[data-theme=light] .canvas-button--scroll:disabled:hover{background:#0f172a05}.app[data-theme=light] .canvas-toolbar__group--pinned{background:#fffffff2}.app[data-theme=light] .gateway-route-card{background:#0f172a05}.app[data-theme=light] .react-flow__background{background:linear-gradient(#f6f7fb 0%,#fff 100%)!important}.app[data-theme=light] .react-flow__controls-button:hover{color:#0f172a!important;background:#0f172a0f!important}.app[data-theme=light] .k8s-node{color:#0f172a;background:#fff;border-color:#0f172a1f}.app[data-theme=light] .k8s-node:hover{border-color:#0f172a38}.app[data-theme=light] .k8s-node__header{border-bottom-color:#0f172a14}.app[data-theme=light] .k8s-node__badge{color:#334155;background:#0f172a0f;border-color:#0f172a1f}.app[data-theme=light] .k8s-node--container{background:#fff}.app[data-theme=light] .k8s-node__container-grid-overlay{background-image:radial-gradient(#0f172a0d 1px,#0000 0)}.app[data-theme=light] .k8s-node__badge--managed{background:#94a3b82e;border-color:#64748b73}.app[data-theme=light] .canvas-legend{background:#ffffffe6}.app[data-theme=light] .teaching-frame__delete{color:#dc2626}.app[data-theme=light] .yaml-error-banner{color:#b91c1c;background:#fef2f2;box-shadow:0 -4px 16px #0f172a1f}.app[data-theme=light] .yaml-error-banner__header{color:#dc2626}.app[data-theme=light] .yaml-resource-highlight{background:#3b82f61f!important}.app[data-theme=light] .file-tree__row:hover,.app[data-theme=light] .file-tree__count{background:#0f172a0f}.app[data-theme=light] .file-tree__icon--folder{color:#b45309}.app[data-theme=light] .node-inspector{box-shadow:-4px 0 24px #0f172a1a}.app[data-theme=light] .node-inspector__close:hover{background:#0f172a12}.app[data-theme=light] .inspector-content,.app[data-theme=light] .inspector-yaml-preview{scrollbar-color:#0f172a2e transparent}.app[data-theme=light] .inspector-content::-webkit-scrollbar-thumb{background:#0f172a2e}.app[data-theme=light] .inspector-hero,.app[data-theme=light] .inspector-section__header{background:#0f172a05}.app[data-theme=light] .inspector-hero__api-badge{background:#0f172a0a;border-color:#0f172a14}.app[data-theme=light] .inspector-hero__name,.app[data-theme=light] .canvas-empty-state__title{color:#0f172a}.app[data-theme=light] .inspector-section__header--toggle:hover{background:#0f172a0a}.app[data-theme=light] .inspector-section__count{background:#0f172a14}.app[data-theme=light] .inspector-field__input:disabled{background-color:#0f172a0a;border-color:#0f172a14}.app[data-theme=light] .inspector-label-chip{color:#2563eb;border-color:#3b82f633}.app[data-theme=light] .inspector-rel-item{background:#0f172a05}.app[data-theme=light] .inspector-rel-item:hover{border-color:#0f172a29}.app[data-theme=light] .inspector-rel-arrow--outgoing{color:#2563eb}.app[data-theme=light] .inspector-rel-arrow--incoming{color:#7c3aed}.app[data-theme=light] .inspector-rel-arrow--owns{color:#059669}.app[data-theme=light] .inspector-rel-arrow--owned-by{color:#ea580c}.app[data-theme=light] .inspector-rel-badge{background:#0f172a0d;border-color:#0f172a14}.app[data-theme=light] .inspector-yaml-preview{color:#475569}.app[data-theme=light] .inspector-validate-btn{color:#059669;border-color:#10b9814d}.app[data-theme=light] .inspector-validate-btn:hover:not(:disabled){color:#047857}.app[data-theme=light] .inspector-validate-btn:disabled{background:#0f172a0a}.app[data-theme=light] .inspector-delete-btn{color:#dc2626;border-color:#ef44444d}.app[data-theme=light] .inspector-delete-btn:hover{color:#b91c1c}.app[data-theme=light] .canvas-empty-state{background:#f6f7fbeb}.app[data-theme=light] .modal-overlay{background:#0f172a66}.app[data-theme=light] .modal-header__close:hover{background:#0f172a12}.app[data-theme=light] .modal-subsection{background:#0f172a08}.app[data-theme=light] .modal-btn--secondary{background:#0f172a0d}.app[data-theme=light] .modal-btn--secondary:hover{background:#0f172a14}.app[data-theme=light] .modal-field__error{color:#dc2626}.app[data-theme=light] .canvas-toast{background:#fffffff5}.app[data-theme=light] .canvas-statusbar__item{color:#b45309;background:#fffbebf5}.app[data-theme=light] .inspector-field__hint--hpa{color:#b45309}.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))}
