:root{--bg:#0f1218;--bg-panel:#171b24;--bg-panel-alt:#1d222d;--border:#2a3040;--text:#e6e9ef;--text-muted:#8a92a3;--accent:#4f8cff;--accent-hover:#6ba0ff;--danger:#ef5a5a;--success:#3fc37c;--warning:#e0a83b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4{margin:0}.btn{border:1px solid var(--border);background:var(--bg-panel-alt);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-ghost{background:0 0;border-color:#0000}.auth-page{justify-content:center;align-items:center;height:100%;display:flex}.auth-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;width:320px;padding:32px;display:flex}.auth-subtitle{color:var(--text-muted);margin-top:-8px}.auth-footer{color:var(--text-muted);text-align:center;font-size:13px}.auth-footer a{color:var(--accent)}label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}input,select,textarea{background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}.alert{border-radius:6px;padding:8px 12px;font-size:13px}.alert-error{color:var(--danger);background:#ef5a5a26}.alert-success{color:var(--success);background:#3fc37c26}.alert-warning{color:var(--warning);background:#e0a83b26}.app-shell{flex-direction:column;height:100%;display:flex}.top-bar{border-bottom:1px solid var(--border);background:var(--bg-panel);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.brand{letter-spacing:.02em;font-weight:700}.top-bar-right{align-items:center;gap:12px;display:flex}.user-email{color:var(--text-muted);font-size:13px}.app-body{flex:1;min-height:0;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow-y:auto}.schema-panel{border-right:1px solid var(--border);background:var(--bg-panel);flex-shrink:0;width:240px;padding:10px;overflow-y:auto}.schema-panel h4{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:12px}.panel-header{justify-content:space-between;align-items:center;padding:12px;display:flex}.panel-header h3{text-transform:uppercase;color:var(--text-muted);font-size:13px}.workspace{flex-direction:column;flex:1;min-width:0;display:flex}.tab-strip{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:6px 8px;display:flex;overflow-x:auto}.tab{background:var(--bg-panel-alt);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);white-space:nowrap;border-radius:6px 6px 0 0;padding:6px 10px}.tab.active{color:var(--text);border-color:var(--accent)}.tab-close{color:var(--text-muted);margin-left:8px}.tab-close:hover{color:var(--danger)}.editor-toolbar{border-bottom:1px solid var(--border);gap:8px;padding:8px;display:flex}.editor-pane{border-bottom:1px solid var(--border);flex:0 0 40%;min-height:120px;overflow:hidden}.query-editor,.cm-editor{height:100%}.bottom-pane{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.bottom-pane-tabs{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;display:flex}.bottom-pane-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px}.bottom-pane-tabs button.active{color:var(--text);border-bottom:2px solid var(--accent)}.export-buttons{gap:6px;margin-left:auto;display:flex}.results-status{color:var(--text-muted);border-bottom:1px solid var(--border);padding:6px 10px;font-size:12px}.results-status-error{color:var(--danger)}.results-status-truncated{color:var(--warning)}.results-table-wrapper{flex:1;overflow:auto}.results-table{border-collapse:collapse;width:100%;font-size:13px}.results-table th,.results-table td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:4px 8px}.results-table th{background:var(--bg-panel-alt);position:sticky;top:0}.empty-state,.muted{color:var(--text-muted);padding:12px;font-size:13px}.connection-list{flex-direction:column;gap:4px;margin:0;padding:0 8px;list-style:none;display:flex}.connection-list li{border-radius:6px;padding:6px 8px}.connection-list li.active{background:var(--bg-panel-alt)}.connection-list-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;padding:4px 0;display:flex}.connection-type-badge{color:var(--text-muted);text-transform:uppercase;font-size:11px}.connection-list-actions{gap:6px;margin-top:4px;display:flex}.connection-form{flex-direction:column;gap:10px;display:flex}.form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.tab-switch{gap:8px;margin-bottom:12px;display:flex}.tab-switch button{background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:6px;flex:1;padding:6px}.tab-switch button.active{color:var(--text);border-color:var(--accent)}.worksheet-sidebar{border-top:1px solid var(--border);flex:1;overflow-y:auto}.worksheet-list{flex-direction:column;gap:2px;margin:0;padding:0 8px;list-style:none;display:flex}.worksheet-list-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;justify-content:space-between;padding:6px 8px;display:flex}.worksheet-list-item:hover{background:var(--bg-panel-alt)}.worksheet-delete{color:var(--text-muted)}.worksheet-delete:hover{color:var(--danger)}.schema-list,.table-list,.column-list{margin:0;padding-left:12px;list-style:none}.schema-list{padding-left:0}.schema-node-header,.table-node-header{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:3px 4px;display:flex}.caret{color:var(--text-muted);transition:transform .1s;display:inline-block}.caret.open{transform:rotate(90deg)}.column-list li{color:var(--text-muted);cursor:pointer;padding:2px 4px 2px 20px}.column-list li:hover{color:var(--text)}.history-list{flex-direction:column;gap:6px;margin:0;padding:8px;list-style:none;display:flex;overflow-y:auto}.history-entry{border:1px solid var(--border);border-radius:6px;padding:6px 8px}.history-entry-query{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:monospace}.history-entry-meta{color:var(--text-muted);gap:10px;margin-top:4px;font-size:11px;display:flex}.history-status-badge{text-transform:uppercase}.history-status-success .history-status-badge{color:var(--success)}.history-status-error .history-status-badge,.history-status-timeout .history-status-badge{color:var(--danger)}.history-entry-error{color:var(--danger);margin-top:4px;font-size:12px}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:420px;max-height:80vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:20px}.modal-body{padding:16px}.modal-footer{border-top:1px solid var(--border);padding:12px 16px}.toast-host{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--bg-panel-alt);border:1px solid var(--border);cursor:pointer;border-radius:6px;max-width:320px;padding:10px 14px}.toast-success{border-color:var(--success)}.toast-error{border-color:var(--danger)}.spinner-row{color:var(--text-muted);align-items:center;gap:8px;padding:12px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
