.topbar{display:flex;align-items:center;gap:6px;height:44px;padding:0 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden}.topbar-brand{display:flex;align-items:center;gap:6px;color:var(--accent);font-weight:600;font-size:13px;white-space:nowrap;padding-right:4px}.topbar-sep{width:1px;height:20px;background:var(--border);flex-shrink:0}.topbar-connections{display:flex;align-items:center;gap:4px;overflow-x:auto;flex:1;scrollbar-width:none;-webkit-overflow-scrolling:touch}.topbar-connections::-webkit-scrollbar{display:none}.topbar-spacer{flex:0 0 8px}.topbar-add-conn{font-size:11px;white-space:nowrap;padding:3px 8px}.topbar-explorer-btn{flex-shrink:0;color:var(--text-secondary);min-width:32px;min-height:32px}.topbar-explorer-btn:hover{color:var(--text-primary)}.theme-btn{flex-shrink:0;color:var(--text-secondary)}.theme-btn:hover{color:var(--text-primary)}[data-theme=light] .theme-btn{color:var(--warning)}[data-theme=light] .theme-btn:hover{color:#e0a000}.conn-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:all .12s;min-height:28px}.pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.pill-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}.pill-connected{background:var(--success-bg);border-color:#4ec9b04d;color:var(--success)}.pill-connected .pill-dot{background:var(--success)}.pill-connected:hover{background:#4ec9b040}.pill-disconnected{background:#6464641f;border-color:var(--border);color:var(--text-secondary)}.pill-disconnected .pill-dot{background:var(--text-muted)}.pill-disconnected:hover{background:var(--bg-hover);color:var(--text-primary)}.pill-connecting{background:#0078d41f;border-color:#0078d44d;color:var(--accent)}.pill-connecting .pill-dot{background:var(--accent)}.pill-error{background:var(--error-bg);border-color:#f447474d;color:var(--error)}.pill-error .pill-dot{background:var(--error)}.pill-error:hover{background:#f4474733}.pill-group{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;color:#fff;text-transform:uppercase;letter-spacing:.04em}.shortcuts-btn{flex-shrink:0;color:var(--text-secondary);font-size:14px}.shortcuts-btn:hover{color:var(--text-primary)}.active-icon{color:var(--accent)!important}@media (max-width: 1024px){.topbar-brand span,.topbar-add-conn span{display:none}.pill-name{max-width:80px}}@media (max-width: 767px){.topbar{height:48px;padding:0 8px;gap:4px}.topbar-brand,.topbar-sep{display:none}.conn-pill{padding:4px 6px;gap:0;border-radius:50%;width:30px;height:30px;justify-content:center}.pill-name,.pill-group{display:none}.pill-dot{width:8px;height:8px}.topbar-add-conn{padding:4px 6px;font-size:16px}.topbar-add-conn span{display:none}}.params-modal{max-width:480px;width:90vw}.params-body{padding:16px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.params-empty{font-size:12px;color:var(--text-muted);text-align:center;padding:12px 0}.params-row{margin:0}.params-label{display:flex;align-items:center;gap:8px;margin-bottom:4px}.params-name{font-size:13px;font-weight:500;color:var(--text-primary);font-family:Consolas,monospace}.params-type{font-size:11px;color:var(--accent);background:var(--bg-tertiary);padding:1px 6px;border-radius:4px}.params-output{background:var(--bg-tertiary)!important;color:var(--text-muted)!important;cursor:not-allowed}.import-modal{max-width:680px;width:92vw}.import-body{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto}.import-file-row{display:flex;align-items:center;gap:10px}.import-status{font-size:12px;color:var(--text-muted)}.import-mapping-title,.import-preview-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.import-mapping-hint{font-weight:400;color:var(--text-muted);text-transform:none;font-size:10px}.import-mapping{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.import-map-row{display:flex;align-items:center;gap:8px}.import-csv-col{font-size:12px;font-family:Consolas,monospace;min-width:140px;color:var(--text-primary)}.import-arrow{color:var(--text-muted)}.import-map-row select{flex:1}.import-preview-wrap{overflow-x:auto}.import-preview-table{border-collapse:collapse;font-size:11px;font-family:Consolas,monospace}.import-preview-table th,.import-preview-table td{border:1px solid var(--border);padding:3px 8px;white-space:nowrap}.import-preview-table th{background:var(--bg-tertiary);font-weight:600}.import-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center}.import-done-icon{font-size:40px;color:#4caf50}.import-done div{font-size:14px;color:var(--text-primary)}.explorer{font-size:12px;-webkit-user-select:none;user-select:none}.explorer-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:12px}.explorer-connection{border-bottom:1px solid var(--border)}.explorer-conn-header{display:flex;align-items:center;gap:4px;padding:7px 8px;cursor:pointer;font-size:12px;font-weight:600;background:var(--bg-tertiary);transition:background .1s;position:relative}.explorer-conn-header:hover{background:var(--bg-hover)}.explorer-conn-header.is-disconnected{opacity:.55;cursor:default}.conn-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.conn-status-dot.connected{background:var(--success)}.conn-status-dot.disconnected{background:var(--text-muted)}.conn-status-dot.error{background:var(--error)}.conn-status-dot.connecting{background:var(--accent);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.explorer-conn-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-refresh{opacity:0;transition:opacity .1s;flex-shrink:0}.explorer-conn-header:hover .explorer-refresh{opacity:1}.explorer-indent{padding-left:var(--tree-indent)}.explorer-item{display:flex;align-items:center;gap:4px;padding:3px 8px;cursor:pointer;transition:background .08s;white-space:nowrap;overflow:hidden;min-height:22px}.explorer-item:hover{background:var(--bg-hover)}.explorer-item.leaf{cursor:default}.explorer-item.leaf:hover{background:transparent}.explorer-arrow{font-size:9px;color:var(--text-muted);flex-shrink:0;width:10px;text-align:center}.explorer-folder{color:var(--text-secondary);font-weight:500}.explorer-count{font-size:10px;color:var(--text-muted);margin-left:2px}.explorer-db-name{color:var(--text-primary);font-weight:500}.explorer-db-name.is-active-db{color:var(--accent)}.explorer-db-name.is-system-db{color:var(--text-muted)}.explorer-table{color:var(--text-primary)}.explorer-table:hover{background:var(--bg-hover)}.explorer-columns{padding-left:8px}.explorer-column{padding:2px 8px;gap:5px;align-items:center}.col-pk{font-size:10px;flex-shrink:0;width:14px;text-align:center}.col-name{flex:1;font-size:11.5px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.col-type{font-size:10px;color:#9cdcfe;font-family:Consolas,monospace;flex-shrink:0}.col-null{font-size:9px;font-weight:700;padding:1px 3px;border-radius:2px;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.col-null.nullable{color:var(--warning);opacity:.8}.col-null.notnull{color:var(--text-muted);opacity:.6}.fn-icon{font-style:italic;font-weight:700;color:#dcdcaa}.explorer-search{display:flex;align-items:center;gap:5px;padding:5px 8px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.explorer-search-icon{color:var(--text-muted);flex-shrink:0}.explorer-search-input{flex:1;background:transparent;border:none;outline:none;font-size:12px;color:var(--text-primary);padding:0}.explorer-search-input::placeholder{color:var(--text-muted)}.explorer-search-clear{background:none;border:none;cursor:pointer;font-size:10px;color:var(--text-muted);padding:0 2px}.explorer-search-clear:hover{color:var(--text-primary)}.conn-group-badge{display:inline-block;font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;color:#fff;margin-right:4px;text-transform:uppercase;letter-spacing:.05em}.left-panel{display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border);overflow:hidden;flex-shrink:0}.left-panel-header{padding:6px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.left-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}@media (max-width: 1024px) and (min-width: 768px){.left-panel{min-width:200px!important;max-width:240px!important;width:220px!important}}@media (max-width: 767px){.left-panel{position:fixed;top:0;left:0;bottom:0;width:85vw!important;min-width:unset!important;max-width:320px!important;z-index:200;border-right:1px solid var(--border);box-shadow:4px 0 24px #00000080;transform:translate(0);animation:drawerSlideIn .2s ease}}@keyframes drawerSlideIn{0%{transform:translate(-100%);opacity:.5}to{transform:translate(0);opacity:1}}.results-grid-container{display:flex;flex-direction:column;flex:1;min-height:0}.rg-filter-bar{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.rg-filter-icon{font-size:11px;opacity:.6;flex-shrink:0}.rg-filter-input{flex:1;background:transparent;border:none;outline:none;font-size:12px;color:var(--text-primary);padding:0;min-width:0}.rg-filter-input::placeholder{color:var(--text-muted)}.rg-filter-count{font-size:11px;color:var(--accent);white-space:nowrap;font-weight:500}.rg-filter-count.no-match{color:var(--error, #e05252)}.rg-filter-clear{background:none;border:none;cursor:pointer;font-size:10px;color:var(--text-muted);padding:0 2px;flex-shrink:0}.rg-filter-clear:hover{color:var(--text-primary)}.results-grid-wrap{flex:1;min-height:0;overflow:auto}.results-grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px;font-family:Consolas,Courier New,monospace}.results-grid thead{position:sticky;top:0;z-index:2}.results-grid th{background:var(--bg-tertiary);border:1px solid var(--border);padding:4px 10px;text-align:left;font-weight:600;font-size:11px;color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none}.results-grid th.sortable{cursor:pointer}.results-grid th.sortable:hover{background:var(--bg-hover);color:var(--text-primary)}.rg-header-cell{display:flex;align-items:center;gap:4px}.sort-icon{font-size:9px;color:var(--accent);flex-shrink:0}.rg-row-num{background:var(--bg-tertiary)!important;color:var(--text-muted)!important;font-size:10px!important;text-align:right!important;padding:4px 6px!important;min-width:36px;border-right:2px solid var(--border)!important;position:sticky;left:0;z-index:1}.results-grid td{border:1px solid var(--border);padding:3px 10px;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.results-grid tr:nth-child(2n) td{background:#ffffff05}.results-grid tr:hover td{background:var(--bg-hover)!important}.results-grid tr.row-selected td{background:var(--bg-selected)!important}.cell-null{color:var(--text-muted);font-style:italic;font-size:11px}.rg-no-rows{color:var(--text-muted);font-style:italic;font-size:11px;padding:10px 12px!important}.results-grid th.col-selected-header{background:var(--col-selected-header)!important;color:var(--text-primary)}.results-grid td.col-selected{background:var(--col-selected-bg)!important}.results-grid tr:hover td.col-selected{background:var(--col-selected-hover)!important}.results-grid tr.row-selected td.col-selected{background:#1a6898!important}.rg-header-cell{display:flex;align-items:center;gap:2px}.rg-sort-area{flex:1;display:flex;align-items:center;gap:3px;cursor:pointer;overflow:hidden}.rg-sort-area:hover{color:var(--text-primary)}.col-select-btn{flex-shrink:0;cursor:pointer;font-size:12px;opacity:.4;padding:0 2px;transition:opacity .1s;-webkit-user-select:none;user-select:none}.col-select-btn:hover{opacity:1}.col-select-btn.active{opacity:1;color:var(--accent)}.results-ctx{min-width:220px}.ctx-section-label{padding:4px 12px 2px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.diff-view{display:flex;flex-direction:column;height:100%;min-height:0}.diff-summary{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0}.diff-badge{font-size:11px;padding:2px 8px;border-radius:10px}.diff-badge.same{background:#4caf5026;color:#4caf50}.diff-badge.changed{background:#ff980026;color:#ff9800}.diff-badge.left-only{background:#2196f326;color:#2196f3}.diff-badge.right-only{background:#9c27b026;color:#9c27b0}.diff-panels{display:flex;flex:1;min-height:0}.diff-panel{flex:1;min-width:0;display:flex;flex-direction:column}.diff-divider{width:3px;background:var(--border);flex-shrink:0}.diff-panel-header{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.diff-panel-label{font-size:12px;font-weight:600;color:var(--text-primary)}.diff-panel-meta{font-size:11px;color:var(--text-muted)}.diff-panel-grid-wrap{flex:1;overflow:auto;min-height:0}.diff-grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:11px;font-family:Consolas,monospace}.diff-grid th{background:var(--bg-tertiary);border:1px solid var(--border);padding:3px 8px;font-size:10px;font-weight:600;color:var(--text-secondary);white-space:nowrap;position:sticky;top:0;z-index:2}.diff-grid td{border:1px solid var(--border);padding:2px 8px;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.diff-row-num{color:var(--text-muted);font-size:10px;text-align:right;background:var(--bg-tertiary)!important;min-width:32px;border-right:2px solid var(--border)!important}.diff-row-changed td{background:#ff98000f!important}.diff-row-missing td{background:#2196f30f!important;opacity:.5}.diff-row-placeholder td{background:#00000008!important}.diff-cell-changed{background:#ff980038!important;font-weight:600}.ep-root{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;font-size:12px}.ep-stmt-bar{display:flex;gap:4px;padding:6px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.ep-stmt-bar::-webkit-scrollbar{display:none}.ep-stmt-tab{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:3px;font-size:11px;font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .12s}.ep-stmt-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.ep-stmt-tab.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.ep-stmt-cost{font-size:10px;opacity:.7}.ep-stmt-text{padding:5px 12px;font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.ep-stmt-label{color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.ep-legend{display:flex;align-items:center;gap:10px;padding:4px 12px;font-size:10px;color:var(--text-muted);background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.ep-legend-item{display:flex;align-items:center;gap:3px}.ep-legend-item.high{color:#ef5350}.ep-legend-item.med{color:#ffa726}.ep-legend-item.low{color:var(--text-muted)}.ep-legend-sep{flex:1}.ep-legend-total{color:var(--text-secondary);font-size:11px}.ep-missing-indexes{flex-shrink:0;max-height:180px;overflow:auto;padding:8px 12px;background:#ffa7260f;border-bottom:1px solid rgba(255,167,38,.25)}.ep-mi-title{font-size:11px;font-weight:700;color:#ffa726;margin-bottom:6px}.ep-mi-item{border:1px solid rgba(255,167,38,.25);background:var(--bg-secondary);border-radius:5px;padding:8px;margin-bottom:6px}.ep-mi-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ep-mi-impact{font-weight:700;color:#ffa726}.ep-mi-table{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-mi-cols{font-size:10px;color:var(--text-muted);margin-top:2px}.ep-mi-sql{margin:6px 0 0;padding:6px;border-radius:4px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:10px;overflow:auto}.ep-tree-scroll{flex:1;overflow:auto;padding:16px;-webkit-overflow-scrolling:touch}.ep-node-wrap{display:flex;flex-direction:column}.ep-children{padding-left:32px;border-left:2px solid var(--border);margin-left:16px;margin-top:4px;display:flex;flex-direction:column;gap:6px}.ep-node{background:var(--bg-secondary);border:1px solid var(--border);border-radius:5px;padding:8px 10px;min-width:180px;max-width:320px;cursor:default;transition:border-color .12s,background .12s;position:relative;overflow:hidden;margin-bottom:0}.ep-node:hover{border-color:var(--accent)}.ep-node.ep-expensive{border-color:#ef535080;background:#ef53500f}.ep-node.ep-medium{border-color:#ffa72666;background:#ffa7260f}.ep-node-top{display:flex;align-items:center;gap:6px;margin-bottom:2px}.ep-icon{font-size:13px;flex-shrink:0}.ep-op-name{flex:1;font-weight:600;font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-cost-pct{font-size:12px;font-weight:700;color:var(--text-muted);white-space:nowrap}.ep-cost-pct.high{color:#ef5350}.ep-cost-pct.med{color:#ffa726}.ep-toggle{font-size:9px;padding:1px 4px;color:var(--text-muted);background:transparent;border:none;flex-shrink:0}.ep-toggle:hover{color:var(--text-primary)}.ep-logical{font-size:10px;color:var(--text-secondary);margin-bottom:3px}.ep-meta-row{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text-muted)}.ep-rows{white-space:nowrap}.ep-actual-rows{color:var(--accent)}.ep-object{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-size:10px}.ep-runtime{margin-top:3px;font-size:10px;color:var(--text-muted)}.ep-cost-bar-track{margin-top:5px;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.ep-cost-bar{height:100%;border-radius:2px;background:var(--accent);min-width:2px;transition:width .3s}.ep-cost-bar.high{background:#ef5350}.ep-cost-bar.med{background:#ffa726}.ep-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);text-align:center;font-size:13px;padding:24px}.ep-empty small{font-size:11px;opacity:.7}@media (max-width: 767px){.ep-node{max-width:260px}.ep-children{padding-left:20px;margin-left:10px}.ep-tree-scroll{padding:10px}}.results-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg-primary)}.results-loading,.results-empty{display:flex;align-items:center;justify-content:center;gap:10px;height:100%;color:var(--text-muted);font-size:12px}.results-error{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--error-bg);border-top:2px solid var(--error);color:var(--error);font-size:12px;font-family:Consolas,monospace;overflow-y:auto;flex:1}.results-error-icon{font-size:14px;flex-shrink:0;margin-top:1px}.results-error-msg{flex:1;white-space:pre-wrap;word-break:break-word}.results-tabs-bar{display:flex;align-items:center;background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none;height:30px}.results-tabs-bar::-webkit-scrollbar{display:none}.results-tab{display:inline-flex;align-items:center;gap:5px;padding:0 12px;height:100%;font-size:11px;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .1s}.results-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.results-tab.active{background:var(--bg-primary);color:var(--text-primary);border-top:2px solid var(--accent)}.results-tab.tab-error{color:var(--error)}.results-tab-badge{font-size:10px;padding:1px 5px;border-radius:8px;background:var(--accent-light);color:var(--accent)}.results-tab-badge.error{background:var(--error-bg);color:var(--error)}.results-tab-diff{font-weight:600;color:var(--accent)!important}.results-tab-plan,.results-tab-messages{font-weight:500}.results-tab-badge-msg{background:#ff98002e!important;color:#ff9800!important}.plan-mode-bar{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.plan-mode-btn{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;padding:3px 9px;font-size:11px;cursor:pointer}.plan-mode-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.plan-mode-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.plan-mode-note{color:var(--text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.results-statusbar{display:flex;align-items:center;gap:12px;padding:4px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;font-size:11px;color:var(--text-secondary)}.results-stat{display:flex;align-items:center;gap:4px}.results-stat strong{color:var(--text-primary)}.results-elapsed{margin-left:auto;color:var(--text-muted)}.results-download{font-size:11px;padding:2px 7px}.results-no-rows{padding:14px 16px;font-size:12px;color:var(--success);background:var(--success-bg);border-top:1px solid rgba(78,201,176,.2)}kbd{display:inline-block;padding:1px 5px;border-radius:3px;background:var(--bg-tertiary);border:1px solid var(--border);font-size:11px;font-family:inherit}.results-tab-messages{color:var(--text-secondary)}.results-tab-badge-msg{background:#ff980026;color:#ff9800}.messages-panel{flex:1;overflow-y:auto;min-height:0;font-family:Consolas,Courier New,monospace;font-size:12px;padding:6px 0;background:var(--bg-primary)}.messages-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:12px;font-family:inherit;text-align:center;padding:0 24px}.messages-empty code{font-family:Consolas,monospace;background:var(--bg-tertiary);padding:1px 5px;border-radius:3px}.msg-line{display:flex;align-items:baseline;gap:8px;padding:2px 12px;line-height:1.5;border-bottom:1px solid transparent}.msg-line:hover{background:var(--bg-hover)}.msg-line.msg-error{color:var(--error);background:var(--error-bg)}.msg-meta{display:flex;gap:6px;align-items:baseline;flex-shrink:0;font-size:10px;color:var(--text-muted)}.msg-conn{color:var(--accent);font-weight:600}.msg-proc{color:#dcdcaa}.msg-line-num{opacity:.7}.msg-text{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.crud-modal{max-width:90vw;width:90vw;max-height:90vh;display:flex;flex-direction:column}.crud-total{font-size:12px;color:var(--text-muted);font-weight:400}.crud-toolbar{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--border);margin-bottom:8px;flex-shrink:0}.crud-page-info{font-size:11px;color:var(--text-muted)}.crud-loading{display:flex;align-items:center;justify-content:center;gap:8px;height:120px;color:var(--text-muted);font-size:12px}.crud-grid-wrap{flex:1;overflow:auto;border:1px solid var(--border);border-radius:3px}.crud-grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px;font-family:Consolas,monospace}.crud-grid th{background:var(--bg-tertiary);border:1px solid var(--border);padding:5px 8px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap;position:sticky;top:0;z-index:1}.crud-grid th.is-pk{color:var(--warning)}.crud-action-col{width:60px;text-align:center}.crud-grid td{border:1px solid var(--border);padding:3px 8px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.crud-grid tr:hover td{background:var(--bg-hover)}.crud-grid tr.row-selected td{background:var(--bg-selected)!important}.row-editor{border-top:1px solid var(--border);padding:12px 0 0;flex-shrink:0}.row-editor-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px}.row-editor-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-height:220px;overflow-y:auto;padding-right:4px}.row-editor-field label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:3px}.row-editor-field .pk-label{color:var(--warning)}.row-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.query-editor{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.qe-toolbar{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.qe-toolbar::-webkit-scrollbar{display:none}.qe-execute{padding:4px 10px}.qe-sep{width:1px;height:18px;background:var(--border);flex-shrink:0;margin:0 2px}.qe-label{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.qe-elapsed{font-size:11px;color:var(--text-muted);white-space:nowrap;padding:0 4px}.qe-conn-wrap{display:flex;align-items:center;gap:4px}.qe-multi{display:flex;gap:4px;align-items:center;padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:3px;max-width:260px;overflow-x:auto;scrollbar-width:none}.qe-multi::-webkit-scrollbar{display:none}.qe-multi-item{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.qe-multi-item input{width:auto}.qe-multi-item:hover{color:var(--text-primary)}.qe-split{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.qe-editor-area{flex-shrink:0;overflow:hidden;min-height:0}.qe-results-area{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.qe-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.wrap-active{color:var(--accent)!important;background:var(--accent-light)!important}.qe-txn{font-size:11px;padding:3px 8px;color:var(--text-secondary)}.qe-txn-badge{font-size:11px;padding:3px 8px;border-radius:3px;background:#ff98002e;color:#ff9800;font-weight:600;white-space:nowrap;animation:txn-pulse 2s infinite}.qe-txn-commit{font-size:11px;padding:3px 8px;color:#4caf50!important}.qe-txn-rollback{font-size:11px;padding:3px 8px;color:#e05252!important}.in-transaction{border-top:2px solid #ff9800}@keyframes txn-pulse{0%,to{opacity:1}50%{opacity:.6}}.qe-mobile-tabs{display:none}@media (max-width: 1024px) and (min-width: 768px){.qe-label-desktop,.qe-execute-label{display:none}}@media (max-width: 767px){.qe-mobile-tabs{display:flex;flex-shrink:0;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.qe-mobile-tab{flex:1;padding:8px;font-size:12px;font-weight:500;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s}.qe-mobile-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-light)}[data-mobile-hidden=true]{display:none!important}.qe-secondary-actions,.qe-label-desktop,.qe-execute-label{display:none}.qe-editor-area,.qe-results-area{flex:1;min-height:0}.qe-split{flex-direction:column}.qe-desktop-resizer{display:none}.qe-toolbar{flex-wrap:wrap;height:auto;min-height:40px;padding:4px 6px;gap:4px}}.workspace{display:flex;flex-direction:column;flex:1;overflow:hidden;background:var(--bg-primary)}.tab-bar{display:flex;align-items:stretch;background:var(--bg-tertiary);border-bottom:1px solid var(--border);height:35px;flex-shrink:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:5px;padding:0 10px;min-width:100px;max-width:180px;cursor:pointer;font-size:12px;border-right:1px solid var(--border);background:var(--tab-inactive-bg);color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:background .1s;flex-shrink:0}.tab:hover{background:var(--bg-hover);color:var(--text-primary)}.tab-active{background:var(--tab-active-bg)!important;color:var(--text-primary)!important;border-top:2px solid var(--accent)}.tab-icon{font-size:11px;flex-shrink:0}.tab-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close{font-size:10px;opacity:0;padding:2px 3px;flex-shrink:0;transition:opacity .1s}.tab:hover .tab-close,.tab-active .tab-close{opacity:1}.tab-close:hover{background:var(--error-bg);color:var(--error)!important}.tab-new{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;transition:color .1s}.tab-new:hover{color:var(--text-primary);background:var(--bg-hover)}.workspace-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.workspace-tab-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.workspace-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.workspace-empty-icon{font-size:48px;opacity:.4}.workspace-empty p{font-size:14px}@media (max-width: 1024px) and (min-width: 768px){.tab{min-width:80px;max-width:130px;font-size:11px}}@media (max-width: 767px){.tab-bar{height:40px;-webkit-overflow-scrolling:touch}.tab{min-width:90px;max-width:140px;padding:0 8px;font-size:11px}.tab-close{opacity:1}.tab-new{width:40px;font-size:20px}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.conn-color-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding-top:4px}.conn-color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0}.conn-color-swatch.selected{border-color:var(--text-primary);transform:scale(1.2)}.conn-color-swatch:hover{transform:scale(1.15)}.conn-options{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}.conn-error{background:var(--error-bg);border:1px solid rgba(244,71,71,.3);border-radius:3px;padding:8px 12px;font-size:12px;color:var(--error);margin-bottom:8px;white-space:pre-wrap;word-break:break-word}.nq-conn-list{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:3px;max-height:160px;overflow-y:auto}.nq-all-check{padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:2px}.history-panel{max-width:720px;width:90vw;max-height:85vh;display:flex;flex-direction:column}.history-search{margin-bottom:10px;flex-shrink:0}.history-empty{display:flex;align-items:center;justify-content:center;height:100px;color:var(--text-muted);font-size:12px}.history-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.history-item{border:1px solid var(--border);border-radius:3px;overflow:hidden}.history-item-error{border-color:#f447474d}.history-item-meta{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg-tertiary);font-size:11px;color:var(--text-muted);flex-wrap:wrap}.history-status{font-weight:700;font-size:12px}.history-status.ok{color:var(--success)}.history-status.err{color:var(--error)}.history-conn{color:var(--text-secondary);font-weight:500}.history-db{background:var(--accent-light);color:var(--accent);padding:1px 5px;border-radius:8px}.history-time{margin-left:auto}.history-elapsed{color:var(--text-muted)}.history-rows{background:var(--success-bg);color:var(--success);padding:1px 5px;border-radius:8px}.history-reuse{opacity:0;transition:opacity .1s}.history-item:hover .history-reuse{opacity:1}.history-sql{padding:6px 8px;font-size:11px;font-family:Consolas,monospace;color:var(--text-secondary);background:var(--bg-primary);white-space:pre-wrap;word-break:break-all;max-height:80px;overflow:hidden;cursor:pointer}.history-error-msg{padding:4px 8px;font-size:11px;color:var(--error);background:var(--error-bg);font-family:Consolas,monospace}.snippets-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border-left:1px solid var(--border);min-width:240px}.snippets-header{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.snippets-title{flex:1;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.snippets-search{padding:6px 8px}.snippets-search input{width:100%;box-sizing:border-box}.snippet-editor{display:flex;flex-direction:column;gap:6px;padding:8px;border-bottom:1px solid var(--border);background:var(--bg-primary)}.snippet-edit-name,.snippet-edit-tags{font-size:12px}.snippet-edit-sql{font-family:Consolas,monospace;font-size:12px;resize:vertical;min-height:80px}.snippet-edit-actions{display:flex;justify-content:flex-end;gap:6px}.snippets-list{flex:1;overflow-y:auto}.snippets-empty{padding:16px 12px;font-size:12px;color:var(--text-muted);text-align:center}.snippet-item{display:flex;align-items:flex-start;gap:4px;padding:7px 8px;border-bottom:1px solid var(--border);cursor:pointer}.snippet-item:hover{background:var(--bg-hover)}.snippet-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.snippet-name{font-size:12px;font-weight:500;color:var(--text-primary)}.snippet-tags{display:flex;flex-wrap:wrap;gap:3px}.snippet-tag{font-size:10px;padding:1px 5px;background:var(--accent);color:#fff;border-radius:8px}.snippet-preview{font-size:10px;color:var(--text-muted);font-family:Consolas,monospace}.snippet-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .1s}.snippet-item:hover .snippet-item-actions{opacity:1}.btn-icon.danger{color:var(--danger, #e05252)}.shortcuts-modal{max-width:600px;width:90vw}.shortcuts-body{padding:16px;max-height:70vh;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.shortcuts-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin-bottom:8px}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr{border-bottom:1px solid var(--border)}.shortcuts-table tr:last-child{border-bottom:none}.shortcuts-table td{padding:6px 4px;vertical-align:middle}.shortcut-keys{width:200px}.shortcut-keys kbd{display:inline-block;padding:2px 7px;font-size:11px;font-family:Consolas,monospace;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary)}.shortcut-or{color:var(--text-muted);font-size:10px;margin:0 3px}.shortcut-desc{font-size:12px;color:var(--text-secondary)}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;overflow:hidden;background:var(--bg-primary)}.app-body{display:flex;flex:1;overflow:hidden;position:relative}.drawer-backdrop{display:none}@media (max-width: 767px){.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:199;animation:fadeIn .15s ease}}:root{--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d30;--bg-hover: #2a2d2e;--bg-selected: #094771;--border: #3c3c3c;--text-primary: #cccccc;--text-secondary: #9d9d9d;--text-muted: #6e6e6e;--accent: #0078d4;--accent-hover: #106ebe;--accent-light: rgba(0,120,212,.15);--success: #4ec9b0;--success-bg: rgba(78,201,176,.15);--error: #f44747;--error-bg: rgba(244,71,71,.12);--warning: #ce9178;--tab-active-bg: #1e1e1e;--tab-inactive-bg: #2d2d30;--scrollbar-thumb: #424242;--scrollbar-track: transparent;--tree-indent: 16px;--col-selected-bg: rgba(0,120,212,.18);--col-selected-hover: rgba(0,120,212,.28);--col-selected-header: rgba(0,120,212,.35)}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #ececec;--bg-hover: #e4e4e4;--bg-selected: #cce5ff;--border: #d1d1d1;--text-primary: #1e1e1e;--text-secondary: #555555;--text-muted: #888888;--accent: #0078d4;--accent-hover: #106ebe;--accent-light: rgba(0,120,212,.1);--success: #107c10;--success-bg: rgba(16,124,16,.1);--error: #c50f1f;--error-bg: rgba(197,15,31,.08);--warning: #d83b01;--tab-active-bg: #ffffff;--tab-inactive-bg: #ececec;--scrollbar-thumb: #c0c0c0;--scrollbar-track: transparent;--tree-indent: 16px;--col-selected-bg: rgba(0,120,212,.12);--col-selected-hover: rgba(0,120,212,.2);--col-selected-header: rgba(0,120,212,.25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);font-size:13px;line-height:1.4}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}::-webkit-scrollbar-corner{background:transparent}button{cursor:pointer;font-family:inherit;font-size:12px;border:none;outline:none}.btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:3px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover{background:var(--bg-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:transparent;border-color:var(--error);color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error-bg)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary);border-color:transparent}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:3px;background:transparent;border:none;color:var(--text-secondary)}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:13px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:3px;padding:5px 8px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}select option{background:var(--bg-tertiary)}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.form-row{display:flex;gap:8px}.form-row .form-group{flex:1}.form-check{display:flex;align-items:center;gap:6px}.form-check input{width:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9000;animation:fadeIn .1s ease}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:24px;min-width:420px;max-width:560px;width:90vw;max-height:90vh;overflow-y:auto;animation:slideUp .12s ease;box-shadow:0 8px 32px #0009}.modal-sm{min-width:320px;max-width:400px}.modal-lg{max-width:700px}.modal-title{font-size:15px;font-weight:600;margin-bottom:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.modal-section{margin-bottom:20px}.modal-section-title{font-size:11px;text-transform:uppercase;color:var(--text-muted);letter-spacing:.06em;margin-bottom:10px}.tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tag-connected{background:var(--success-bg);color:var(--success)}.tag-disconnected{background:#9696961f;color:var(--text-muted)}.tag-error{background:var(--error-bg);color:var(--error)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:10px;height:10px;border-width:1.5px}.resizer-h{width:100%;height:4px;cursor:row-resize;background:var(--border);flex-shrink:0;transition:background .15s}.resizer-h:hover,.resizer-h.dragging{background:var(--accent)}.resizer-v{width:4px;height:100%;cursor:col-resize;background:var(--border);flex-shrink:0;transition:background .15s}.resizer-v:hover,.resizer-v.dragging{background:var(--accent)}.ctx-menu{position:fixed;z-index:9999;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;padding:4px 0;min-width:180px;box-shadow:0 4px 16px #00000080;animation:fadeIn .08s ease}.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12px;color:var(--text-primary);cursor:pointer;transition:background .1s}.ctx-item:hover{background:var(--accent);color:#fff}.ctx-item.danger:hover{background:var(--error)}.ctx-separator{height:1px;background:var(--border);margin:4px 0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#111;color:#eee;font-size:11px;padding:3px 7px;border-radius:3px;white-space:nowrap;pointer-events:none;z-index:9999}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.gap-2{gap:8px}@media (max-width: 767px){.modal{min-width:unset;width:100vw;max-width:100vw;max-height:100dvh;border-radius:0;margin:0;padding:16px}.modal-overlay{align-items:flex-end}.modal-sm,.modal-lg{max-width:100vw;min-width:unset}body.modal-open{overflow:hidden}}
