.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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: 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{color-scheme:light;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-subtle: #f9fafb;--color-surface-muted: #f2f4f7;--color-node-header: #eef1f6;--color-border: #e4e7ec;--color-border-strong: #d0d5dd;--color-text: #101828;--color-text-secondary: #344054;--color-text-muted: #475467;--color-text-faint: #98a2b3;--color-canvas-grid: #d8dde6;--color-minimap-mask: rgba(16, 24, 40, .12);--color-accent: #2563eb;--color-accent-strong: #1d4ed8;--color-accent-subtle: #eff4ff;--color-accent-border: #bfd4fe;--color-danger: #f04438;--color-danger-subtle: #fef3f2;--color-warning: #f79009;--color-warning-subtle: #fffaeb;--color-success: #12b76a;--color-warning-text: #713f12;--color-pk: #b54708;--color-fk: #047857;--color-fk-subtle: #ecfdf3;--color-fk-border: #86efac;--font-sans: "Pretendard", "Segoe UI", "Apple SD Gothic Neo", sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--text-xl: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 1px 3px rgba(16, 24, 40, .1), 0 1px 2px rgba(16, 24, 40, .06);--shadow-lg: 0 4px 12px rgba(16, 24, 40, .12);--shadow-focus: 0 0 0 3px rgba(37, 99, 235, .25);--duration-fast: .12s;--duration-normal: .2s;--ease-out: cubic-bezier(.16, 1, .3, 1)}:root[data-theme=dark]{color-scheme:dark;--color-bg: #121212;--color-surface: #18181b;--color-surface-subtle: #222225;--color-surface-muted: #2c2c31;--color-node-header: #2f2f36;--color-border: #3a3a40;--color-border-strong: #52525b;--color-text: #f7f7f8;--color-text-secondary: #e4e4e7;--color-text-muted: #c7c7cf;--color-text-faint: #9ca3af;--color-canvas-grid: #4b4b52;--color-minimap-mask: rgba(0, 0, 0, .45);--color-accent: #60a5fa;--color-accent-strong: #93c5fd;--color-accent-subtle: #172554;--color-accent-border: #2563eb;--color-danger: #fb7185;--color-danger-subtle: #4c0519;--color-warning: #fbbf24;--color-warning-subtle: #451a03;--color-success: #34d399;--color-warning-text: #fde68a;--color-pk: #fbbf24;--color-fk: #6ee7b7;--color-fk-subtle: #052e1b;--color-fk-border: #047857;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-md: 0 1px 3px rgba(0, 0, 0, .34), 0 1px 2px rgba(0, 0, 0, .24);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .42);--shadow-focus: 0 0 0 3px rgba(96, 165, 250, .32)}:root{color:var(--color-text);background-color:var(--color-bg);font-family:var(--font-sans)}*,*:before,*:after{box-sizing:border-box}body{margin:0}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.is-resizing-inspector{cursor:col-resize;-webkit-user-select:none;user-select:none}.key-badges{display:inline-flex;align-items:center;gap:3px;margin-right:5px;vertical-align:middle}.key-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:18px;border-radius:3px;padding:0 5px;font-size:10px;font-weight:700;line-height:1;letter-spacing:0}.key-badge-primary{background:var(--color-accent-subtle);color:var(--color-accent-strong);border:1px solid var(--color-accent-border)}.key-badge-foreign{background:var(--color-fk-subtle);color:var(--color-fk);border:1px solid var(--color-fk-border)}.key-badge-index,.key-badge-notnull{background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border)}.error-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:100vh;padding:var(--space-5);text-align:center;background:var(--color-bg)}.error-fallback h1{font-size:var(--text-xl);color:var(--color-text);margin:0}.error-fallback p{color:var(--color-text-muted);font-size:var(--text-md);line-height:1.7;margin:0}.error-fallback button{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-surface);font-size:var(--text-md);font-weight:600;cursor:pointer}.error-fallback button:hover{background:var(--color-accent-strong)}.app-shell{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.app-header{display:flex;flex-direction:column;min-height:0}.workspace-grid{display:grid;grid-template-columns:var(--list-width, 260px) minmax(0,1fr) var(--inspector-width, 400px);grid-template-areas:"list canvas inspector";min-height:0}.workspace-panel{border-right:1px solid var(--color-border);background:var(--color-surface);padding:12px;min-width:0}.list-panel,.inspector-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-head{display:flex;flex-shrink:0;margin-bottom:4px}.list-panel .panel-head{justify-content:flex-end}.inspector-panel .panel-head{justify-content:flex-start}.workspace-panel.is-collapsed{padding:12px 6px}.workspace-panel.is-collapsed .panel-head{justify-content:center}.panel-collapse-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer}.panel-collapse-toggle:hover{background:var(--color-surface-subtle);color:var(--color-text)}.panel-scroll{flex:1;min-height:0;overflow-y:auto}.list-panel .panel-scroll{display:flex;flex-direction:column;overflow:hidden}.list-panel .entity-list-panel{flex:1;min-height:0;height:auto}.canvas-panel{background:var(--color-surface-subtle);grid-area:canvas;display:flex;flex-direction:column;min-height:0}.canvas-panel .view-panel{flex:1;min-height:0}.canvas-view-tabs{display:flex;flex:0 0 auto;align-items:stretch;gap:var(--space-1);padding:0 var(--space-2);border-bottom:1px solid var(--color-border);overflow-x:auto}.canvas-view-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-muted);padding:8px 12px;white-space:nowrap;cursor:pointer;font:inherit}.canvas-view-tab:hover{color:var(--color-text)}.canvas-view-tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--color-accent)}.canvas-view-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.view-panel{width:100%;height:100%;display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.canvas-panel>.view-panel{flex:1;min-height:0}.canvas-panel>.view-panel>.erd-canvas{flex:1;display:flex;min-height:0;margin-top:0}.canvas-panel>.view-panel>.erd-canvas>.erd-flow{flex:1;height:auto;min-height:0}.canvas-empty{margin-top:12px;min-height:160px;border:1px dashed var(--color-border);border-radius:6px;padding:12px;color:var(--color-text-muted);background:var(--color-surface-subtle);overflow:hidden;word-break:keep-all;line-height:1.4}@media (max-width: 900px){.erd-canvas{overflow:auto}.node-layer{gap:12px}}@media (max-width: 900px){.app-shell{height:auto;min-height:100vh;grid-template-rows:auto 1fr auto;overflow:visible}.app-toolbar{justify-content:flex-start}.workspace-grid{grid-template-columns:1fr;grid-template-areas:"canvas" "list" "inspector"}.workspace-panel{border-right:0;border-bottom:1px solid var(--color-border)}.list-panel,.inspector-panel{overflow:visible}.inspector-panel{border-bottom:0;padding-left:12px}.inspector-resize-handle{display:none}}.app-statusbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);padding:4px var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);overflow-x:clip}.statusbar-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);padding:2px var(--space-1)}.statusbar-icon-button{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.statusbar-icon-button:hover:not(:disabled){border-color:var(--color-accent-border);color:var(--color-accent)}.statusbar-icon-button:disabled{opacity:.45;cursor:default}.statusbar-icon-button+.statusbar-icon-button{margin-left:calc(var(--space-4) * -1 + var(--space-1))}.statusbar-toggle{display:inline-flex;align-items:center;gap:var(--space-1);cursor:pointer}.statusbar-display-menu{position:relative;flex:0 0 auto}.statusbar-display-menu summary{display:inline-flex;align-items:center;min-height:22px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);padding:1px var(--space-2);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.statusbar-display-menu summary::-webkit-details-marker{display:none}.statusbar-display-panel{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);width:min(360px,calc(100vw - 24px));min-width:0;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text);padding:var(--space-3)}.statusbar-display-panel fieldset{display:grid;gap:var(--space-1);min-width:0;border:0;margin:0;padding:0}.statusbar-display-panel legend{margin-bottom:var(--space-1);color:var(--color-text-muted);font-weight:600}.statusbar-display-panel .statusbar-toggle{white-space:nowrap}@media (max-width: 900px){.statusbar-display-panel{position:fixed;left:12px;right:12px;bottom:36px;width:auto;grid-template-columns:1fr}}.statusbar-density-toggle{flex:0 0 auto}.statusbar-density-toggle .segment-button{min-width:0;padding:1px var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.statusbar-density-toggle .segment-button[aria-pressed=true]{color:var(--color-surface)}.statusbar-layout-copy{flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);padding:1px var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer}.statusbar-layout-copy:hover{color:var(--color-text)}.statusbar-unsaved-hint{display:inline-flex;align-items:center;gap:var(--space-1);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-warning-subtle);color:var(--color-warning-text);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.statusbar-hint{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-1)}.statusbar-hint kbd{border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface-subtle);padding:0 5px;font-size:10px;font-family:var(--font-mono)}.statusbar-hint-button{border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0}.statusbar-hint-button:hover{color:var(--color-text)}.app-toolbar{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;overflow-x:auto;overflow-y:visible;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.toolbar-left{display:flex;align-items:center;min-width:0;gap:12px;overflow:hidden}.app-toolbar h1{margin:0;font-size:1.05rem;white-space:nowrap}.toolbar-select{height:32px;min-width:170px;border:1px solid var(--color-border-strong);border-radius:4px;padding:0 8px;background:var(--color-surface);color:var(--color-text)}.toolbar-group{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.toolbar-actions{flex-shrink:0}.segmented-buttons{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:4px;overflow-x:auto;min-width:0;white-space:nowrap}.segment-button{min-width:84px;border:0;border-right:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:8px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.segment-button:last-child{border-right:0}.segment-button[aria-pressed=true],.segment-button[aria-selected=true]{background:var(--color-accent);color:var(--color-surface)}.segment-button:focus-visible,.toolbar-icon-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.toolbar-icon-button{width:32px;height:32px;min-width:32px;max-width:32px;display:inline-grid;place-items:center;border:1px solid var(--color-border-strong);border-radius:4px;background:var(--color-surface);color:var(--color-text);padding:0}.toolbar-icon-button svg{width:16px;height:16px}.toolbar-icon-button+.toolbar-icon-button{margin-left:0}.toolbar-mcp-button{display:inline-flex;align-items:center;gap:var(--space-1);height:32px;padding:0 10px;border:1px solid var(--color-border-strong);border-radius:4px;background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.toolbar-new-project{display:inline-flex;align-items:center;gap:var(--space-1);height:32px;padding:0 var(--space-3);border:1px solid var(--color-accent);border-radius:4px;background:var(--color-accent-subtle);color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.toolbar-new-project:hover{background:var(--color-accent);color:var(--color-surface)}.toolbar-new-project:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.toolbar-new-project svg{width:16px;height:16px}.toolbar-brand{display:flex;align-items:center;gap:var(--space-2)}.toolbar-brand-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-surface);font-size:13px;font-weight:800}.project-name-button{padding:4px var(--space-3);border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--color-text);font-size:var(--text-sm);cursor:pointer}.project-name-button:hover{border-color:var(--color-border);background:var(--color-surface-subtle)}.project-name-input{padding:4px var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text);outline:none;box-shadow:var(--shadow-focus)}.save-status{display:inline-flex;align-items:center;gap:6px;padding:4px var(--space-2);border:none;border-radius:var(--radius-sm);background:none;font-size:var(--text-xs);color:var(--color-text-faint);cursor:pointer}.save-status:hover{background:var(--color-surface-subtle)}.save-status-dot{width:7px;height:7px;border-radius:50%;background:var(--color-success)}.save-status-saving .save-status-dot{background:var(--color-warning)}.save-status-error{color:var(--color-danger)}.save-status-error .save-status-dot{background:var(--color-danger)}.toolbar-divider{width:1px;height:18px;background:var(--color-border);margin:0 var(--space-2)}.language-select{min-width:88px}.list-panel{background:var(--color-surface-subtle);grid-area:list}.list-panel ul{margin:0;padding-left:18px}.list-panel li+li{margin-top:4px}.entity-list li+li{margin-top:1px}.entity-list-button{width:100%;border:0;border-radius:4px;background:transparent;color:var(--color-text);padding:3px 8px;text-align:left;font-size:13px;line-height:1.4;cursor:pointer}.entity-list-button:hover,.entity-list-button:focus-visible{background:var(--color-accent-subtle);outline:2px solid rgb(31 111 235 / .16);outline-offset:1px}.entity-list-button[aria-current=true]{background:var(--color-accent-subtle);color:var(--color-accent-strong);font-weight:700}.entity-list-panel{display:flex;flex-direction:column;height:100%;min-height:0}.entity-list-search{display:flex;align-items:center;gap:var(--space-1);margin:var(--space-2);padding:5px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-faint)}.entity-list-search input{border:none;background:none;outline:none;width:100%;font-size:var(--text-xs);color:var(--color-text)}.entity-list-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--space-2)}.entity-list-section+.entity-list-section{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.entity-list-count{padding:var(--space-1) var(--space-3);font-size:10px;font-weight:700;letter-spacing:0;color:var(--color-text-faint);text-transform:uppercase}.entity-list,.subject-area-list{margin:0;padding:0;list-style:none}.subject-area-list-item+.subject-area-list-item{margin-top:2px}.subject-area-list-row{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:2px;padding:0 var(--space-1)}.subject-area-list-button,.subject-area-member-button,.subject-area-delete-button{border:0;border-radius:4px;background:transparent;color:var(--color-text);cursor:pointer}.subject-area-list-button{display:grid;grid-template-columns:14px 10px minmax(0,1fr);align-items:center;gap:5px;min-width:0;padding:4px 5px;text-align:left}.subject-area-list-button:hover,.subject-area-list-button:focus-visible,.subject-area-member-button:hover,.subject-area-member-button:focus-visible,.subject-area-delete-button:hover,.subject-area-delete-button:focus-visible{background:var(--color-accent-subtle);outline:2px solid rgb(31 111 235 / .16);outline-offset:1px}.subject-area-list-button[aria-current=true],.subject-area-member-button[aria-current=true]{background:var(--color-accent-subtle);color:var(--color-accent-strong);font-weight:700}.subject-area-list-swatch{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 1px #0000001f}.subject-area-list-name,.subject-area-member-button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-area-delete-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--color-text-faint)}.subject-area-delete-button:hover,.subject-area-delete-button:focus-visible{color:var(--color-danger)}.subject-area-member-panel{margin:1px var(--space-2) var(--space-1) 30px;padding-left:var(--space-2);border-left:1px solid var(--color-border)}.subject-area-member-count{padding:2px 0 3px;font-size:10px;color:var(--color-text-faint)}.subject-area-member-list{margin:0;padding:0;list-style:none}.subject-area-member-button{width:100%;padding:3px 5px;text-align:left;font-size:var(--text-xs);color:var(--color-text-secondary)}.subject-area-empty{margin:0;padding:3px 0 5px;font-size:var(--text-xs);color:var(--color-text-faint)}.shared-erd-section{display:flex;flex-direction:column;flex-shrink:0;max-height:32vh;margin-top:auto;padding:var(--space-2) 0;border-top:1px solid var(--color-border);background:var(--color-surface)}.shared-erd-list{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-1)}.shared-erd-item{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:2px;padding:0 var(--space-1)}.shared-erd-item+.shared-erd-item{margin-top:1px}.shared-erd-open-button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}.shared-erd-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.shared-erd-date{font-size:10px;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.shared-erd-leave-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:4px;background:transparent;color:var(--color-text-faint);cursor:pointer}.shared-erd-leave-button:hover,.shared-erd-leave-button:focus-visible{background:var(--color-danger-subtle);color:var(--color-danger);outline:2px solid rgb(240 68 56 / .16);outline-offset:1px}.lint-dock{display:flex;flex-direction:column;flex-shrink:0;border-top:1px solid var(--color-border);background:var(--color-surface)}.lint-dock .lint-summary{width:100%}.lint-dock .lint-summary-label{margin-left:0;font-weight:600;color:var(--color-text-muted)}.lint-dock-body{max-height:35vh;overflow-y:auto;border-top:1px solid var(--color-border)}.lint-dock .lint-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px;padding:var(--space-2);overflow:visible}.lint-summary{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:none;cursor:pointer;font-size:var(--text-xs);color:var(--color-text-muted)}.lint-summary:hover{background:var(--color-surface-subtle)}.lint-summary-badge{display:inline-flex;align-items:center;gap:3px}.lint-summary-error{color:var(--color-danger)}.lint-summary-warning{color:var(--color-warning)}.lint-summary-label{margin-left:auto;color:var(--color-text-faint)}.lint-compliance{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--text-xs)}.lint-compliance-label{color:var(--color-text-secondary)}.lint-compliance-value{font-weight:600;font-variant-numeric:tabular-nums}.lint-compliance-high .lint-compliance-value{color:var(--color-success)}.lint-compliance-medium .lint-compliance-value{color:var(--color-warning)}.lint-compliance-low .lint-compliance-value{color:var(--color-danger)}.lint-compliance-empty .lint-compliance-value{color:var(--color-text-faint);font-weight:400}.lint-drift-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px 2px}.lint-drift-title{font-size:12px;font-weight:600}.lint-drift-apply{font-size:11px;padding:2px 8px}.lint-empty{padding:var(--space-3);margin:0;font-size:var(--text-xs);color:var(--color-text-faint);text-align:center}.lint-list{list-style:none;margin:0;padding:0 var(--space-1) var(--space-2);overflow-y:auto}.lint-item{display:flex;align-items:flex-start;gap:var(--space-1);width:100%;padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:none;text-align:left;cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.4}.lint-item:hover{background:var(--color-surface-muted)}.lint-item svg{flex-shrink:0;margin-top:1px}.lint-item-error svg{color:var(--color-danger)}.lint-item-warning svg{color:var(--color-warning)}.lint-item-info svg{color:var(--color-text-faint)}.glossary-sync-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--text-xs)}.glossary-sync-label{flex:1;color:var(--color-text-secondary)}.glossary-sync-outdated{background:var(--color-warning-subtle, var(--color-surface-muted))}.glossary-sync-outdated .glossary-sync-label{color:var(--color-warning);font-weight:600}.glossary-sync-outdated svg{color:var(--color-warning);flex-shrink:0}.glossary-sync-deleted{background:var(--color-error-subtle, var(--color-surface-muted))}.glossary-sync-deleted .glossary-sync-label{color:var(--color-error, var(--color-danger));font-weight:600}.glossary-sync-synced .glossary-sync-label{color:var(--color-success)}.glossary-sync-action{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer}.glossary-sync-action:hover{background:var(--color-surface-muted)}.glossary-sync-primary{border-color:var(--color-warning);background:var(--color-warning);color:var(--color-on-accent, #fff);font-weight:600}.glossary-sync-primary:hover{filter:brightness(.95);background:var(--color-warning)}.glossary-sync-danger{color:var(--color-danger)}.glossary-sync-danger:hover{background:var(--color-danger-subtle, var(--color-surface-muted))}.dictionary-readonly-hint{margin:0;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-surface-muted);border-radius:var(--radius-sm)}.dictionary-master-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border)}.dictionary-master-hint{flex:1;font-size:var(--text-xs);color:var(--color-text-secondary)}.dictionary-master-save{padding:4px 12px;border:1px solid var(--color-accent-strong, var(--color-accent));border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent, #fff);font-size:var(--text-xs);font-weight:600;cursor:pointer}.dictionary-master-save:hover{filter:brightness(.97)}.dictionary-master-cancel{padding:4px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer}.dictionary-master-cancel:hover{background:var(--color-surface-muted)}.erd-canvas{position:relative;min-width:0;min-height:0;margin-top:12px;overflow:visible}.erd-flow{width:100%;height:min(62vh,640px);min-height:460px;border:1px solid var(--color-border);border-radius:4px;overflow:hidden;background:var(--color-surface-subtle)}.erd-flow .react-flow__controls{box-shadow:var(--shadow-md);border-radius:var(--radius-sm);overflow:hidden}.erd-flow .react-flow__controls-button{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);fill:currentColor}.erd-flow .react-flow__controls-button:hover{background:var(--color-surface-muted);color:var(--color-text)}.erd-flow .react-flow__controls-button svg{fill:currentColor}.erd-flow .react-flow__minimap{border:1px solid var(--color-border);border-radius:var(--radius-sm)}.erd-flow .react-flow__nodes{pointer-events:none;z-index:2}.erd-flow .react-flow__viewport{pointer-events:auto}.erd-flow .react-flow__viewport-portal{pointer-events:none}.erd-flow .react-flow__node,.erd-flow .react-flow__node.selectable,.erd-flow .react-flow__node.draggable{pointer-events:auto;z-index:3}.erd-flow .react-flow__node.selected{z-index:12}.erd-marker-defs path,.erd-marker-defs circle{fill:none;stroke:var(--color-text-muted);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.erd-relationship-layer{position:absolute;top:0;left:0;width:1px;height:1px;overflow:visible;pointer-events:none;z-index:2}.erd-relationship{cursor:pointer;pointer-events:visibleStroke}.erd-relationship:focus{outline:none}.erd-relationship-hitbox{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}body.is-dragging-relationship{cursor:grabbing}.erd-relationship-segment-handle{fill:var(--color-surface);stroke:var(--color-accent);stroke-width:1.5;pointer-events:all}.erd-relationship-segment-handle-v{cursor:ew-resize}.erd-relationship-segment-handle-h{cursor:ns-resize}.erd-relationship-segment-handle:hover,body.is-dragging-relationship .erd-relationship-segment-handle{fill:var(--color-accent-subtle)}.erd-relationship-path{fill:none;stroke:var(--color-text-muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.erd-relationship-path-nonIdentifying{stroke-dasharray:5 4}.erd-relationship-selected .erd-relationship-path,.erd-relationship:focus .erd-relationship-path{stroke:var(--color-accent);stroke-width:2}.erd-relationship-label-layer{position:absolute;top:0;left:0;width:1px;height:1px;overflow:visible;pointer-events:none;z-index:13}.erd-relationship-label{fill:var(--color-text-muted);font-size:11px;font-weight:600;paint-order:stroke;pointer-events:auto;cursor:pointer;stroke:var(--color-surface);stroke-linejoin:round;stroke-width:4;text-anchor:middle}.erd-relationship-label-selected{fill:var(--color-accent)}.subject-area-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.subject-area-box{position:absolute;border:2px dashed;border-radius:8px;pointer-events:none}.subject-area-box-selected{box-shadow:var(--shadow-focus)}.subject-area-label{position:absolute;top:-11px;left:12px;max-width:180px;min-height:20px;padding:2px 8px;border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:var(--text-xs);font-weight:700;line-height:1.3;overflow:hidden;pointer-events:auto;text-overflow:ellipsis;white-space:nowrap}.node-layer{display:flex;flex-wrap:wrap;align-content:flex-start;gap:16px;min-width:0}.erd-node{width:100%;min-height:100%;border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-lg);overflow:visible;min-width:220px;max-width:720px;word-break:break-word;box-sizing:border-box;position:relative;box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.erd-node-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px #1f6feb2e}.erd-node-reference{min-height:96px;border-style:solid;border-color:var(--color-border-strong);box-shadow:inset 3px 0 0 var(--color-accent-border),var(--shadow-sm)}.erd-node-reference header{min-height:34px;box-sizing:border-box}.erd-node-reference .erd-node-title{display:inline-flex;align-items:center;gap:6px;min-width:0}.erd-node-reference-icon{flex:0 0 auto;color:var(--color-text-muted);font-size:12px;line-height:1}.erd-node-reference-badge{flex:0 0 auto;padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:10px;font-weight:700;line-height:1.2}.erd-node-header-colored .erd-node-reference-icon{color:#fff}.erd-node-header-colored .erd-node-reference-badge{border-color:#ffffff6b;background:#ffffff2e;color:#fff}.erd-node-reference-meta{display:inline-flex;align-items:baseline;gap:var(--space-2);min-width:0;flex-shrink:0}.erd-node-handle{width:24px;height:24px;border:0;background:transparent;pointer-events:auto;z-index:8}.erd-node-source-handle{pointer-events:none;z-index:7}.erd-node-target-handle{z-index:9}.erd-node-handle:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border:2px solid var(--color-surface);border-radius:999px;background:var(--color-accent);transform:translate(-50%,-50%)}.erd-node-handle:hover:after,.erd-node-handle.connectingfrom:after,.erd-node-handle.connectingto:after,.erd-node-handle.valid:after{box-shadow:0 0 0 4px #1f6feb2e}.erd-flow .react-flow__connectionline{pointer-events:none}.erd-node-resize-line{position:absolute;top:0;bottom:0;width:10px;background:transparent;border:0;cursor:ew-resize;pointer-events:auto;z-index:6}.erd-node-resize-left{left:0}.erd-node-resize-right{right:0}.erd-node-resize-line:after{content:"";position:absolute;top:10px;bottom:10px;width:2px;border-radius:999px;background:transparent;transition:background-color .12s ease}.erd-node-resize-left:after{left:2px}.erd-node-resize-right:after{right:2px}.erd-node-selected .erd-node-resize-line:hover:after,.erd-node-selected .erd-node-resize-line:focus-visible:after,.is-resizing-erd-node .erd-node-resize-line:after{background:var(--color-accent)}.erd-node header{border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:8px 10px;border-bottom:1px solid var(--color-border-strong);background:var(--color-node-header);font-weight:700;word-break:break-word;white-space:normal;display:flex;align-items:baseline;justify-content:flex-start;gap:var(--space-2);line-height:1.3}.erd-node-reference .erd-node-reference-meta{margin-left:auto}.erd-node-selected header{background:var(--color-accent-subtle);color:var(--color-accent-strong)}.erd-node-header-colored .erd-node-title,.erd-node-header-colored .erd-node-subtitle{color:#fff}.erd-node-subtitle{font-weight:400;font-size:10px;color:var(--color-text-faint);letter-spacing:.3px;flex-shrink:0}.erd-node-header-meta{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:auto;flex-shrink:0}.erd-node-edit-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}.erd-node:hover .erd-node-edit-toggle,.erd-node-selected .erd-node-edit-toggle,.erd-node-edit-toggle:focus-visible,.erd-node-edit-toggle-active{opacity:1}.erd-node-edit-toggle:hover{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.erd-node-edit-toggle-active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.erd-node-header-colored .erd-node-edit-toggle{color:#fff}.erd-node-body{display:grid;grid-template-columns:max-content minmax(0,max-content) minmax(0,1fr);align-content:start;gap:2px 6px;padding:8px 10px;min-width:0}.erd-node-body-has-secondary{grid-template-columns:max-content minmax(0,max-content) max-content minmax(0,1fr)}.erd-node-body-has-domain{grid-template-columns:max-content minmax(0,max-content) minmax(0,1fr) max-content}.erd-node-body-has-secondary.erd-node-body-has-domain{grid-template-columns:max-content minmax(0,max-content) max-content minmax(0,1fr) max-content}.erd-node-body-has-type{grid-template-columns:max-content minmax(0,max-content) minmax(0,1fr) max-content}.erd-node-body-has-secondary.erd-node-body-has-type{grid-template-columns:max-content minmax(0,max-content) max-content minmax(0,1fr) max-content}.erd-node-body-has-domain.erd-node-body-has-type{grid-template-columns:max-content minmax(0,max-content) minmax(0,1fr) max-content max-content}.erd-node-body-has-secondary.erd-node-body-has-domain.erd-node-body-has-type{grid-template-columns:max-content minmax(0,max-content) max-content minmax(0,1fr) max-content max-content}.erd-node-attribute-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;min-width:0;padding:2px 0;font-size:13px;line-height:1.3;word-break:break-word;overflow-wrap:anywhere}.erd-node-empty,.erd-node-add-attribute{grid-column:1 / -1}.erd-node-attribute-spacer{min-width:0}.erd-node-attribute-row[role=button]{cursor:pointer;border-radius:var(--radius-sm);outline:none}.erd-node-attribute-row[role=button]:hover{background:var(--color-surface-subtle)}.erd-node-attribute-row-selected{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border)}.erd-node-attribute-row[role=button]:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent)}.erd-node-attribute-primary-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erd-node-attribute-secondary-name{justify-self:start;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:11px;line-height:1.2}.erd-node-attribute-key{display:flex;align-items:center;justify-content:flex-start;min-width:18px}.erd-node-attribute-key .key-badges{margin-right:0}.key-icon{flex-shrink:0}.key-icon-primary{color:var(--color-warning, #d9a400)}.key-icon-foreign{color:var(--color-fk, #2f6feb)}.key-icon-unique{color:var(--color-accent-strong, #6938ef)}.key-icon-notnull{color:var(--color-text-muted)}.erd-node-key-editor{position:relative}.erd-node-key-summary{display:flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;padding:1px 2px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);cursor:pointer;list-style:none}.erd-node-key-summary::-webkit-details-marker{display:none}.erd-node-key-summary:hover,.erd-node-key-summary:focus-visible,.erd-node-key-editor[open] .erd-node-key-summary{border-style:solid;border-color:var(--color-accent);background:var(--color-accent-subtle)}.erd-node-key-placeholder{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;color:var(--color-text-muted);font-size:13px;font-weight:700;line-height:1;opacity:.9}.erd-node-key-placeholder:before{content:"+"}.erd-node-key-summary:hover .erd-node-key-placeholder,.erd-node-key-editor[open] .erd-node-key-placeholder{color:var(--color-accent);opacity:1}.erd-node-key-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:40;display:grid;gap:4px;min-width:150px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg)}.erd-node-key-panel-header{display:flex;justify-content:flex-end;margin-bottom:2px}.erd-node-key-close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.erd-node-key-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.erd-node-key-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.erd-node-key-option{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--color-text);cursor:pointer;white-space:nowrap}.erd-node-key-option input[type=checkbox]{margin:0}.erd-node-attribute-name,.erd-node-attribute-domain-edit,.erd-node-attribute-type-edit{min-width:0}.erd-node-attribute-domain-edit,.erd-node-attribute-type-edit{display:block}.erd-node-body .domain-type-input,.erd-node-body .physical-type-input{width:100%}.erd-node-body .inline-edit-input{width:100%;padding:2px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit}.erd-node-attribute-domain-edit .inline-edit-input{color:var(--color-text-muted);font-size:12px;text-align:right}.erd-node-attribute-type-edit .inline-edit-input{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:11.5px;text-align:right}.erd-node-body .inline-edit-input:hover{border-color:var(--color-border)}.erd-node-body .inline-edit-input:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:0 0 0 2px #1f6feb24;text-align:left}.erd-node-title-edit{display:inline-flex;flex:1 1 auto;min-width:0}.erd-node-title-edit .inline-edit-input{width:100%;padding:1px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit}.erd-node-title-edit .inline-edit-input:hover{border-color:var(--color-border)}.erd-node-title-edit .inline-edit-input:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);color:var(--color-text-primary);box-shadow:0 0 0 2px #1f6feb24}.erd-node-add-attribute{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:2px;padding:4px 6px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:12px;cursor:pointer}.erd-node-add-attribute:hover{border-color:var(--color-accent-border);color:var(--color-accent-strong);background:var(--color-accent-subtle)}.erd-node-attribute-domain{min-width:0;overflow:hidden;color:var(--color-text-muted);font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.erd-node-attribute-type{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:11.5px;min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.erd-node-empty{margin:0;color:var(--color-text-muted);font-size:13px}.erd-node+.erd-node{margin-top:0}.canvas-tool-button{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow-md)}.canvas-tool-button:hover{background:var(--color-surface-subtle)}.canvas-tool-button kbd{border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface-subtle);padding:0 4px;font-size:9px;font-family:var(--font-mono);color:var(--color-text-faint)}.canvas-tool-primary{color:var(--color-accent-strong);background:var(--color-accent-subtle);border-color:var(--color-accent-border)}.canvas-tool-primary:hover{background:var(--color-accent-subtle);filter:brightness(.98)}.canvas-tools{position:absolute;top:var(--space-3);left:var(--space-3);z-index:5;display:flex;align-items:center;gap:var(--space-2)}.selection-toolbar{display:flex;align-items:center;gap:2px;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.selection-toolbar-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer}.selection-toolbar-button:hover{background:var(--color-surface-muted);color:var(--color-text)}.canvas-empty-guide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);pointer-events:none}.canvas-empty-guide p{margin:0;color:var(--color-text-muted);font-size:var(--text-md)}.canvas-empty-guide button{pointer-events:auto}.sticky-note{position:relative;width:100%;height:100%;box-sizing:border-box;padding:var(--space-3);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-md);line-height:1.4;overflow:hidden}.sticky-note-yellow{background:#fef9c3;color:#713f12}.sticky-note-pink{background:#fce7f3;color:#831843}.sticky-note-blue{background:#dbeafe;color:#1e3a8a}.sticky-note-green{background:#dcfce7;color:#14532d}.sticky-note-gray{background:#e5e7eb;color:#1f2937}.sticky-note-text{width:100%;height:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;overflow:hidden}.sticky-note-placeholder{opacity:.5}.sticky-note-input{width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;resize:none;outline:none}.sticky-note-toolbar{position:absolute;top:4px;right:4px;z-index:1;display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm)}.sticky-note-swatch{width:14px;height:14px;padding:0;border:1px solid rgb(0 0 0 / .12);border-radius:999px;cursor:pointer}.sticky-note-swatch:hover{box-shadow:0 0 0 2px #1f6feb40}.sticky-note-swatch-yellow{background:#fef08a}.sticky-note-swatch-pink{background:#f9a8d4}.sticky-note-swatch-blue{background:#93c5fd}.sticky-note-swatch-green{background:#86efac}.sticky-note-swatch-gray{background:#d1d5db}.sticky-note-delete{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.sticky-note-delete:hover{background:var(--color-surface-muted);color:var(--color-text)}.react-flow__node-noteNode .react-flow__resize-control.handle{width:12px;height:12px;border-width:2px;border-radius:3px;background:var(--color-accent, #3367d9);border-color:#fff}.react-flow__node-noteNode .react-flow__resize-control.line{border-width:2px}.react-flow__node-noteNode .react-flow__resize-control.line.top,.react-flow__node-noteNode .react-flow__resize-control.line.bottom{height:10px}.react-flow__node-noteNode .react-flow__resize-control.line.left,.react-flow__node-noteNode .react-flow__resize-control.line.right{width:10px}.erd-node-attribute-row-editing{position:relative;padding-right:28px}.erd-node-row-delete{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-faint);cursor:pointer}.erd-node-row-delete:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.erd-node-row-delete:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.inspector-panel{border-right:0;grid-area:inspector;position:relative;padding-left:16px}.inspector-resize-handle{position:absolute;top:0;bottom:0;left:0;width:12px;cursor:col-resize;outline:none;touch-action:none}.inspector-resize-handle:before{position:absolute;top:0;bottom:0;left:5px;width:2px;content:"";background:var(--color-border)}.inspector-resize-handle:after{position:absolute;top:50%;left:3px;width:6px;height:40px;content:"";transform:translateY(-50%);border-radius:3px;background:var(--color-text-faint);opacity:0}.inspector-resize-handle:hover:before,.inspector-resize-handle:focus-visible:before,.is-resizing-inspector .inspector-resize-handle:before{background:var(--color-accent)}.inspector-resize-handle:hover:after,.inspector-resize-handle:focus-visible:after,.is-resizing-inspector .inspector-resize-handle:after{opacity:1}.inspector{display:block;min-width:0}.panel.inspector{display:flex;flex-direction:column;gap:var(--space-3)}.panel.inspector h2{margin:0;font-size:var(--text-lg);color:var(--color-text)}.inspector-section{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.inspector-section>h3{margin:0;font-size:var(--text-md);font-weight:700;line-height:1.35;color:var(--color-text);word-break:break-word}.inspector-section>p{margin:0;color:var(--color-text-muted);font-size:var(--text-sm)}.info-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.info-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.info-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--color-text-faint)}.info-value{font-size:var(--text-md);color:var(--color-text);word-break:break-word}.info-value-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.info-field input,.info-field select,.info-field textarea{width:100%;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:6px var(--space-2);font-size:var(--text-md);color:var(--color-text);background:var(--color-surface)}.info-field textarea{min-height:72px;resize:vertical;line-height:1.45}.info-field input:focus,.info-field select:focus,.info-field textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.color-picker{display:flex;flex-wrap:wrap;gap:var(--space-1)}.color-swatch{width:22px;height:22px;padding:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast)}.color-swatch:hover{border-color:var(--color-text-muted);transform:translateY(-1px)}.color-swatch:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.color-swatch-selected{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.color-swatch-none{background:linear-gradient(135deg,transparent 46%,var(--color-danger) 47%,var(--color-danger) 53%,transparent 54%),repeating-linear-gradient(45deg,var(--color-surface) 0,var(--color-surface) 4px,var(--color-surface-subtle) 4px,var(--color-surface-subtle) 8px)}.info-card-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border);padding-top:var(--space-2)}.ghost-button{display:inline-flex;align-items:center;gap:var(--space-1);padding:5px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}.ghost-button:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong);color:var(--color-text)}.ghost-button-accent:hover{color:var(--color-accent-strong);border-color:var(--color-accent-border);background:var(--color-accent-subtle)}.ghost-button-danger:hover{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-subtle)}.inspector-subsection-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.inspector-action-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.inspector-subsection-title-row h4{margin:0;color:var(--color-text);font-size:var(--text-md);font-weight:700}.inspector-grid-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.inspector-grid{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:var(--text-sm)}.inspector-grid th,.inspector-grid td{padding:6px var(--space-2);text-align:left;vertical-align:middle;word-break:break-word}.inspector-grid thead th{background:var(--color-surface-subtle);color:var(--color-text-faint);font-weight:600;font-size:var(--text-xs);letter-spacing:.2px;text-transform:uppercase;border-bottom:1px solid var(--color-border);white-space:nowrap}.inspector-grid tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--duration-fast)}.inspector-grid tbody tr:last-child{border-bottom:0}.inspector-grid tbody tr:hover{background:var(--color-surface-subtle)}.inspector-grid input,.inspector-grid select{width:100%;min-width:0;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px var(--space-1);background:transparent;color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--duration-fast),background var(--duration-fast)}.inspector-grid .domain-type-input,.inspector-grid .physical-type-input{width:100%}.inspector-grid input:hover,.inspector-grid select:hover{border-color:var(--color-border);background:var(--color-surface)}.inspector-grid input:focus,.inspector-grid select:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:var(--shadow-focus)}.attribute-grid{min-width:460px}.attribute-grid th:nth-child(1),.attribute-grid td:nth-child(1){width:28px;text-align:center;padding-left:2px;padding-right:2px}.attribute-grid th:nth-child(2),.attribute-grid td:nth-child(2){width:22%}.attribute-grid th:nth-child(3),.attribute-grid td:nth-child(3){width:17%}.attribute-grid th:nth-child(4),.attribute-grid td:nth-child(4){width:13%}.attribute-grid th:nth-child(5),.attribute-grid td:nth-child(5),.attribute-grid th:nth-child(6),.attribute-grid td:nth-child(6),.attribute-grid th:nth-child(7),.attribute-grid td:nth-child(7){width:34px;text-align:center;padding-left:2px;padding-right:2px}.attribute-grid th:nth-child(8),.attribute-grid td:nth-child(8){width:13%}.attribute-select-cell{text-align:center}.attribute-select-cell input[type=checkbox]{width:15px;height:15px;min-width:0;margin:0;accent-color:var(--color-accent);cursor:pointer}.attribute-row-selected>td{background:var(--color-accent-subtle)}.attribute-grid-toolbar{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-2)}.attribute-data-type{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.attribute-key-cell{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap}.attribute-flag-cell{text-align:center}.attribute-flag-cell input[type=checkbox],.attribute-key-cell input[type=checkbox]{width:15px;height:15px;min-width:0;margin:0;accent-color:var(--color-accent);cursor:pointer}.attribute-flag-cell input[type=checkbox]:disabled,.attribute-key-cell input[type=checkbox]:disabled{cursor:not-allowed;opacity:.45}.row-icon-button{display:inline-grid;place-items:center;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-faint);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.row-icon-button:hover{background:var(--color-surface-muted);color:var(--color-text)}.row-icon-button:disabled{cursor:not-allowed;opacity:.35}.row-icon-button:disabled:hover{background:transparent;color:var(--color-text-faint)}.row-icon-button-danger:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.physical-column-grid th:nth-child(2),.physical-column-grid td:nth-child(2){width:110px}.physical-column-grid th:nth-child(3),.physical-column-grid td:nth-child(3){width:56px;text-align:center}.physical-column-input-locked{cursor:not-allowed;color:var(--color-text-muted);background:var(--color-surface-subtle);border-color:transparent}.physical-index-grid{min-width:300px}.physical-index-grid th:nth-child(2),.physical-index-grid td:nth-child(2){width:32%}.physical-index-grid th:nth-child(3),.physical-index-grid td:nth-child(3){width:40px;text-align:center}.physical-index-grid th:nth-child(4),.physical-index-grid td:nth-child(4){width:40px;text-align:center}.index-column-picker{width:100%}.index-column-trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);text-align:left;cursor:pointer}.index-column-trigger .index-column-summary{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.index-column-trigger .index-column-placeholder{flex:1;color:var(--color-text-faint)}.index-column-popover{position:fixed;z-index:980;display:flex;flex-direction:column;gap:var(--space-1);max-width:320px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.index-column-search{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-sm)}.index-column-list{max-height:220px;margin:0;padding:0;overflow-y:auto;list-style:none}.index-column-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer}.index-column-option:hover{background:var(--color-surface-muted)}.index-column-empty{padding:var(--space-2);color:var(--color-text-faint);font-size:var(--text-sm)}.inspector-info-grid th:first-child{width:92px;background:var(--color-surface-subtle);color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs)}.inspector-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.inspector-header h2{margin:0}.inspector-edit-toggle{display:inline-flex;align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.inspector-edit-toggle:hover{background:var(--color-surface-subtle)}.inspector-edit-toggle-active{border-color:var(--color-accent);background:var(--color-accent-subtle);color:var(--color-accent)}.inspector-edit-toggle:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.inspector-edit-scope{display:contents;border:0;margin:0;padding:0;min-inline-size:auto}.dictionary-panel{min-height:0;background:var(--color-surface);overflow:auto;display:flex;flex-direction:column;gap:var(--space-4)}.dictionary-section{display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.dictionary-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);align-items:end;padding:var(--space-4);background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dictionary-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.dictionary-field label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);white-space:normal;line-height:1.3}.dictionary-field input,.dictionary-field select{min-width:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:7px 9px;font-size:var(--text-md);color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.dictionary-field input:focus,.dictionary-field select:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.dictionary-add-button,.dictionary-propose-add{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);width:auto;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);padding:7px 12px;align-self:start;white-space:nowrap;font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.dictionary-add-button:hover,.dictionary-propose-add:hover{border-color:var(--color-accent-border);background:var(--color-accent-subtle);color:var(--color-accent)}.dictionary-add-button:focus-visible,.dictionary-propose-add:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.dictionary-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.dictionary-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--text-md)}.dictionary-table th,.dictionary-table td{padding:9px 14px;text-align:left;vertical-align:top;word-break:break-word;border-bottom:1px solid var(--color-border)}.dictionary-table tbody tr:last-child td{border-bottom:0}.dictionary-table thead th{position:sticky;top:0;z-index:1;background:var(--color-surface-subtle);color:var(--color-text-muted);font-weight:600;font-size:var(--text-sm);letter-spacing:.01em}.dictionary-table tbody tr{transition:background var(--duration-fast)}.dictionary-table tbody tr:hover{background:var(--color-surface-subtle)}.dictionary-table td{color:var(--color-text-secondary)}.dictionary-table td.dictionary-cell-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text)}.dictionary-search{position:relative;display:flex;align-items:center}.dictionary-search-icon{position:absolute;left:12px;color:var(--color-text-muted);pointer-events:none}.dictionary-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit}.dictionary-search input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #1f6feb24}.sortable-header{display:inline-flex;align-items:center;gap:4px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left}.sortable-header:hover{color:var(--color-text)}.sortable-header-neutral{opacity:.4}.sortable-header-active{color:var(--color-accent)}.domain-type-input{position:relative}.inline-edit-input-error{border-color:var(--color-danger, #d92d20)!important;box-shadow:0 0 0 2px #d92d2029}.domain-type-suggestions{position:absolute;z-index:1000;top:calc(100% + 2px);left:0;min-width:160px;max-height:220px;overflow:auto;margin:0;padding:4px;list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md, 0 8px 24px rgb(15 23 42 / .16))}.domain-type-suggestion{display:block;width:100%;padding:6px 10px;border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;cursor:pointer}.domain-type-suggestion:hover,.domain-type-suggestion-active{background:var(--color-surface-subtle);color:var(--color-accent)}.domain-type-error{position:absolute;z-index:1000;top:calc(100% + 2px);left:0;margin:0;padding:4px 8px;font-size:var(--text-xs);color:var(--color-danger, #d92d20);background:var(--color-surface);border:1px solid var(--color-danger, #d92d20);border-radius:var(--radius-sm);white-space:normal;max-width:240px}.draft-duplicate-error{margin:2px 0 0;padding:0 2px;font-size:var(--text-xs);color:var(--color-danger, #d92d20)}.dictionary-draft-row td{background:var(--color-surface-subtle)}.dictionary-draft-row .inline-edit-input::placeholder{color:var(--color-text-muted)}.dictionary-edit-hint{margin:4px 0 10px;font-size:var(--text-sm);color:var(--color-text-muted)}.dictionary-table td .inline-edit-input{width:100%;padding:4px 6px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit}.dictionary-table td.dictionary-cell-mono .inline-edit-input,.inline-edit-input-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.dictionary-table td .inline-edit-input:hover{border-color:var(--color-border)}.dictionary-table td .inline-edit-input:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:0 0 0 3px #1f6feb24}.dictionary-action-col{width:132px}.dictionary-table td.dictionary-action-cell{padding:6px 8px;text-align:center;vertical-align:middle}.dictionary-action-cell-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.row-propose-button{display:inline-flex;align-items:center;justify-content:center;width:100%;height:auto;padding:3px 6px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-faint);font-size:var(--text-xs);line-height:1.3;white-space:normal;word-break:keep-all;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.row-propose-button:hover{background:var(--color-surface-muted);color:var(--color-text)}.row-propose-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.row-propose-button:disabled{cursor:not-allowed;opacity:.35}.row-propose-button-danger:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.dictionary-empty{color:var(--color-text-muted);text-align:center}.dialog{position:fixed;top:72px;left:50%;z-index:20;width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 104px);transform:translate(-50%);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:14px;box-shadow:0 18px 40px #0f172a40;display:flex;flex-direction:column;gap:12px}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog pre,.dialog textarea{margin:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dialog pre{max-height:340px;overflow:auto;background:var(--color-text);color:var(--color-accent-subtle);padding:12px;white-space:pre-wrap;word-break:break-word}.dialog textarea{width:100%;min-height:260px;resize:vertical;padding:8px;background:var(--color-surface);color:var(--color-text)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.dialog-field{display:flex;align-items:center;gap:var(--space-3)}.dialog-field-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.dialog select{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:6px 10px;font-size:var(--text-sm)}.dialog-error{margin:0;color:var(--color-danger, #d92d20);font-size:var(--text-sm)}.image-export-dialog{width:min(440px,calc(100vw - 24px))}.dialog-warnings{margin:0;padding:8px 12px;border:1px solid var(--color-warning);border-radius:var(--radius-sm);background:var(--color-warning-subtle);color:var(--color-warning-text)}.dialog button{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:8px 12px;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.dialog button:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.dialog button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.dialog button.dialog-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface);font-weight:600}.dialog button.dialog-primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.dialog .dialog-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted)}.dialog .dialog-close:hover{background:var(--color-surface-subtle);color:var(--color-text)}.shortcut-help-dialog{max-width:420px}.dialog-footer{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.dialog-footer a{color:var(--color-text-muted);text-decoration:underline;cursor:pointer;transition:color var(--duration-fast)}.dialog-footer a:hover{color:var(--color-text-secondary)}.shortcut-help-footer{justify-content:center}.shortcut-table{width:100%;border-collapse:collapse}.shortcut-table th{text-align:left;font-weight:500;color:var(--color-text-secondary);padding:var(--space-2) 0;font-size:var(--text-sm)}.shortcut-table td{text-align:right;padding:var(--space-2) 0}.shortcut-table tr+tr th,.shortcut-table tr+tr td{border-top:1px solid var(--color-border)}.shortcut-table kbd{display:inline-block;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-subtle);padding:2px var(--space-2);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text);white-space:nowrap}.welcome-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:center;justify-content:center;z-index:950}.welcome-card{width:min(520px,92vw);padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center}.welcome-card h2{margin:0 0 var(--space-2);font-size:var(--text-xl);color:var(--color-text)}.welcome-subtitle{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-md)}.welcome-actions{display:flex;flex-direction:column;gap:var(--space-2)}.welcome-action{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-md);cursor:pointer;text-align:left}.welcome-action:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.welcome-action-primary{border-color:var(--color-accent);background:var(--color-accent-subtle);color:var(--color-accent-strong);font-weight:600}.welcome-action svg{flex-shrink:0}.welcome-footer{margin-top:var(--space-4);display:flex;justify-content:center}.welcome-cancel{padding:var(--space-2) var(--space-4);border:none;background:none;color:var(--color-text-muted);font-size:var(--text-md);cursor:pointer;border-radius:var(--radius-md)}.welcome-cancel:hover{background:var(--color-surface-subtle);color:var(--color-text-secondary)}.library-toolbar{display:flex;gap:8px;align-items:center}.library-search{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.library-action{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.library-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto}.library-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.library-item.is-active{border-color:var(--color-accent)}.library-item-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;text-align:left}.workspace-delete-icon{display:inline-flex;align-items:center;justify-content:center;padding:5px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-faint);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.workspace-delete-icon:hover{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-subtle)}.workspace-delete-icon:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.library-item-name{font-weight:600;color:var(--color-text)}.library-item-meta{font-size:12px;color:var(--color-text-muted)}.library-item-actions{display:flex;gap:4px;flex-shrink:0}.library-item-actions button{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.library-empty{color:var(--color-text-muted);text-align:center;padding:24px 0}.workspace-name-row{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-name-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.workspace-name-controls{display:flex;gap:var(--space-2)}.workspace-name-controls input{flex:1;min-width:0}.workspace-name-controls input,.workspace-description-input,.workspace-delete-confirm input,.member-dialog .library-item-actions input{padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-md);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.workspace-name-controls input:focus-visible,.workspace-description-input:focus-visible,.workspace-delete-confirm input:focus-visible,.member-dialog .library-item-actions input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.workspace-description-input{resize:vertical;min-height:60px;font-family:inherit}.workspace-color-options{display:flex;flex-wrap:wrap;gap:var(--space-2)}.workspace-color-option{position:relative;display:inline-flex;cursor:pointer}.workspace-color-option input[type=radio]{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.workspace-color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--color-border);transition:box-shadow var(--duration-fast)}.workspace-color-option input[type=radio]:checked+.workspace-color-swatch{box-shadow:0 0 0 2px var(--color-accent)}.workspace-color-option input[type=radio]:focus-visible+.workspace-color-swatch{outline:none;box-shadow:var(--shadow-focus)}.workspace-plan-badge{display:inline-flex;align-items:center;margin-left:var(--space-2);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;vertical-align:middle;white-space:nowrap}.ws-color-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.library-item-name-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.dialog-subheading{margin:0;font-size:var(--text-md);font-weight:600;color:var(--color-text)}.member-dialog .library-list{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-1);gap:var(--space-1)}.member-dialog .library-list .library-item{border:1px solid transparent;background:transparent;transition:background var(--duration-fast),border-color var(--duration-fast)}.member-dialog .library-list .library-item:hover{background:var(--color-surface-subtle);border-color:var(--color-border)}.workspace-danger-zone{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-subtle)}.workspace-danger-title{color:var(--color-danger)}.workspace-delete-warning{margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--color-text-secondary)}.workspace-delete-confirm{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-delete-confirm label{font-size:var(--text-sm);color:var(--color-text-secondary)}.dialog button.workspace-delete-button{align-self:flex-start;border-color:var(--color-danger);background:var(--color-surface);color:var(--color-danger);font-weight:600}.dialog button.workspace-delete-button:hover,.dialog button.workspace-delete-confirm-button{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-surface)}.dialog button.workspace-delete-confirm-button:hover:not(:disabled){filter:brightness(.94)}.dialog button.workspace-delete-button:disabled{cursor:not-allowed;opacity:.5}.app-shell-loading{display:grid;place-items:center}.boot-loading{color:var(--color-text-muted);font-size:18px}.mcp-guide-dialog{max-width:560px}.mcp-guide-body{display:flex;flex-direction:column;gap:var(--space-2)}.mcp-guide-body>*{margin:0;flex-shrink:0}.mcp-guide-body h3{margin-top:var(--space-3);font-size:var(--text-md)}.mcp-guide-body h4{margin-top:var(--space-2);font-size:var(--text-sm)}.mcp-guide-code{margin:0;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);font-size:var(--text-sm);overflow-x:auto}.mcp-guide-copy{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);padding:2px 8px;font-size:var(--text-sm);cursor:pointer}.mcp-guide-copy:hover{border-color:var(--color-accent-border);color:var(--color-accent)}.mcp-guide-paths{margin:0;padding-left:var(--space-4);font-size:var(--text-sm)}.mcp-guide-note{color:var(--color-text-muted);font-size:var(--text-sm)}.plan-limit-dialog{width:min(420px,calc(100vw - 24px))}.plan-limit-message{margin:var(--space-3) 0 0;font-size:var(--text-md)}.plan-limit-hint{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.plan-limit-upgrade-link{display:inline-block;margin-top:var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--color-accent)}.plan-limit-upgrade-link:hover{color:var(--color-accent-strong)}.proposal-kind-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:var(--text-xs);font-weight:600;line-height:1.6;white-space:nowrap}.proposal-kind-word{background:var(--color-accent-subtle);color:var(--color-accent-strong);border-color:var(--color-accent-border)}.proposal-kind-domain{background:var(--color-fk-subtle);color:var(--color-fk);border-color:var(--color-fk-border)}.proposal-op-tag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-sm);background:var(--color-surface-subtle);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.proposal-op-add{color:var(--color-success)}.proposal-op-edit{color:var(--color-text-secondary)}.proposal-op-delete{color:var(--color-danger)}.propose-change-dialog{width:min(480px,calc(100vw - 24px))}.propose-change-heading{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.propose-change-heading h2{margin:0}.propose-change-context{display:flex;align-items:center;gap:var(--space-2)}.propose-change-fields{display:flex;flex-direction:column;gap:var(--space-3)}.propose-change-fields label{display:flex;flex-direction:column;gap:var(--space-1)}.propose-change-fields label>span{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.propose-change-fields input{padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-md);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.propose-change-fields input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.propose-change-delete{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-subtle)}.propose-change-delete-text{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.propose-change-target{margin:0;font-weight:600;color:var(--color-text)}.propose-change-reason{display:flex;flex-direction:column;gap:var(--space-1)}.propose-change-reason-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.propose-change-dialog textarea{min-height:72px;padding:8px 10px;border:1px solid var(--color-border-strong);font-family:inherit;font-size:var(--text-md);color:var(--color-text)}.propose-change-dialog textarea:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.proposal-queue-dialog{width:min(560px,calc(100vw - 24px))}.proposal-queue-empty{margin:0;padding:var(--space-5) 0;color:var(--color-text-muted);text-align:center}.proposal-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:56vh;overflow-y:auto}.proposal-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.proposal-row-approved{border-color:var(--color-success)}.proposal-row-rejected{opacity:.72}.proposal-row-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.proposal-target-name{font-weight:600;color:var(--color-text)}.proposal-status-badge{margin-left:auto;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.proposal-status-pending{background:var(--color-warning-subtle);color:var(--color-warning-text)}.proposal-status-approved{background:var(--color-surface-subtle);color:var(--color-success)}.proposal-status-rejected{background:var(--color-danger-subtle);color:var(--color-danger)}.proposal-row-meta{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;font-size:var(--text-sm)}.proposal-proposer{font-weight:500;color:var(--color-text-secondary)}.proposal-note{color:var(--color-text-muted);font-style:italic}.proposal-decision-note{margin:0;font-size:var(--text-sm);color:var(--color-danger)}.proposal-row-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.proposal-reject-group{display:flex;align-items:center;gap:var(--space-1);flex:1;min-width:180px}.proposal-reject-group input{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.proposal-reject-group input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.proposal-row-actions button{padding:6px 12px;font-size:var(--text-sm)}.compliance-dialog{width:min(560px,calc(100vw - 24px))}.compliance-scope-note{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.compliance-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:56vh;overflow-y:auto}.compliance-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.compliance-row-detached{border-color:var(--color-danger);background:var(--color-danger-subtle)}.compliance-row-stale{border-color:var(--color-warning);background:var(--color-warning-subtle)}.compliance-row-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.compliance-name{font-weight:600;color:var(--color-text)}.compliance-owner{font-size:var(--text-sm);color:var(--color-text-secondary)}.compliance-status-badge{margin-left:auto;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.compliance-status-detached{background:var(--color-danger-subtle);color:var(--color-danger)}.compliance-status-stale{background:var(--color-warning-subtle);color:var(--color-warning-text)}.compliance-status-synced{background:var(--color-surface-subtle);color:var(--color-success)}.compliance-updated-at{margin:0;font-size:var(--text-xs);color:var(--color-text-muted)}.compliance-hint{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182859;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:900}.search-palette{width:min(560px,92vw);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.search-input-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text-faint)}.search-input{flex:1;border:none;outline:none;background:none;font-size:var(--text-lg);color:var(--color-text)}.search-empty{padding:var(--space-4);margin:0;text-align:center;color:var(--color-text-faint);font-size:var(--text-sm)}.search-results{list-style:none;margin:0;padding:var(--space-1);max-height:50vh;overflow-y:auto}.search-result{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:none;text-align:left;cursor:pointer;color:var(--color-text-secondary)}.search-result svg{flex-shrink:0;color:var(--color-text-faint)}.search-result-active{background:var(--color-accent-subtle);color:var(--color-accent-strong)}.search-result-active svg{color:var(--color-accent)}.search-result-title{font-weight:500}.search-result-subtitle{color:var(--color-text-faint);font-size:var(--text-xs)}.search-result-kind{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-faint)}.attribute-row-highlighted{background:var(--color-accent-subtle);animation:attribute-flash 1.2s var(--ease-out)}@keyframes attribute-flash{0%{background:var(--color-accent-border)}to{background:var(--color-accent-subtle)}}.toast-stack{position:fixed;right:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000}.toast{display:flex;align-items:center;gap:var(--space-3);min-width:240px;max-width:420px;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-md);color:var(--color-text);animation:toast-enter var(--duration-normal) var(--ease-out)}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-info{border-left:3px solid var(--color-accent)}.toast-message{flex:1}.toast-action{border:none;background:none;color:var(--color-accent);font-size:var(--text-sm);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.toast-action:hover,.toast-action:focus-visible{background:var(--color-accent-subtle)}.toast-close{border:none;background:none;color:var(--color-text-faint);font-size:var(--text-lg);line-height:1;cursor:pointer;padding:0 var(--space-1)}.toast-close:hover,.toast-close:focus-visible{color:var(--color-text)}.dropdown{position:relative;display:inline-flex}.dropdown-trigger{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.dropdown-trigger:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.dropdown-trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.dropdown-trigger-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface);font-weight:600}.dropdown-trigger-primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.dropdown-caret{font-size:9px;opacity:.7}.dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:100}.dropdown-menu-portal{position:fixed;top:auto;z-index:980}.dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:var(--text-sm);text-align:left;cursor:pointer}.dropdown-item:hover,.dropdown-item:focus-visible{background:var(--color-surface-muted);color:var(--color-text);outline:none}.dropdown-item svg{flex-shrink:0;color:var(--color-text-faint)}.auth-login-button{display:inline-flex;align-items:center;gap:var(--space-1);height:32px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.auth-login-button:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.auth-login-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-menu{position:relative;display:inline-flex}.auth-avatar-button{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--color-border-strong);border-radius:50%;background:var(--color-surface);cursor:pointer;overflow:hidden;transition:box-shadow var(--duration-fast)}.auth-avatar-button:hover{box-shadow:var(--shadow-sm)}.auth-avatar-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block}.auth-avatar-fallback{display:grid;place-items:center;background:var(--color-accent);color:#fff;font-size:var(--text-sm);font-weight:600}.auth-menu-popover{position:fixed;z-index:980;min-width:220px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.auth-menu-identity{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1)}.auth-menu-identity-text{display:flex;flex-direction:column;min-width:0}.auth-menu-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-menu-email{font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;text-align:left}.auth-menu-item:hover{background:var(--color-surface-subtle);color:var(--color-text)}.auth-menu-divider{height:1px;margin:var(--space-1) var(--space-2);background:var(--color-border)}.auth-menu-item-danger{font-size:var(--text-xs);color:var(--color-text-muted)}.auth-menu-item-danger:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:960;display:flex;align-items:center;justify-content:center;background:#10182873;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-card{position:relative;width:min(380px,92vw);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-card .dialog-close{position:absolute;top:var(--space-3);right:var(--space-3);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer}.auth-card .dialog-close:hover{background:var(--color-surface-subtle);color:var(--color-text)}.auth-card-head{text-align:center;margin-bottom:var(--space-4)}.auth-card-head h2{margin:0 0 var(--space-1);font-size:var(--text-xl);color:var(--color-text)}.auth-card-sub{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.auth-providers{display:flex;flex-direction:column;gap:var(--space-2)}.auth-provider-button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),box-shadow var(--duration-fast)}.auth-provider-button:disabled{opacity:.6;cursor:default}.auth-provider-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-provider-google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}.auth-provider-google:hover:not(:disabled){background:#f7f8f8;box-shadow:var(--shadow-sm)}.auth-provider-github{background:#1f2328;color:#fff;border:1px solid #1f2328}.auth-provider-github:hover:not(:disabled){background:#2c333a}.auth-provider-github svg{color:#fff}:root[data-theme=dark] .auth-provider-github{background:#fff;color:#1f2328;border-color:#fff}:root[data-theme=dark] .auth-provider-github:hover:not(:disabled){background:#f0f3f6}:root[data-theme=dark] .auth-provider-github svg{color:#1f2328}.auth-error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-sm);text-align:center}.auth-email-form{display:flex;flex-direction:column;gap:var(--space-2)}.auth-email-input{width:100%;height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.auth-email-input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.auth-email-submit{width:100%;height:44px;border:none;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast, #ffffff);font-size:var(--text-sm);font-weight:600;cursor:pointer}.auth-email-submit:disabled{opacity:.6;cursor:default}.auth-email-submit:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-mode-toggle{margin-top:var(--space-1);border:none;background:none;color:var(--color-accent);font-size:var(--text-sm);cursor:pointer;text-align:center}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0;color:var(--color-text-muted);font-size:var(--text-xs)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-notice{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent-subtle, var(--color-surface-muted));color:var(--color-text);font-size:var(--text-sm);text-align:center}.auth-legal-notice{margin:var(--space-1) 0 0;padding:0;font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.auth-legal-notice a{color:var(--color-text-muted);text-decoration:underline;cursor:pointer;transition:color var(--duration-fast)}.auth-legal-notice a:hover{color:var(--color-text-secondary)}.auth-legal-links{margin:var(--space-2) 0 0;padding:0;font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.auth-legal-links a{color:var(--color-text-muted);text-decoration:underline;cursor:pointer;transition:color var(--duration-fast)}.auth-legal-links a:hover{color:var(--color-text-secondary)}.remote-newer-banner{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-warning-subtle, #fff8e6);color:var(--color-text);font-size:var(--text-sm)}.remote-newer-banner-label{flex:1;min-width:0}.invitation-banner{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-accent-subtle, #eef4ff);color:var(--color-text);font-size:var(--text-sm)}.invitation-banner-icon{flex:none;color:var(--color-accent)}.invitation-banner-label{flex:1;min-width:0}.invitation-banner-actions{flex:none;display:flex;gap:var(--space-2)}.invitation-banner-accept,.invitation-banner-later{height:30px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer}.invitation-banner-accept{border:none;background:var(--color-accent);color:var(--color-accent-contrast, #ffffff);font-weight:600}.invitation-banner-later{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary)}.invitation-banner-accept:focus-visible,.invitation-banner-later:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#10182859}.share-dialog{width:min(440px,92vw)}.share-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.share-field-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.share-date-input{height:36px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.share-actions{display:flex;gap:var(--space-2)}.share-button{flex:1;height:40px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.share-button:disabled{opacity:.6;cursor:default}.share-button-primary{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.share-button-primary:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.share-button-ghost{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-secondary)}.share-button-ghost:hover:not(:disabled){background:var(--color-surface-subtle)}.share-status{margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.share-active{margin-bottom:var(--space-4)}.share-active-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.share-active-label{font-size:var(--text-xs);font-weight:600;color:var(--color-success)}.share-expired-badge{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-xs);font-weight:600}.share-expiry-info{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted)}.share-active .share-url-row{margin-top:0}.share-url-row{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.share-url-row input{flex:1;min-width:0;height:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-xs)}.share-copy-button{height:36px;padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:500;cursor:pointer}.share-copy-button:hover{background:var(--color-surface-subtle)}.share-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.share-tab{border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);font-size:var(--text-md);font-weight:500;white-space:nowrap;cursor:pointer;transition:color var(--duration-fast)}.share-tab:hover{color:var(--color-text)}.share-tab[aria-selected=true],.share-tab-active{color:var(--color-accent);font-weight:600;border-bottom-color:var(--color-accent)}.share-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.share-invite-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.share-member-count{padding:1px var(--space-2);border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.share-invite-row{display:flex;gap:var(--space-2)}.share-invite-input{flex:1;min-width:0;height:36px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.share-invite-input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.share-invite-row .share-button{flex:0 0 auto;height:36px;padding:0 var(--space-4)}.share-invite-workspace{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer}.share-invite-hint{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-faint);line-height:1.5}.share-member-tab .share-status{margin:var(--space-4) 0 0}.share-member-section{margin-top:var(--space-4)}.share-member-section-title{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted)}.share-member-list{margin:0;padding:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.share-member-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.share-member-item+.share-member-item{border-top:1px solid var(--color-border)}.share-member-email{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--color-text)}.share-member-item .share-button{flex:0 0 auto;height:28px;padding:0 var(--space-2);font-size:var(--text-xs);font-weight:500}.shared-viewer{display:flex;flex-direction:column;height:100vh;background:var(--color-bg)}.shared-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:linear-gradient(90deg,var(--color-accent-strong),var(--color-accent));color:#fff;font-size:var(--text-sm);font-weight:600;box-shadow:var(--shadow-sm)}.shared-banner-label{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.shared-banner-controls{display:inline-flex;align-items:center;gap:var(--space-3)}.shared-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-sm);background:#ffffff1f;color:#fff;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.shared-theme-toggle:hover{background:#ffffff3d}.shared-theme-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}.shared-banner .segment-button{background:#ffffff1f;color:#ffffffd9;border-color:#ffffff59}.shared-banner .segment-button:hover{background:#fff3}.shared-banner .segment-button[aria-selected=true]{background:#ffffff38;color:#fff}.shared-body{flex:1;min-height:0;display:flex}.shared-sidebar{width:248px;min-width:208px;border-right:1px solid var(--color-border);background:var(--color-surface);overflow:hidden;display:flex;flex-direction:column}.shared-sidebar.is-collapsed{width:40px;min-width:40px}.shared-sidebar-head{display:flex;justify-content:flex-end;padding:var(--space-1);border-bottom:1px solid var(--color-border)}.shared-sidebar.is-collapsed .shared-sidebar-head{justify-content:center}.shared-sidebar-scroll{flex:1;min-height:0;overflow-y:auto}.shared-canvas{flex:1;min-width:0;min-height:0;display:flex}.shared-canvas>.erd-canvas{flex:1;min-width:0;min-height:0;display:flex;margin-top:0}.shared-canvas .erd-flow{flex:1;height:auto;min-height:0}.statusbar-dialect-readonly{font-size:var(--text-sm);color:var(--color-text-muted);padding:0 var(--space-2)}.shared-message{display:flex;align-items:center;justify-content:center;height:100vh;padding:var(--space-5);font-size:var(--text-lg);color:var(--color-text-muted);text-align:center}.presence-avatars{display:flex;gap:4px}.presence-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:var(--text-xs);font-weight:700;border:2px solid var(--color-surface);box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none}.presence-avatar-self{background:var(--color-success)}.erd-node-editing-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;background:var(--color-warning-subtle, #fff8e6);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);white-space:nowrap;pointer-events:none}.share-pin-status{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.share-pin-badge{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-accent-subtle, var(--color-surface-subtle));color:var(--color-accent);font-size:var(--text-xs);font-weight:600}.share-pin-following{font-size:var(--text-xs);color:var(--color-text-muted)}.share-pin-status .share-button{flex:0 0 auto;height:28px;padding:0 var(--space-3)}.merge-conflict-dialog{width:min(480px,92vw)}.merge-conflict-list{display:flex;flex-direction:column;gap:var(--space-3);max-height:52vh;overflow-y:auto;margin-bottom:var(--space-4)}.merge-conflict-row{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.merge-conflict-info{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.merge-conflict-kind{padding:1px var(--space-2);border-radius:999px;background:var(--color-accent-subtle);color:var(--color-accent);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.merge-conflict-label{min-width:0;font-size:var(--text-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merge-deleted-badge{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.merge-conflict-values{flex-basis:100%;display:flex;flex-direction:column;gap:var(--space-1)}.merge-conflict-mine,.merge-conflict-theirs{display:block;padding:var(--space-1) var(--space-2);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-surface);font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis}.merge-conflict-theirs{border-left-color:var(--color-warning)}.merge-conflict-choices{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.merge-choice-option{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast),color var(--duration-fast)}.merge-choice-option:hover{background:var(--color-surface-muted)}.merge-choice-option:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-subtle);color:var(--color-accent);font-weight:600}.merge-choice-option:focus-within{box-shadow:var(--shadow-focus)}.merge-choice-option input{margin:0;accent-color:var(--color-accent)}.save-version-dialog{width:min(440px,92vw)}.version-text-input{height:36px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.version-textarea{min-height:72px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-family:inherit;resize:vertical}.version-text-input:focus,.version-textarea:focus{outline:none;border-color:var(--color-accent)}.version-pin-fieldset{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.version-pin-fieldset legend{padding:0 var(--space-1)}.version-pin-status{margin:0 0 var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.version-next-preview{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--color-accent, var(--color-text))}.version-pin-option{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer}.version-history-dialog{width:min(560px,94vw)}.version-status{margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.version-list{list-style:none;margin:0 0 var(--space-4);padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.version-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.version-row:last-child{border-bottom:none}.version-select{display:flex;align-items:center;margin:0}.version-label{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;font-size:var(--text-sm);font-weight:500;color:var(--color-text);overflow:hidden}.version-note{font-size:var(--text-xs);font-weight:400;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-kind-badge{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.version-date{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.version-row .share-button{flex:0 0 auto;height:28px;padding:0 var(--space-3)}.version-delete-button:not(:disabled):hover{color:var(--color-danger, #d9534f);border-color:var(--color-danger, #d9534f)}.version-actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.version-actions .share-button{flex:0 0 auto;padding:0 var(--space-4)}.diff-view{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.diff-summary{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.diff-empty{margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.diff-entity{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm)}.diff-symbol{width:1ch;font-weight:700;font-family:var(--font-mono, monospace)}.diff-entity-name{color:var(--color-text)}.diff-added{background:var(--color-success-subtle, rgba(34, 197, 94, .12))}.diff-added .diff-symbol{color:var(--color-success)}.diff-removed{background:var(--color-danger-subtle, rgba(239, 68, 68, .12))}.diff-removed .diff-symbol{color:var(--color-danger)}.diff-modified .diff-symbol,.diff-renamed .diff-symbol{color:var(--color-accent)}.diff-attrs{flex-basis:100%;list-style:none;margin:var(--space-1) 0 0;padding-left:var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary)}.diff-physical-only,.diff-domains,.diff-relationships{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border)}.diff-physical-only h4,.diff-domains h4,.diff-relationships h4{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted)}.diff-physical-only ul,.diff-domains ul,.diff-relationships ul{list-style:none;margin:0;padding:0;font-size:var(--text-xs);color:var(--color-text-secondary)}.legal-page{max-width:720px;margin:0 auto;padding:var(--space-5) var(--space-4);color:var(--color-text)}.legal-page h1{margin:var(--space-4) 0 var(--space-2)}.legal-effective{color:var(--color-text-muted);font-size:var(--text-sm);margin:0 0 var(--space-5)}.legal-body section{margin-bottom:var(--space-5)}.legal-body h2{font-size:var(--text-lg);margin:0 0 var(--space-2)}.legal-body p{line-height:1.7;color:var(--color-text-secondary);margin:0}.comment-panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.comment-panel-title{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.comment-empty{margin:0;font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;padding:var(--space-3) 0}.comment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.comment-thread{display:flex;flex-direction:column;gap:var(--space-2)}.comment-replies{list-style:none;margin:0;padding-left:var(--space-4);border-left:2px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.comment-item{display:flex;flex-direction:column;gap:var(--space-1)}.comment-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-faint)}.comment-author{font-weight:600;color:var(--color-text-secondary)}.comment-time{font-variant-numeric:tabular-nums}.comment-delete{margin-left:auto;display:inline-flex;align-items:center;border:none;background:transparent;color:var(--color-text-faint);cursor:pointer;padding:2px;border-radius:var(--radius-sm)}.comment-reply-toggle+.comment-delete{margin-left:0}.comment-delete:hover{color:var(--color-danger);background:var(--color-surface-subtle)}.comment-reply-toggle{margin-left:auto;display:inline-flex;align-items:center;border:none;background:transparent;color:var(--color-text-faint);cursor:pointer;padding:2px;border-radius:var(--radius-sm)}.comment-reply-toggle:hover,.comment-reply-toggle[aria-expanded=true]{color:var(--color-accent, #2563eb);background:var(--color-surface-subtle)}.comment-body{margin:0;font-size:var(--text-sm);color:var(--color-text);white-space:pre-wrap;word-break:break-word}.comment-composer{display:flex;gap:var(--space-2)}.comment-composer-reply{padding-left:var(--space-4)}.comment-input{flex:1;min-width:0;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-surface, #fff);color:var(--color-text)}.comment-submit{flex-shrink:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text);font-size:var(--text-sm);cursor:pointer}.comment-submit:hover{background:var(--color-accent-subtle)}.comment-login-hint{margin:0;font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;padding:var(--space-2) 0}.comment-button-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--color-accent, #2563eb);color:#fff;font-size:10px;line-height:16px;text-align:center;font-variant-numeric:tabular-nums}.toolbar-icon-button:has(.comment-button-badge){position:relative}.comment-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0006;padding:var(--space-4)}.comment-dialog{width:min(640px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column}.comment-dialog-body{overflow-y:auto;flex:1;min-height:0}.dialog-header-actions{display:flex;align-items:center;gap:var(--space-1)}.account-footer{position:relative;display:flex;align-items:center;gap:6px;flex-shrink:0;margin-top:auto;padding-top:8px;border-top:1px solid var(--color-border)}.account-footer.is-collapsed{justify-content:center}.account-trigger,.account-login-button,.account-settings-button{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--color-text);cursor:pointer;padding:4px 6px;font-size:12px}.account-trigger{flex:1;min-width:0}.account-trigger:hover,.account-login-button:hover,.account-settings-button:hover{background:var(--color-surface-subtle)}.account-trigger-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.account-avatar{width:22px;height:22px;border-radius:50%;flex-shrink:0;object-fit:cover}.account-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:11px;font-weight:600}.account-menu-popover{position:fixed;z-index:60;min-width:240px;max-width:320px;max-height:min(360px,calc(100vh - 16px));overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 12px 32px #0000002e}.account-menu-identity,.account-menu-workspace{display:flex;align-items:center;gap:8px;padding:8px 8px 6px}.account-menu-identity-text{display:flex;flex-direction:column;min-width:0;flex:1}.account-menu-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-email,.account-menu-workspace-label{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-workspace-name{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-item,.account-menu-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;border-radius:6px;background:transparent;color:var(--color-text);font-size:13px;text-align:left;text-decoration:none;cursor:pointer}.account-menu-item:hover{background:var(--color-surface-subtle)}.account-menu-item-danger{color:var(--color-danger)}.account-menu-value,.account-menu-row-label{margin-left:auto;font-size:12px;color:var(--color-text-muted)}.account-menu-row-label{margin-left:0;margin-right:auto;color:var(--color-text);font-size:13px}.account-menu-divider{height:1px;margin:4px 0;background:var(--color-border)}.plan-badge{flex-shrink:0;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.plan-badge-free{background:var(--color-surface-subtle);color:var(--color-text-muted)}.plan-badge-pro{background:var(--color-accent);color:#fff}:root[data-theme=dark] .plan-badge-pro{color:var(--color-accent-subtle)}.plan-badge-team{background:var(--color-accent-subtle);color:var(--color-accent)}
