@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}:root{font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;color:#f4f4f4;background:#161616;font-synthesis:none;--color-background: #161616;--color-layer-01: #262626;--color-layer-02: #393939;--color-layer-hover: #333333;--color-border: #525252;--color-text: #f4f4f4;--color-text-secondary: #c6c6c6;--color-text-muted: #a8a8a8;--color-interactive: #42be65;--color-primary: #198038;--color-primary-hover: #0e6027;--color-success: #42be65;--color-error: #fa4d56;--color-warning: #f1c21b}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}#app{height:100vh;min-height:500px}.app-shell{display:flex;height:100%;overflow:hidden}.sidebar{width:272px;flex:none;display:flex;flex-direction:column;background:var(--color-layer-01);border-right:1px solid var(--color-border)}.brand{height:72px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 23px;border-bottom:1px solid var(--color-border)}.brand strong{display:block;font-size:18px;font-weight:500;letter-spacing:-.4px;line-height:1.2}.brand-description{color:var(--color-text-secondary);font-size:14px;font-weight:400;letter-spacing:0}.sidebar-section{padding:16px 18px;border-bottom:1px solid var(--color-border)}.section-label{color:var(--color-text-secondary);font-weight:500;font-size:14px;letter-spacing:0}.source-label{display:flex;align-items:center;gap:6px;min-width:0;font-size:14px;font-weight:400;letter-spacing:0}.source-label>span:first-child{flex:none}.source-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-line{display:flex;align-items:center;gap:8px;margin:14px 2px 17px;color:var(--color-text-secondary);font-size:14px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--color-error);box-shadow:0 0 9px #fa4d5688}.refresh-modes{display:flex;flex-direction:column;gap:6px;margin:0 2px}.refresh-option{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:14px;cursor:pointer}.refresh-option input{appearance:none;width:14px;height:14px;flex:none;margin:0;border:1px solid var(--color-text-muted);border-radius:50%;background:transparent;cursor:pointer}.refresh-option input:checked{border-color:var(--color-interactive);background:var(--color-interactive);box-shadow:inset 0 0 0 3px var(--color-layer-01)}.refresh-option input:focus-visible{outline:2px solid var(--color-interactive);outline-offset:2px}.manual-refresh{display:flex;align-items:center;justify-content:space-between}.refresh-link{padding:0;border:0;background:transparent;color:var(--color-interactive);font-size:14px;text-decoration:underline;text-underline-offset:2px}.refresh-link:hover:not(:disabled){color:var(--color-text)}.refresh-link:disabled{color:var(--color-text-muted);cursor:not-allowed}.tables-section{display:flex;flex-direction:column;flex:1;min-height:0;border-bottom:0;padding-bottom:0}.section-header{display:flex;justify-content:space-between;align-items:center}.count-pill{padding:2px 7px;border-radius:8px;background:var(--color-layer-02);color:var(--color-text-secondary);font:14px IBM Plex Sans,sans-serif}.search-input{width:100%;height:36px;margin-top:15px;padding:0 10px;border:1px solid var(--color-border);border-radius:7px;outline:none;background:var(--color-layer-02);color:var(--color-text);font-size:14px}.search-input:focus{border-color:var(--color-interactive)}.search-input::placeholder{color:var(--color-text-muted)}.table-list{flex:1;min-height:0;margin:13px -8px 0;overflow-y:auto}.table-link{width:100%;display:flex;align-items:center;gap:6px;padding:8px;color:var(--color-text-secondary);border:0;border-radius:6px;background:transparent;text-align:left;font-size:14px}.table-link:hover,.relation-link[aria-pressed=true]{background:var(--color-layer-hover);color:var(--color-text)}.table-link-icon{width:18px;flex:none;color:var(--color-text-muted);font-size:17px;line-height:1;text-align:center}.table-link-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.table-link-count{color:var(--color-text-muted);font:14px IBM Plex Sans,sans-serif}.relation-text{flex:1;min-width:0}.relation-text strong,.relation-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relation-text strong{color:var(--color-text);font-weight:500}.relation-text small{margin-top:3px;color:var(--color-text-muted);font-size:14px}.empty-search{padding:8px;color:var(--color-text-muted);font-size:14px}.sidebar-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-top:1px solid var(--color-border);padding:12px}.sidebar-button{min-width:0;height:36px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-layer-02);color:var(--color-text-secondary);font-size:14px}.sidebar-button:hover{background:var(--color-layer-hover);color:var(--color-text)}.sidebar-button.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.workspace{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--color-background)}.diagram{position:relative;flex:1;min-height:0}.error-banner{position:absolute;z-index:20;right:22px;top:16px;max-width:min(450px,calc(100vw - 310px));display:flex;flex-direction:column;gap:5px;padding:15px 18px;border:1px solid var(--color-error);border-radius:8px;background:var(--color-layer-01);box-shadow:0 14px 35px #0005;color:var(--color-text-secondary);font-size:12px}.error-banner strong{margin-bottom:2px;color:var(--color-text)}.vue-flow{background:var(--color-background)}.vue-flow__node-table{width:360px}.vue-flow__node.dimmed{opacity:.25}.table-node{width:360px;background:var(--color-layer-01);border:1px solid var(--color-border);border-radius:9px;overflow:visible;box-shadow:0 14px 34px #0006}.vue-flow__node.selected .table-node{border-color:var(--color-interactive);box-shadow:0 0 0 2px #42be6544,0 14px 34px #0006}.table-header{min-height:50px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--color-border);border-radius:8px 8px 0 0;background:linear-gradient(110deg,color-mix(in srgb,var(--table-accent) 22%,var(--color-layer-02)),var(--color-layer-02) 75%);border-top:3px solid var(--table-accent)}.table-title{flex:1;min-width:0}.table-title small{display:block;color:var(--color-text-secondary);font:9px IBM Plex Sans,sans-serif}.table-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;color:var(--color-text)}.column-count{padding:3px 6px;border-radius:5px;background:#16161699;color:var(--color-text-secondary);font:10px IBM Plex Sans,sans-serif}.table-column{position:relative;height:34px;display:flex;align-items:center;gap:5px;padding:0 11px;border-top:1px solid var(--color-layer-02);font-size:11px}.table-column:last-child{border-radius:0 0 8px 8px}.column-marks{flex:0 0 30px;height:30px;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;column-gap:2px}.key-mark{width:14px;flex:none;font-size:14px;line-height:1;text-align:center}.key-mark.primary{color:var(--color-warning)}.column-name{flex:1;min-width:0;color:var(--color-text);font:14px IBM Plex Sans,sans-serif;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.index-mark{position:relative;width:14px;flex:none;font-size:14px;line-height:1;text-align:center}.column-marks>:only-child{width:26px;font-size:24px}.index-mark-regular{color:#78a9ff}.index-mark-unique{color:#be95ff}.index-mark-count{position:absolute;right:-2px;bottom:-1px;padding:0 2px;border-radius:3px;background:var(--color-background);color:var(--color-text);font:700 9px/1.2 IBM Plex Sans,sans-serif}.column-marks>:not(:only-child) .index-mark-count{right:-1px;bottom:-2px;font-size:7px}.column-badge{flex:none;padding:2px 4px;border-radius:3px;background:var(--color-background);color:var(--color-text-secondary);font-size:9px;font-weight:700;line-height:1.2}.column-type{max-width:95px;color:var(--color-text-secondary);font:14px IBM Plex Sans,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-handle{width:7px;height:7px;border:1px solid var(--color-text-secondary);background:var(--color-layer-02);opacity:0}.column-handle.connected{opacity:1}.column-handle.left{left:-4px}.column-handle.right{right:-4px}.vue-flow__edge-path{stroke-width:1.6}.vue-flow__edge-text{font-family:IBM Plex Sans,sans-serif}.vue-flow__controls{border:1px solid var(--color-border);border-radius:8px;overflow:hidden;box-shadow:0 8px 24px #0004}.vue-flow__controls-button{width:28px;height:28px;border-bottom:1px solid var(--color-border);background:var(--color-layer-01);fill:var(--color-text)}.vue-flow__controls-button:hover{background:var(--color-layer-hover)}.empty-state{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;color:var(--color-text-secondary);gap:8px;font-size:12px}.empty-state strong{color:var(--color-text);font-size:16px}.empty-icon{width:65px;height:65px;display:grid;place-items:center;margin-bottom:8px;border:1px solid var(--color-border);border-radius:15px;background:var(--color-layer-01);color:var(--color-interactive);font-size:37px}@media(max-width:720px){.sidebar{width:205px}.brand{padding:0 14px}.sidebar-section{padding:16px 12px}.error-banner{top:10px;right:10px;max-width:calc(100vw - 225px)}}
