.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%}.correction-canvas[data-v-120d30f0]{min-height:260px}.correction-canvas-flow[data-v-120d30f0]{height:320px;background:var(--paper);border-radius:var(--r-md)}.utm-node[data-v-120d30f0]{min-width:150px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--paper);border:1px solid color-mix(in oklch,currentColor 25%,transparent);display:grid;gap:4px}.utm-node-exact[data-v-120d30f0]{color:var(--ok)}.utm-node-corrected[data-v-120d30f0]{color:var(--warn)}.utm-node-error[data-v-120d30f0]{color:var(--err)}.utm-node-title[data-v-120d30f0],.utm-node-diff[data-v-120d30f0],.utm-node-suggestions[data-v-120d30f0]{color:inherit;margin:0}.utm-node-title[data-v-120d30f0]{font-weight:600}.utm-node-diff[data-v-120d30f0]{font-size:.85em;word-break:break-word}.utm-node-diff-unchanged[data-v-120d30f0]{opacity:.7}.utm-node-suggestions[data-v-120d30f0]{font-size:.78em;opacity:.85}.naming-tree[data-v-9d5bc44c]{min-height:260px}.naming-tree-flow[data-v-9d5bc44c]{height:420px;background:var(--paper);border-radius:var(--r-md)}.naming-tree-node[data-v-9d5bc44c]{min-width:110px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--paper);border:1px solid color-mix(in oklch,currentColor 25%,transparent);display:grid;gap:2px;text-align:center}.naming-tree-node-root[data-v-9d5bc44c]{font-weight:700;border-color:var(--accent, currentColor)}.naming-tree-node-field[data-v-9d5bc44c]{font-weight:600}.naming-tree-node-value[data-v-9d5bc44c]{opacity:.85;font-size:.85em}.naming-tree-node-title[data-v-9d5bc44c]{margin:0}.naming-tree-node-subtitle[data-v-9d5bc44c]{margin:0;font-size:.75em;opacity:.7}:root{--paper: #fbfaf7;--paper-2: #f5f3ee;--paper-3: #edeae1;--ink: #0e0e12;--ink-2: #3a3a42;--ink-3: #6b6b76;--ink-4: #a6a6ae;--line: #e4e1d8;--line-2: #d4d0c3;--accent: oklch(58% .22 280);--accent-hover: oklch(52% .23 280);--accent-soft: oklch(96% .04 280);--accent-ink: oklch(28% .18 280);--ok: oklch(62% .14 155);--ok-soft: oklch(95% .04 155);--warn: oklch(72% .14 75);--warn-soft: oklch(95% .04 75);--err: oklch(58% .2 25);--err-soft: oklch(95% .04 25);--font-display: "Instrument Serif", "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 17px;--fs-lg: 20px;--fs-xl: 24px;--fs-2xl: 32px;--fs-3xl: 44px;--fs-4xl: 64px;--fs-5xl: 88px;--lh-tight: 1.08;--lh-snug: 1.25;--lh-normal: 1.55;--lh-loose: 1.7;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--s-24: 96px;--s-32: 128px;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--r-full: 9999px;--sh-xs: 0 1px 2px rgba(14, 14, 18, .04);--sh-sm: 0 2px 6px rgba(14, 14, 18, .05), 0 1px 2px rgba(14, 14, 18, .04);--sh-md: 0 8px 24px rgba(14, 14, 18, .06), 0 2px 6px rgba(14, 14, 18, .04);--sh-lg: 0 24px 48px rgba(14, 14, 18, .08), 0 4px 12px rgba(14, 14, 18, .04);--sh-focus: 0 0 0 3px color-mix(in oklch, var(--accent) 24%, transparent);--container: 1160px;--container-narrow: 880px;--nav-h: 64px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--t-fast: .12s;--t-med: .22s;--t-slow: .4s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-weight:500}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--s-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:10px 18px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;letter-spacing:-.005em;white-space:nowrap;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out);border:1px solid transparent;cursor:pointer}.btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.btn:disabled{opacity:.55;cursor:default;transform:none!important;box-shadow:none!important}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 18px color-mix(in oklch,var(--accent) 30%,transparent)}.btn-secondary{background:var(--paper);color:var(--ink);border-color:var(--line-2)}.btn-secondary:hover:not(:disabled){background:var(--paper-2)}.btn-ghost{color:var(--ink-2)}.btn-ghost:hover:not(:disabled){color:var(--ink);background:var(--paper-2)}.btn-lg{padding:14px 22px;font-size:var(--fs-base);border-radius:var(--r-lg)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:500;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line)}.badge-accent{background:var(--accent-soft);color:var(--accent-ink);border-color:color-mix(in oklch,var(--accent) 20%,transparent)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);max-width:var(--container);margin-inline:auto;padding-inline:var(--s-6)}.nav-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em}.nav-brand-mark{width:22px;height:22px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;flex-shrink:0}.nav-brand-mark span{background:var(--ink);border-radius:2px}.nav-brand-mark span:nth-child(2),.nav-brand-mark span:nth-child(3){background:var(--accent)}.nav-right{display:flex;align-items:center;gap:var(--s-4)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper-2)}.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in oklch,var(--ok) 25%,transparent)}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in oklch,var(--warn) 25%,transparent)}.badge-err{background:var(--err-soft);color:var(--err);border-color:color-mix(in oklch,var(--err) 25%,transparent)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-sm);padding:var(--s-8)}.field{display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}.field input,.field select{font:inherit;font-size:var(--fs-base);color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 14px;transition:border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:var(--sh-focus)}.field input::placeholder{color:var(--ink-4)}.checkbox-field{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}.checkbox-field input[type=checkbox]{margin-top:3px;accent-color:var(--accent)}.checkbox-field a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.key-box{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r-md);font-size:var(--fs-sm);word-break:break-all}.warn-text{color:var(--warn);font-size:var(--fs-sm)}.row-list{display:flex;flex-direction:column;gap:var(--s-2)}.row-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm)}.input-row{display:flex;align-items:center;gap:var(--s-2)}.input-row input{flex:1}.tag-list{display:flex;flex-wrap:wrap;gap:var(--s-2)}.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);background:var(--paper-2);border:1px solid var(--line)}.tag button{color:var(--ink-3);line-height:1}.tag button:hover{color:var(--err)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 40%,transparent);display:flex;align-items:flex-start;justify-content:center;padding:var(--s-10) var(--s-6);overflow-y:auto;z-index:100}.modal-panel{width:100%;max-width:640px}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);z-index:200}.spinner{width:32px;height:32px;border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stack{display:flex;flex-direction:column;gap:var(--s-5)}.error-text{color:var(--err);font-size:var(--fs-sm)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s-6)}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--s-6)}.auth-card h1{font-family:var(--font-display);font-size:var(--fs-2xl);line-height:var(--lh-tight)}.h-display{font-family:var(--font-display);font-size:var(--fs-3xl);line-height:var(--lh-tight)}.h-sub{font-size:var(--fs-lg);font-weight:600}.text-muted{color:var(--ink-3)}.app-shell{display:flex;min-height:100vh}.sidebar{position:relative;width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--s-6);background:var(--paper);border-right:1px solid var(--line);padding:var(--s-5) var(--s-4)}.sidebar-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;padding-inline:var(--s-2)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--s-1)}.sidebar-item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.sidebar-item:hover{background:var(--paper-2);color:var(--ink)}.sidebar-item.router-link-active{background:var(--accent-soft);color:var(--accent-ink)}.sidebar-icon{width:26px;height:26px;flex-shrink:0;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;background:var(--accent-soft);color:var(--accent-ink)}.sidebar-item.router-link-active .sidebar-icon{background:var(--accent);color:#fff}.sidebar-submenu{display:flex;flex-direction:column;gap:2px;margin:2px 0 var(--s-2) calc(26px + var(--s-3))}.sidebar-submenu a{padding:6px var(--s-2);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink-3)}.sidebar-submenu a:hover{color:var(--ink);background:var(--paper-2)}.sidebar-submenu a.router-link-exact-active{color:var(--accent-ink);font-weight:600}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line)}.sidebar-icon svg{width:16px;height:16px}.sidebar-top{display:flex;align-items:center}.sidebar{transition:width var(--t-med) var(--ease-out)}.sidebar-collapsed .sidebar-brand-name,.sidebar-collapsed .sidebar-label,.sidebar-collapsed .sidebar-submenu{display:none}.sidebar-collapsed .sidebar-top{justify-content:center}.sidebar-resize-handle{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:5}.sidebar-resize-handle:hover{background:color-mix(in oklch,var(--accent) 35%,transparent)}.sidebar-resize-tooltip{position:absolute;top:var(--s-6);left:calc(100% + var(--s-2));white-space:nowrap;background:var(--ink);color:#fff;font-size:var(--fs-xs);font-weight:500;padding:6px 10px;border-radius:var(--r-sm);box-shadow:var(--sh-md);opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease-out)}.sidebar-resize-handle:hover .sidebar-resize-tooltip{opacity:1}.btn-icon{padding:10px;width:42px}.btn-icon svg{width:18px;height:18px}.tabs{display:flex;gap:var(--s-5);border-bottom:1px solid var(--line)}.tab{padding-bottom:var(--s-3);font-size:var(--fs-sm);font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.tab:hover{color:var(--ink)}.tab-active{color:var(--accent-ink);border-color:var(--accent)}.app-content{flex:1;min-width:0;max-width:var(--container);padding:var(--s-10) var(--s-8);display:flex;flex-direction:column;gap:var(--s-8)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-5)}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-2)}.stat-card .stat-value{font-family:var(--font-display);font-size:var(--fs-3xl);line-height:1}
