:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1115;--bg-sunken:#0a0c0f;--surface-1:#13151a;--surface-2:#171a20;--surface-3:#1b1e25;--surface-4:#23262e;--surface-5:#2b2f3a;--surface-6:#363b47;--row-alt:#181b22;--line:#23262e;--line-2:#2e323c;--line-3:#3d4350;--text:#d4d7dd;--text-strong:#f2f4f7;--text-muted:#9aa3b5;--text-dim:#767e8c;--text-faint:#5a616e;--accent:#e5e7eb;--accent-hover:#f7f8fa;--accent-fg:#0f1115;--focus:#7d8595;--scrim:#06080cc7;--overlay:#15171df0;--diff-add-bg:#ffffff12;--diff-add-rule:#9aa3b5;--diff-mod-bg:#ffffff09;--diff-mod-rule:#6a7080;--diff-del-bg:#00000052;--diff-del-rule:#4a5058;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius:3px;--radius-sm:2px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f3f5;--bg-sunken:#e8eaee;--surface-1:#fff;--surface-2:#fafbfc;--surface-3:#fff;--surface-4:#eceef1;--surface-5:#e0e3e8;--surface-6:#d3d7de;--row-alt:#f4f5f7;--line:#e4e6ea;--line-2:#d5d9df;--line-3:#bcc2cb;--text:#2c3038;--text-strong:#0d0f13;--text-muted:#5c6473;--text-dim:#7b8290;--text-faint:#979da9;--accent:#1a1d23;--accent-hover:#0d0f13;--accent-fg:#f7f8fa;--focus:#7b8290;--scrim:#14171c61;--overlay:#fffffff5;--diff-add-bg:#0f11150f;--diff-add-rule:#4a505c;--diff-mod-bg:#0f111508;--diff-mod-rule:#8d94a1;--diff-del-bg:#0f11151c;--diff-del-rule:#bcc2cb}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,sans-serif;font-size:14px}.auth-loading,.login-page{place-items:center;min-height:100%;display:grid}.auth-loading{color:var(--text-dim)}.login-page{background:var(--bg);padding:24px}.login-card{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-1);width:min(100%,390px);padding:30px}.login-brand{font-family:var(--mono);color:var(--text-strong);letter-spacing:.02em;justify-content:center;align-items:center;gap:10px;font-weight:700;display:flex}.login-copy{text-align:center;margin:18px 0 24px}.login-copy h1{color:var(--text-strong);letter-spacing:-.02em;margin:0;font-size:28px}.login-card form{gap:9px;display:grid}.login-card label{font-family:var(--mono);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;margin-top:8px;font-size:11px;font-weight:650}.login-card input{border:1px solid var(--line-3);border-radius:var(--radius);width:100%;color:var(--text-strong);background:var(--bg-sunken);font:inherit;outline:none;padding:11px 12px}.login-card input:focus{border-color:var(--focus)}.login-error{color:var(--text-strong);margin:8px 0 0;font-size:12px;font-weight:650}.login-toolbar{position:fixed;top:16px;right:16px}.theme-toggle{width:28px;height:28px;color:var(--text-dim);flex:none;place-items:center;padding:0;display:grid}.theme-toggle:hover:not(:disabled){color:var(--text-strong)}.login-submit{width:100%;margin-top:14px;padding:10px 14px}.app{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface-1);align-items:center;gap:10px;min-height:58px;padding:9px 14px;display:flex}.brand-block{align-items:center;gap:9px;margin-right:4px;display:flex}.brand-block>span:last-child{flex-direction:column;line-height:1.05;display:flex}.brand-block strong{font-family:var(--mono);color:var(--text-strong);letter-spacing:.02em}.brand-block small{font-family:var(--mono);white-space:nowrap;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:9px}.brand-mark{border:1px solid var(--line-3);border-radius:var(--radius);width:30px;height:30px;color:var(--text);background:var(--surface-2);place-items:center;font:700 11px/1 ui-monospace,monospace;display:grid}.parse-status{font-family:var(--mono);color:var(--text-strong);font-size:12px;font-weight:650}.schema-status{font-family:var(--mono);color:var(--text-muted);font-size:12px}.save-status{font-family:var(--mono);color:var(--text-dim);font-size:11px}.save-status.saving{color:var(--text-muted)}.save-status.error{color:var(--text-strong);cursor:help;font-weight:650}.spacer{flex:1}.account-tools{align-items:center;gap:8px;max-width:220px;display:flex}.account-tools>span{font-family:var(--mono);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.toolbar-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-sunken);align-items:center;gap:5px;padding:3px;display:flex}.toolbar-group button{background:0 0;border-color:#0000}.toolbar-group button:hover:not(:disabled){background:var(--surface-5)}.toolbar-group .accent-button{color:var(--text-strong);background:var(--surface-5)}.schema-health{align-items:center;gap:8px;display:flex}.status-pill{font-family:var(--mono);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);padding:4px 7px;font-size:10px;font-weight:650}.status-pill.healthy{color:var(--text-dim);background:var(--surface-3)}.status-pill.warning{color:var(--text);background:var(--surface-5)}.status-pill.danger{color:var(--text-strong);background:var(--surface-6);font-weight:750}.project-select{background:var(--surface-3);color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);max-width:200px;padding:6px 8px;font-size:13px}.history-panel{border-bottom:1px solid var(--line-2);background:var(--surface-2);max-height:240px;padding:10px 14px;overflow-y:auto}.history-title{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:600}.history-empty{color:var(--text-dim);font-size:13px}.history-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:5px 0;display:flex}.history-meta{flex-direction:column;flex:1;min-width:0;display:flex}.history-message{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.history-date{font-family:var(--mono);color:var(--text-dim);font-size:11px}button{background:var(--surface-4);color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-size:13px}button:hover:not(:disabled){background:var(--surface-5)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:650}button.primary:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:default}input,select,textarea{background:var(--surface-2);color:var(--text-strong);border:1px solid var(--line-3);border-radius:var(--radius);font:inherit}.dialog-backdrop{z-index:20;background:var(--scrim);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line-3);border-radius:var(--radius);background:var(--surface-1);width:min(680px,100%);max-height:calc(100vh - 48px);padding:22px;overflow:auto}.compact-dialog{width:min(480px,100%)}.field-hint{color:var(--text-dim);margin:9px 0 0;font-size:12px;line-height:1.45}.dialog-header,.dialog-row,.dialog-actions{align-items:center;gap:14px;display:flex}.dialog-header{justify-content:space-between;margin-bottom:18px}.dialog h2{margin:3px 0 0;font-size:21px}.eyebrow{font-family:var(--mono);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:750}.icon-button{width:32px;height:32px;padding:0;font-size:22px}.dialog label,.file-field{font-family:var(--mono);color:var(--text-muted);flex-direction:column;flex:1;gap:7px;margin-top:14px;font-size:12px;font-weight:650;display:flex}.dialog input,.dialog select,.dialog textarea{width:100%;padding:9px 10px}.schema-source{resize:vertical;min-height:230px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5}.file-field button{align-self:flex-start;min-height:35px}.muted{color:var(--text-dim);font-weight:400}.form-error{border:1px solid var(--line-3);border-radius:var(--radius);color:var(--text-strong);background:var(--surface-3);border-left-width:3px;margin-top:12px;padding:9px 11px}.form-warning,.sql-notice{color:var(--text);margin-top:12px;font-size:12px;line-height:1.45}.form-warning{border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);background:var(--surface-3);padding:9px 11px}.sql-dialog{width:min(860px,100%)}.sql-controls label:first-child{flex:0 0 180px}.sql-output{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-sunken);min-height:300px;max-height:52vh;color:var(--text);white-space:pre;margin:12px 0 0;padding:14px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.dialog-actions{justify-content:flex-end;margin-top:18px}.panes{flex:1;min-height:0;display:flex}.pane-loading{border-right:1px solid var(--line);width:360px;color:var(--text-dim);background:var(--surface-1);place-items:center;font-size:12px;display:grid}.pane-loading.grow{flex:1;width:auto}.utility-bar{font-family:var(--mono);border-top:1px solid var(--line);min-height:28px;color:var(--text-faint);background:var(--bg-sunken);letter-spacing:.03em;justify-content:space-between;align-items:center;padding:3px 12px;font-size:10px;display:flex}.quiet-button{color:var(--text-dim);background:0 0;border-color:#0000;padding:2px 7px;font-size:10px}.workbench{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.schema-panes{flex:1;min-height:0;display:flex}.proposal-review{border-bottom:1px solid var(--line-2);background:var(--surface-2);align-items:stretch;gap:18px;padding:12px 14px;display:flex}.proposal-body{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.proposal-heading{align-items:baseline;gap:10px;min-width:0;display:flex}.proposal-heading strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.proposal-eyebrow{font-family:var(--mono);color:var(--text-muted);text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.proposal-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:6px 14px;display:grid}.proposal-list{gap:6px;min-width:0;font-size:12px;display:flex}.proposal-list span{color:var(--text-dim);flex:none}.proposal-list strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-weight:600;overflow:hidden}.proposal-warnings{color:var(--text);flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.proposal-warnings span{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-3);padding:3px 7px}.proposal-warnings.danger{color:var(--text-strong);font-weight:650}.proposal-warnings.danger span{border-color:var(--line-3);background:var(--surface-5)}.proposal-diff{max-width:100%;font-size:12px}.proposal-diff summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none}.diff-lines{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-sunken);max-height:180px;margin-top:8px;overflow:auto}.diff-line{grid-template-columns:42px 42px 18px minmax(0,1fr);align-items:center;min-height:21px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.diff-line.added{background:var(--diff-add-bg);box-shadow:inset 2px 0 0 var(--diff-add-rule)}.diff-line.removed{background:var(--diff-del-bg);box-shadow:inset 2px 0 0 var(--diff-del-rule)}.diff-line-no{color:var(--text-faint);text-align:right;-webkit-user-select:none;user-select:none;padding-right:8px}.diff-mark{color:var(--text-muted);-webkit-user-select:none;user-select:none}.diff-line.added .diff-mark{color:var(--text-strong)}.diff-line.removed .diff-mark{color:var(--text-dim)}.diff-line code{white-space:pre;min-width:0;color:var(--text);overflow:visible}.proposal-actions{flex:none;align-items:center;gap:8px;display:flex}.chat{border-right:1px solid var(--line);background:var(--surface-1);flex-direction:column;width:300px;display:flex}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.chat-empty{color:var(--text-dim);padding:8px;font-size:13px}.chat-msg{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;padding:8px 10px;font-size:13px;line-height:1.45}.chat-msg.user{background:var(--surface-5);align-self:flex-end;max-width:90%}.chat-msg.assistant{background:var(--surface-4);align-self:flex-start;max-width:95%}.chat-msg.event{color:var(--text-dim);padding:0 4px;font-size:12px}.chat-input{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.chat-input textarea{resize:none;background:var(--surface-3);color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);flex:1;padding:8px;font-family:inherit;font-size:13px}.chat-input textarea:disabled{opacity:.65;cursor:default}.chat-input textarea:focus{outline:1px solid var(--focus)}.editor{border-right:1px solid var(--line);width:360px;overflow:hidden}.editor .cm-editor{height:100%}.manual-change-bar{border-bottom:1px solid var(--line-2);background:var(--surface-3);align-items:end;gap:10px;padding:8px 12px;display:flex}.manual-change-bar label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:1;gap:4px;font-size:10px;font-weight:700;display:grid}.manual-change-bar input{border:1px solid var(--line-3);border-radius:var(--radius);background:var(--bg-sunken);width:100%;color:var(--text);padding:6px 9px;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.manual-change-status{font-family:var(--mono);min-width:86px;color:var(--text-dim);padding-bottom:7px;font-size:11px}.manual-change-status.saved{color:var(--text)}.manual-change-status.error{color:var(--text-strong);font-weight:650}.canvas{background:var(--bg);flex:1;position:relative}.canvas .react-flow{--xy-background-color:var(--bg);--xy-background-pattern-color:var(--line-2);--xy-edge-stroke:var(--text-faint);--xy-edge-stroke-selected:var(--text-strong);--xy-connectionline-stroke:var(--text-muted);--xy-handle-background-color:var(--text-faint);--xy-handle-border-color:var(--text-faint);--xy-selection-background-color:var(--diff-mod-bg);--xy-selection-border:1px dashed var(--text-dim);--xy-node-boxshadow-hover:none;--xy-node-boxshadow-selected:0 0 0 1px var(--text-muted);--xy-controls-box-shadow:none;--xy-controls-button-background-color:var(--surface-3);--xy-controls-button-background-color-hover:var(--surface-5);--xy-controls-button-color:var(--text);--xy-controls-button-color-hover:var(--text-strong);--xy-controls-button-border-color:var(--line-2);--xy-minimap-background-color:var(--surface-2);--xy-minimap-mask-background-color:var(--scrim);--xy-minimap-node-background-color:var(--text-faint);--xy-edge-label-background-color:var(--surface-1);--xy-edge-label-color:var(--text-muted)}.canvas .react-flow__controls,.canvas .react-flow__minimap{border:1px solid var(--line-2);border-radius:var(--radius-sm)}.table-node{font-family:var(--mono);background:var(--surface-3);border:1px solid var(--line-2);border-radius:var(--radius);min-width:220px;font-size:12px;overflow:hidden}.table-node.diff-added{border-color:var(--diff-add-rule);border-width:2px}.table-node.diff-changed{border-style:dashed;border-color:var(--diff-mod-rule)}.table-node.diff-removed{border-style:dotted;border-color:var(--diff-del-rule);opacity:.72}.table-node-header{background:var(--surface-5);color:var(--text-strong);border-bottom:1px solid var(--line-2);padding:8px 12px;font-weight:600}.table-node-row{justify-content:space-between;align-items:center;gap:12px;height:26px;padding:5px 12px;display:flex;position:relative}.table-node-row:nth-child(odd){background:var(--row-alt)}.table-node-row.diff-added{background:var(--diff-add-bg)}.table-node-row.diff-changed{background:var(--diff-mod-bg)}.table-node-row.diff-removed{background:var(--diff-del-bg);text-decoration:line-through}.col-name.pk{color:var(--text-strong);font-weight:700}.col-type{color:var(--text-dim)}.handle{background:var(--text-faint);cursor:crosshair;border:none;width:8px;height:8px;transition:background .12s,transform .12s}.handle:hover{background:var(--text-strong);transform:scale(1.45)}.relationship-hint,.relationship-error,.relationship-editor{border:1px solid var(--line-3);border-radius:var(--radius);background:var(--overlay);color:var(--text-dim);font-size:11px}.relationship-hint{padding:6px 9px}.relationship-error{border-color:var(--line-3);max-width:420px;color:var(--text-strong);padding:7px 10px}.relationship-editor{gap:8px;width:250px;padding:11px;display:grid}.relationship-editor>span,.relationship-editor label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.relationship-editor strong{overflow-wrap:anywhere;color:var(--text);font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.relationship-editor label{gap:4px;display:grid}.relationship-editor select{text-transform:none;width:100%}.relationship-editor small{color:var(--text-muted)}.danger-button{border-color:var(--line-3);color:var(--text-strong)}@media (width<=1180px){.topbar{flex-wrap:wrap}.schema-health{order:3;width:100%}.schema-health:after{content:"Diagram keeps the last valid schema while you fix syntax.";color:var(--text-faint);font-size:10px}}@media (width<=760px){.app{height:auto;min-height:100%}.topbar{align-items:stretch}.brand-block,.project-tools,.toolbar-group{flex:auto}.brand-block{min-width:150px}.toolbar-group{overflow-x:auto}.panes,.schema-panes{flex-direction:column;flex:none}.chat{border-right:0;border-bottom:1px solid var(--line);width:100%;height:34vh;min-height:220px}.editor{border-right:0;border-bottom:1px solid var(--line);width:100%;height:38vh;min-height:260px}.canvas{min-height:420px}.proposal-review,.dialog-row{flex-direction:column;align-items:stretch}.proposal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
