.react-flow{direction:ltr;--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: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--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: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--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 rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.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: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--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: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--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 rgba(0, 0, 0, .08);--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{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.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{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.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;-moz-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:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-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}.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:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;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%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;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{position:absolute;z-index:5;margin:15px}.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{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;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))}.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{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.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-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--bg-canvas: #f5f6f8;--bg-surface: #ffffff;--bg-subtle: #f0f2f5;--bg-sidebar: #0e1320;--bg-sidebar-active: #1d2638;--border-default: #e2e5ea;--border-strong: #c9ced6;--text-primary: #141821;--text-secondary: #5a6272;--text-tertiary: #8a92a3;--text-on-dark: #e8ecf3;--text-on-dark-muted: #8d97ab;--text-on-primary: #ffffff;--brand-primary: #2f5bea;--brand-primary-strong: #2449c4;--brand-primary-soft: #eaf0ff;--status-success: #1e8e4f;--status-success-soft: #e5f5ec;--status-danger: #c93b3b;--status-danger-soft: #fcebeb;--status-warning: #b7720b;--status-warning-soft: #fdf3e1;--font-sans: "IBM Plex Sans Thai", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "IBM Plex Sans Thai", ui-monospace, monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--shadow-pop: 0 6px 16px rgb(13 20 38 / .12);--focus-ring: 0 0 0 3px rgb(47 91 234 / .25)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:500;font-size:13px;white-space:nowrap;transition:background-color .15s,border-color .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%;height:40px;font-size:14px}.btn-primary{background:var(--brand-primary);color:var(--text-on-primary)}.btn-primary:hover:not(:disabled){background:var(--brand-primary-strong)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle)}.btn-danger{background:var(--status-danger-soft);color:var(--status-danger)}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.spinner-lg{width:28px;height:28px;border-width:3px;color:var(--brand-primary)}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.input-wrap{position:relative}.field input{width:100%;height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit}.field input::placeholder{color:var(--text-tertiary)}.field input:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.field input[aria-invalid=true]{border-color:var(--status-danger)}.field input[type=password],.input-wrap:has(.input-icon) input{padding-right:40px}.input-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary)}.input-icon:hover{color:var(--text-secondary);background:var(--bg-subtle)}.field-hint,.field-error{font-size:12px;line-height:16px}.field-hint{color:var(--text-tertiary)}.field-error{color:var(--status-danger)}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.checkbox input{width:16px;height:16px;accent-color:var(--brand-primary)}.alert{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);font-size:13px}.alert svg{flex:none;margin-top:2px}.alert strong{font-weight:500}.alert-body{color:var(--text-secondary);font-size:12px}.alert-danger{background:var(--status-danger-soft);color:var(--status-danger)}.alert-info{background:var(--brand-primary-soft);color:var(--brand-primary)}.alert-warning{background:var(--status-warning-soft);color:var(--status-warning)}.alert-success{background:var(--status-success-soft);color:var(--status-success)}.plan-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font-size:10.5px;font-weight:600;letter-spacing:.04em}.plan-free{background:var(--bg-subtle);color:var(--text-secondary)}.plan-dev{background:var(--brand-primary-soft);color:var(--brand-primary)}.plan-pro{background:#f1eafd;color:#6b3fc9}.plan-unlimited{background:var(--status-success-soft);color:var(--status-success)}.logo{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:var(--text-primary)}.logo-dark{color:var(--text-on-dark)}.logo-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--brand-primary);color:var(--text-on-primary)}.splash{display:grid;place-items:center;height:100%}.logo-link{text-decoration:none;border-radius:var(--radius-sm)}.logo-link:hover{opacity:.85}.logo-link:focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}.auth{display:grid;grid-template-columns:minmax(360px,5fr) 7fr;min-height:100%}.auth-story{display:flex;flex-direction:column;padding:40px 48px;background:var(--bg-sidebar);color:var(--text-on-dark)}.auth-story-body{margin:auto 0;max-width:420px}.auth-story h2{font-size:28px;line-height:38px;font-weight:600;margin-bottom:28px}.auth-story ul{list-style:none;padding:0;margin:0;display:grid;gap:16px}.auth-story li{display:flex;gap:12px;color:var(--text-on-dark-muted);font-size:15px;line-height:24px}.auth-story li svg{flex:none;margin-top:4px;color:#7fa0ff}.auth-story-foot{color:var(--text-on-dark-muted);font-size:13px}.auth-main{display:grid;place-items:center;padding:40px 24px}.auth-card{width:100%;max-width:400px}.auth-card-logo{display:none;margin-bottom:32px}.auth-card h1{font-size:24px;line-height:32px;font-weight:600}.auth-sub{margin-top:4px;color:var(--text-secondary)}.auth-form{display:grid;gap:16px;margin-top:28px}.auth-row{display:flex;justify-content:space-between;align-items:center}.muted-link{font-size:13px;color:var(--text-secondary)}.auth-footer{margin-top:24px;text-align:center;color:var(--text-secondary)}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-size:12.5px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--border-default)}.sso-choices{display:grid;gap:8px}.plan-note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-secondary);font-size:12.5px;line-height:18px}.plan-note .plan-badge{flex:none;margin-top:1px}@media (max-width: 860px){.auth{grid-template-columns:1fr}.auth-story{display:none}.auth-card-logo{display:block}.auth-main{place-items:start center;padding:48px 16px}}.shell{display:flex;min-height:100%}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:4px;width:248px;flex:none;height:100vh;padding:20px 16px;background:var(--bg-sidebar);color:var(--text-on-dark-muted);overflow-y:auto}.sidebar-logo{padding:0 4px 16px}.sidebar-spacer{flex:1}.ws{position:relative}.ws-button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:var(--radius-sm);background:var(--bg-sidebar-active);color:var(--text-on-dark-muted);text-align:left}.ws-text{display:flex;flex-direction:column;flex:1;min-width:0}.ws-caption{font-size:11px;font-weight:600;line-height:14px}.ws-name{color:var(--text-on-dark);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-menu{position:absolute;z-index:10;top:calc(100% + 6px);left:0;right:0;padding:4px;border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-pop)}.ws-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);text-align:left}.ws-item:hover,.ws-item.active{background:var(--bg-subtle)}.nav-section{padding:20px 12px 6px;font-size:11px;font-weight:600;line-height:14px}.nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 12px;border-radius:var(--radius-sm);color:var(--text-on-dark-muted)}.nav-item:hover{text-decoration:none;color:var(--text-on-dark)}.nav-item.active{background:var(--bg-sidebar-active);color:var(--text-on-dark);font-weight:500}.user{display:flex;align-items:center;gap:10px;padding:12px 4px 0;border-top:1px solid var(--bg-sidebar-active)}.avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--brand-primary);color:var(--text-on-primary);font-size:11px;font-weight:600}.user-text{display:flex;flex-direction:column;flex:1;min-width:0}.user-name{color:var(--text-on-dark);font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{display:flex;align-items:center;gap:4px;font-size:12px}.icon-button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-on-dark-muted)}.icon-button:hover{background:var(--bg-sidebar-active);color:var(--text-on-dark)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;gap:8px;padding:20px 32px;background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.page-header h1{font-size:22px;line-height:30px;font-weight:600}.page-header p{color:var(--text-secondary);font-size:13px}.page-body{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start;padding:24px 32px}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:64px 24px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);text-align:center}.empty-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:4px;border-radius:var(--radius-md);background:var(--brand-primary-soft);color:var(--brand-primary)}.empty h2{font-size:16px;font-weight:600}.empty p{max-width:380px;color:var(--text-secondary);font-size:13px}.card{padding:16px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-head h3{font-size:14px;font-weight:600}.limits{display:grid;gap:8px;margin:0}.limits div{display:flex;justify-content:space-between;font-size:13px}.limits dt{color:var(--text-secondary)}.limits dd{margin:0;font-weight:500}@media (max-width: 960px){.sidebar{width:72px;padding:16px 10px}.sidebar-logo,.ws,.nav-section,.nav-item span,.user-text{display:none}.nav-item{justify-content:center;padding:0}.user{flex-direction:column}.page-body{grid-template-columns:1fr;padding:16px}.page-header{padding:16px}}.support-banner{display:flex;align-items:center;gap:8px;padding:8px 32px;background:var(--status-warning-soft);color:var(--status-warning);font-size:13px;font-weight:500;border-bottom:1px solid var(--border-default)}.support-banner .link-button{margin-left:auto}@media (max-width: 560px){.support-banner{flex-wrap:wrap;padding:8px 16px}}.gs-button{display:flex;align-items:center;gap:8px;width:100%;margin-top:8px;padding:7px 10px;border:1px solid var(--bg-sidebar-active);border-radius:var(--radius-sm);background:transparent;color:var(--text-on-dark-muted);font:inherit;font-size:13px;text-align:left;cursor:pointer}.gs-button:hover{background:var(--bg-sidebar-active);color:var(--text-on-dark)}.gs-button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-button kbd{padding:0 5px;border:1px solid var(--bg-sidebar-active);border-radius:4px;font-family:var(--font-mono);font-size:11px}.gs-backdrop{place-items:start center;padding-top:12vh}.gs-dialog{display:flex;flex-direction:column;width:100%;max-width:640px;max-height:70vh;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-pop);overflow:hidden}.gs-input{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border-default);color:var(--text-secondary)}.gs-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:15px}.gs-results{overflow-y:auto;padding:6px 0}.ss-note{margin:0;padding:10px 16px;color:var(--text-secondary);font-size:13px}.ss-error{color:var(--status-danger)}.ss-group+.ss-group{margin-top:4px}.ss-group-head{display:flex;align-items:center;gap:6px;padding:6px 16px 2px;color:var(--text-secondary);font-size:12px;font-weight:600}.ss ul{margin:0;padding:0;list-style:none}.ss-hit{display:flex;align-items:center;gap:8px;width:100%;padding:6px 16px 6px 24px;border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;text-align:left;cursor:pointer}.ss-hit svg{flex:none;color:var(--text-secondary)}.ss-hit:hover,.ss-hit.active{background:var(--brand-primary-soft)}.ss-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.ss-name mark{background:transparent;color:var(--brand-primary-strong);font-weight:600}.ss-meta{flex:none;max-width:40%;overflow:hidden;color:var(--text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dx-tree-list .ss-hit{padding-left:16px}.dx-tree-list .ss-meta{display:none}.dx-tree-list .ss-group-head,.dx-tree-list .ss-note{padding-left:12px;padding-right:12px}.field select{width:100%;height:40px;padding:0 36px 0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field select:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.field select[aria-invalid=true]{border-color:var(--status-danger)}.select-caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;line-height:16px;white-space:nowrap}.badge-neutral{background:var(--bg-subtle);color:var(--text-secondary)}.badge-success{background:var(--status-success-soft);color:var(--status-success)}.badge-danger{background:var(--status-danger-soft);color:var(--status-danger)}.badge-warning{background:var(--status-warning-soft);color:var(--status-warning)}.badge-info{background:var(--brand-primary-soft);color:var(--brand-primary)}.badge-success:before,.badge-danger:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}body.modal-open{overflow:hidden}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px 16px;background:#0e132073;overflow-y:auto}.modal{width:100%;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-pop);outline:none}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-default)}.modal-head h2{font-size:16px;font-weight:600;line-height:24px}.modal-close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary)}.modal-close:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-body{padding:20px}.modal-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-default);background:var(--bg-canvas);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.mr-auto{margin-right:auto}.stack{display:flex;flex-direction:column;gap:12px}.confirm-text{color:var(--text-secondary)}.confirm-text strong{color:var(--text-primary)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span-2{grid-column:1 / -1}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.btn-danger-ghost{color:var(--status-danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--status-danger-soft)}.link-button{padding:0;border:0;background:none;color:var(--brand-primary);font:inherit;cursor:pointer}.link-button:hover{text-decoration:underline}.page-header{justify-content:space-between;flex-wrap:wrap}.page-title{display:flex;flex-direction:column;gap:2px;min-width:0}.title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-content{display:flex;flex-direction:column;gap:16px;padding:24px 32px;min-width:0}.page-content-fill{flex:1;min-height:0}.back-link{display:inline-flex;align-items:center;gap:4px;width:fit-content;margin-bottom:4px;color:var(--text-secondary);font-size:13px}.back-link:hover{color:var(--text-primary);text-decoration:none}@media (max-width: 960px){.page-content{padding:16px}}.table-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);overflow-x:auto;transition:opacity .15s}.table-card.is-fetching{opacity:.6}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{padding:10px 16px;border-bottom:1px solid var(--border-default);background:var(--bg-canvas);color:var(--text-secondary);font-size:12px;font-weight:500;text-align:left;white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-default);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table.compact th,.data-table.compact td{padding:8px 12px}.data-table .num{width:1%;text-align:right}.row-link{cursor:pointer}.row-link:hover td{background:var(--bg-canvas)}.row-link:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-2px;box-shadow:none}.cell-chevron{width:1%;color:var(--text-tertiary)}.cell-clip{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid var(--border-default);font-size:13px}.mono{font-family:var(--font-mono);font-size:12.5px}.muted{color:var(--text-tertiary)}.small{font-size:12px}.strong{font-weight:500}.skeleton-row,.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--border-default) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}.skeleton-row{height:44px;margin:8px}.skeleton-line{width:220px;height:26px}@keyframes shimmer{to{background-position:-200% 0}}.spin{animation:spin .8s linear infinite}@media (prefers-reduced-motion: reduce){.skeleton-row,.skeleton-line,.spin{animation:none}}.resize-handle{position:absolute;z-index:5;touch-action:none}.resize-handle:after{content:"";position:absolute;background:transparent;transition:background-color .12s}.resize-x{top:0;bottom:0;width:7px;cursor:col-resize}.resize-x:after{top:0;bottom:0;left:3px;width:1px}.resize-y{left:0;right:0;height:7px;cursor:row-resize}.resize-y:after{left:0;right:0;top:3px;height:1px}.resize-handle:hover:after,.resize-handle:focus-visible:after,body.resizing-x .resize-x:after,body.resizing-y .resize-y:after{background:var(--brand-primary)}.resize-x:hover:after,.resize-x:focus-visible:after{left:2px;width:3px}.resize-y:hover:after,.resize-y:focus-visible:after{top:2px;height:3px}.resize-handle:focus-visible{outline:none}body.resizing-x,body.resizing-y{-webkit-user-select:none;user-select:none}body.resizing-x *{cursor:col-resize!important}body.resizing-y *{cursor:row-resize!important}.usage{padding:0 10px;height:28px;display:inline-flex;align-items:center;border-radius:999px;background:var(--bg-subtle);color:var(--text-secondary);font-size:12px;font-weight:500}.usage-full{background:var(--status-warning-soft);color:var(--status-warning)}.cell-name{display:inline-flex;align-items:center;gap:10px;font-weight:500}.driver-dot{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:var(--radius-sm);background:var(--brand-primary-soft);color:var(--brand-primary)}.driver-mysql{background:var(--status-warning-soft);color:var(--status-warning)}.driver-oracle{background:var(--status-danger-soft);color:var(--status-danger)}.driver-mongodb,.driver-sqlite{background:var(--status-success-soft);color:var(--status-success)}.driver-sqlserver{background:var(--status-danger-soft);color:var(--status-danger)}.host-port{display:grid;grid-template-columns:1fr 120px;gap:12px}.explorer{display:grid;grid-template-columns:300px 1fr;height:calc(100vh - 200px);min-height:480px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);overflow:hidden}.explorer-tree{display:flex;flex-direction:column;border-right:1px solid var(--border-default);background:var(--bg-canvas);min-height:0}.tree-tools{display:flex;gap:6px;padding:12px 12px 6px}.search{position:relative;flex:1;display:flex;align-items:center}.search svg{position:absolute;left:10px;color:var(--text-tertiary);pointer-events:none}.search input{width:100%;height:34px;padding:0 10px 0 32px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;font-size:13px}.search input:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.tool-button{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary)}.tool-button:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-tertiary)}.tool-button:disabled{cursor:progress}.tree-meta{padding:0 14px 8px;color:var(--text-tertiary);font-size:12px}.tree-alert{padding:0 12px 8px}.tree{flex:1;margin:0;padding:0 6px 12px;list-style:none;overflow-y:auto}.tree ul{margin:0;padding:0 0 4px 14px;list-style:none}.tree-empty{padding:12px 8px;color:var(--text-tertiary);font-size:13px}.tree-schema,.tree-table{display:flex;align-items:center;gap:6px;width:100%;height:30px;padding:0 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;text-align:left}.tree-schema{color:var(--text-primary);font-weight:500}.tree-schema:hover,.tree-table:hover{background:var(--bg-subtle)}.tree-table.active{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:500}.tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12.5px}.tree-count{color:var(--text-tertiary);font-size:11px;font-weight:400}.rot-90{transform:rotate(90deg)}.tree-schema svg{flex:none;transition:transform .12s}.explorer-detail{min-width:0;padding:20px 24px;overflow:auto}.explorer-detail .empty{border:0}.explorer-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:360px;padding:32px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);text-align:center}.explorer-state h2{font-size:16px;font-weight:600}.explorer-state p{max-width:420px;color:var(--text-secondary);font-size:13px}.explorer-state .alert{max-width:520px;text-align:left}.table-detail{display:flex;flex-direction:column;gap:16px}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.detail-head h2{font-size:18px;font-weight:600;line-height:26px}.detail-path{color:var(--text-tertiary)}.detail-badges{display:flex;gap:6px;flex-wrap:wrap}.col-name{display:inline-flex;align-items:center;gap:6px;font-weight:500}.key-pk,.key-fk{display:inline-flex;align-items:center;gap:2px;height:18px;padding:0 5px;border-radius:4px;font-family:var(--font-sans);font-size:10.5px;font-weight:600}.key-pk{background:var(--status-warning-soft);color:var(--status-warning)}.key-fk{background:var(--brand-primary-soft);color:var(--brand-primary)}.fk-section h3{margin-bottom:8px;font-size:14px;font-weight:600}.fk-section p{font-size:13px}.fk-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.fk-list li{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:13px}.fk-list svg{color:var(--text-tertiary)}.fk-name{margin-left:auto;font-size:12px}@media (max-width: 960px){.explorer{grid-template-columns:1fr;height:auto}.explorer-tree{max-height:320px;border-right:0;border-bottom:1px solid var(--border-default)}.explorer-detail{max-height:none;padding:16px}}.cert-group{display:flex;flex-direction:column;gap:12px;margin:0;padding:12px 14px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md)}.cert-group legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--text-primary)}.cert-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:4px 4px 4px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface)}.field-invalid .cert-row{border-color:var(--status-danger)}.cert-state{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.cert-state.is-new{color:var(--brand-primary);font-weight:500}.cert-state.is-removed,.cert-expired{color:var(--status-danger)}.cert-expiring{color:var(--status-warning)}.cell-name .badge{margin-left:8px}.cert-actions{display:flex;flex:none;gap:4px}@media (max-width: 560px){.cert-row{flex-direction:column;align-items:stretch;padding:8px}.cert-state{white-space:normal}}.ssh-hostkey{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.egress{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-canvas)}.egress summary{display:flex;align-items:center;gap:8px;padding:10px 12px;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;list-style:none}.egress summary::-webkit-details-marker{display:none}.egress summary svg{color:var(--text-secondary)}.egress[open] summary{border-bottom:1px solid var(--border-default)}.egress-body{display:grid;gap:10px;padding:12px;color:var(--text-secondary);font-size:13px}.egress-body p{margin:0}.egress-fail{color:var(--status-warning);font-weight:500}.egress-ips{display:grid;gap:6px;margin:0;padding:0;list-style:none}.egress-ips li{display:flex;align-items:center;gap:12px}.egress-ips code,.egress-example code{padding:2px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-mono);font-size:13px}.egress-where{display:grid;gap:6px}.egress-where strong{color:var(--text-primary);font-weight:500}.egress-example{display:grid;gap:4px}.egress-example code{overflow-x:auto;white-space:nowrap}.egress-body>.link-button{justify-self:start}.dx{display:grid;grid-template-columns:272px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100vh;min-width:0}.dx-header{grid-column:1 / -1;grid-row:1;justify-content:space-between;flex-wrap:wrap}.dx-breadcrumb{display:flex;gap:8px;color:var(--text-tertiary);font-size:12px;line-height:16px}.dx-header h1{font-family:var(--font-sans)}.dx-tree{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:8px;min-height:0;padding:16px 12px;border-right:1px solid var(--border-default);background:var(--bg-surface)}.dx-search{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:var(--radius-sm);background:var(--bg-canvas);color:var(--text-tertiary)}.dx-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:13px;color:var(--text-primary);outline:none}.dx-search:focus-within{box-shadow:var(--focus-ring)}.dx-tree-list,.dx-tree-list ul{margin:0;padding:0;list-style:none}.dx-tree-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.dx-tree-list ul{display:flex;flex-direction:column;gap:2px;margin-top:2px}.dx-node{display:flex;align-items:center;gap:6px;width:100%;height:28px;padding:5px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:13px;text-align:left}.dx-node:hover{background:var(--bg-subtle)}.dx-node svg{flex:none;color:var(--text-secondary)}.dx-level-1{padding-left:24px}.dx-level-2{padding-left:40px}.dx-indent{width:12px;flex:none}.dx-node.active{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:500}.dx-node.active svg{color:var(--brand-primary)}.dx-node-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-node-count{color:var(--text-tertiary);font-size:12px;font-weight:400}.dx-db-failed{color:var(--status-danger)!important}.dx-tree-note{padding:6px 8px;color:var(--text-tertiary);font-size:12px}.dx-tree-note.dx-level-1{padding-left:42px}.dx-tree-error{color:var(--status-danger)}.dx-view{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:12px;min-height:0;padding:20px 24px;background:var(--bg-canvas)}.dx-view-empty{justify-content:center}.dx-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:32px}.dx-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.dx-chip .mono{font-size:13px}.dx-chip>svg{color:var(--text-secondary)}.dx-chip button{display:grid;place-items:center;padding:0;border:0;background:none;color:var(--text-tertiary)}.dx-chip button:hover:not(:disabled){color:var(--text-primary)}.rot-180{transform:rotate(180deg)}.dx-filter-form{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.dx-filter-form select,.dx-filter-form input,.dx-pagination select{height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;font-size:13px}.dx-filter-form input{width:180px}.dx-spacer{flex:1}.dx-query-time{color:var(--text-tertiary);font-size:12px}.dx-grid-card{flex:1;min-height:0;overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);transition:opacity .15s}.dx-grid-card.is-fetching{opacity:.6}.dx-grid{border-collapse:separate;border-spacing:0;min-width:100%;font-family:var(--font-mono);font-size:13px}.dx-grid th,.dx-grid td{height:32px;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);background:var(--bg-surface);white-space:nowrap;text-align:left}.dx-grid th{position:sticky;top:0;z-index:2;padding:0;background:var(--bg-subtle);color:var(--text-secondary);font-weight:500}.dx-sort{display:inline-flex;align-items:center;gap:4px;width:100%;min-width:84px;height:32px;padding:0 10px;border:0;background:none;color:inherit;font:inherit;text-align:left}.dx-sort:disabled{cursor:default}.dx-grid .dx-rownum{position:sticky;left:0;z-index:1;width:52px;min-width:52px;padding:0 10px;background:var(--bg-subtle);color:var(--text-tertiary);font-weight:400}.dx-grid th.dx-rownum{z-index:3}.dx-rownum button{width:100%;height:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}.dx-cell{max-width:320px;padding:0 10px;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:32px}.dx-cell:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-2px}.dx-null,.dx-default{color:var(--text-tertiary)}.dx-editable{cursor:cell}.dx-grid td.dx-edited{background:#fff4c2}.dx-grid tr.dx-deleted td:not(.dx-rownum){background:var(--status-danger-soft)}.dx-grid tr.dx-deleted .dx-cell{color:var(--status-danger)}.dx-grid tr.dx-new td:not(.dx-rownum){background:#e8f7ee}.dx-grid tr.dx-selected td.dx-rownum{background:var(--brand-primary-soft);color:var(--brand-primary)}.dx-grid tr.dx-failed td.dx-rownum{box-shadow:inset 3px 0 0 var(--status-danger)}.dx-new-mark .dx-x{display:none}.dx-new-mark:hover .dx-x{display:inline}.dx-new-mark:hover .dx-plus{display:none}.dx-empty{padding:24px 12px!important;color:var(--text-tertiary);font-family:var(--font-sans);text-align:center!important}.cell-editor{display:flex;align-items:center;height:32px}.cell-input{flex:1;min-width:120px;height:32px;padding:0 8px;border:2px solid var(--brand-primary);background:var(--bg-surface);font-family:var(--font-mono);font-size:13px;outline:none}.cell-null-button{height:32px;padding:0 8px;border:0;background:var(--bg-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.cell-null-button:hover{color:var(--text-primary)}.dx-pending{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:var(--radius-md);background:var(--bg-sidebar)}.dx-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--status-warning)}.dx-pending-text{flex:1;display:flex;flex-direction:column;min-width:0}.dx-pending-text strong{color:var(--text-on-dark);font-size:13px;font-weight:500}.dx-pending-text span{color:var(--text-on-dark-muted);font-size:12px}.dx-pagination{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px}@media (max-width: 960px){.dx{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);height:auto}.dx-tree{grid-column:1;grid-row:2;max-height:280px;border-right:0;border-bottom:1px solid var(--border-default)}.dx-view{grid-column:1;grid-row:3;padding:16px}.dx-grid-card{min-height:360px}.dx-pending,.dx-pagination{flex-wrap:wrap}}.al{display:flex;flex-direction:column;height:100vh;min-width:0}.al-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto}.al-list{display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0;padding:24px 32px;overflow-y:auto;background:var(--bg-canvas)}.al-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.al-tab{height:28px;padding:0 10px;border:1px solid var(--border-default);border-radius:14px;background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:500}.al-tab.active{border-color:var(--text-primary);background:var(--text-primary);color:#fff}.al-range{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary)}.al-range select,.al-more select{border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;font-weight:500}.al-more{display:flex;gap:16px;color:var(--text-secondary);font-size:13px}.al-more select{height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface)}.al-tx-filter{display:inline-flex;align-items:center;gap:6px;width:fit-content;height:30px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:13px}.al-tx-filter button{display:grid;place-items:center;border:0;background:none;color:var(--text-tertiary)}.al-table-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);overflow:hidden;transition:opacity .15s}.al-table-card.is-fetching{opacity:.6}.al-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.al-table th,.al-table td{height:32px;padding:0 10px;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}.al-table th:last-child,.al-table td:last-child{border-right:0}.al-table tbody tr:last-child td{border-bottom:0}.al-table th{background:var(--bg-subtle);color:var(--text-secondary);font-weight:500}.al-table th:nth-child(1){width:104px}.al-table th:nth-child(2){width:128px}.al-table th:nth-child(3){width:168px}.al-table tbody tr{cursor:pointer}.al-table tbody tr:hover td{background:var(--bg-canvas)}.al-table tbody tr.active td{background:var(--brand-primary-soft)}.al-table tbody tr:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-2px}.al-target{max-width:0;overflow:hidden;text-overflow:ellipsis}.al-empty{padding:24px 12px!important;color:var(--text-tertiary);font-family:var(--font-sans);text-align:center!important}.al-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-secondary);font-size:12px}.al-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-family:var(--font-sans);font-size:11px;font-weight:600;line-height:14px}.al-tag-warning{background:var(--status-warning-soft);color:var(--status-warning)}.al-tag-danger{background:var(--status-danger-soft);color:var(--status-danger)}.al-tag-info{background:var(--brand-primary-soft);color:var(--brand-primary)}.al-tag-neutral{background:var(--bg-subtle);color:var(--text-secondary)}.al-detail{display:flex;flex-direction:column;width:420px;min-height:0;border-left:1px solid var(--border-default);background:var(--bg-surface)}.al-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:18px 24px;border-bottom:1px solid var(--border-default)}.al-detail-head h2{margin:4px 0 0;font-size:16px;font-weight:600;line-height:24px;word-break:break-all}.al-detail-head p{color:var(--text-tertiary);font-size:12px}.al-detail-body{flex:1;display:flex;flex-direction:column;gap:18px;min-height:0;padding:20px 24px;overflow-y:auto}.al-kv{display:grid;grid-template-columns:96px 1fr;gap:10px 12px;margin:0;font-size:13px}.al-kv dt{color:var(--text-tertiary)}.al-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.al-section{margin:0;color:var(--text-secondary);font-size:13px;font-weight:500}.al-diff{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:auto}.al-diff table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.al-diff th,.al-diff td{height:32px;padding:0 10px;border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}.al-diff tbody tr:last-child td{border-bottom:0}.al-diff th{background:var(--bg-subtle);color:var(--text-secondary);font-weight:500}.al-diff td.al-before{background:var(--status-danger-soft);color:var(--status-danger)}.al-diff td.al-after{background:#e8f7ee}.al-note{display:flex;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-secondary);font-size:12px}.al-note svg{flex:none;margin-top:2px}.al-detail-foot{display:flex;align-items:center;gap:8px;padding:16px 24px;border-top:1px solid var(--border-default)}@media (max-width: 1100px){.al{height:auto}.al-body{grid-template-columns:1fr}.al-detail{width:auto;border-left:0;border-top:1px solid var(--border-default)}.al-list{padding:16px}}.td{display:flex;flex-direction:column;height:100vh;min-width:0}.td-header{justify-content:space-between;flex-wrap:wrap}.td-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px}.td-editor{display:flex;flex-direction:column;gap:20px;min-width:0;min-height:0;padding:24px 32px;overflow-y:auto;background:var(--bg-canvas)}.td-meta{display:grid;grid-template-columns:1fr 150px 1fr;gap:12px}.td-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.td-field input,.td-field select{height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:14px}.td-field input:focus,.td-field select:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.td-field select:disabled{background:var(--bg-subtle)}.td .invalid{border-color:var(--status-danger)!important;background:var(--status-danger-soft)!important}.td-panel{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);overflow:hidden}.td-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-default)}.td-panel-head h2{margin:0;font-size:16px;font-weight:600}.td-panel-head h2 span{margin-left:6px;color:var(--text-tertiary);font-size:12px;font-weight:400}.td-grid{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.td-grid th,.td-grid td{height:32px;padding:0;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);text-align:left}.td-grid th:last-child,.td-grid td:last-child{border-right:0}.td-grid th{padding:0 10px;background:var(--bg-subtle);color:var(--text-secondary);font-weight:500}.td-grid .td-num{width:40px;padding:0 10px;background:var(--bg-subtle);color:var(--text-tertiary);font-weight:400}.td-num button{width:100%;border:0;background:none;color:inherit;font:inherit;text-align:left}.td-grid td input,.td-grid td select{width:100%;height:31px;padding:0 10px;border:1px solid transparent;background:transparent;color:var(--text-primary);font:inherit}.td-grid td input::placeholder{color:var(--text-tertiary)}.td-grid td input:focus,.td-grid td select:focus{border-color:var(--brand-primary);background:var(--bg-surface);outline:none}.td-grid td input:disabled,.td-grid td select:disabled{color:var(--text-secondary)}.td-key{white-space:nowrap}.td-key select{width:64px!important}.td-key-note{color:var(--text-secondary);font-size:12px;padding-right:10px}.td-grid tr.td-changed td:not(.td-num){background:#fff4c2}.td-grid tr.td-new td:not(.td-num){background:#e8f7ee}.td-grid tr.td-removed td{padding:0 10px;background:var(--status-danger-soft);color:var(--status-danger)}.td-grid tr.td-removed .mono{text-decoration:line-through}.td-detail td{background:var(--bg-canvas)}.td-detail-row{display:flex;align-items:center;gap:16px;padding:8px 10px;font-family:var(--font-sans);font-size:13px;color:var(--text-secondary)}.td-detail-row label{display:flex;align-items:center;gap:8px;flex:1}.td-detail-row label input:not([type=checkbox]){flex:1;height:30px!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-sm);background:var(--bg-surface)!important}.td-detail-row .td-check{flex:none}.td-detail-row .td-check input{width:auto;height:auto}.td-legend{display:flex;gap:16px;padding:10px 16px;font-size:12px;color:var(--text-secondary)}.td-legend span{display:inline-flex;align-items:center;gap:6px}.td-swatch{display:inline-block;width:10px;height:10px;border:1px solid var(--border-strong);border-radius:2px}.td-swatch-changed{background:#fff4c2}.td-swatch-new{background:#e8f7ee}.td-constraints{margin:0;padding:0;list-style:none}.td-constraints li{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-default);font-size:13px}.td-constraints li:last-child{border-bottom:0}.td-badge{padding:1px 6px;border-radius:4px;background:var(--bg-subtle);color:var(--text-secondary);font-size:11px;font-weight:600}.td-grow-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-ico-pk{color:var(--status-warning)}.td-ico-fk,.td-ico-ix{color:var(--brand-primary)}.td-del{margin-left:auto;display:grid;place-items:center;border:0;background:none;color:var(--text-secondary)}.td-del:hover{color:var(--status-danger)}.td-note{font-size:12px!important}.td-add{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--border-default);background:var(--bg-canvas)}.td-add select{min-height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;font-size:13px}.td-info{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:var(--brand-primary-soft);font-size:13px}.td-info svg{flex:none;margin-top:1px;color:var(--brand-primary)}.td-sql{display:flex;flex-direction:column;gap:16px;min-height:0;padding:24px;border-left:1px solid var(--border-default);background:var(--bg-surface);overflow-y:auto}.td-sql-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.td-sql-head h2{margin:0;font-size:16px;font-weight:600}.td-sql-head p{color:var(--text-tertiary);font-size:12px}.td-code{margin:0;padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-sidebar);color:var(--text-on-dark);font-family:var(--font-mono);font-size:12px;line-height:20px;white-space:pre-wrap;word-break:break-word;transition:opacity .15s}.td-code.is-fetching{opacity:.7}.td-sql h3{margin:0;color:var(--text-secondary);font-size:13px;font-weight:500}.td-checks{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;font-size:13px}.td-checks li{display:flex;gap:8px}.td-checks svg{flex:none;margin-top:1px}.td-check-ok svg{color:var(--status-success)}.td-check-info svg,.td-check-warn svg{color:var(--status-warning)}.td-check-error{color:var(--status-danger)}@media (max-width: 1100px){.td{height:auto}.td-body{grid-template-columns:1fr}.td-sql{border-left:0;border-top:1px solid var(--border-default)}.td-editor{padding:16px}.td-meta{grid-template-columns:1fr}}.type-combo{position:relative}.type-combo-menu{position:fixed;z-index:50;max-height:240px;margin:0;padding:4px 0;overflow-y:auto;list-style:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:0 8px 24px #0f172a1f}.type-combo-menu li{padding:6px 10px;white-space:nowrap;cursor:pointer}.type-combo-menu li.hi{background:var(--bg-subtle)}.type-combo-menu li.current{color:var(--brand-primary);font-weight:500}.td-engine-note{display:flex;align-items:flex-start;gap:6px;max-width:760px;margin-top:6px;color:var(--text-secondary);font-size:12px;line-height:1.5}.td-engine-note svg{flex:none;margin-top:2px;color:var(--status-warning)}.td-badge-new{background:var(--brand-primary-soft);color:var(--brand-primary)}.td-badge-off{background:var(--status-warning-soft, var(--bg-subtle));color:var(--status-warning, var(--text-secondary))}.td-panel-hint{margin:-4px 0 8px}.td-object-field{display:grid;gap:4px;font-size:12.5px;color:var(--text-secondary)}.td-object-field input{height:32px;padding:4px 8px;font:13px var(--font-sans);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.td-object-sql{width:100%;min-height:260px;padding:10px 12px;font:12.5px/1.55 var(--font-mono);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);resize:vertical;-moz-tab-size:2;tab-size:2}.td-object-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 12px;align-items:end}.td-object-check{grid-column:1 / -1}.td-object-preview{max-height:220px;overflow:auto}.jc{display:flex;flex-direction:column;height:100vh;min-width:0}.jc-header{justify-content:space-between;flex-wrap:wrap}.jc-header .dx-breadcrumb a{color:inherit}.jc-title{width:min(520px,100%);padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font:inherit;font-size:22px;font-weight:600;line-height:30px}.jc-title:hover:not(:read-only),.jc-title:focus{border-color:var(--border-strong);outline:none}.text-danger{color:var(--status-danger)}.jc-body{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:var(--jc-palette-w, 232px) minmax(0,1fr) 300px}.jc-palette{display:flex;flex-direction:column;gap:2px;min-height:0;padding:16px 12px;border-right:1px solid var(--border-default);background:var(--bg-surface);overflow-y:auto}.jc-label{padding:16px 0 6px 8px;color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.04em}.jc-conn,.jc-table{display:flex;align-items:center;gap:8px;width:100%;height:28px;padding:5px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:13px;text-align:left}.jc-conn svg,.jc-table svg{flex:none;color:var(--text-secondary)}.jc-table{padding-left:22px;cursor:grab}.jc-conn:hover,.jc-table:hover{background:var(--bg-subtle)}.jc-conn-name,.jc-table-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-grip{color:var(--text-tertiary);font-size:10px;letter-spacing:-2px}.jc-item{display:flex;align-items:center;gap:8px;height:34px;margin-bottom:4px;padding:7px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-canvas);font-size:13px;cursor:grab}.jc-item svg{color:var(--brand-primary)}.jc-item span:nth-child(2){flex:1}.jc-item.disabled,.jc-table.disabled{opacity:.55;cursor:not-allowed}.jc-soon{color:var(--text-tertiary);font-size:11px}.jc-note{padding:4px 22px;color:var(--text-tertiary);font-size:12px}.jc-center{display:flex;flex-direction:column;min-width:0;min-height:0}.jc-canvas{position:relative;flex:1;min-height:0;background:var(--bg-canvas);container-type:size}@container (max-height: 220px){.jc-canvas .jc-hint{display:none}}.jc-hint{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;white-space:nowrap;pointer-events:none}.jc-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);font-size:13px;pointer-events:none}.jc-empty svg{color:var(--brand-primary)}.jc-empty strong{color:var(--text-primary);font-size:15px}.jc-canvas .react-flow__controls{border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:none;overflow:hidden}.jc-canvas .react-flow__edge-path,.jc-canvas .react-flow__connection-path{stroke:#9aa3b2;stroke-width:1.25}.jc-canvas .jc-edge-active .react-flow__edge-path,.jc-canvas .react-flow__edge.selected .react-flow__edge-path{stroke:var(--brand-primary);stroke-width:1.75}.jc-node{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);font-size:13px}.jc-node.selected{border:2px solid var(--brand-primary);margin:-1px}.jc-node.error{border-color:var(--status-danger)}.jc-node-icon{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:var(--radius-sm);background:var(--brand-primary-soft);color:var(--brand-primary)}.jc-source{width:216px}.jc-source-head{position:relative;display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border-default)}.jc-source-title{display:flex;flex-direction:column;min-width:0}.jc-source-title strong{font-size:13px;font-weight:600}.jc-source-title span{overflow:hidden;color:var(--text-tertiary);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.jc-cols{margin:0;padding:0;list-style:none}.jc-col{position:relative;display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 12px}.jc-col:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.jc-col.key{background:var(--brand-primary-soft)}.jc-col-type{color:var(--text-tertiary);font-size:11px}.jc-step{width:164px;padding:10px 12px}.jc-step-head{display:flex;align-items:center;gap:8px;height:24px}.jc-step-head strong{font-size:13px;font-weight:600}.jc-step-filter .jc-node-icon,.jc-step-select .jc-node-icon{background:var(--brand-primary-soft)}.jc-step-output{width:auto;min-width:164px;max-width:280px}.jc-step-output .jc-step-summary{white-space:pre;word-break:normal;overflow:hidden;text-overflow:ellipsis}.jc-step-output .jc-node-icon{background:var(--status-success-soft);color:var(--status-success)}.jc-step-summary{margin-top:4px;color:var(--text-secondary);font-size:11px;line-height:18px;white-space:pre-wrap;word-break:break-all}.jc-port.react-flow__handle{width:8px;height:8px;border:1.5px solid var(--border-strong);background:var(--bg-surface)}.jc-node.selected .jc-port.react-flow__handle,.jc-col.key .jc-port.react-flow__handle{border-color:var(--brand-primary)}.jc-port-col.react-flow__handle{opacity:0}.jc-col:hover .jc-port-col.react-flow__handle,.jc-col.key .jc-port-col.react-flow__handle,.react-flow__handle.connectingfrom,.react-flow__handle.connectingto{opacity:1}.jc-preview{position:relative;display:flex;flex-direction:column;height:244px;min-height:120px;flex:none;border-top:1px solid var(--border-default);background:var(--bg-surface)}.jc-tabs{display:flex;align-items:center;gap:4px;padding:0 16px;border-bottom:1px solid var(--border-default)}.jc-tabs button{height:40px;padding:0 8px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);font:inherit;font-size:13px}.jc-tabs button.active{border-bottom-color:var(--brand-primary);color:var(--brand-primary);font-weight:500}.jc-badge{margin-left:4px;padding:0 5px;border-radius:8px;background:var(--status-danger-soft);color:var(--status-danger);font-size:11px}.jc-preview-resize{top:-4px}.jc-panel-toggle{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:4px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary)}.jc-panel-toggle:hover{background:var(--bg-subtle);color:var(--text-primary)}.jc-meta{display:inline-flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:12px}.jc-preview-body{flex:1;min-height:0;overflow:auto}.jc-rows{border-collapse:collapse;min-width:100%;font-family:var(--font-mono);font-size:13px}.jc-rows th,.jc-rows td{height:32px;padding:0 10px;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}.jc-rows th{position:sticky;top:0;background:var(--bg-subtle);color:var(--text-secondary);font-weight:500}.jc-preview-msg{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px;color:var(--text-secondary);font-size:13px}.jc-preview-msg.error{color:var(--status-danger)}.jc-preview-msg pre{width:100%;margin:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;white-space:pre-wrap}.jc-sql{margin:0;padding:12px 16px;font-family:var(--font-mono);font-size:12px;line-height:20px;white-space:pre}.jc-messages{margin:0;padding:12px 16px;list-style:none;font-size:13px}.jc-messages li{display:flex;align-items:flex-start;gap:8px;padding:3px 0}.jc-check-ok svg{color:var(--status-success)}.jc-check-warn svg,.jc-check-info svg{color:var(--status-warning)}.jc-check-error,.jc-check-error svg{color:var(--status-danger)}.jc-props{display:flex;flex-direction:column;gap:14px;min-height:0;padding:20px;border-left:1px solid var(--border-default);background:var(--bg-surface);overflow-y:auto}.jc-props h2{margin:0;font-size:16px;font-weight:600}.jc-props h3{margin:0;color:var(--text-secondary);font-size:13px;font-weight:500}.jc-props-title{display:flex;align-items:flex-start;justify-content:space-between}.jc-seg{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:2px;border-radius:var(--radius-md);background:var(--bg-subtle)}.jc-seg button{height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:13px}.jc-seg button.active{background:var(--bg-surface);color:var(--text-primary);font-weight:500}.jc-seg button:disabled:not(.active){opacity:.5}.jc-cond{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--border-default);border-radius:var(--radius-md)}.jc-select{position:relative;display:flex;align-items:center}.jc-select select,.jc-cond .jc-row select,.jc-cond .jc-row input,.jc-alias{width:100%;height:32px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font-mono);font-size:13px}.jc-select select{padding-right:64px}.jc-select-type{position:absolute;right:28px;color:var(--text-tertiary);font-size:12px;pointer-events:none}.jc-equals{padding-left:10px;color:var(--brand-primary);font-size:11px;font-weight:600}.jc-compat{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px}.jc-compat svg{color:var(--status-success)}.jc-row{display:flex;gap:6px;align-items:center}.jc-row select{width:110px!important;flex:none;font-family:var(--font-sans)!important}.jc-out-cols{display:flex;flex-direction:column;gap:10px}.jc-out-cols label,.jc-pick label{display:flex;align-items:center;gap:8px}.jc-pick{display:flex;flex-direction:column;gap:4px}.jc-alias{margin-left:24px;width:calc(100% - 24px);height:28px;font-family:var(--font-sans)}.jc-check{display:flex;gap:6px;margin:0;font-size:12px}.jc-check-warn{color:var(--status-warning)}.jc-estimate{display:flex;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:var(--status-warning-soft);font-size:12px}.jc-estimate svg{flex:none;color:var(--status-warning)}@media (max-width: 1200px){.jc-body{grid-template-columns:var(--jc-palette-w, 200px) minmax(0,1fr) 260px}}.jc-more{margin-left:auto;width:24px;height:24px;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-size:16px;line-height:1}.jc-more:hover{background:var(--bg-subtle);color:var(--text-primary)}.rt{display:flex;flex-direction:column;gap:12px}.rt h3{margin:4px 0 0;color:var(--text-secondary);font-size:13px;font-weight:500}.rt-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.rt-list li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md)}.rt-list li.on{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.rt-check{display:flex;align-items:center;gap:8px}.rt-check svg{color:var(--text-secondary)}.rt-tag{padding:1px 6px;border-radius:4px;background:var(--status-success-soft);color:var(--status-success);font-size:11px}.rt-on{grid-column:1;color:var(--text-secondary);font-size:12px}.rt-dir{grid-column:1}.rt-list select,.rt-list .td-del{grid-column:2;grid-row:1 / span 3}.rt-list select,.rt-add select{height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;font-size:13px}.rt-add{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.rt-on-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.jc-label-row{display:flex;align-items:center;justify-content:space-between;padding-right:4px}.jc-label-action{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer}.jc-label-action:hover{background:var(--bg-subtle);color:var(--brand-primary)}.jc-file-del{display:none;padding:2px;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer}.jc-table:hover .jc-file-del{display:inline-flex}.jc-file-del:hover,.jc-note-error{color:var(--status-danger)}.jc-formula{width:100%;min-height:52px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;resize:vertical}.jc-cond .jc-row input.jc-formula-name{font-family:var(--font-mono)}.jc-chips{display:flex;flex-wrap:wrap;gap:4px}.jc-chip{padding:2px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);font-size:12px;cursor:pointer}.jc-chip:hover:not(:disabled){border-color:var(--brand-primary);color:var(--brand-primary)}.jc-chip:disabled{cursor:default;opacity:.5}.jc-help summary{color:var(--text-secondary);font-size:13px;cursor:pointer}.jc-help[open]{display:flex;flex-direction:column;gap:8px}.jc-union-ins{display:flex;flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:13px}.jc-union-ins li span+span{margin-left:8px}.jc-union-ins li.jc-mismatch{color:var(--status-danger)}.jc-tpl-head{justify-content:space-between;align-items:center}.jc-tpl-head h3{margin:0}.jc-tpl-status{font-size:12px;color:var(--status-danger)}.jc-tpl-status.ok{color:var(--status-success)}.jc-tpl-field{display:grid;gap:4px;padding:6px 8px;border:1px solid var(--border-default);border-left:3px solid var(--status-success);border-radius:var(--radius-sm)}.jc-tpl-field.missing{border-left-color:var(--status-danger)}.jc-tpl-name{font-size:12.5px}.jc-tpl-name small{color:var(--text-tertiary);font-size:11px}.jc-tpl-field select{min-width:0;font:12px var(--font-mono)}.member-cell{display:inline-flex;align-items:center;gap:10px}.member-avatar{width:30px;height:30px;background:var(--brand-primary-soft);color:var(--brand-primary)}.member-text{display:flex;flex-direction:column;gap:1px}.member-text .muted{font-size:12px}.role-select{position:relative;display:inline-block}.role-select select{height:32px;min-width:120px;padding:0 32px 0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:13px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.role-select select:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.role-select .select-caret{right:10px}.cell-actions{width:1%;white-space:nowrap;text-align:right}.cell-actions .btn+.btn{margin-left:4px}.table-card-head{display:flex;align-items:baseline;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border-default)}.table-card-head h2{font-size:14px;font-weight:600}.members-note{font-size:13px}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.role-options legend{margin-bottom:6px;font-size:13px;font-weight:500}.role-option{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer}.role-option input{margin-top:3px;accent-color:var(--brand-primary)}.role-option.is-selected{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.role-option-text{display:flex;flex-direction:column;gap:2px;font-size:13px}.role-option-text span{color:var(--text-secondary);font-size:12px}.invite-link{display:flex;gap:8px}.invite-link input{flex:1;min-width:0;height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-canvas);color:var(--text-primary);font-size:12px}.invite-summary{display:grid;gap:8px;margin:0 0 20px;padding:14px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-canvas)}.invite-summary div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.invite-summary dt{color:var(--text-secondary)}.invite-summary dd{margin:0;font-weight:500;text-align:right}.invite-actions{display:grid;gap:8px}@media (max-width: 640px){.role-options{grid-template-columns:1fr}}.rn-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.rn-stat{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface)}.rn-stat-label{color:var(--text-secondary);font-size:12px}.rn-stat strong{font-size:24px;font-weight:600;line-height:1.2}.rn-stat .muted,.rn-stat-link{font-size:12px}.rn-stat-link{color:var(--brand-primary)}.rn-head{align-items:center}.rn-filters{display:flex;gap:6px;margin-left:auto}.chip{height:28px;padding:0 12px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:13px;cursor:pointer}.chip:hover{border-color:var(--border-strong)}.chip-active,.chip-active:hover{border-color:var(--text-primary);background:var(--text-primary);color:var(--bg-surface)}.rn-table th,.rn-table td{font-family:var(--font-mono)}.rn-table .badge{font-family:var(--font-sans)}.rn-pipeline{color:var(--text-primary);text-decoration:none}.rn-pipeline:hover{color:var(--brand-primary);text-decoration:underline}.rn-target-name{display:block;font-size:11px}.rn-failed td{border-bottom-color:transparent}.icon-link{display:inline-grid;place-items:center;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.icon-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.rn-error-row td{padding:0;background:var(--status-danger-soft)}.rn-error-box{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--status-danger);font-family:var(--font-sans)}.rn-error-box>div{flex:1;min-width:0}.rn-error-box .muted{font-size:12px}.rn-error{margin:0 0 2px;font-family:var(--font-mono);font-size:12.5px;white-space:pre-wrap;word-break:break-word}.rn-pad{padding:16px}.rn-last{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:12px;cursor:pointer}.rn-last:hover{background:var(--bg-subtle)}.rn-target{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.rn-remove-output{margin-right:auto}.rn-detail{display:grid;gap:8px;margin:0 0 12px}.rn-detail div{display:flex;justify-content:space-between;font-size:13px}.rn-detail dt{color:var(--text-secondary)}.rn-detail dd{margin:0}.rn-ok{display:flex;align-items:center;gap:6px;font-size:13px}@media (max-width: 1100px){.rn-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.dl-table-toggle{align-items:flex-start}.dl-table-toggle>span{display:grid;gap:2px}.dl-table-toggle strong{color:var(--text-primary);font-weight:500}.dl-section{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--border-default)}.dl-head h3{margin:0 0 2px;font-size:14px;font-weight:600}.dl-empty{margin:0;font-size:13px}.dl-add{justify-self:start}.dl-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}.dl-kinds>.btn{grid-column:1 / -1;justify-self:end}.dl-kind{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.dl-kind:hover,.dl-kind:focus-visible{border-color:var(--brand-primary);background:var(--brand-primary-soft);outline:none}.dl-kind svg{flex:none;margin-top:1px;color:var(--brand-primary)}.dl-kind span{display:grid;gap:2px;font-size:12px}.dl-kind strong{font-size:13px;font-weight:500}.dl-card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface)}.dl-card.is-open{border-color:var(--border-strong)}.dl-card.is-off .dl-card-title{opacity:.55}.dl-card-head{display:flex;align-items:center;gap:8px;padding-right:12px}.dl-card-toggle{display:flex;flex:1;min-width:0;align-items:center;gap:10px;padding:10px 12px;border:0;background:none;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.dl-card-toggle>svg:first-child{flex:none;color:var(--brand-primary)}.dl-card-title{display:grid;flex:1;min-width:0;gap:1px}.dl-card-title strong{font-size:13px;font-weight:500}.dl-card-title .muted{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dl-card-alert{color:var(--status-danger)}.dl-card-body{display:grid;gap:12px;padding:4px 12px 12px}.dl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dl-host{display:grid;grid-template-columns:1fr 96px;gap:12px}.dl-card-actions{display:flex;align-items:center;gap:8px}.dl-remove{margin-left:auto;color:var(--status-danger)}.field textarea{width:100%;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;resize:vertical}.field textarea.mono{font-family:var(--font-mono);font-size:12px}.field textarea:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring);outline:none}.switch{position:relative;display:inline-block;flex:none;width:34px;height:20px;cursor:pointer}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:var(--border-strong);transition:background-color .15s;pointer-events:none}.switch span:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--bg-surface);transition:transform .15s}.switch input:checked+span{background:var(--brand-primary)}.switch input:checked+span:after{transform:translate(14px)}.switch input:focus-visible+span{box-shadow:var(--focus-ring)}@media (prefers-reduced-motion: reduce){.switch span,.switch span:after{transition:none}}@media (max-width: 560px){.dl-grid,.dl-kinds{grid-template-columns:1fr}}.rd-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.rd-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:start;font-size:13px}.rd-item>svg{margin-top:2px}.rd-item.ok>svg{color:var(--status-success)}.rd-item.failed>svg{color:var(--status-danger)}.rd-main{display:grid;gap:1px;min-width:0}.rd-main .muted{overflow-wrap:anywhere;font-size:12px}.rd-error{color:var(--status-danger);font-size:12px;overflow-wrap:anywhere}.rn-deliveries{display:grid;gap:8px;margin-top:12px}.rn-deliveries h3{margin:0;color:var(--text-secondary);font-size:12px;font-weight:600}.rp-file{display:inline-flex;align-items:center;gap:6px}.rn-detail-row td{padding:12px 16px 14px;background:var(--bg-subtle)}.rn-detail-row .rn-deliveries{margin-top:0}.rn-error-row .rn-deliveries{margin-top:0;padding:0 16px 14px}.rp-table td:not(:first-child):not(:nth-child(2)){white-space:nowrap}.dl-limits{margin-top:2px}.sq{display:flex;flex-direction:column;height:100vh;min-height:0}.sq-body{display:grid;grid-template-columns:260px minmax(0,1fr);flex:1;min-height:0}.sq-side{display:flex;flex-direction:column;gap:4px;padding:16px 12px;border-right:1px solid var(--border-default);background:var(--bg-surface);overflow-y:auto}.sq-search{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-tertiary)}.sq-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:13px;outline:none}.sq-side h3{margin:14px 4px 4px;color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.04em}.sq-empty{margin:4px;font-size:12px}.sq-list,.sq-history{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.sq-list li{position:relative;border-radius:var(--radius-md)}.sq-list li.active,.sq-list li:hover{background:var(--brand-primary-soft)}.sq-list li>button:first-child{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 28px 8px 10px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.sq-name{font-size:13px}.sq-list li.active .sq-name{color:var(--brand-primary)}.sq-list .muted{font-size:11.5px}.sq-del{position:absolute;top:8px;right:6px;display:none;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer}.sq-list li:hover .sq-del{display:block}.sq-history button{display:flex;gap:8px;width:100%;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:12px;text-align:left;cursor:pointer}.sq-history button:hover{background:var(--bg-subtle)}.sq-hist-sql{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sq-hist-sql.failed{color:var(--status-danger)}.sq-main{display:flex;flex-direction:column;gap:12px;min-height:0;padding:16px 24px;overflow:hidden}.sq-tabs{display:flex;align-items:center;gap:12px}.sq-tablist{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto}.sq-tab{display:flex;align-items:center;height:34px;padding:0 4px 0 10px;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary)}.sq-tab.active{border-color:var(--border-default);background:var(--bg-surface);color:var(--text-primary)}.sq-tab.active .icon{color:var(--brand-primary)}.sq-tab>button:first-child{display:flex;align-items:center;gap:6px;max-width:220px;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer}.sq-tab>button:first-child span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sq-tab-x,.sq-tab-new{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.sq-tab-x:hover,.sq-tab-new:hover{background:var(--bg-subtle);color:var(--text-primary)}.sq-runon{position:relative;display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:13px}.sq-runon .icon{color:var(--brand-primary)}.sq-runon select{max-width:230px;border:0;background:transparent;font:inherit;font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none}.sq-runon .icon:last-child{color:var(--text-tertiary);pointer-events:none}.sq-editor-card{flex:0 0 300px;min-height:160px;padding:8px 0;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);overflow:hidden;resize:vertical}.sq-editor{height:100%}.sq-hint{margin:-6px 0 0;font-size:12px}.sq-hint code{font-family:var(--font-mono)}.sq-results{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface)}.sq-results-head{display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:1px solid var(--border-default)}.sq-panels{display:flex;gap:16px;margin-right:auto}.sq-panels button{position:relative;height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;cursor:pointer}.sq-panels button.active{border-bottom-color:var(--brand-primary);color:var(--brand-primary)}.sq-dot{position:absolute;top:10px;right:-8px;width:6px;height:6px;border-radius:50%;background:var(--status-danger)}.sq-meta{font-size:12px}.sq-results-body{flex:1;min-height:0;overflow:auto}.sq-grid th,.sq-grid td{font-family:var(--font-mono);white-space:nowrap}.sq-grid th{position:sticky;top:0}.sq-null{color:var(--text-tertiary);font-style:italic}.sq-trunc{padding:6px 16px;background:var(--status-warning-soft);color:var(--status-warning);font-size:12px}.sq-placeholder{padding:24px 16px;font-size:13px}.sq-running{display:flex;align-items:center;gap:8px;padding:24px 16px;color:var(--text-secondary);font-size:13px}.sq-plan,.sq-error{margin:0;font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;word-break:break-word}.sq-plan{padding:16px;color:var(--text-primary)}.sq-messages{padding:16px;font-size:13px}.sq-messages p{display:flex;align-items:center;gap:6px;margin:0}.sq-sort{display:inline-flex;align-items:center;gap:4px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.sq-sort:hover{color:var(--text-primary)}.settings{max-width:1120px}.card-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.info-list{display:grid;gap:10px;margin:0}.info-list>div{display:flex;justify-content:space-between;gap:16px;font-size:13px}.info-list dt{color:var(--text-secondary)}.info-list dd{margin:0;font-weight:500;text-align:right}.info-list-cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 32px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-default)}.plan-period{margin-bottom:16px;color:var(--text-secondary);font-size:13px}.meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 32px}.meter-head{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13px}.meter-value{color:var(--text-secondary);font-variant-numeric:tabular-nums}.meter{height:8px;border-radius:999px;background:var(--bg-subtle);overflow:hidden}.meter span{display:block;height:100%;border-radius:inherit;background:var(--brand-primary);transition:width .25s}.meter-warn span{background:var(--status-warning)}.meter-full span{background:var(--status-danger)}.meter-hint{margin-top:4px;color:var(--text-tertiary);font-size:12px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h2{font-size:16px;font-weight:600}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.plan-card{display:flex;flex-direction:column;gap:4px;padding:20px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface)}.plan-card.is-current{border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-primary)}.plan-card-skeleton{height:420px;background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--border-default) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}.plan-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.plan-card-head h3{font-size:16px;font-weight:600}.plan-price strong{font-size:28px;line-height:40px;font-weight:600}.plan-yearly{margin-bottom:12px;font-size:12px}.plan-features{display:flex;flex-direction:column;gap:8px;flex:1;margin:0 0 20px;padding:16px 0 0;border-top:1px solid var(--border-default);list-style:none;font-size:13px}.plan-features li{display:flex;gap:8px;align-items:flex-start;color:var(--text-secondary)}.plan-features svg{flex:none;margin-top:3px;color:var(--status-success)}.plan-features strong{color:var(--text-primary);font-weight:500}.diff-table{border:1px solid var(--border-default);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;overflow:hidden}.diff-table th:not(:first-child),.diff-table td:not(:first-child){text-align:right}.diff-table tbody tr:last-child td{border-bottom:0}@media (max-width: 560px){.info-list>div{flex-direction:column;gap:2px}.info-list dd{text-align:left}}.mail-summary{display:grid;gap:8px}.mail-summary p{margin:0;font-size:13px}.mail-actions{display:flex;flex-wrap:wrap;gap:8px}.mail-port{display:grid;grid-template-columns:1fr 96px;gap:12px}.mail-test{display:flex;align-items:flex-end;gap:8px}.mail-test .field{flex:1}.billing-status{display:grid;gap:10px;margin:4px 0 16px}.billing-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.choice-group{display:grid;gap:8px;margin:0;padding:0;border:0}.choice-group legend{margin-bottom:8px;font-size:13px;font-weight:600}.choice{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer}.choice:hover{border-color:var(--border-strong)}.choice.is-selected{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.choice input{grid-row:span 2;margin-top:3px;accent-color:var(--brand-primary)}.choice-title{font-size:14px;font-weight:600}.choice-meta{color:var(--text-secondary);font-size:13px}.choice-badge{margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--status-success-soft);color:var(--status-success);font-size:12px;font-weight:600}.billing-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;border-top:1px solid var(--border-default);font-size:14px}.billing-total strong{font-size:20px}.admin-back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;color:var(--text-tertiary);font-size:13px}.admin-back:hover{color:var(--brand-primary)}.admin-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.admin-filters .select-wrap{position:relative;display:inline-block}.admin-filters select{height:36px;min-width:150px;padding:0 32px 0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:13px}.admin-count{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 0 20px;border-top:1px solid var(--border-default);font-size:13px}.admin-count .pager{border-top:0}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.admin-stat{display:flex;flex-direction:column;gap:4px;color:inherit}a.admin-stat:hover{border-color:var(--brand-primary)}.admin-stat strong{font-size:28px;font-weight:600;line-height:1.2}.admin-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.admin-plan{display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--border-default);border-radius:var(--radius-md);color:inherit}.admin-plan:hover{border-color:var(--brand-primary)}.admin-plan strong{font-size:20px;font-weight:600}.admin-facts,.admin-limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:0}.admin-facts dt,.admin-limits dt{margin-bottom:4px;color:var(--text-tertiary);font-size:12px}.admin-facts dd,.admin-limits dd{margin:0}.admin-limits{margin-bottom:12px}.admin-copy{display:flex;gap:8px}.admin-copy input{flex:1;min-width:0;height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-mono);font-size:12.5px}.ak-tabs{display:flex;gap:4px;padding:0 32px;background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.ak-tabs button{padding:10px 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:500;cursor:pointer}.ak-tabs button.active{border-bottom-color:var(--brand-primary);color:var(--text-primary)}.ak-toolbar{display:flex;justify-content:flex-end}.ak-inline-code,.ak-code pre{margin:0;padding:12px 14px;overflow-x:auto;border-radius:var(--radius-sm);background:var(--bg-sidebar, #0f172a);color:#e2e8f0;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;white-space:pre}.ak-docs{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;align-items:start}.ak-toc{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px}.ak-toc a{padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;text-decoration:none}.ak-toc a:hover{background:var(--bg-subtle);color:var(--text-primary)}.ak-doc-body{max-width:860px}.ak-doc-body section{padding-bottom:28px;scroll-margin-top:16px}.ak-doc-body h2{margin:0 0 10px;font-size:18px}.ak-doc-body p,.ak-doc-body li{color:var(--text-secondary);font-size:14px;line-height:1.6}.ak-doc-body p{margin:8px 0}.ak-doc-body ul{margin:8px 0;padding-left:20px}.ak-doc-body code{padding:1px 6px;border-radius:4px;background:var(--bg-subtle);font-family:var(--font-mono);font-size:12.5px}.ak-code{position:relative;margin:10px 0}.ak-code-copy{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:#ffffff14;color:#cbd5e1;cursor:pointer}.ak-code-copy:hover{background:#ffffff29}.ak-errors td{vertical-align:top}@media (max-width: 860px){.ak-docs{grid-template-columns:1fr}.ak-toc{position:static;flex-direction:row;flex-wrap:wrap}.ak-tabs{padding:0 16px}}.fi-drop{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:28px 16px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-canvas);color:var(--text-primary);font:inherit;cursor:pointer}.fi-drop:hover:not(:disabled){border-color:var(--brand-primary);background:var(--brand-primary-soft)}.fi-drop svg{color:var(--brand-primary)}.fi-file{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.fi-sheet{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:13px;color:var(--text-secondary)}.fi-target{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:12px}.fi-h{margin:0 0 6px;font-size:14px}.fi-table-wrap{max-height:280px;overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-sm)}.fi-table-wrap th{position:sticky;top:0;z-index:1}.fi-preview td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-select,.fi-input{width:100%;height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:13px}.fi-off td{opacity:.5}@media (max-width: 720px){.fi-target{grid-template-columns:1fr}}.lang-switch{display:inline-flex;padding:2px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-surface)}.lang-switch button{min-width:34px;height:24px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11.5px;font-weight:600;letter-spacing:.03em;cursor:pointer}.lang-switch button[aria-pressed=true]{background:var(--brand-primary);color:var(--text-on-primary)}.lang-switch-dark{border-color:var(--bg-sidebar-active);background:transparent}.lang-switch-dark button{color:var(--text-on-dark-muted)}.lang-switch-dark button:hover{color:var(--text-on-dark)}.auth-main{position:relative}.auth-lang{position:absolute;top:20px;right:24px}.sidebar-lang{padding:0 4px 12px}.home{display:grid;gap:16px;max-width:1080px}.home-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:16px;align-items:start}.home .card p{margin:0 0 8px;font-size:13px;line-height:1.6}.home .card-head h3{display:inline-flex;align-items:center;gap:6px}.home-sample-list{display:grid;gap:6px;margin:8px 0 4px;padding:0;list-style:none;font-size:13px}.home-sample-list li{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.home-sample-list a{color:var(--text-primary);font-weight:500}.home-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.home-links ul{display:grid;gap:10px;margin:0;padding:0;list-style:none;font-size:13px}.home-links a{display:inline-flex;align-items:center;gap:8px;color:var(--brand-primary)}.home-progress{display:flex;align-items:center;gap:12px}.home-bar{width:120px;height:6px;border-radius:3px;background:var(--bg-subtle);overflow:hidden}.home-bar span{display:block;height:100%;background:var(--status-success);transition:width .3s}.home-steps{display:grid;margin:0;padding:0;list-style:none}.home-steps li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--border-default)}.home-steps li:first-child{border-top:0}.home-steps strong{font-size:13px;font-weight:600}.home-steps p.small{margin:2px 0 0}.home-step-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-primary-soft);color:var(--brand-primary)}.home-steps li.done .home-step-mark{background:var(--status-success-soft);color:var(--status-success)}.home-steps li.done strong{color:var(--text-secondary);text-decoration:line-through}.home-step-go{height:30px}.home-show{justify-self:start}.guide{display:grid;grid-template-columns:220px minmax(0,760px);gap:24px;align-items:start}.guide-toc{position:sticky;top:16px}.guide-toc h3{margin:0 0 8px;font-size:13px;font-weight:600}.guide-toc ol{display:grid;gap:6px;margin:0;padding-left:18px;font-size:13px}.guide-toc a{color:var(--text-secondary)}.guide-toc a:hover{color:var(--brand-primary)}.guide-body{display:grid;gap:16px}.guide-section{padding:20px 24px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);scroll-margin-top:16px}.guide-section h2{margin:0 0 10px;font-size:16px;font-weight:600}.guide-section p{margin:0 0 10px;font-size:14px;line-height:1.7;max-width:68ch}.guide-sql{position:relative;margin:4px 0 12px}.guide-sql pre{margin:0;padding:14px 16px;overflow-x:auto;border-radius:var(--radius-md);background:var(--bg-sidebar);color:var(--text-on-dark);font-family:var(--font-mono);font-size:12.5px;line-height:1.6}.guide-sql .link-button{position:absolute;top:8px;right:10px;color:var(--text-on-dark-muted)}.guide-open{margin-top:4px}@media (max-width: 960px){.home-grid,.guide{grid-template-columns:minmax(0,1fr)}.guide-toc{position:static}}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.tpl-card{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.tpl-card-main{display:flex;gap:12px;padding:14px 16px;text-align:left;background:none;border:0;cursor:pointer;color:inherit;font:inherit;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.tpl-card-main:hover strong{color:var(--brand-primary)}.tpl-card-main:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tpl-card-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--brand-primary-soft);color:var(--brand-primary)}.tpl-card-text{display:grid;gap:3px;min-width:0}.tpl-card-actions{display:flex;justify-content:flex-end;gap:4px;padding:4px 8px 8px;border-top:1px solid var(--border-default)}.tpl-starters{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tpl-starter{display:grid;gap:6px;align-content:start;padding:10px;text-align:left;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;font:inherit;color:inherit}.tpl-starter:hover{border-color:var(--border-strong)}.tpl-starter.is-selected{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-primary-soft)}.tpl-starter:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tpl-thumb{display:grid;place-items:start center;height:180px;overflow:hidden;background:var(--bg-subtle);border-radius:var(--radius-md);padding-top:8px}.tpl-thumb-blank{place-items:center;padding:0;color:var(--text-tertiary)}.tpl-paper{position:relative;background:#fff;box-shadow:0 1px 3px #0d14262e;overflow:hidden;flex:none}.tpl-paper-content{position:absolute;overflow:hidden}.tpl-paper-footer{position:absolute;left:0;right:0;bottom:0;background:#fff}.tpl-band-static{position:relative;overflow:hidden}.tpl-el{position:absolute;box-sizing:border-box;overflow:hidden;display:flex;color:#111}.tpl-el>span{display:block;width:100%;overflow:hidden;line-height:1.35}.tpl-el>img{display:block;width:100%;height:100%}.tpl-el-placeholder{display:grid!important;place-items:center;height:100%;background:repeating-linear-gradient(45deg,#f0f2f5,#f0f2f5 6px,#e7eaef 6px,#e7eaef 12px);color:var(--text-tertiary);font:11px var(--font-sans)}.tpl-designer{display:flex;flex-direction:column;height:100vh;min-width:0}.tpl-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.tpl-back{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:13px;text-decoration:none}.tpl-name{min-width:160px;max-width:360px;flex:1 1 240px;font:600 16px var(--font-sans);padding:6px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary)}.tpl-name:hover,.tpl-name:focus{border-color:var(--border-default);outline:none}.tpl-state{font-size:12px;color:var(--text-tertiary)}.tpl-state.is-dirty{color:var(--status-warning)}.tpl-bar-gap{flex:1}.tpl-zoom{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-secondary)}.tpl-error{padding:8px 16px 0}.tpl-workspace{flex:1;display:grid;grid-template-columns:var(--tpl-palette-w, 260px) 0 1fr 290px;min-height:0}.tpl-splitter{position:relative;z-index:3;width:8px;margin-left:-4px;cursor:col-resize;touch-action:none}.tpl-splitter:after{content:"";position:absolute;top:0;right:3px;bottom:0;left:3px;border-radius:1px}.tpl-splitter:hover:after,.tpl-splitter:focus-visible:after,.tpl-resizing .tpl-splitter:after{background:var(--brand-primary)}.tpl-splitter:focus-visible{outline:none}body.tpl-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.tpl-palette,.tpl-props{background:var(--bg-surface);overflow-y:auto;min-height:0}.tpl-palette{border-right:1px solid var(--border-default)}.tpl-props{border-left:1px solid var(--border-default)}.tpl-tabs{display:flex;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border-default);position:sticky;top:0;background:var(--bg-surface);z-index:1}.tpl-tabs button{flex:1 1 auto;padding:10px 4px;border:0;border-bottom:2px solid transparent;background:none;font:500 12.5px var(--font-sans);white-space:nowrap;color:var(--text-secondary);cursor:pointer}.tpl-tabs button.is-active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.tpl-palette-body{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px;align-content:start}.tpl-el-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}.tpl-el-chip{font:inherit;color:inherit;text-align:left;display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);font-size:12.5px;cursor:grab;-webkit-user-select:none;user-select:none}.tpl-el-chip:hover{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.tpl-el-chip-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;background:var(--bg-subtle);font:600 11px var(--font-mono);color:var(--text-secondary)}.tpl-fields{display:grid;gap:6px}.tpl-field-row{display:grid;grid-template-columns:12px 1fr 1fr 74px 24px;gap:4px;align-items:center;padding:4px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);cursor:grab}.tpl-field-row input,.tpl-field-row select{min-width:0;height:28px;padding:2px 5px;font-size:12px;border:1px solid var(--border-default);border-radius:4px;background:var(--bg-surface);color:var(--text-primary)}.tpl-drag{padding:0;border:0;background:none;cursor:pointer;color:var(--text-tertiary);font-size:10px;letter-spacing:-2px}.tpl-icon-btn{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:4px;background:none;color:var(--text-tertiary);cursor:pointer}.tpl-icon-btn:hover{background:var(--status-danger-soft);color:var(--status-danger)}.tpl-from-pipeline{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--border-default)}.tpl-sub{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.tpl-images{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tpl-image{position:relative;margin:0;padding:4px;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:grab}.tpl-image img,.tpl-image-empty{display:block;width:100%;height:64px;object-fit:contain;background:var(--bg-subtle);border-radius:4px}.tpl-image-add{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}.tpl-image figcaption{margin-top:4px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-image .tpl-icon-btn{position:absolute;top:6px;right:6px;background:#ffffffe6}.tpl-fonts{list-style:none;margin:0;padding:0;display:grid;gap:4px}.tpl-fonts li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:14px}.tpl-stage{-webkit-user-select:none;user-select:none;overflow:auto;padding:24px 24px 24px 150px;background:#e9ecf1;min-width:0}.tpl-sheet{margin:0 auto;background:#fff;box-shadow:0 2px 8px #0d142629}.tpl-sheet-margin,.tpl-band{position:relative}.tpl-band-label{position:absolute;right:calc(100% + 16px);top:0;max-width:128px;padding:2px 6px;border:0;border-radius:4px;background:transparent;color:var(--text-secondary);font:11px var(--font-sans);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tpl-band.is-selected .tpl-band-label,.tpl-band-label:hover{background:var(--brand-primary-soft);color:var(--brand-primary)}.tpl-band-area{position:relative;outline:1px dashed #c9ced6;outline-offset:-.5px}.tpl-band.is-selected .tpl-band-area{outline:1px solid var(--brand-primary);background-color:#2f5bea08}.tpl-band-handle{height:6px;margin-top:-3px;position:relative;z-index:2;cursor:ns-resize}.tpl-band-handle:hover{background:#2f5bea40}.tpl-el-wrap{display:contents}.tpl-el-wrap .tpl-el{cursor:move}.tpl-el-wrap:hover .tpl-el{box-shadow:inset 0 0 0 1px #2f5bea73}.tpl-el-wrap.is-selected .tpl-el{box-shadow:inset 0 0 0 1.5px var(--brand-primary);overflow:visible}.tpl-el-line{min-height:1px}.tpl-el>.tpl-resize{position:absolute;overflow:visible;line-height:0;right:-5px;bottom:-5px;width:10px;height:10px;border-radius:2px;background:var(--brand-primary);border:2px solid #fff;cursor:nwse-resize}.tpl-props-body{display:grid;gap:10px;padding:14px;margin:0;border:0;min-width:0}.tpl-props-body h3{margin:0;font-size:14px}.tpl-props-row{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary)}.tpl-props-row select,.tpl-props-row input[type=number],.tpl-props-row input:not([type]),.tpl-props-field input,.tpl-props-field textarea,.tpl-num4 input{min-width:0;height:30px;padding:3px 7px;font:13px var(--font-sans);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.tpl-props-field{display:grid;gap:4px;font-size:12.5px;color:var(--text-secondary)}.tpl-props-field textarea{height:auto;resize:vertical}.tpl-props-label{margin:0;font-size:12.5px;color:var(--text-secondary)}.tpl-num4{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.tpl-num-label{display:grid;gap:2px;font-size:10.5px;color:var(--text-tertiary)}.tpl-insert{display:flex;flex-wrap:wrap;gap:4px}.tpl-chip{padding:2px 6px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-subtle);font:11px var(--font-mono);color:var(--text-secondary);cursor:pointer}.tpl-chip:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.tpl-toggles{display:flex;gap:4px}.tpl-toggle{width:30px;height:30px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.tpl-toggle.is-on{background:var(--brand-primary-soft);border-color:var(--brand-primary);color:var(--brand-primary)}.tpl-toggle-gap{width:6px}.tpl-color{display:flex;align-items:center;gap:8px}.tpl-color input[type=color]{width:36px;height:28px;padding:2px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface)}.tpl-link{border:0;background:none;padding:0;font:12px var(--font-sans);color:var(--brand-primary);cursor:pointer}.tpl-props-check{font-size:12.5px}.tpl-shortcuts{padding:0 14px 14px}.tpl-preview-bar{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.tpl-preview-frame{position:relative;height:68vh;background:var(--bg-subtle);border-radius:var(--radius-md);overflow:hidden}.tpl-preview-frame iframe{width:100%;height:100%;border:0}.tpl-preview-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0}.map-table{display:grid;gap:6px}.map-row{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:8px}.map-field{display:grid;gap:1px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:13px}.map-field small{color:var(--text-tertiary);font-family:var(--font-mono);font-size:11px}.map-target{min-height:36px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);display:flex;align-items:center}.map-target.is-over{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.map-target select{width:100%;height:34px;border:0;background:transparent;padding:0 8px;font:13px var(--font-mono);color:var(--text-primary)}.map-arrow{color:var(--text-tertiary);text-align:center}.map-columns{display:flex;flex-wrap:wrap;gap:6px}.map-col{padding:3px 8px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-surface);font:12px var(--font-mono);cursor:grab;-webkit-user-select:none;user-select:none}.map-col.is-used{color:var(--text-tertiary)}.map-head{display:flex;justify-content:space-between;align-items:center;gap:8px}@media (max-width: 1100px){.tpl-workspace{grid-template-columns:var(--tpl-palette-w, 220px) 0 1fr 250px}.tpl-stage{padding-left:140px}}.tpl-el-table{padding:0!important;align-items:flex-start}.tpl-table-clip{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.tpl-table{width:100%;border-collapse:collapse;table-layout:fixed;line-height:1.35}.tpl-table th,.tpl-table td{padding:.3em .45em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #e2e5ea}.tpl-table thead th{border-bottom:1px solid #9aa3af}.tpl-table tfoot td{font-weight:700;border-top:1px solid #9aa3af;border-bottom:0}.tpl-el-subreport{outline:1px dashed #8a94a6;outline-offset:-1px;background:repeating-linear-gradient(135deg,#f7f8fa 0,#f7f8fa 6px,#eef1f5 6px,#eef1f5 12px);align-items:center!important;justify-content:center}.tpl-el-subreport>.tpl-subreport{width:auto;color:#4a5363;font-size:12px;font-family:inherit;text-align:center}.tpl-cols{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.tpl-col{border:1px solid var(--border-default);border-radius:var(--radius-sm)}.tpl-col.is-open{border-color:var(--brand-primary)}.tpl-col-head{display:flex;align-items:center;gap:2px;padding:2px 4px}.tpl-col-title{flex:1;min-width:0;text-align:left;background:none;border:0;padding:4px 2px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:inherit;font:inherit}.tpl-col-n{display:inline-block;min-width:1.4em;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.tpl-col-body{padding:4px 8px 8px;border-top:1px solid var(--border-default)}.tpl-seg{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-sm);overflow:hidden;justify-self:start}.tpl-seg button{padding:4px 12px;border:0;background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:12.5px;cursor:pointer}.tpl-seg button+button{border-left:1px solid var(--border-default)}.tpl-seg button.is-active{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:600}.tpl-pick-actions{display:flex;gap:12px}.tpl-pick{list-style:none;margin:0;padding:4px 0;max-height:260px;overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-sm)}.tpl-pick li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 8px}.tpl-pick .checkbox{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-pick .checkbox.is-disabled{color:var(--text-tertiary)}.tpl-layer-band{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin-bottom:8px}.tpl-layer-band-name{text-align:left;border:0;background:none;padding:4px 2px;font:inherit;font-size:11.5px;font-weight:600;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.tpl-layer-band-name.is-selected{color:var(--brand-primary)}.tpl-layer-empty{margin:0 0 0 8px}.tpl-layers{list-style:none;margin:0;padding:0}.tpl-layers li{display:flex;align-items:center;gap:2px;border-radius:var(--radius-sm)}.tpl-layers li.is-selected{background:var(--brand-primary-soft)}.tpl-layer-name{flex:1;min-width:0;display:flex;align-items:center;gap:6px;border:0;background:none;padding:4px 6px;font:inherit;font-size:12.5px;color:inherit;text-align:left;cursor:pointer}.tpl-layer-icon{flex:none;width:18px;text-align:center;color:var(--text-tertiary)}.tpl-layer-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tpl-arrange{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:6px}.tpl-starter-group{display:grid;gap:8px}.tpl-starter-group h4{margin:4px 0 0;font-size:12.5px;color:var(--text-secondary)}.tpl-thumb{position:relative}.tpl-plan-badge{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;background:var(--brand-primary);color:var(--text-on-primary, #fff);font-size:10.5px;font-weight:600}.tpl-starter.is-locked .tpl-thumb>.tpl-paper{opacity:.75}
