:root{--color-paper: oklch(100% 0 0);--color-chrome: oklch(96.5% .003 60);--color-chrome-2: oklch(93% .004 60);--color-ink: oklch(23% .012 60);--color-ink-2: oklch(43% .012 60);--color-ink-3: oklch(58% .01 60);--color-ink-inverse: oklch(100% 0 0);--color-accent: oklch(51% .16 32);--color-accent-hover: oklch(46% .16 32);--color-accent-active: oklch(41% .15 32);--color-focus: oklch(51% .16 32);--color-select: oklch(93% .035 45);--color-select-border: oklch(82% .08 45);--color-success: oklch(50% .13 150);--color-error: oklch(50% .19 28);--color-error-bg: oklch(96% .02 28);--color-disabled: oklch(60% .01 60);--color-key: oklch(62% .13 85);--color-line: oklch(89% .004 60);--color-line-2: oklch(80% .006 60);--font-body: "Segoe UI", -apple-system, "Helvetica Neue", sans-serif;--font-mono: Consolas, "IBM Plex Mono", ui-monospace, monospace;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--radius-sm: .125rem;--radius-md: .25rem;--rule: 1px solid var(--color-line);--shadow-modal: 0 12px 40px oklch(23% .012 60 / .3);--dur-fast: .1s;--dur-base: .16s;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-chrome)}#root{display:flex;flex-direction:column;height:100dvh}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.icon{width:1rem;height:1rem;flex-shrink:0}.icon--key{width:.875rem;height:.875rem}.consolebar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-paper);border-bottom:var(--rule)}.consolebar__icon{display:flex;width:1.125rem;height:1.125rem;flex-shrink:0}.consolebar__title{font-size:var(--text-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menubar{display:flex;gap:var(--space-2xs);padding:0 var(--space-2xs);background:var(--color-paper);border-bottom:var(--rule)}.menubar__item{border:0;background:none;padding:var(--space-2xs) var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);cursor:default}.menubar__item:hover{background:var(--color-chrome)}.toolbar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-paper);border-bottom:var(--rule);flex-wrap:wrap}.toolbar__spacer{flex:1}.toolbar__search{width:14rem;max-width:100%;height:1.75rem;padding:0 var(--space-xs);border:1px solid var(--color-line-2);border-radius:var(--radius-sm);background:var(--color-paper)}.btn{display:inline-flex;align-items:center;gap:var(--space-2xs);height:1.75rem;padding:0 var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-line-2);background:var(--color-paper);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out)}.btn:hover:not(:disabled){background:var(--color-chrome)}.btn:active:not(:disabled){transform:translateY(1px)}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-ink-inverse);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--primary:active:not(:disabled){background:var(--color-accent-active)}.btn--danger{color:var(--color-error);border-color:var(--color-error)}.btn--danger:hover:not(:disabled){background:var(--color-error-bg)}.btn:disabled{opacity:.45;cursor:not-allowed}.split{display:flex;flex:1;min-height:0}.tree{width:16rem;flex-shrink:0;background:var(--color-paper);border-right:var(--rule);overflow-y:auto;padding-bottom:var(--space-xs)}.tree__conn{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs);border-bottom:var(--rule);font-weight:600;position:sticky;top:0;background:var(--color-paper)}.tree__group{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) var(--space-xs) var(--space-2xs);font-size:var(--text-sm);font-weight:600;color:var(--color-ink-2)}.tree__node{display:flex;align-items:center;gap:var(--space-2xs);width:100%;border:0;background:none;padding:var(--space-2xs) var(--space-xs);text-align:left;cursor:pointer;white-space:nowrap;font-size:var(--text-base)}.tree__node:hover{background:var(--color-chrome)}.tree__node.is-selected{background:var(--color-select);outline:1px solid var(--color-select-border);outline-offset:-1px}.tree__node--child{padding-left:var(--space-lg)}.tree__label{overflow:hidden;text-overflow:ellipsis}.tree__count{margin-left:auto;font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums}@media(max-width:860px){.tree{width:10rem}.tree__node--child{padding-left:var(--space-sm)}}.listpane{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--color-paper)}.objhead{display:flex;align-items:baseline;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule);flex-wrap:wrap}.objhead__name{font-size:var(--text-md);font-weight:600}.objhead__kind{font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;color:var(--color-accent);border:1px solid var(--color-select-border);background:var(--color-select);border-radius:var(--radius-md);padding:0 var(--space-xs)}.tabs{display:flex;gap:var(--space-2xs);padding:0 var(--space-xs);background:var(--color-chrome);border-bottom:1px solid var(--color-line-2)}.tabs__tab{border:1px solid transparent;border-bottom:0;background:none;padding:var(--space-2xs) var(--space-sm);font-size:var(--text-sm);cursor:pointer;color:var(--color-ink-2);position:relative;top:1px}.tabs__tab.is-active{background:var(--color-paper);border-color:var(--color-line-2);color:var(--color-ink);font-weight:600}.listpane__scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.objtable{width:100%;border-collapse:collapse;font-size:var(--text-base)}.objtable th{position:sticky;top:0;z-index:1;background:var(--color-chrome);text-align:left;font-weight:600;font-size:var(--text-sm);color:var(--color-ink-2);padding:var(--space-2xs) var(--space-xs);border-bottom:1px solid var(--color-line-2);border-right:var(--rule);white-space:nowrap}.objtable td{padding:var(--space-2xs) var(--space-xs);border-bottom:var(--rule);border-right:var(--rule);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:20rem}.objtable--grid td{font-family:var(--font-mono);font-size:var(--text-sm)}.objtable tbody tr:hover{background:var(--color-chrome)}.objtable tbody tr.is-selected{background:var(--color-select)}.objtable tbody tr:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.objtable__rownum{width:2.5rem;color:var(--color-ink-3);text-align:right;background:var(--color-chrome);font-variant-numeric:tabular-nums}.objtable__head,.objtable__name{display:flex;align-items:center;gap:var(--space-2xs)}.objtable__type{color:var(--color-ink-3);font-weight:400;font-size:var(--text-xs)}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.muted{color:var(--color-ink-3)}.pill{display:inline-block;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-md);padding:1px var(--space-xs);white-space:nowrap}.pill--api{color:var(--color-accent);background:var(--color-select)}.pill--pk{color:var(--color-key);background:#fef0d4}.pill--notnull{color:var(--color-ink-2);background:var(--color-chrome-2)}.listpane__empty{padding:var(--space-lg);color:var(--color-ink-3);text-align:center}.sourcepane{padding:var(--space-sm) var(--space-md)}.sourcepane__note{margin:0 0 var(--space-xs)}.sourcepane__sql{margin:0;background:var(--color-chrome);border:var(--rule);border-radius:var(--radius-sm);padding:var(--space-sm);font-size:var(--text-sm);overflow-x:auto;white-space:pre}.worksheet{display:flex;flex-direction:column;flex:1;min-height:0}.worksheet__editor{border-bottom:1px solid var(--color-line-2)}.worksheet__input{width:100%;min-height:7rem;resize:vertical;border:0;padding:var(--space-sm);background:var(--color-paper);line-height:1.5}.worksheet__input:focus-visible{outline-offset:-2px}.worksheet__bar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-chrome);border-top:var(--rule);flex-wrap:wrap}.worksheet__samples{height:1.75rem;max-width:20rem;border:1px solid var(--color-line-2);border-radius:var(--radius-sm);background:var(--color-paper)}.worksheet__result{flex:1;min-height:0;overflow:auto}.worksheet__message{padding:var(--space-xs) var(--space-sm);color:var(--color-ink-2);border-bottom:var(--rule)}.alert{margin-top:var(--space-xs);border:1px solid var(--color-error);background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-xs);font-family:var(--font-mono);font-size:var(--text-sm)}.alert--block{margin:var(--space-sm)}.statusbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-2xs) var(--space-sm);background:var(--color-chrome);border-top:var(--rule);font-size:var(--text-xs);color:var(--color-ink-2);flex-wrap:wrap}.statusbar__dot{display:inline-block;width:.5rem;height:.5rem;border-radius:999px;background:var(--color-success);margin-right:var(--space-2xs)}.statusbar__dot.is-offline{background:var(--color-error)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#211c1766;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-lg) var(--space-md);overflow-y:auto;z-index:10}.modal{background:var(--color-paper);border:1px solid var(--color-line-2);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);width:100%;max-width:30rem;animation:modal-in var(--dur-base) var(--ease-out)}.modal--wide{max-width:42rem}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal__head{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule);background:var(--color-chrome)}.modal__head h2{margin:0;font-size:var(--text-base);font-weight:600;flex:1;min-width:0;overflow-wrap:anywhere}.modal__close{border:0;background:none;cursor:pointer;color:var(--color-ink-3);font-size:var(--text-lg);line-height:1;padding:var(--space-2xs);border-radius:var(--radius-sm)}.modal__close:hover{color:var(--color-ink);background:var(--color-chrome-2)}.modal__body{padding:var(--space-sm) var(--space-md);max-height:65dvh;overflow-y:auto}.modal__foot{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-top:var(--rule)}.modal__foot-spacer{flex:1}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs) var(--space-md)}@media(max-width:560px){.formgrid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:2px;min-width:0}.field label{display:flex;align-items:baseline;gap:var(--space-2xs);font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);color:var(--color-ink-2)}.field label .req{color:var(--color-error)}.field__type{margin-left:auto;font-weight:400;color:var(--color-ink-3)}.field input,.field select{width:100%;height:1.75rem;border:1px solid var(--color-line-2);border-radius:var(--radius-sm);padding:0 var(--space-xs);background:var(--color-paper)}.field input:disabled,.field select:disabled{background:var(--color-chrome-2);color:var(--color-ink-2)}.field.has-error input,.field.has-error select{border-color:var(--color-error);background:var(--color-error-bg)}.field__error{font-size:var(--text-xs);color:var(--color-error)}.field__hint{font-size:var(--text-xs);color:var(--color-ink-3)}.preview-line{background:var(--color-chrome);border:var(--rule);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-xs);font-size:var(--text-sm);overflow-x:auto}.preview-line code{font-family:var(--font-mono);white-space:nowrap}.toast{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);background:var(--color-ink);color:var(--color-ink-inverse);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);font-size:var(--text-base);box-shadow:var(--shadow-modal);animation:modal-in var(--dur-base) var(--ease-out);z-index:20}.toast strong{font-family:var(--font-mono);font-weight:600;color:#ffae89;color:oklch(82% .11 45)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}
