.vk-diagrams{--vk-blue:#0170ad;--vk-blue-50:#e6f2f8;--vk-blue-100:#c6e1ee;--vk-blue-200:#91c5dc;--vk-blue-300:#4fa1c6;--vk-blue-500:#0170ad;--vk-blue-600:#015c8e;--vk-blue-700:#014b74;--vk-orange:#f57724;--vk-orange-50:#feede0;--vk-orange-100:#fdd8b8;--vk-orange-500:#f57724;--vk-orange-600:#d85f11;--n-0:#fff;--n-50:#fafbfc;--n-100:#f3f5f7;--n-150:#eceff2;--n-200:#e1e5ea;--n-300:#c8cfd6;--n-400:#97a3ae;--n-500:#6b7682;--n-600:#4d5763;--n-700:#364049;--n-800:#1f2730;--n-900:#0f151b;--bg-app:var(--n-50);--bg-surface:var(--n-0);--bg-sunken:var(--n-100);--bg-hover:var(--n-150);--bg-active:var(--n-200);--bg-canvas:#fbfcfd;--text-1:var(--n-900);--text-2:var(--n-700);--text-3:var(--n-500);--text-disabled:var(--n-400);--border:var(--n-200);--border-strong:var(--n-300);--border-focus:var(--vk-blue-500);--grid-line:#0f151b0d;--grid-line-strong:#0f151b1a;--accent:var(--vk-blue);--accent-bg:var(--vk-blue-50);--accent-border:var(--vk-blue-200);--shadow-1:0 1px 2px #0f151b0a, 0 1px 1px #0f151b08;--shadow-2:0 2px 4px #0f151b0f, 0 4px 12px #0f151b0f;--shadow-3:0 4px 8px #0f151b14, 0 12px 32px #0f151b1f;--shadow-pop:0 8px 24px #0f151b24, 0 18px 56px #0f151b2e;--shadow-focus:0 0 0 3px #0170ad40;--r-1:4px;--r-2:6px;--r-3:8px;--r-4:12px;--r-pill:999px;--topbar-h:48px;--ribbon-h:44px;--statusbar-h:26px;--sidebar-w:264px;--sidebar-r-w:288px;--prov-aws-bg:#fff7ed;--prov-aws-fg:#9a3412;--prov-azure-bg:#eff6ff;--prov-azure-fg:#1e40af;--prov-gcp-bg:#fef9c3;--prov-gcp-fg:#854d0e;--prov-k8s-bg:#cffafe;--prov-k8s-fg:#155e75;--prov-scaleway-bg:#f5f3ff;--prov-scaleway-fg:#5b21b6;--prov-generic-bg:#f1f5f9;--prov-generic-fg:#475569;--font-sans:"Inter", "Inter var", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, "Menlo", monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:16px;font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text-1);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11", "ss01";grid-template-rows:var(--topbar-h) var(--ribbon-h) 1fr auto var(--statusbar-h);height:100%;min-height:0;display:grid;overflow:hidden}html.dark .vk-diagrams{--n-0:#0f1620;--n-50:#0b1220;--n-100:#131c28;--n-150:#1a2433;--n-200:#243044;--n-300:#324159;--n-400:#5a6a82;--n-500:#94a3b8;--n-600:#b8c2d1;--n-700:#d2dae6;--n-800:#e3e9f2;--n-900:#f1f5f9;--bg-canvas:#0b1220;--grid-line:#ffffff0d;--grid-line-strong:#ffffff1a;--accent-bg:#0170ad2e;--accent-border:#0170ad80;--shadow-1:0 1px 2px #00000080;--shadow-2:0 2px 6px #00000080, 0 4px 12px #0006;--shadow-3:0 4px 12px #00000080, 0 12px 32px #00000080;--shadow-pop:0 8px 24px #0000008c, 0 18px 56px #0009;--shadow-focus:0 0 0 3px #66bae759;--prov-aws-bg:#2a1c0d;--prov-aws-fg:#fdba74;--prov-azure-bg:#0f1f33;--prov-azure-fg:#93c5fd;--prov-gcp-bg:#2a230a;--prov-gcp-fg:#fde68a;--prov-k8s-bg:#082c33;--prov-k8s-fg:#67e8f9;--prov-scaleway-bg:#1c1735;--prov-scaleway-fg:#c4b5fd;--prov-generic-bg:#1a2433;--prov-generic-fg:#94a3b8}.vk-diagrams .topbar{padding:0 var(--fs-md);background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex;position:relative}.vk-diagrams .topbar-left,.vk-diagrams .topbar-right{align-items:center;gap:8px;min-width:0;display:flex}.vk-diagrams .brand{color:var(--text-1);font-weight:600;font-size:var(--fs-lg);white-space:nowrap;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.vk-diagrams .brand-mark{width:22px;height:22px}.vk-diagrams .brand-name-light{color:var(--text-3);font-weight:500}.vk-diagrams .topbar-menu{gap:2px;margin-left:12px;display:flex}.vk-diagrams .menu-button{border-radius:var(--r-2);font-size:var(--fs-md);color:var(--text-2);background:0 0;border:0;padding:6px 10px}.vk-diagrams .menu-button:hover{background:var(--bg-hover);color:var(--text-1)}.vk-diagrams .doc-title-wrap{align-items:center;gap:8px;min-width:0;margin-left:12px;display:flex}.vk-diagrams .doc-title{border-radius:var(--r-2);font-weight:500;font-size:var(--fs-md);color:var(--text-1);background:0 0;border:1px solid #0000;outline:none;width:220px;min-width:120px;padding:4px 8px}.vk-diagrams .doc-title:hover{background:var(--bg-hover)}.vk-diagrams .doc-title:focus{background:var(--bg-surface);border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.vk-diagrams .doc-saved{font-size:var(--fs-xs);color:var(--text-3)}.vk-diagrams .doc-saved.is-saving{color:var(--vk-orange)}.vk-diagrams .doc-saved.is-error{color:#d43a3a}.vk-diagrams .presence{align-items:center;gap:4px;margin-right:8px;display:flex}.vk-diagrams .avatar{background:var(--c,var(--vk-blue));color:#fff;text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:600;display:inline-flex}.vk-diagrams .btn,.vk-diagrams .icon-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-2);font-size:var(--fs-md);color:var(--text-1);transition:background var(--t-fast,80ms) ease, border-color var(--t-fast,80ms) ease;align-items:center;gap:6px;padding:5px 10px;font-weight:500;display:inline-flex}.vk-diagrams .btn:hover,.vk-diagrams .icon-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.vk-diagrams .btn-ghost{color:var(--text-2);background:0 0;border:1px solid #0000}.vk-diagrams .btn-ghost:hover{background:var(--bg-hover);color:var(--text-1)}.vk-diagrams .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.vk-diagrams .btn-primary:hover{background:var(--vk-blue-600);border-color:var(--vk-blue-600)}.vk-diagrams .icon-btn{justify-content:center;width:30px;padding:0}.vk-diagrams .ribbon{padding:0 var(--fs-sm);background:var(--bg-surface);border-bottom:1px solid var(--border);align-items:center;gap:6px;display:flex;overflow-x:auto}.vk-diagrams .ribbon-group{align-items:center;gap:2px;display:flex}.vk-diagrams .ribbon-sep{background:var(--border);align-self:stretch;width:1px;margin:6px 4px}.vk-diagrams .ribbon-sep-thin{margin:8px 2px}.vk-diagrams .ribbon-spacer{flex:1}.vk-diagrams .tool{border-radius:var(--r-2);width:30px;height:30px;color:var(--text-2);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.vk-diagrams .tool:hover{background:var(--bg-hover);color:var(--text-1)}.vk-diagrams .tool[aria-pressed=true],.vk-diagrams .tool.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.vk-diagrams .zoom-control{border:1px solid var(--border);border-radius:var(--r-2);align-items:center;gap:0;display:inline-flex;overflow:hidden}.vk-diagrams .zoom-control .tool{border:0;border-right:1px solid var(--border);border-radius:0;min-width:28px;padding:0 8px}.vk-diagrams .zoom-control .tool:last-child{border-right:0}.vk-diagrams .zoom-control .zoom-pct{font-variant-numeric:tabular-nums;min-width:56px;font-size:var(--fs-xs)}.vk-diagrams .ribbon-split{display:inline-flex;position:relative}.vk-diagrams .ribbon-split .tool{border-radius:var(--r-2) 0 0 var(--r-2)}.vk-diagrams .ribbon-split .ribbon-split-caret{border-radius:0 var(--r-2) var(--r-2) 0;min-width:16px;color:var(--text-2);border-left:0;padding:0 4px;font-size:9px}.vk-diagrams .connector-popover{z-index:60;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-3);flex-direction:column;gap:8px;min-width:260px;padding:10px;display:flex;position:fixed;box-shadow:0 8px 24px #0000002e}.vk-diagrams .connector-popover-row{grid-template-columns:64px 1fr;align-items:center;gap:8px;display:grid}.vk-diagrams .connector-popover-label{font-size:var(--fs-xs);color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.vk-diagrams .connector-popover .seg{border:1px solid var(--border);border-radius:var(--r-2);display:inline-flex;overflow:hidden}.vk-diagrams .connector-popover .seg-btn{background:var(--bg-sunken);border:0;border-right:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2);cursor:pointer;white-space:nowrap;flex:1;padding:4px 6px}.vk-diagrams .connector-popover .seg-btn:last-child{border-right:0}.vk-diagrams .connector-popover .seg-btn:hover{background:var(--bg-hover);color:var(--text-1)}.vk-diagrams .connector-popover .seg-btn.is-active{background:var(--accent-bg);color:var(--accent-fg)}.vk-diagrams .zoom-btn,.vk-diagrams .zoom-level{background:var(--bg-surface);font-size:var(--fs-sm);color:var(--text-2);border:0;min-width:28px;padding:4px 8px}.vk-diagrams .zoom-btn:hover,.vk-diagrams .zoom-level:hover{background:var(--bg-hover);color:var(--text-1)}.vk-diagrams .zoom-level{border-left:1px solid var(--border);border-right:1px solid var(--border);font-variant-numeric:tabular-nums}.vk-diagrams{--sidebar-rail-w:40px}.vk-diagrams .workspace{grid-template-columns:var(--sidebar-w) 1fr var(--sidebar-r-w);min-width:0;min-height:0;display:grid;overflow:hidden}.vk-diagrams .workspace.left-collapsed{grid-template-columns:var(--sidebar-rail-w) 1fr var(--sidebar-r-w)}.vk-diagrams .workspace.right-collapsed{grid-template-columns:var(--sidebar-w) 1fr var(--sidebar-rail-w)}.vk-diagrams .workspace.left-collapsed.right-collapsed{grid-template-columns:var(--sidebar-rail-w) 1fr var(--sidebar-rail-w)}.vk-diagrams .sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}.vk-diagrams .sidebar-right{border-right:0;border-left:1px solid var(--border)}.vk-diagrams .sidebar.is-collapsed{align-items:center;gap:4px;padding-top:8px}.vk-diagrams .sidebar-rail-btn{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.vk-diagrams .sidebar-rail-btn:hover{background:var(--bg-sunken);color:var(--text-1)}.vk-diagrams .sidebar-collapse-btn{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.vk-diagrams .sidebar-collapse-btn:hover{background:var(--bg-sunken);color:var(--text-1)}.vk-diagrams .sidebar-collapse-btn-right{align-self:center;margin-left:4px;margin-right:4px}.vk-diagrams .library-search{padding:var(--fs-sm);border-bottom:1px solid var(--border);align-items:center;gap:6px;display:flex;position:relative}.vk-diagrams .library-search>svg{color:var(--text-3);pointer-events:none;position:absolute;left:22px}.vk-diagrams .library-search input{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-2);min-width:0;font-size:var(--fs-sm);outline:none;flex:1;padding:5px 28px 5px 30px}.vk-diagrams .library-search input:focus{background:var(--bg-surface);border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.vk-diagrams .library-search kbd{right:calc(var(--fs-sm) + 24px + 6px + 6px);font-family:var(--font-mono);color:var(--text-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-1);padding:1px 5px;font-size:10px;position:absolute}.vk-diagrams .library-tabs{padding:6px var(--fs-sm);border-bottom:1px solid var(--border);scrollbar-width:thin;gap:4px;display:flex;overflow-x:auto}.vk-diagrams .library-tab{border-radius:var(--r-1);font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap;background:0 0;border:1px solid #0000;padding:4px 10px}.vk-diagrams .library-tab:hover{background:var(--bg-hover)}.vk-diagrams .library-tab.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:500}.vk-diagrams .library-body{flex:1;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));align-content:start;gap:10px;padding:10px;display:grid;overflow-y:auto}.vk-diagrams .library-item{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-2);color:var(--text-2);cursor:grab;transition:background var(--t-fast,80ms) ease, border-color var(--t-fast,80ms) ease;text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-width:0;min-height:90px;padding:10px 6px 8px;font-size:10px;line-height:1.25;display:flex}.vk-diagrams .library-item>span{-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden}.vk-diagrams .library-item:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.vk-diagrams .library-item svg{pointer-events:none}.vk-diagrams .library-item img{object-fit:contain;width:44px;height:44px;image-rendering:-webkit-optimize-contrast}.vk-diagrams .library-footer{border-top:1px solid var(--border);padding:8px var(--fs-sm)}.vk-diagrams .link-btn{border-radius:var(--r-2);color:var(--accent);font-size:var(--fs-sm);background:0 0;border:0;align-items:center;gap:4px;padding:4px 8px;font-weight:500;display:inline-flex}.vk-diagrams .link-btn:hover{background:var(--accent-bg)}.vk-diagrams .canvas-wrap{background:var(--bg-canvas);min-width:0;min-height:0;position:relative;overflow:hidden}.vk-diagrams .canvas{-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.vk-diagrams .canvas:focus-visible{outline-offset:-2px;outline:2px solid #0170ad}.vk-diagrams .canvas-overlay{pointer-events:none;position:absolute;inset:0}.vk-diagrams .canvas-overlay>*{pointer-events:auto}.vk-diagrams .status-pill{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-2);border-radius:var(--r-pill);font-size:var(--fs-xs);color:var(--text-2);opacity:0;transition:opacity var(--t-med,.14s) ease;padding:4px 12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.vk-diagrams .status-pill.is-visible{opacity:1}.vk-diagrams .minimap{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-2);width:200px;height:120px;box-shadow:var(--shadow-1);position:absolute;bottom:12px;right:12px;overflow:hidden}.vk-diagrams .minimap svg{width:100%;height:100%;display:block}.vk-diagrams .inspector-tabs{border-bottom:1px solid var(--border);display:flex}.vk-diagrams .inspector-tab{font-size:var(--fs-sm);color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:8px 4px}.vk-diagrams .inspector-tab:hover{color:var(--text-1)}.vk-diagrams .inspector-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.vk-diagrams .inspector-body{padding:var(--fs-sm);flex:1;overflow-y:auto}.vk-diagrams .inspector-section{margin-bottom:var(--fs-md)}.vk-diagrams .inspector-section h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:0 0 6px;font-size:10px;font-weight:600}.vk-diagrams .field-row{grid-template-columns:80px 1fr;align-items:center;gap:8px;margin-bottom:6px;display:grid}.vk-diagrams .field-row label{font-size:var(--fs-sm);color:var(--text-2)}.vk-diagrams .field-row input,.vk-diagrams .field-row select,.vk-diagrams .field-row textarea{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-1);width:100%;font-size:var(--fs-sm);outline:none;padding:4px 8px}.vk-diagrams .field-row input:focus,.vk-diagrams .field-row select:focus,.vk-diagrams .field-row textarea:focus{background:var(--bg-surface);border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.vk-diagrams .swatches{flex-wrap:wrap;gap:4px;display:flex}.vk-diagrams .swatch{border-radius:var(--r-1);border:1px solid var(--border);cursor:pointer;width:22px;height:22px}.vk-diagrams .swatch.is-active{border-color:var(--accent);box-shadow:var(--shadow-focus)}.vk-diagrams .swatch-transparent{background-color:#fff;background-image:linear-gradient(45deg,#cbd5e1 25%,#0000 25%),linear-gradient(-45deg,#cbd5e1 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#cbd5e1 75%),linear-gradient(-45deg,#0000 75%,#cbd5e1 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;position:relative}.vk-diagrams .swatch-picker{background:var(--bg-sunken);color:var(--text-2);cursor:pointer;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex;position:relative}.vk-diagrams .swatch-picker input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.vk-diagrams .seg{border:1px solid var(--border);border-radius:var(--r-1);display:inline-flex;overflow:hidden}.vk-diagrams .seg button{background:var(--bg-surface);font-size:var(--fs-sm);color:var(--text-2);border:0;padding:4px 10px}.vk-diagrams .seg button+button{border-left:1px solid var(--border)}.vk-diagrams .seg button.is-active{background:var(--accent-bg);color:var(--accent)}.vk-diagrams .layer-row{border-radius:var(--r-1);font-size:var(--fs-sm);align-items:center;gap:8px;padding:4px 6px;display:flex}.vk-diagrams .layer-row:hover{background:var(--bg-hover)}.vk-diagrams .layer-row.is-selected{background:var(--accent-bg);color:var(--accent)}.vk-diagrams .layer-row .layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.vk-diagrams .layer-row button{color:var(--text-3);background:0 0;border:0;padding:2px}.vk-diagrams .layer-row button:hover{color:var(--text-1)}.vk-diagrams .page-tabs{background:var(--bg-surface);border-top:1px solid var(--border);padding:4px var(--fs-sm);align-items:center;gap:2px;display:flex;overflow-x:auto}.vk-diagrams .page-tab{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-1);font-size:var(--fs-sm);color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.vk-diagrams .page-tab:hover{background:var(--bg-hover)}.vk-diagrams .page-tab.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.vk-diagrams .page-tab .close{font-size:var(--fs-md);color:var(--text-3);background:0 0;border:0;margin-left:4px;padding:0 2px;line-height:1}.vk-diagrams .page-tab .close:hover{color:#d43a3a}.vk-diagrams .page-add{border:1px dashed var(--border-strong);border-radius:var(--r-1);font-size:var(--fs-sm);color:var(--text-3);background:0 0;padding:3px 8px}.vk-diagrams .page-add:hover{background:var(--bg-hover);color:var(--text-1);border-color:var(--text-3)}.vk-diagrams .statusbar{padding:0 var(--fs-md);background:var(--bg-surface);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-3);align-items:center;gap:8px;display:flex}.vk-diagrams .status-divider{background:var(--border);width:1px;height:14px}.vk-diagrams .status-spacer{flex:1}.vk-diagrams .modal{z-index:50;background:#0f151b66;place-items:center;display:grid;position:fixed;inset:0}.vk-diagrams .modal-card{background:var(--bg-surface);border-radius:var(--r-4);width:100%;max-width:560px;box-shadow:var(--shadow-pop);flex-direction:column;max-height:85vh;display:flex;overflow:hidden}.vk-diagrams .modal-card-wide{max-width:800px}.vk-diagrams .modal-header{border-bottom:1px solid var(--border);padding:16px 20px 12px}.vk-diagrams .modal-header h2{font-size:var(--fs-xl);margin:0;font-weight:600}.vk-diagrams .modal-body{flex:1;padding:16px 20px;overflow-y:auto}.vk-diagrams .modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.vk-diagrams .inline-editor{border:1px solid var(--border-focus);border-radius:var(--r-1);width:100%;font-size:var(--fs-sm);background:var(--bg-surface);outline:none;padding:2px 4px;font-weight:500}.vk-diagrams .tool:focus-visible,.vk-diagrams .btn:focus-visible,.vk-diagrams .swatch:focus-visible,.vk-diagrams .seg-btn:focus-visible,.vk-diagrams .seg button:focus-visible,.vk-diagrams .inspector-tab:focus-visible,.vk-diagrams .page-tab:focus-visible,.vk-diagrams .sidebar-rail-btn:focus-visible,.vk-diagrams .library-item:focus-visible,.vk-diagrams .library-tab:focus-visible,.vk-diagrams .layer-row button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.vk-diagrams .layer-row:focus-within button,.vk-diagrams .inspector-section:focus-within .row-actions{opacity:1}
