/* EXPLORER */
/* SQL editor token colors — scoped to editor containers only */
.explorer-wrap,.studio-wrap{
  --sql-kw:#0891B2; --sql-str:#16a34a; --sql-num:#d97706;
  --sql-cmt:#94A3B8; --sql-op:#7c3aed; --sql-fn:#be185d;
}
[data-theme=dark] .explorer-wrap,[data-theme=dark] .studio-wrap{
  --sql-kw:#22d3ee; --sql-str:#4ade80; --sql-num:#fb923c;
  --sql-cmt:#666666; --sql-op:#a78bfa; --sql-fn:#f472b6;
}
.explorer-wrap{display:flex;height:100%;overflow:hidden;}
.ex-sidebar{width:210px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--bd);display:flex;flex-direction:column;overflow:hidden;}
.ex-sb-head{padding:12px 14px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--mu);border-bottom:1px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;}
.ex-sb-sys-btn{font-size:9px;font-weight:600;padding:2px 7px;border-radius:5px;border:1px solid var(--bd);background:transparent;color:var(--mu);cursor:pointer;font-family:'Inter',sans-serif;letter-spacing:.3px;transition:all .15s;white-space:nowrap;}
.ex-sb-sys-btn:hover{border-color:var(--cyan);color:var(--cyan);}
.ex-sb-sys-btn.on{border-color:var(--cyan);background:var(--cyan-dim);color:var(--cyan);}
.ex-sb-search{padding:8px;flex-shrink:0;}
.ex-tables{flex:1;overflow-y:auto;padding:4px;}
.ex-tbl{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;margin-bottom:2px;transition:all .2s;}
.ex-tbl:hover{background:var(--sur);}
.ex-tbl.on{background:var(--cyan-dim);}
.ex-tbl-name{font-size:13px;color:var(--tx);font-weight:600;}
.ex-tbl-sub{font-size:11px;color:var(--mu);}
.ex-tbl-icon{width:28px;height:28px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--cyan-dim);color:var(--cyan);}
.ex-tbl-icon-sys,.ex-tbl-icon-analytics{background:var(--bg2);color:var(--mu);}
.ex-tbl-meta{flex:1;min-width:0;}
.ex-tbl-section{font-size:9px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:1.5px;padding:10px 10px 4px;pointer-events:none;}
.ex-tbl-sys{opacity:.5;cursor:default;}
.ex-main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
#er-panel{flex:1;min-height:60px;background:var(--bg2);overflow:hidden;display:flex;flex-direction:column;}
#er-diagram{flex:1;min-height:0;overflow:hidden;}
#sql-shelf{height:32px;border-top:1px solid var(--bd);background:var(--bg2);flex-shrink:0;display:flex;align-items:stretch;cursor:ns-resize;user-select:none;overflow:hidden;}
.shelf-toggle{display:flex;align-items:center;gap:5px;padding:0 10px 0 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--mu);border-right:1px solid var(--bd);flex-shrink:0;cursor:pointer;transition:color .15s;white-space:nowrap;}
.shelf-toggle:hover{color:var(--cyan);}
.shelf-tabs{display:flex;align-items:stretch;flex:1;overflow-x:auto;min-width:0;}
.sq-tab{display:flex;align-items:center;gap:5px;padding:0 10px 0 12px;font-size:11px;font-weight:500;color:var(--tx2);cursor:pointer;border-right:1px solid var(--bd);flex-shrink:0;white-space:nowrap;transition:background .15s;}
.sq-tab:hover{background:var(--sur);}
.sq-tab.on{background:var(--sur);color:var(--tx);border-bottom:2px solid var(--cyan);}
.sq-tab-close{width:14px;height:14px;border-radius:3px;border:none;background:transparent;color:var(--mu);cursor:pointer;font-size:13px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.sq-tab-close:hover{background:var(--bd2);color:var(--tx);}
.shelf-add{display:flex;align-items:center;padding:0 12px;border:none;border-left:1px solid var(--bd);background:transparent;color:var(--mu);cursor:pointer;font-size:17px;flex-shrink:0;transition:color .15s;}
.shelf-add:hover{color:var(--cyan);}
#sql-panel{background:var(--sur);overflow:hidden;flex-shrink:0;display:none;flex-direction:column;}
.sq-body{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:10px;gap:8px;}
.sq-editor-row{display:flex;gap:8px;flex-shrink:0;align-items:stretch;min-height:130px;}
.sq-editor-wrap{flex:1;min-width:0;border:1px solid var(--bd);border-radius:8px;overflow:hidden;transition:border-color .2s;display:flex;flex-direction:column;}
.sq-editor-wrap:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-dim);}
.sq-btn-col{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
/* CodeMirror Orbit theme */
.cm-s-orbit.CodeMirror{background:var(--bg2);color:var(--tx);font-family:ui-monospace,'Cascadia Code','Menlo','Consolas','Courier New',monospace;font-size:12.5px;line-height:1.65;height:100%;border:none;}
.cm-s-orbit .CodeMirror-gutters{background:var(--bg);border-right:1px solid var(--bd);}
.cm-s-orbit .CodeMirror-linenumber{color:var(--mu);font-size:11px;}
.cm-s-orbit .CodeMirror-cursor{border-left:2px solid var(--cyan);}
.cm-s-orbit .CodeMirror-selected,.cm-s-orbit .CodeMirror-focused .CodeMirror-selected{background:var(--cyan-dim);}
.cm-s-orbit .CodeMirror-activeline-background{background:var(--sur);}
.cm-s-orbit .cm-keyword{color:var(--sql-kw);font-weight:600;}
.cm-s-orbit .cm-string,.cm-s-orbit .cm-string-2{color:var(--sql-str);}
.cm-s-orbit .cm-number{color:var(--sql-num);}
.cm-s-orbit .cm-comment{color:var(--sql-cmt);font-style:italic;}
.cm-s-orbit .cm-operator{color:var(--sql-op);}
.cm-s-orbit .cm-def{color:var(--sql-kw);}
.cm-s-orbit .cm-builtin{color:var(--sql-fn);}
.cm-s-orbit .cm-variable,.cm-s-orbit .cm-variable-2{color:var(--tx);}
.cm-s-orbit .cm-atom{color:var(--sql-num);}
/* Autocomplete dropdown */
.CodeMirror-hints{background:var(--sur);border:1px solid var(--bd);border-radius:8px;box-shadow:var(--shadow-md);font-family:'Inter',sans-serif;font-size:12px;padding:4px;}
.CodeMirror-hint{padding:5px 10px;border-radius:5px;color:var(--tx2);}
li.CodeMirror-hint-active{background:var(--cyan-dim);color:var(--cyan) !important;}
/* Saved queries sidebar redesign */
.sq-saved-item{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:6px;cursor:pointer;margin-bottom:2px;transition:background .15s;border:1px solid transparent;}
.sq-saved-item:hover{background:var(--bg2);border-color:var(--bd);}
.sq-saved-icon{color:var(--mu);flex-shrink:0;display:flex;align-items:center;}
.sq-saved-name{font-size:11px;color:var(--tx);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sq-saved-del{flex-shrink:0;width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--mu);cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s;opacity:0;}
.sq-saved-item:hover .sq-saved-del{opacity:1;}
.sq-saved-del:hover{background:#fca5a520;color:#ef4444;}
/* Icon ghost button (for Refrescar/Actualizar) */
.btn-ghost{background:transparent;border:none;color:var(--mu);cursor:pointer;border-radius:6px;padding:5px 7px;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-family:'Inter',sans-serif;font-weight:500;transition:background .15s,color .15s;}
.btn-ghost:hover{background:var(--bg2);color:var(--tx);}
.btn-ghost svg{stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
/* Explorer sidebar search input */
.ex-sb-search input{width:100%;background:var(--bg2);border:1px solid var(--bd);border-radius:8px;padding:8px 11px;color:var(--tx);font-family:'Inter',sans-serif;font-size:12px;outline:none;transition:border-color .2s;}
.ex-sb-search input:focus{border-color:var(--cyan);}
.sq-results{flex:1;overflow:auto;}
.sq-export-wrap{position:relative;flex-shrink:0;}
.sq-export-menu{position:fixed;background:var(--sur);border:1px solid var(--bd);border-radius:8px;box-shadow:var(--shadow-md);overflow:hidden;min-width:130px;z-index:9000;visibility:hidden;opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility 0s linear .15s;}
.sq-export-menu.open{visibility:visible;opacity:1;transform:translateY(0);transition:opacity .15s,transform .15s,visibility 0s;}
.sq-export-menu button{display:block;width:100%;padding:8px 12px;text-align:left;font-size:12px;border:none;background:transparent;cursor:pointer;color:var(--tx2);font-family:'Inter',sans-serif;transition:background .15s;}
.sq-export-menu button:hover{background:var(--bg2);color:var(--tx);}

/* ── STUDIO SQL ──────────────────────────────────────────────── */
.studio-wrap{display:flex;height:100%;overflow:hidden;}
.studio-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--bd);display:flex;flex-direction:column;overflow:hidden;background:var(--bg2);}
.studio-sb-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 6px;flex-shrink:0;}
.studio-sb-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--mu);}
.studio-model-list{flex:1;overflow-y:auto;padding:4px;}
.studio-model-item{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:6px;cursor:pointer;font-size:12.5px;transition:background .15s;}
.studio-model-item:hover{background:var(--sur);}
.studio-model-item.on{background:var(--cyan-dim);color:var(--cyan);}
.studio-model-icon{width:14px;height:14px;flex-shrink:0;opacity:.6;}
.studio-model-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.studio-model-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 5px;border-radius:4px;flex-shrink:0;}
.studio-model-badge.view{background:#a855f720;color:#a855f7;}
.studio-model-badge.table{background:var(--cyan-dim);color:var(--cyan);}
.studio-model-del{flex-shrink:0;width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--mu);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s;}
.studio-model-item:hover .studio-model-del{opacity:.6;}
.studio-model-del:hover{opacity:1!important;background:var(--c-danger-muted);color:#ef4444;}
.studio-main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.studio-editor-area{flex-shrink:0;display:flex;flex-direction:column;height:260px;border-bottom:1px solid var(--bd);}
.studio-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;flex-shrink:0;border-bottom:1px solid var(--bd);background:var(--bg2);}
.studio-toolbar-left{display:flex;align-items:center;gap:6px;}
.studio-toolbar-right{display:flex;align-items:center;gap:6px;margin-left:auto;}
.studio-hint{font-size:10.5px;color:var(--mu);padding:0 4px;}
.studio-kbd{display:inline-flex;align-items:center;padding:1px 5px;border:1px solid var(--bd2);border-radius:3px;font-size:10px;font-family:'Inter',monospace;color:var(--mu);background:var(--bg);}
.studio-status-bar{height:22px;border-top:1px solid var(--bd);background:var(--bg2);display:flex;align-items:center;padding:0 12px;flex-shrink:0;gap:12px;}
.studio-status-item{font-size:10.5px;color:var(--mu);display:flex;align-items:center;gap:4px;}
.studio-editor-wrap{flex:1;overflow:hidden;}
.studio-results-area{flex:1;overflow:auto;background:var(--bg);}
.studio-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--mu);gap:8px;padding:40px;}
.studio-results-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.studio-results-table th{position:sticky;top:0;background:var(--bg2);padding:7px 12px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--mu);border-bottom:1px solid var(--bd);white-space:nowrap;}
.studio-results-table td{padding:8px 12px;border-bottom:1px solid var(--bd);color:var(--tx);font-family:ui-monospace,'Cascadia Code','Menlo','Consolas','Courier New',monospace;font-size:12px;white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis;}
.studio-results-table tr:last-child td{border-bottom:none;}
.studio-results-table tr:hover td{background:var(--sur);}
.studio-results-meta{padding:8px 12px;font-size:11px;color:var(--mu);border-top:1px solid var(--bd);background:var(--bg2);flex-shrink:0;}
.studio-er-panel{width:0;flex-shrink:0;border-left:0 solid var(--bd);overflow:hidden;transition:width .3s ease;background:var(--bg);display:flex;flex-direction:column;}
.studio-er-panel.open{width:360px;border-left-width:1px;}
.studio-er-head{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid var(--bd);flex-shrink:0;}

/* ER */
.er-link{fill:none;stroke:var(--cyan);stroke-width:1.5;opacity:.5;}

/* Analytics sidebar section */
.ex-sb-analytics-hd{padding:8px 10px 4px 14px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--mu);border-top:1px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;}
.ex-sb-new-btn{font-size:15px;font-weight:400;padding:0 5px;border-radius:4px;border:none;background:transparent;color:var(--mu);cursor:pointer;line-height:1;transition:color .15s;}
.ex-sb-new-btn:hover{color:var(--cyan);}
.ex-analytics-list{overflow-y:auto;min-height:40px;max-height:180px;flex-shrink:0;}
.ex-analytics-del{width:18px;height:18px;border-radius:3px;border:none;background:transparent;color:var(--mu);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .15s;}
.ex-tbl:hover .ex-analytics-del{opacity:1;}
.ex-analytics-del:hover{opacity:1!important;background:var(--c-danger-muted);color:#ef4444;}
.sq-tab-analytics{border-top:1.5px solid var(--mu);}
.ex-saved-queries{padding:4px;max-height:140px;overflow-y:auto;flex-shrink:0;}
