:root{--sgbd-primary:#0b3d5c;--sgbd-secondary:#0f5f8f;--sgbd-accent:#f2c94c;--sgbd-surface:#f8fafc;--sql-keyword:#0b6edc;--border:#dbe3ef;--text:#172033;--muted:#64748b;--panel:#fff;--soft:#f5f7fb}
*{box-sizing:border-box}body{height:100vh;margin:0;overflow:hidden;background:var(--sgbd-surface);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.hidden{display:none!important}.flex{display:flex}.app-shell{height:100vh;display:flex;flex-direction:column}.topbar{height:58px;background:var(--sgbd-primary);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 8px 22px rgb(15 23 42 / .18);z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:12px;background:rgb(255 255 255 / .10);border:1px solid rgb(255 255 255 / .16);display:flex;align-items:center;justify-content:center;color:var(--sgbd-accent);font-size:22px}.brand h1{font-size:18px;line-height:1;margin:0;font-weight:800}.brand p{font-size:10px;margin:2px 0 0;color:rgb(255 255 255 / .66)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.top-pill{display:flex;align-items:center;gap:7px;background:rgb(255 255 255 / .10);border:1px solid rgb(255 255 255 / .14);border-radius:12px;padding:7px 10px;font-size:12px}.top-pill select{background:transparent;color:white;border:0;outline:0;font-weight:700}.top-pill option{color:#0f172a}.top-action{border:0;background:rgb(255 255 255 / .10);color:white;padding:8px 10px;border-radius:10px;font-weight:700;font-size:12px;cursor:pointer}.top-action:hover{background:rgb(255 255 255 / .18)}.avatar{width:30px;height:30px;border-radius:99px;background:var(--sgbd-accent);color:#111827;font-weight:900;display:grid;place-items:center}.workspace{display:flex;min-height:0;flex:1}.icon-rail{width:58px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 8px}.rail-btn{width:40px;height:40px;border-radius:12px;border:0;background:transparent;color:#64748b;cursor:pointer;font-size:17px}.rail-btn:hover,.rail-btn.active{background:#eef6ff;color:var(--sgbd-primary)}.rail-sep{height:1px;background:var(--border);width:32px;margin:6px 0}.sidebar{width:330px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;transition:.2s ease;min-width:0}.sidebar.collapsed{width:0;border-right:0;overflow:hidden}.side-head{height:50px;background:#fbfcfe;border-bottom:1px solid var(--border);padding:0 14px;display:flex;align-items:center;justify-content:space-between}.side-head h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#475569;margin:0}.icon-btn{border:0;background:transparent;color:#64748b;cursor:pointer}.side-content{padding:12px;overflow:auto;flex:1}.search{position:relative;margin-bottom:12px}.search i{position:absolute;left:10px;top:10px;color:#94a3b8;font-size:12px}.search input{width:100%;border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:9px 10px 9px 31px;font-size:12px;outline:0}.search input:focus{border-color:var(--sgbd-secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sgbd-secondary) 15%,transparent)}.tree-row{display:flex;align-items:center;gap:8px;min-height:28px;border-radius:8px;padding:4px 7px;font-size:12px;cursor:pointer}.tree-row:hover{background:#f1f5f9}.schema-db.active>.db-row{background:#e8f8ee;border:1px solid #bbf7d0;color:#14532d}.twisty{width:13px;color:#64748b}.active-flag{margin-left:auto;background:#22c55e;color:#fff;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.count-pill{margin-left:auto;background:#e2e8f0;color:#475569;border-radius:999px;padding:1px 6px;font-size:10px}.schema-table{margin-left:15px}.cols{margin-left:30px}.col-row small{margin-left:auto;color:#64748b;font-size:10px}.pk{color:#d4a017}.fk{color:#a3a3a3}.col{color:#94a3b8}.main{display:flex;flex-direction:column;min-width:0;flex:1;background:#eef3f8}.tabs{height:44px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding-left:14px}.main-tab{height:44px;display:flex;align-items:center;padding:0 16px;border-top:3px solid var(--sgbd-primary);border-left:1px solid var(--border);border-right:1px solid var(--border);background:#fff;font-weight:800;font-size:12px;color:var(--sgbd-primary)}.editor-section{height:47%;min-height:250px;background:#fff;border-bottom:1px solid var(--border);display:flex;flex-direction:column;margin:12px 12px 0;border-radius:16px 16px 0 0;overflow:hidden;box-shadow:0 12px 28px rgb(15 23 42 / .07)}.toolbar{height:48px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:8px;background:#fbfcfe}.btn{border:1px solid var(--border);background:#fff;color:#334155;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer}.btn:hover{background:#f1f5f9}.btn.primary{background:var(--sgbd-primary);border-color:var(--sgbd-primary);color:white}.btn.primary:hover{background:var(--sgbd-secondary)}.editor-wrap{flex:1;min-height:0}.CodeMirror{height:100%;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:14px}.results-section{flex:1;min-height:0;background:#fff;margin:0 12px 12px;border-radius:0 0 16px 16px;box-shadow:0 12px 28px rgb(15 23 42 / .07);display:flex;flex-direction:column;overflow:hidden}.bottom-tabs{height:42px;background:#fbfcfe;border-bottom:1px solid var(--border);display:flex;align-items:center;overflow-x:auto}.bottom-tabs button{height:42px;border:0;background:transparent;border-top:3px solid transparent;padding:0 14px;font-size:12px;font-weight:800;color:#64748b;cursor:pointer;white-space:nowrap}.bottom-tabs button.active{background:#fff;color:var(--sgbd-primary);border-top-color:var(--sgbd-primary)}.pane{flex:1;min-height:0;overflow:auto;padding:14px}.result-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.result-table th{position:sticky;top:0;background:#f1f5f9;color:#0f172a;text-align:left;padding:10px;border-bottom:1px solid var(--border);z-index:1}.result-table td{padding:9px 10px;border-bottom:1px solid #edf2f7}.result-table tr:hover td{background:#f8fafc}.row-count{margin-left:auto;padding:0 14px;color:#64748b;font-size:11px;font-family:monospace}.error{border-left:5px solid #ef4444;background:#fff1f2;border-radius:10px;padding:14px;color:#991b1b}.fix{margin-top:12px;border:1px solid #facc15;background:#fef9c3;color:#713f12;border-radius:10px;padding:12px}.modal{position:fixed;inset:0;background:rgb(15 23 42 / .55);backdrop-filter:blur(6px);z-index:50;align-items:center;justify-content:center}.modal-card{width:min(760px,92vw);max-height:86vh;overflow:hidden;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgb(0 0 0 / .35);display:flex;flex-direction:column}.modal-head{background:var(--sgbd-primary);color:white;padding:14px 18px;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:18px;overflow:auto}.modal-body pre{background:#0f172a;color:#a7f3d0;border-radius:12px;padding:14px;white-space:pre-wrap}.modal-foot{padding:14px 18px;background:#f8fafc;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.history-card{border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:8px;background:#fff}.history-card small{display:block;color:#64748b}.history-card code{display:block;margin:8px 0;background:#f8fafc;padding:8px;border-radius:8px;font-size:11px}.history-card button,.cmd-group button,.challenge button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:800;cursor:pointer}.cmd-group h4{font-size:11px;text-transform:uppercase;color:#475569;letter-spacing:.08em;margin:14px 0 8px}.cmd-group button{display:flex;width:100%;flex-direction:column;align-items:flex-start;margin-bottom:7px;text-align:left}.cmd-group small{color:#64748b;margin-top:4px}.explain-step,.model-card,.challenge,.learn{border:1px solid var(--border);background:#fff;border-radius:14px;padding:13px;margin-bottom:10px}.explain-step strong{color:var(--sgbd-primary)}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.model-card h4{margin:0 0 6px;display:flex;gap:8px;align-items:center}.model-card span{display:block;background:#f8fafc;border-radius:8px;padding:5px 8px;margin-top:5px;font-size:12px}.code-block{background:#0f172a;color:#d1fae5;border-radius:14px;padding:14px;white-space:pre;overflow:auto;font-family:monospace}.comparison{width:100%;border-collapse:collapse;font-size:12px;background:white;border:1px solid var(--border)}.comparison th,.comparison td{border:1px solid var(--border);padding:10px;text-align:left}.comparison th{background:#f1f5f9}.learning-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.learn span{display:inline-grid;place-items:center;width:28px;height:28px;background:var(--sgbd-primary);color:white;border-radius:9px;font-weight:900;margin-bottom:8px}.ok{background:#dcfce7;border:1px solid #86efac;color:#14532d;border-radius:10px;padding:12px}.bad{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;border-radius:10px;padding:12px}.test-log{background:#0f172a;color:#cbd5e1;padding:14px;border-radius:12px;font-family:monospace}.pass{color:#86efac}.fail{color:#fca5a5}.empty{color:#94a3b8;text-align:center;padding:30px}.login-modal{position:fixed;inset:0;background:rgb(15 23 42 / .62);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:60}.login-card{width:min(430px,92vw);background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 60px rgb(0 0 0 / .35)}.login-card label{display:block;font-size:11px;text-transform:uppercase;font-weight:900;color:#64748b;margin:13px 0 6px}.login-card input{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px;outline:0}.loader{position:fixed;inset:0;background:rgb(15 23 42 / .45);backdrop-filter:blur(4px);z-index:55;display:flex;align-items:center;justify-content:center;color:#fff;flex-direction:column}.spinner{width:48px;height:48px;border:5px solid rgb(255 255 255 / .5);border-top-color:white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}#print-area{display:none}@media print{body>*:not(#print-area){display:none!important}#print-area{display:block!important;padding:20mm;color:#111827}.result-table th{position:static}}
@media(max-width:900px){.topbar{height:auto;min-height:58px;flex-wrap:wrap;padding:10px}.topbar-right{display:none}.sidebar{width:280px}.editor-section{height:45%}.bottom-tabs button{font-size:11px;padding:0 10px}}

#cmd-anatomy{white-space:pre-line;line-height:1.62;color:#334155;font-size:13px;background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:14px;margin-top:8px}
.modal-body h4{margin:14px 0 6px;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.08em}

/* JOIN modal visual explanation blocks */
.cmd-visual{margin:14px 0 16px}.join-card{border:1px solid var(--border);background:linear-gradient(180deg,#ffffff,#f8fafc);border-radius:16px;padding:14px;box-shadow:0 12px 28px rgb(15 23 42 / .08)}.join-visual-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:12px}.join-visual-head strong{font-size:14px;color:var(--sgbd-primary);letter-spacing:.02em}.join-visual-head span{font-size:11px;color:#64748b;font-weight:800;background:#eef2ff;border:1px solid #dbeafe;border-radius:999px;padding:5px 9px}.join-flow{display:grid;grid-template-columns:1fr 132px 1fr;align-items:center;gap:12px}.join-mini-table{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px;overflow:hidden}.join-mini-table b,.join-result-grid b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#475569;margin-bottom:7px}.join-mini-table table,.join-result-grid table{width:100%;border-collapse:collapse;font-size:11px;background:#fff}.join-mini-table th,.join-mini-table td,.join-result-grid th,.join-result-grid td{border:1px solid #e2e8f0;padding:5px 6px;text-align:left}.join-mini-table th,.join-result-grid th{background:#f1f5f9;color:#334155;font-weight:900}.join-venn{position:relative;height:102px;display:grid;place-items:center}.join-venn:before,.join-venn:after{content:'';position:absolute;width:78px;height:78px;border-radius:999px;border:2px solid #334155;background:#e0f2fe;opacity:.72}.join-venn:before{left:4px}.join-venn:after{right:4px;background:#d8b4fe}.join-venn span{position:relative;z-index:2;font-weight:900;color:#1e293b;font-size:13px}.join-venn span:first-child{margin-right:22px}.join-venn span:last-child{margin-left:22px}.join-venn.inner:before,.join-venn.inner:after{background:#f8fafc}.join-venn.inner:after{box-shadow:-39px 0 0 -18px rgba(192,132,252,.82) inset}.join-venn.left:before{background:#c084fc}.join-venn.left:after{background:#f8fafc}.join-venn.right:before{background:#f8fafc}.join-venn.right:after{background:#c084fc}.join-venn.full:before,.join-venn.full:after{background:#c084fc}.join-venn.cross:before{background:#fef3c7}.join-venn.cross:after{background:#bfdbfe}.join-result-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-top:12px}.join-result-grid>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.join-result-grid p{margin:0 0 8px;color:#334155;font-size:12px;line-height:1.5}.join-result-grid ul{margin:0;padding-left:18px;color:#475569;font-size:12px;line-height:1.55}.join-result-grid td{font-family:JetBrains Mono,Fira Code,Consolas,monospace}@media(max-width:760px){.join-flow,.join-result-grid{grid-template-columns:1fr}.join-venn{height:92px}.join-visual-head{align-items:flex-start;flex-direction:column}}

/* Sidebar modeling workspace */
.modeling-side-hero{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff,#f8fafc);border-radius:14px;padding:12px;margin-bottom:10px}
.modeling-side-icon{width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--sgbd-primary) 12%,#fff);color:var(--sgbd-primary);display:grid;place-items:center;font-size:17px;flex:0 0 auto}
.modeling-side-hero strong{display:block;font-size:13px;color:#0f172a;margin-bottom:3px}.modeling-side-hero p{margin:0;color:#64748b;font-size:11px;line-height:1.45}.modeling-side-toolbar{display:flex;align-items:center;justify-content:space-between;margin:10px 0 8px;color:#475569;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.modeling-db-list{display:flex;flex-direction:column;gap:8px}.modeling-db-card{width:100%;border:1px solid var(--border);background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:.16s ease}.modeling-db-card:hover{border-color:var(--sgbd-secondary);box-shadow:0 8px 20px rgb(15 23 42 / .08);transform:translateY(-1px)}.modeling-db-card.active{border-color:#86efac;background:#f0fdf4}.modeling-db-card .db-symbol{width:34px;height:34px;border-radius:11px;background:#fef3c7;color:#d4a017;display:grid;place-items:center;flex:0 0 auto}.modeling-db-card .db-meta{display:flex;flex-direction:column;min-width:0}.modeling-db-card strong{font-size:12px;color:#0f172a}.modeling-db-card small{font-size:10px;color:#64748b;margin-top:2px}.modeling-db-card em{margin-left:auto;font-style:normal;background:#22c55e;color:white;font-size:10px;font-weight:900;border-radius:999px;padding:3px 7px}.modeling-side-note{margin-top:12px;border:1px solid #fde68a;background:#fffbeb;border-radius:14px;padding:11px;color:#713f12}.modeling-side-note strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em}.modeling-side-note p{margin:5px 0 0;font-size:11px;line-height:1.5}

/* v17.4.0 - refinamento visual do navegador de bases, tabelas e campos */
.topbar .brand .brand-mark,
.login-card .brand .brand-mark{
  background:#0b3d5c!important;
  color:#f2c94c!important;
  border-color:rgba(242,201,76,.36)!important;
  box-shadow:0 8px 22px rgba(2,6,23,.18), inset 0 0 0 1px rgba(255,255,255,.08);
}
.topbar .brand .brand-mark i,
.login-card .brand .brand-mark i{
  color:#f2c94c!important;
}
#schema-tree{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-bottom:14px;
}
.schema-db{
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(15,23,42,.035);
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.schema-db:hover{
  border-color:color-mix(in srgb,var(--sgbd-primary) 24%,#dbe4ef);
  box-shadow:0 12px 28px rgba(15,23,42,.07);
}
.schema-db.active{
  border-color:#86efac;
  box-shadow:0 12px 30px rgba(34,197,94,.12);
}
.schema-db.active>.schema-db-card{
  background:linear-gradient(180deg,#f0fdf4,#e8f8ee);
  color:#14532d;
}
.schema-db-card{
  display:grid;
  grid-template-columns:18px 36px minmax(0,1fr) auto auto;
  align-items:center;
  gap:9px;
  padding:10px 10px;
  cursor:pointer;
  min-height:58px;
}
.schema-expander{
  color:#64748b;
  width:18px;
  text-align:center;
  font-size:13px;
  line-height:1;
}
.schema-db-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fef3c7;
  color:#d4a017;
  border:1px solid #fde68a;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
}
.schema-db-main,
.schema-table-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.schema-db-main strong,
.schema-table-main span{
  color:#0f172a;
  font-size:13px;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schema-db-main small,
.schema-table-main small{
  color:#64748b;
  font-size:10px;
  line-height:1.1;
}
.schema-db-metrics{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:10px;
  color:#64748b;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:4px 8px;
  white-space:nowrap;
}
.schema-db-metrics b{color:#0f172a;font-weight:900}
.schema-db-content{
  padding:0 8px 10px 34px;
  border-top:1px solid #eef2f7;
  background:linear-gradient(180deg,#fbfdff,#fff);
}
.schema-table{
  margin:8px 0 0;
  position:relative;
}
.schema-table:before{
  content:"";
  position:absolute;
  left:-16px;
  top:0;
  bottom:0;
  width:1px;
  background:#e2e8f0;
}
.schema-table-card{
  display:grid;
  grid-template-columns:18px 30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:7px 8px;
  border:1px solid #e8eef6;
  border-radius:13px;
  background:#fff;
  cursor:pointer;
  transition:.14s ease;
}
.schema-table-card:hover{
  background:#f8fbff;
  border-color:color-mix(in srgb,var(--sgbd-primary) 30%,#dbeafe);
}
.schema-table-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#eff6ff;
  color:#2563eb;
  border:1px solid #dbeafe;
}
.schema-mini-badges{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.schema-mini-badges em{
  font-style:normal;
  font-size:9px;
  font-weight:900;
  color:#475569;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:2px 6px;
}
.schema-mini-badges .mini-pk{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e;
}
.schema-mini-badges .mini-fk{
  background:#f8fafc;
  border-color:#cbd5e1;
  color:#475569;
}
.schema-columns{
  margin:7px 0 0 26px;
  padding:6px;
  border:1px solid #eef2f7;
  border-radius:13px;
  background:#f8fafc;
}
.schema-column-row{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto auto;
  gap:7px;
  align-items:center;
  padding:6px 7px;
  border-radius:10px;
  color:#334155;
  font-size:11px;
}
.schema-column-row:hover{background:#fff;box-shadow:0 1px 0 rgba(15,23,42,.04)}
.column-icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#fff;
  border:1px solid #e2e8f0;
}
.schema-column-row.pk .column-icon{color:#d4a017;background:#fffbeb;border-color:#fde68a}
.schema-column-row.fk .column-icon{color:#8b95a1;background:#f8fafc;border-color:#cbd5e1}
.schema-column-row.col .column-icon{color:#94a3b8}
.column-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:700;
  color:#1e293b;
}
.column-kind{
  min-width:42px;
  text-align:center;
  border-radius:999px;
  padding:2px 6px;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  background:#eef2f7;
  color:#475569;
}
.schema-column-row.pk .column-kind{background:#fef3c7;color:#92400e}
.schema-column-row.fk .column-kind{background:#e2e8f0;color:#334155}
.column-type{
  font-size:10px;
  color:#64748b;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:8px;
  padding:3px 6px;
  max-width:92px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schema-empty-note{
  margin:10px 0 0;
  color:#94a3b8;
  font-size:11px;
  text-align:center;
  padding:12px;
  border:1px dashed #cbd5e1;
  border-radius:12px;
  background:#f8fafc;
}
@media (max-width:980px){
  .schema-db-card{grid-template-columns:18px 34px minmax(0,1fr);}
  .schema-db-metrics{display:none}
  .schema-table-card{grid-template-columns:18px 30px minmax(0,1fr);}
  .schema-mini-badges{grid-column:3;justify-content:flex-start;margin-top:2px}
  .schema-column-row{grid-template-columns:24px minmax(0,1fr) auto;}
  .column-type{grid-column:2 / -1;max-width:none;width:max-content}
}

/* v17.6.0 - schema compacto com contagem real de registros
   Diretriz: recuperar a leitura em árvore da versão anterior, aumentar levemente os elementos
   e reduzir espaçamentos excessivos entre bases, tabelas, campos e chaves. */
#schema-tree{
  gap:4px!important;
  padding-bottom:8px!important;
}
.schema-db{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  margin:0!important;
}
.schema-db:hover{
  border-color:transparent!important;
  box-shadow:none!important;
}
.schema-db-card{
  display:grid!important;
  grid-template-columns:15px 27px minmax(0,1fr) auto auto!important;
  align-items:center!important;
  gap:6px!important;
  min-height:38px!important;
  padding:5px 6px!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  background:transparent!important;
  cursor:pointer!important;
}
.schema-db-card:hover{
  background:#f4f8fc!important;
  border-color:#e3edf7!important;
}
.schema-db.active>.schema-db-card{
  background:#e8f8ee!important;
  border-color:#bbf7d0!important;
  color:#14532d!important;
  box-shadow:inset 3px 0 0 #22c55e!important;
}
.schema-db.active .schema-db-main strong{color:#14532d!important}
.schema-expander{
  width:15px!important;
  font-size:13px!important;
  color:#52637a!important;
}
.schema-db-icon{
  width:25px!important;
  height:25px!important;
  border-radius:8px!important;
  background:#fff7d6!important;
  color:#d4a017!important;
  border:1px solid #f3d270!important;
  font-size:13px!important;
  box-shadow:none!important;
}
.schema-db-main,
.schema-table-main{
  gap:1px!important;
}
.schema-db-main strong,
.schema-table-main span{
  font-size:13px!important;
  line-height:1.15!important;
  font-weight:800!important;
}
.schema-db-main small,
.schema-table-main small{
  font-size:10px!important;
  line-height:1.1!important;
}
.schema-db-metrics{
  font-size:9px!important;
  padding:2px 6px!important;
  gap:3px!important;
  border-radius:999px!important;
  background:#f6f8fb!important;
  border-color:#e1e9f2!important;
}
.active-flag{
  font-size:9px!important;
  padding:2px 6px!important;
}
.schema-db-content{
  padding:2px 0 5px 18px!important;
  margin-left:13px!important;
  border-top:0!important;
  border-left:1px solid #dfe8f2!important;
  background:transparent!important;
}
.schema-table{
  margin:2px 0!important;
}
.schema-table:before{
  display:none!important;
}
.schema-table-card{
  display:grid!important;
  grid-template-columns:15px 25px minmax(0,1fr) auto!important;
  gap:6px!important;
  min-height:34px!important;
  padding:4px 6px!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  background:transparent!important;
}
.schema-table-card:hover{
  background:#eef6ff!important;
  border-color:#dbeafe!important;
}
.schema-table-icon{
  width:23px!important;
  height:23px!important;
  border-radius:7px!important;
  background:#eaf4ff!important;
  color:#2563eb!important;
  border:1px solid #cfe4ff!important;
  font-size:12px!important;
}
.schema-mini-badges{
  gap:3px!important;
}
.schema-mini-badges em{
  font-size:8.5px!important;
  padding:1px 5px!important;
  border-radius:999px!important;
}
.schema-columns{
  margin:1px 0 4px 20px!important;
  padding:2px 0 2px 9px!important;
  border:0!important;
  border-left:1px solid #dfe8f2!important;
  border-radius:0!important;
  background:transparent!important;
}
.schema-column-row{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr) 38px auto!important;
  gap:5px!important;
  min-height:29px!important;
  padding:3px 6px!important;
  border-radius:7px!important;
  font-size:12px!important;
}
.schema-column-row:hover{
  background:#f8fbff!important;
  box-shadow:none!important;
}
.column-icon{
  width:19px!important;
  height:19px!important;
  border-radius:6px!important;
  font-size:10px!important;
}
.schema-column-row.pk .column-icon{
  color:#d4a017!important;
  background:#fff8dc!important;
  border-color:#f1cf67!important;
}
.schema-column-row.fk .column-icon{
  color:#8b95a1!important;
  background:#f8fafc!important;
  border-color:#cbd5e1!important;
}
.schema-column-row.col .column-icon{
  color:#8fa2b8!important;
  background:#fff!important;
  border-color:#e2e8f0!important;
}
.column-name{
  font-size:12px!important;
  font-weight:700!important;
  color:#243044!important;
}
.column-kind{
  min-width:34px!important;
  padding:1px 5px!important;
  font-size:8.5px!important;
  line-height:1.35!important;
}
.column-type{
  max-width:88px!important;
  padding:2px 5px!important;
  font-size:9.5px!important;
  border-radius:6px!important;
  background:#fff!important;
}
.schema-empty-note{
  margin:5px 0!important;
  padding:8px!important;
  font-size:11px!important;
}
@media (max-width:980px){
  .schema-db-card{grid-template-columns:15px 25px minmax(0,1fr) auto!important;}
  .schema-db-metrics{display:none!important;}
  .schema-table-card{grid-template-columns:15px 23px minmax(0,1fr)!important;}
  .schema-mini-badges{grid-column:3!important;justify-content:flex-start!important;margin-top:1px!important;}
  .schema-column-row{grid-template-columns:22px minmax(0,1fr) 34px!important;}
  .column-type{grid-column:2 / -1!important;max-width:unset!important;width:max-content!important;}
}

/* v17.7.0 - correções de UX/UI solicitadas */
.topbar{height:56px;padding:0 18px}.topbar-left{min-width:0;flex:1}.topbar-right{gap:8px}.topbar .brand{min-width:240px}.topbar .top-pill{margin-left:auto}
.topbar .brand .brand-mark,.login-card .brand .brand-mark{background:#0b3d5c!important;color:#f2c94c!important;border-color:rgba(242,201,76,.38)!important}.topbar .brand .brand-mark i,.login-card .brand .brand-mark i{color:#f2c94c!important}
.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);color:#fff;border-radius:14px;padding:6px 9px 6px 7px;min-width:156px;max-width:235px;cursor:pointer;transition:.16s ease}.user-chip:hover,.user-menu.open .user-chip{background:rgba(255,255,255,.18)}.user-chip .avatar{width:30px;height:30px;flex:0 0 auto}.user-info{display:flex;flex-direction:column;min-width:0;text-align:left;line-height:1.1}.user-info strong{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.user-info small{font-size:9.5px;color:rgba(255,255,255,.7);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.user-caret{font-size:10px;color:rgba(255,255,255,.72);margin-left:auto}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 45px rgba(15,23,42,.18);padding:7px;display:none;z-index:40}.user-menu.open .user-dropdown{display:block}.user-dropdown button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#334155;text-align:left;padding:9px 10px;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer}.user-dropdown button:hover{background:#f1f5f9}.user-dropdown .danger{color:#dc2626}.user-dropdown .danger:hover{background:#fef2f2}
.sidebar{resize:horizontal;overflow:auto;min-width:260px;max-width:520px}.sidebar.collapsed{min-width:0;resize:none}.editor-section{resize:vertical;overflow:auto;min-height:220px;max-height:72vh;position:relative}.results-section{resize:vertical;overflow:auto;min-height:190px}.editor-section:after,.results-section:after,.sidebar:after{content:"";position:absolute;right:4px;bottom:4px;width:11px;height:11px;border-right:2px solid #cbd5e1;border-bottom:2px solid #cbd5e1;opacity:.7;pointer-events:none}.sidebar{position:relative}.editor-section:hover:after,.results-section:hover:after,.sidebar:hover:after{border-color:var(--sgbd-secondary);opacity:1}
.CodeMirror-overwrite .CodeMirror-cursor{border-left:1px solid #111!important}.CodeMirror{caret-color:var(--sgbd-primary)}
.schema-column-row.col .column-icon{background:color-mix(in srgb,var(--sgbd-primary) 13%,#fff)!important;border-color:color-mix(in srgb,var(--sgbd-primary) 30%,#dbeafe)!important;color:var(--sgbd-primary)!important;border-radius:999px!important}.schema-column-row.col .column-icon i{font-size:8px!important;color:var(--sgbd-primary)!important}.schema-column-row.col .column-kind{background:color-mix(in srgb,var(--sgbd-primary) 10%,#f8fafc)!important;color:var(--sgbd-primary)!important}.schema-column-row.pk .column-icon{border-radius:8px!important}.schema-column-row.fk .column-icon{border-radius:8px!important}.challenge.done{background:#f0fdf4;border-color:#86efac}.challenge.locked{opacity:.72;background:#f8fafc}.challenge.active{border-color:color-mix(in srgb,var(--sgbd-primary) 35%,#dbeafe);box-shadow:0 8px 20px rgba(15,23,42,.06)}.challenge small{display:inline-block;margin:8px 0 4px;color:#64748b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.challenge button:disabled{opacity:.55;cursor:not-allowed;background:#e2e8f0}
@media(max-width:1100px){.topbar .brand p{display:none}.topbar .brand{min-width:190px}.user-chip{min-width:118px}.user-info small{display:none}.topbar .top-pill span:first-child{display:none}}

/* v17.8.0 - painéis redimensionáveis por splitters reais */
.workspace{position:relative}
.sidebar{width:330px;flex:0 0 330px;resize:none!important;overflow:hidden!important;min-width:260px;max-width:560px}
.sidebar.collapsed{width:0!important;flex-basis:0!important;min-width:0!important;max-width:0!important;overflow:hidden!important}
.sidebar-resizer{width:8px;flex:0 0 8px;cursor:col-resize;background:linear-gradient(90deg,#f8fafc,#e2e8f0,#f8fafc);border-right:1px solid var(--border);position:relative;z-index:8;touch-action:none}
.sidebar-resizer::before{content:"";position:absolute;top:50%;left:50%;width:2px;height:42px;border-left:2px dotted #94a3b8;transform:translate(-50%,-50%);opacity:.55}
.sidebar-resizer:hover,.sidebar-resizer.dragging{background:color-mix(in srgb,var(--sgbd-primary) 12%,#f8fafc)}
.sidebar-resizer:hover::before,.sidebar-resizer.dragging::before{border-color:var(--sgbd-primary);opacity:1}
.main{min-width:320px;position:relative}
.editor-section{height:47%;flex:0 0 47%;resize:none!important;overflow:hidden!important;min-height:180px;max-height:none;margin-bottom:0}
.editor-results-resizer{height:9px;flex:0 0 9px;cursor:row-resize;background:linear-gradient(180deg,#fff,#e2e8f0,#fff);margin:0 12px;border-left:1px solid var(--border);border-right:1px solid var(--border);position:relative;z-index:7;touch-action:none}
.editor-results-resizer::before{content:"";position:absolute;left:50%;top:50%;width:54px;height:2px;border-top:2px dotted #94a3b8;transform:translate(-50%,-50%);opacity:.65}
.editor-results-resizer:hover,.editor-results-resizer.dragging{background:color-mix(in srgb,var(--sgbd-primary) 10%,#fff)}
.editor-results-resizer:hover::before,.editor-results-resizer.dragging::before{border-color:var(--sgbd-primary);opacity:1}
.results-section{flex:1 1 auto;resize:none!important;overflow:hidden!important;min-height:150px;margin-top:0}
.editor-section::after,.results-section::after,.sidebar::after{display:none!important}
body.is-resizing,body.is-resizing *{user-select:none!important;cursor:inherit!important}
body.resizing-sidebar{cursor:col-resize!important}
body.resizing-editor{cursor:row-resize!important}
.resize-hint{position:fixed;z-index:1000;background:#0f172a;color:white;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;box-shadow:0 10px 30px rgba(15,23,42,.25);pointer-events:none;transform:translate(-50%,-125%);white-space:nowrap}
@media(max-width:900px){.sidebar{width:280px;flex-basis:280px}.sidebar-resizer{width:6px;flex-basis:6px}.editor-section{min-height:160px}.results-section{min-height:140px}}

/* v17.9.0 - ajustes de topo, comandos, sidebar pedagógica e modo dark do editor */
.topbar{
  gap:28px!important;
}
.topbar-left{
  gap:24px!important;
  padding-right:22px!important;
}
.topbar-right{
  margin-left:26px!important;
  padding-left:10px!important;
}
.topbar .top-pill{
  margin-left:clamp(18px,3vw,54px)!important;
  margin-right:22px!important;
  min-width:230px!important;
  justify-content:center!important;
  border-radius:18px!important;
  padding:9px 15px!important;
}
.top-pill span{
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
}
.top-pill select{
  font-size:13px!important;
}
.user-chip{
  min-width:228px!important;
  max-width:300px!important;
  padding:7px 14px 7px 8px!important;
  border-radius:19px!important;
  gap:13px!important;
}
.user-chip .avatar{
  width:42px!important;
  height:42px!important;
  font-size:20px!important;
}
.user-info strong{
  max-width:180px!important;
  font-size:15px!important;
  line-height:1.05!important;
}
.user-info small{
  font-size:11px!important;
  line-height:1.05!important;
}
.sql-native,
.CodeMirror .cm-keyword,
.CodeMirror .cm-builtin,
.CodeMirror .cm-atom{
  font-weight:900!important;
}
#cmd-syntax .sql-native,
#cmd-example .sql-native,
#cmd-anatomy .sql-native{
  color:var(--sql-keyword)!important;
  font-weight:900!important;
}
#cmd-anatomy{
  display:block!important;
  white-space:normal!important;
  line-height:1.65!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  border-radius:12px!important;
  padding:12px!important;
  color:#334155!important;
}
#cmd-syntax,
#cmd-example{
  line-height:1.55!important;
}
.side-panel-title{
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
  padding:11px 12px;
  margin-bottom:10px;
  color:#0f172a;
}
.side-panel-title i{color:var(--sgbd-primary)}
.side-panel-title strong{font-size:13px;line-height:1}
.side-panel-title span{
  margin-left:auto;
  background:color-mix(in srgb,var(--sgbd-primary) 10%,#fff);
  color:var(--sgbd-primary);
  border:1px solid color-mix(in srgb,var(--sgbd-primary) 20%,#dbeafe);
  border-radius:999px;
  padding:4px 8px;
  font-size:10px;
  font-weight:900;
}
.side-panel-note{
  margin:0 0 12px;
  color:#64748b;
  font-size:11px;
  line-height:1.45;
}
.side-stack{display:flex;flex-direction:column;gap:9px}
.side-stack .challenge,
.side-stack .learn{
  margin-bottom:0!important;
  padding:11px!important;
  border-radius:13px!important;
}
.side-stack .challenge p,
.side-stack .learn p{
  font-size:11px!important;
  line-height:1.45!important;
}
.side-stack .challenge button{
  margin-top:6px!important;
  margin-right:5px!important;
}
.side-stack .learn span{
  width:24px!important;
  height:24px!important;
  border-radius:8px!important;
  margin-bottom:6px!important;
}
.side-feedback{margin-top:12px;font-size:11px;line-height:1.45}
#nav-challenges.active{color:#b45309!important;background:#fffbeb!important}
#nav-learning.active{color:#2563eb!important;background:#eff6ff!important}
#nav-editor-dark.active{color:#f59e0b!important;background:#fffbeb!important}
.editor-dark .editor-section,
.editor-dark .editor-wrap,
.editor-dark .CodeMirror,
.editor-dark .CodeMirror-gutters{
  background:#0f172a!important;
  color:#e5e7eb!important;
}
.editor-dark .CodeMirror-gutters{
  border-right:1px solid #334155!important;
}
.editor-dark .CodeMirror-linenumber{color:#94a3b8!important}
.editor-dark .CodeMirror-cursor{border-left-color:#e5e7eb!important}
.editor-dark .CodeMirror-selected{background:#334155!important}
.editor-dark .CodeMirror .cm-keyword{color:#60a5fa!important;font-weight:900!important}
.editor-dark .CodeMirror .cm-string{color:#fca5a5!important}
.editor-dark .CodeMirror .cm-number{color:#86efac!important}
.editor-dark .CodeMirror .cm-comment{color:#94a3b8!important}
.editor-dark .CodeMirror .cm-variable,
.editor-dark .CodeMirror .cm-def,
.editor-dark .CodeMirror .cm-property{color:#e5e7eb!important}
@media(max-width:1160px){
  .topbar{gap:12px!important}.topbar-left{gap:12px!important;padding-right:8px!important}.topbar-right{margin-left:10px!important}.topbar .top-pill{margin-left:8px!important;margin-right:8px!important;min-width:170px!important}.user-chip{min-width:160px!important}.user-info strong{max-width:110px!important;font-size:12px!important}.user-chip .avatar{width:32px!important;height:32px!important;font-size:15px!important}
}


/* v17.10.0 - correções de formatação, tema global e desafios */
.topbar-right{gap:24px!important}
.theme-toggle{
  display:inline-flex;align-items:center;gap:8px;
  height:40px;padding:0 14px;border-radius:999px;
  border:1px solid rgb(255 255 255 / .22);
  background:rgb(255 255 255 / .10);color:#fff;
  font-size:12px;font-weight:900;cursor:pointer;
}
.theme-toggle:hover,.theme-toggle.active{background:rgb(255 255 255 / .18)}
.CodeMirror-cursor{border-left:1px solid #0f172a!important;border-right:0!important;width:0!important}
.app-dark{background:#0b1120!important;color:#e5e7eb!important}
.app-dark .workspace,.app-dark .main{background:#0b1120!important}
.app-dark .sidebar,.app-dark .icon-rail,.app-dark .tabs,.app-dark .bottom-tabs,.app-dark .toolbar,.app-dark .results-section,.app-dark .editor-section,.app-dark .pane,.app-dark .modal-card{background:#111827!important;color:#e5e7eb!important;border-color:#334155!important}
.app-dark .side-head,.app-dark .search input,.app-dark .tree-row,.app-dark .main-tab,.app-dark .result-table,.app-dark .comparison,.app-dark .history-card,.app-dark .cmd-group button,.app-dark .challenge,.app-dark .learn,.app-dark .model-card,.app-dark .explain-step{background:#1f2937!important;color:#e5e7eb!important;border-color:#334155!important}
.app-dark .tree-row:hover,.app-dark .result-table tr:hover td,.app-dark .btn:hover{background:#253244!important}
.app-dark .btn{background:#1f2937!important;color:#e5e7eb!important;border-color:#334155!important}
.app-dark .btn.primary{background:var(--sgbd-primary)!important;color:#fff!important;border-color:var(--sgbd-primary)!important}
.app-dark .CodeMirror,.app-dark .CodeMirror-gutters{background:#0f172a!important;color:#e5e7eb!important;border-color:#334155!important}
.app-dark .CodeMirror-linenumber{color:#94a3b8!important}
.app-dark .CodeMirror-cursor{border-left-color:#f8fafc!important}
.app-dark .CodeMirror-selected{background:#334155!important}
.app-dark .CodeMirror .cm-keyword{color:#60a5fa!important;font-weight:900!important}
.app-dark .CodeMirror .cm-string{color:#fca5a5!important}
.app-dark .CodeMirror .cm-number{color:#86efac!important}
.app-dark .CodeMirror .cm-comment{color:#94a3b8!important}
.app-dark .CodeMirror .cm-variable,.app-dark .CodeMirror .cm-def,.app-dark .CodeMirror .cm-property{color:#e5e7eb!important}
.app-dark .bottom-tabs button.active{background:#111827!important;color:var(--sgbd-primary)!important;border-top-color:var(--sgbd-primary)!important}
.challenge.revealed{background:#fff7ed!important;border-color:#fdba74!important;color:#9a3412!important}
.app-dark .challenge.revealed{background:#432b16!important;border-color:#9a5a16!important;color:#fed7aa!important}
/* neutraliza classe antiga de modo somente editor caso exista no navegador */
.editor-dark .editor-section,.editor-dark .editor-wrap,.editor-dark .CodeMirror,.editor-dark .CodeMirror-gutters{background:inherit;color:inherit}

/* v17.11.0 - contraste, histórico e busca fixa */
#side-commands .search{position:sticky;top:0;z-index:8;background:var(--panel);padding-bottom:10px;margin-top:-2px}
.history-card.history-success{border-left:4px solid #22c55e}
.history-card.history-error{border-left:4px solid #ef4444}
.history-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.history-status.ok-status{background:#dcfce7;color:#166534}
.history-status.error-status{background:#fee2e2;color:#991b1b}
.history-message{margin:6px 0 8px;color:#64748b}
.tool-theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px}

/* Tema escuro de alto contraste sem alterar a identidade do SGBD */
.app-dark{--panel:#111827;--soft:#182233;--border:#3b4a61;--text:#f8fafc;--muted:#cbd5e1;background:#0b1120!important;color:#f8fafc!important}
.app-dark .workspace,.app-dark .main{background:#0b1120!important;color:#f8fafc!important}
.app-dark .sidebar,.app-dark .icon-rail,.app-dark .tabs,.app-dark .bottom-tabs,.app-dark .toolbar,.app-dark .results-section,.app-dark .editor-section,.app-dark .pane,.app-dark .modal-card{background:#111827!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .side-head,.app-dark .main-tab,.app-dark .history-card,.app-dark .cmd-group button,.app-dark .challenge,.app-dark .learn,.app-dark .model-card,.app-dark .explain-step,.app-dark .modeling-db-card,.app-dark .schema-db-card,.app-dark .schema-table-card{background:#1f2937!important;color:#f8fafc!important;border-color:#3b4a61!important}
.app-dark .search input{background:#0f172a!important;color:#f8fafc!important;border-color:#475569!important}
.app-dark .search input::placeholder{color:#94a3b8!important}
.app-dark .side-head h2,.app-dark .cmd-group h4,.app-dark .row-count,.app-dark .history-card small,.app-dark .cmd-group small,.app-dark .side-panel-note,.app-dark .empty,.app-dark .schema-table-main small,.app-dark .schema-db-main small{color:#cbd5e1!important}
.app-dark .btn{background:#1f2937!important;color:#f8fafc!important;border-color:#475569!important}
.app-dark .btn:hover,.app-dark .tree-row:hover,.app-dark .result-table tr:hover td{background:#2b3a50!important}
.app-dark .btn.primary{background:var(--sgbd-primary)!important;color:#fff!important;border-color:var(--sgbd-primary)!important}
.app-dark .result-table{background:#111827!important;border-color:#475569!important;color:#f8fafc!important}
.app-dark .result-table th{background:#243244!important;color:#f8fafc!important;border-color:#475569!important}
.app-dark .result-table td{border-color:#334155!important;color:#e5e7eb!important}
.app-dark .bottom-tabs button{color:#cbd5e1!important}
.app-dark .bottom-tabs button.active{background:#182233!important;color:#fff!important;border-top-color:var(--sgbd-accent)!important}
.app-dark .CodeMirror,.app-dark .CodeMirror-gutters{background:#0f172a!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .CodeMirror-linenumber{color:#cbd5e1!important}
.app-dark .CodeMirror-cursor{border-left-color:#fff!important;border-left-width:1px!important}
.app-dark .CodeMirror-selected{background:#334155!important}
.app-dark .CodeMirror .cm-keyword{color:#7dd3fc!important;font-weight:900!important}
.app-dark .CodeMirror .cm-string{color:#fca5a5!important}
.app-dark .CodeMirror .cm-number{color:#86efac!important}
.app-dark .CodeMirror .cm-comment{color:#cbd5e1!important}
.app-dark .CodeMirror .cm-variable,.app-dark .CodeMirror .cm-def,.app-dark .CodeMirror .cm-property{color:#f8fafc!important}
.app-dark .modal-body,.app-dark .modal-foot{background:#111827!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .modal-body pre,.app-dark .code-block,.app-dark .test-log{background:#020617!important;color:#d1fae5!important}
.app-dark .history-status.ok-status{background:#14532d;color:#bbf7d0}
.app-dark .history-status.error-status{background:#7f1d1d;color:#fecaca}
.app-dark #side-commands .search{background:#111827!important}

/* v17.13.0, padronização SQL e painel Ferramentas */
#side-commands .search{
  position:sticky;
  top:0;
  z-index:5;
  background:#fff;
  padding-bottom:8px;
  margin-top:-2px;
}
.sql-code{
  font-family:JetBrains Mono,Fira Code,Consolas,monospace!important;
  white-space:pre-wrap!important;
  line-height:1.55!important;
}
.history-card code.sql-code,
.cmd-group small.sql-code,
#cmd-syntax,
#cmd-example{
  border:1px solid var(--border)!important;
  background:#0f172a!important;
  color:#dbeafe!important;
  border-radius:10px!important;
}
.cmd-group small.sql-code{
  display:block!important;
  width:100%!important;
  padding:7px 8px!important;
  margin-top:6px!important;
  color:#dbeafe!important;
}
.history-card code.sql-code{
  padding:9px 10px!important;
}
#cmd-syntax .sql-native,
#cmd-example .sql-native,
.history-card code.sql-code .sql-native,
.cmd-group small.sql-code .sql-native{
  color:var(--sql-keyword)!important;
  font-weight:900!important;
}
.tool-theme-toggle{
  min-height:42px;
  border-color:var(--sgbd-secondary)!important;
}
.tool-theme-toggle.active{
  background:#0f172a!important;
  color:#fff!important;
}
.app-dark #side-commands .search{
  background:#111827!important;
}
.app-dark .history-card code.sql-code,
.app-dark .cmd-group small.sql-code,
.app-dark #cmd-syntax,
.app-dark #cmd-example{
  background:#020617!important;
  color:#e0f2fe!important;
  border-color:#334155!important;
}

/* v17.14.0 - abas de query, salvar/abrir SQL, dropdown SGBD e syntax color comum */
.query-tabs-bar{gap:6px;padding-left:10px;overflow:hidden}
.query-tabs-list{display:flex;align-items:stretch;gap:4px;min-width:0;overflow-x:auto;max-width:calc(100% - 120px);height:44px}
.query-tab{display:flex;align-items:center;height:44px;background:#f8fafc;border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden;min-width:128px;max-width:230px;color:#334155}
.query-tab.active{background:#fff;border-top:3px solid var(--sgbd-primary);color:var(--sgbd-primary);font-weight:900}
.query-tab-main{display:flex;align-items:center;gap:7px;min-width:0;flex:1;height:100%;border:0;background:transparent;color:inherit;font-size:12px;font-weight:900;padding:0 10px;cursor:pointer}
.query-tab-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.query-tab-main span:hover{text-decoration:underline;text-decoration-style:dotted}
.query-tab-close{width:30px;height:100%;border:0;background:transparent;color:#64748b;cursor:pointer}.query-tab-close:hover{background:#fee2e2;color:#991b1b}
.query-tab-add{height:32px;width:34px;border:1px dashed var(--border);background:#fff;color:var(--sgbd-primary);border-radius:10px;font-weight:900;cursor:pointer}.query-tab-add:hover{background:#eef6ff;border-color:var(--sgbd-secondary)}
.dialect-pill{margin-left:42px!important;margin-right:42px!important;min-width:240px!important;position:relative!important;z-index:30!important;overflow:visible!important}.dialect-pill select{min-width:142px!important;appearance:auto!important;cursor:pointer!important;padding:3px 20px 3px 4px!important;border-radius:8px!important}.dialect-pill option{background:#fff!important;color:#0f172a!important;font-weight:700!important}.user-menu{position:relative;z-index:20!important}
.modeling-summary{border:1px solid var(--border);background:linear-gradient(0deg,#fff,#fff);border-radius:14px;padding:12px 14px;margin-bottom:12px;color:#334155}.modeling-summary strong{display:block;color:var(--sgbd-primary);font-size:14px;margin-bottom:4px}.modeling-summary p{margin:0;color:#64748b;font-size:12px;line-height:1.45}.ddl-details{margin-top:14px;border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.ddl-details summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:900;color:var(--sgbd-primary);background:#f8fafc;border-bottom:1px solid var(--border)}.ddl-details:not([open]) summary{border-bottom:0}.ddl-details .code-block{margin:0;border-radius:0;max-height:280px}
.sql-token-keyword{color:var(--sql-keyword)!important;font-weight:950!important}.sql-token-function{color:#7c3aed!important;font-weight:950!important}.sql-token-string{color:#dc2626!important}.sql-token-number{color:#16a34a!important}.sql-token-comment{color:#64748b!important;font-style:italic}.CodeMirror .cm-keyword{color:var(--sql-keyword)!important;font-weight:950!important}.CodeMirror .cm-builtin{color:#7c3aed!important;font-weight:950!important}.CodeMirror .cm-string{color:#dc2626!important}.CodeMirror .cm-number{color:#16a34a!important}.CodeMirror .cm-comment{color:#64748b!important;font-style:italic}.CodeMirror .cm-variable,.CodeMirror .cm-def,.CodeMirror .cm-property{font-weight:650}
.app-dark .query-tab{background:#1f2937!important;color:#e5e7eb!important;border-color:#334155!important}.app-dark .query-tab.active{background:#111827!important;color:#fff!important;border-top-color:var(--sgbd-accent)!important}.app-dark .query-tab-add{background:#1f2937!important;color:#fff!important;border-color:#475569!important}.app-dark .query-tab-close:hover{background:#7f1d1d!important;color:#fecaca!important}.app-dark .modeling-summary,.app-dark .ddl-details{background:#111827!important;color:#f8fafc!important;border-color:#334155!important}.app-dark .modeling-summary p{color:#cbd5e1!important}.app-dark .ddl-details summary{background:#1f2937!important;color:#fff!important;border-color:#334155!important}.app-dark .sql-token-keyword{color:#7dd3fc!important}.app-dark .sql-token-function{color:#c4b5fd!important}.app-dark .sql-token-string{color:#fca5a5!important}.app-dark .sql-token-number{color:#86efac!important}.app-dark .sql-token-comment{color:#cbd5e1!important}
@media(max-width:1160px){.dialect-pill{margin-left:12px!important;margin-right:12px!important;min-width:185px!important}.query-tabs-list{max-width:calc(100% - 95px)}.query-tab{min-width:112px}}


/* v17.16.0 - estabilidade das abas, modo claro/escuro em Ferramentas e tabela redimensionável */
.query-tabs-bar{
  flex:0 0 44px!important;
  min-height:44px!important;
  max-height:44px!important;
  position:relative!important;
  z-index:6!important;
  overflow:hidden!important;
}
.query-tabs-list{
  height:44px!important;
  align-items:flex-end!important;
}
.query-tab,.query-tab-main,.query-tab-close{
  transform:none!important;
}
.editor-section{
  flex-shrink:0!important;
}
.tool-theme-toggle{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:44px!important;
  margin-bottom:10px!important;
  border:1px solid color-mix(in srgb,var(--sgbd-primary) 35%,#cbd5e1)!important;
  background:#ffffff!important;
  color:#0f172a!important;
  box-shadow:0 6px 16px rgba(15,23,42,.06)!important;
}
.tool-theme-toggle i{color:var(--sgbd-primary)!important}
.tool-theme-toggle.active{
  background:#0f172a!important;
  color:#f8fafc!important;
  border-color:#475569!important;
}
.tool-theme-toggle.active i{color:#facc15!important}
.app-dark .tool-theme-toggle{
  background:#1f2937!important;
  color:#f8fafc!important;
  border-color:#475569!important;
}
#result-wrap{
  display:block;
  flex:1 1 auto;
  min-height:0;
  height:100%;
  max-height:100%;
  overflow:auto!important;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
#result-wrap.hidden{display:none!important}
.result-table{
  table-layout:fixed!important;
  width:max-content!important;
  min-width:100%!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
}
.result-table thead th,
.result-table th{
  position:sticky!important;
  top:0!important;
  z-index:12!important;
  background:#f1f5f9!important;
  box-shadow:0 1px 0 var(--border),0 2px 8px rgba(15,23,42,.06)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  padding-right:18px!important;
}
.result-table td{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.result-col-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.result-col-resizer{
  position:absolute;
  top:0;
  right:0;
  width:8px;
  height:100%;
  cursor:col-resize;
  border-right:2px solid transparent;
}
.result-col-resizer:hover{border-right-color:var(--sgbd-primary);background:color-mix(in srgb,var(--sgbd-primary) 10%,transparent)}
body.resizing-result-column,body.resizing-result-column *{cursor:col-resize!important;user-select:none!important}
.app-dark #result-wrap{background:#111827!important;border-color:#334155!important}
.app-dark .result-table th{background:#1f2937!important;color:#f8fafc!important;box-shadow:0 1px 0 #334155!important}
.app-dark .result-table td{color:#e5e7eb!important;border-color:#334155!important}
.app-dark .result-table tr:hover td{background:#172033!important}

/* v17.17.0 - correções de contraste no schema, histórico e resize de resultados */
.app-dark .schema-db-main strong,
.app-dark .schema-table-main span,
.app-dark .column-name{
  color:#f8fafc!important;
}
.app-dark .schema-db-main small,
.app-dark .schema-table-main small{
  color:#cbd5e1!important;
}
.app-dark .column-type{
  background:#0f172a!important;
  color:#dbeafe!important;
  border-color:#475569!important;
}
.app-dark .column-kind{
  color:#f8fafc!important;
  border-color:#475569!important;
}
.app-dark .schema-column-row.col .column-kind{
  background:color-mix(in srgb,var(--sgbd-primary) 22%,#0f172a)!important;
  color:#e0f2fe!important;
}
.app-dark .schema-column-row.pk .column-kind,
.app-dark .schema-column-row.pk .column-icon{
  background:#3b2f0b!important;
  color:#fde68a!important;
  border-color:#ca8a04!important;
}
.app-dark .schema-column-row.fk .column-kind,
.app-dark .schema-column-row.fk .column-icon{
  background:#1f2937!important;
  color:#e5e7eb!important;
  border-color:#94a3b8!important;
}
.app-dark .schema-column-row:hover{
  background:#172033!important;
}
.app-dark .history-card button{
  background:#1d4ed8!important;
  color:#ffffff!important;
  border:1px solid #60a5fa!important;
  box-shadow:0 4px 12px rgba(0,0,0,.22)!important;
}
.app-dark .history-card button:hover{
  background:#2563eb!important;
  color:#ffffff!important;
}
.history-card.history-error button{
  border-color:#fecaca;
}
.result-table col{width:var(--col-width,140px)}
.result-table th,.result-table td{box-sizing:border-box!important;max-width:none!important}
.result-col-resizer{
  width:14px!important;
  right:-2px!important;
  z-index:25!important;
  touch-action:none!important;
}
.result-col-resizer::after{
  content:"";
  position:absolute;
  top:8px;
  bottom:8px;
  right:5px;
  border-right:2px dotted #94a3b8;
  opacity:.72;
}
.result-col-resizer:hover::after,
body.resizing-result-column .result-col-resizer::after{
  border-right-color:var(--sgbd-primary);
  opacity:1;
}

/* v17.18.0 - refinamento schema, dropdown SGBD, topbar e resize de resultados */
.topbar{padding:0 14px!important}
.topbar-left{gap:18px!important}
.topbar-right{gap:10px!important;margin-left:8px!important}
#dialect-picker.dialect-pill{
  margin-left:18px!important;
  margin-right:6px!important;
  min-width:220px!important;
  height:42px;
  padding:0 10px!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.10)!important;
  border:0!important;
  box-shadow:none!important;
  position:relative!important;
  z-index:80!important;
}
.native-dialect-hidden{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.dialect-button{
  display:flex;align-items:center;gap:9px;
  height:36px;min-width:142px;
  border:0;background:transparent;color:#fff;
  font-weight:900;font-size:13px;cursor:pointer;
  padding:0 4px;border-radius:10px;outline:0;
}
.dialect-button:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.24)}
.dialect-caret{margin-left:auto;font-size:11px;color:rgba(255,255,255,.86)}
.dialect-icon{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;background:#fef3c7;color:#d4a017;border:1px solid rgba(242,201,76,.55)}
.mysql-icon{background:#fff7d6;color:#d4a017;border-color:#f2c94c}.mariadb-icon{background:#ccfbf1;color:#0f766e;border-color:#5eead4}.postgres-icon{background:#dbeafe;color:#305a83;border-color:#93c5fd}.sqlserver-icon{background:#dbeafe;color:#0078d4;border-color:#93c5fd}.oracle-icon{background:#fee2e2;color:#b3261e;border-color:#fca5a5}
.dialect-menu{
  position:absolute;right:0;top:48px;width:255px;
  background:#fff;color:#172033;border:1px solid #e5e7eb;
  border-radius:14px;box-shadow:0 20px 50px rgba(15,23,42,.22);
  padding:7px;z-index:120;
}
.dialect-option{
  width:100%;display:flex;align-items:center;gap:11px;
  background:#fff;border:0;border-radius:10px;padding:9px 10px;
  color:#334155;text-align:left;cursor:pointer;
}
.dialect-option:hover,.dialect-option.active{background:#f8fafc}
.dialect-option strong{display:block;font-size:12px;color:#0f172a;line-height:1.1}.dialect-option small{display:block;font-size:10px;color:#64748b;margin-top:2px}.dialect-option.active strong{color:var(--sgbd-primary)}
.user-chip{border:0!important;background:transparent!important;box-shadow:none!important;min-width:150px!important;padding:4px 6px!important}
.user-chip:hover{background:rgba(255,255,255,.08)!important}.user-info strong{max-width:100px!important}.user-dropdown{border-radius:14px!important;border:1px solid #e5e7eb!important;box-shadow:0 18px 42px rgba(15,23,42,.18)!important}

/* schema, sem efeitos visuais agressivos */
.schema-db{border:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.schema-db:hover{border-color:transparent!important;box-shadow:none!important;transform:none!important}
.schema-db-card{border:0!important;box-shadow:none!important;cursor:pointer!important}
.schema-db-card:hover,.schema-table-card:hover,.schema-column-row:hover{background:inherit!important;box-shadow:none!important;border-color:transparent!important}
.schema-table-card{border:0!important;box-shadow:none!important;background:transparent!important;cursor:pointer!important}
.schema-table:before{background:#cbd5e1!important}.schema-db-content{border-top:0!important;background:transparent!important}.schema-columns{border:0!important;background:transparent!important;padding:3px 4px!important;margin-top:3px!important}.schema-column-row{cursor:default!important}.schema-db-card,.schema-table-card{user-select:none}.schema-db-card:hover .schema-db-main strong,.schema-table-card:hover .schema-table-main span{text-decoration:none!important}
.schema-db.active>.schema-db-card{background:#dcfce7!important;color:#14532d!important;outline:2px solid #22c55e!important;outline-offset:0!important;border-radius:16px!important}.schema-db.active .schema-db-main strong{color:#14532d!important}.schema-db.active .schema-db-main small{color:#64748b!important}.schema-db.active .schema-expander{color:#475569!important}
.schema-mini-badges em,.schema-db-metrics{box-shadow:none!important}

/* histórico com status distante da data */
.history-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.history-head .history-meta{margin-left:2px;color:#64748b!important}.history-status{flex:0 0 auto}

/* tabela de resultados: resize mais previsível */
#result-wrap{position:relative!important;overflow:auto!important}.result-table{border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important}.result-table th{position:sticky!important;top:0!important;overflow:visible!important}.result-table th,.result-table td{border-right:1px solid var(--border)!important}.result-col-resizer{position:absolute!important;top:0!important;right:-7px!important;width:16px!important;height:100%!important;cursor:col-resize!important;z-index:40!important;background:transparent!important;border:0!important}.result-col-resizer::before{content:"";position:absolute;inset:0}.result-col-resizer::after{content:"";position:absolute;top:7px;bottom:7px;left:7px;border-right:2px solid transparent;opacity:1}.result-col-resizer:hover::after,body.resizing-result-column .result-col-resizer::after{border-right-color:var(--sgbd-primary)!important}.result-resize-guide{position:fixed;width:2px;background:var(--sgbd-primary);z-index:9999;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.75)}

/* dark mode refinado */
.app-dark .dialect-menu{background:#111827!important;border-color:#334155!important;color:#f8fafc!important}.app-dark .dialect-option{background:#111827!important;color:#f8fafc!important}.app-dark .dialect-option:hover,.app-dark .dialect-option.active{background:#1f2937!important}.app-dark .dialect-option strong{color:#f8fafc!important}.app-dark .dialect-option small{color:#cbd5e1!important}.app-dark .user-chip{background:transparent!important;border:0!important;box-shadow:none!important}.app-dark .user-chip:hover{background:rgba(255,255,255,.06)!important}
.app-dark .schema-db{background:transparent!important;border:0!important;box-shadow:none!important}.app-dark .schema-db-card,.app-dark .schema-table-card,.app-dark .schema-columns{background:transparent!important;border:0!important;box-shadow:none!important}.app-dark .schema-db-card:hover,.app-dark .schema-table-card:hover,.app-dark .schema-column-row:hover{background:transparent!important;box-shadow:none!important}
.app-dark .schema-db.active>.schema-db-card{background:#064e3b!important;outline:2px solid #34d399!important;color:#ecfdf5!important}.app-dark .schema-db.active .schema-db-main strong{color:#ecfdf5!important}.app-dark .schema-db.active .schema-db-main small{color:#d1fae5!important}.app-dark .schema-db.active .schema-expander{color:#d1fae5!important}.app-dark .active-flag{background:#22c55e!important;color:#062b17!important}.app-dark .schema-db-metrics{background:#102033!important;border-color:#475569!important;color:#cbd5e1!important}.app-dark .schema-db-metrics b{color:#fff!important}.app-dark .schema-table:before{background:#64748b!important}.app-dark .schema-table-icon{background:#dbeafe!important;color:#2563eb!important;border-color:#93c5fd!important}.app-dark .schema-mini-badges em{background:#f1f5f9!important;color:#475569!important;border-color:#dbe4ef!important}.app-dark .schema-mini-badges .mini-pk{background:#fff7d6!important;color:#92400e!important;border-color:#facc15!important}.app-dark .schema-mini-badges .mini-fk{background:#eef2f7!important;color:#334155!important;border-color:#cbd5e1!important}.app-dark .column-icon{background:#111827!important;border-color:#475569!important}.app-dark .schema-column-row.col .column-icon{background:var(--sgbd-primary)!important;color:#fff!important;border-color:var(--sgbd-primary)!important}.app-dark .column-name{color:#f8fafc!important}.app-dark .column-type{background:#0b1220!important;color:#dbeafe!important}.app-dark .history-head .history-meta{color:#cbd5e1!important}.app-dark .result-resize-guide{background:var(--sgbd-accent)!important}
@media(max-width:1160px){#dialect-picker.dialect-pill{margin-left:8px!important;margin-right:4px!important;min-width:190px!important}.dialect-menu{right:auto;left:0}.user-chip{min-width:136px!important}}

/* v17.20.0 - modelagem limpa e modo Design+Code redimensionável */
#dialect-picker.dialect-pill{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  min-width:auto!important;
  width:auto!important;
  margin-left:auto!important;
  margin-right:10px!important;
  padding:0!important;
  gap:8px!important;
}
#dialect-picker.dialect-pill>span{
  color:#fff!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  font-size:13px!important;
}
.dialect-button{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  min-width:122px!important;
  height:40px!important;
  padding:0 4px!important;
}
.dialect-button:hover,.dialect-button[aria-expanded="true"]{background:transparent!important;box-shadow:none!important}
.dialect-button:focus,.dialect-button:active{outline:0!important;box-shadow:none!important}
.topbar-left{flex:1!important}.topbar-right{margin-left:0!important}.user-chip{margin-left:4px!important}.dialect-menu{right:0!important;left:auto!important;top:46px!important;border-radius:0!important;border:0!important;box-shadow:0 16px 40px rgba(15,23,42,.22)!important;padding:6px!important}.dialect-option{border-radius:0!important}.dialect-option:hover,.dialect-option.active{background:#f3f4f6!important}
.postgres-icon{background:#dbeafe!important;color:#336791!important;border-color:#93c5fd!important}.postgres-icon::before{content:"PG";font-size:10px;font-weight:900;letter-spacing:-.02em}.postgres-icon i{display:none!important}.mysql-icon::after{content:"MY";font-size:9px;font-weight:900;position:absolute;opacity:.001}.mariadb-icon::after{content:"MA";font-size:9px;font-weight:900;position:absolute;opacity:.001}.sqlserver-icon::after{content:"MS";font-size:9px;font-weight:900;position:absolute;opacity:.001}.oracle-icon::after{content:"OR";font-size:9px;font-weight:900;position:absolute;opacity:.001}

.query-mode-tabs{height:38px;display:flex;align-items:center;gap:6px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid var(--border);flex:0 0 auto}.query-mode-tab{height:26px;border:0;background:transparent;color:#64748b;border-radius:8px;padding:0 12px;font-size:12px;font-weight:900;cursor:pointer}.query-mode-tab.active{background:var(--sgbd-primary);color:#fff}.query-mode-tab:hover:not(.active){background:#e2e8f0;color:#172033}.editor-wrap{position:relative}.query-mode-panel{position:absolute;inset:0;min-height:0}.code-panel{display:block}.design-panel,.designcode-panel{background:#fff;overflow:auto;padding:16px}.design-empty{height:100%;min-height:180px;border:1px dashed var(--border);border-radius:16px;display:grid;place-items:center;text-align:center;color:#64748b;padding:24px}.design-empty i{font-size:32px;color:var(--sgbd-primary);margin-bottom:8px}.design-empty strong{display:block;color:#172033;font-size:16px}.design-empty p{max-width:560px;margin:6px auto 0;font-size:13px;line-height:1.5}.query-mode-panel.hidden{display:none!important}

.app-dark .query-mode-tabs{background:#111827!important;border-color:#334155!important}.app-dark .query-mode-tab{color:#cbd5e1!important}.app-dark .query-mode-tab.active{background:var(--sgbd-primary)!important;color:#fff!important}.app-dark .query-mode-tab:hover:not(.active){background:#1f2937!important;color:#fff!important}.app-dark .design-panel,.app-dark .designcode-panel{background:#0b1220!important}.app-dark .design-empty{background:#111827!important;border-color:#475569!important;color:#cbd5e1!important}.app-dark .design-empty strong{color:#f8fafc!important}

.app-dark .bottom-tabs{background:#0f172a!important;border-color:#334155!important}.app-dark .bottom-tabs button{color:#cbd5e1!important}.app-dark .bottom-tabs button.active{background:#111827!important;color:#f8fafc!important;border-top-color:var(--sgbd-accent)!important}.app-dark .pane{background:#0b1220!important;color:#f8fafc!important}.app-dark .explain-step,.app-dark .modeling-summary,.app-dark .model-card,.app-dark .challenge,.app-dark .learn{background:#111827!important;border-color:#475569!important;color:#f8fafc!important}.app-dark .explain-step strong,.app-dark .modeling-summary strong,.app-dark .model-card h4,.app-dark .learn strong{color:#f8fafc!important}.app-dark .explain-step p,.app-dark .modeling-summary p,.app-dark .model-card p,.app-dark .learn p{color:#dbe4ef!important}.app-dark .model-card span{background:#1f2937!important;border:1px solid #334155!important;color:#f8fafc!important}.app-dark .model-card span small{color:#cbd5e1!important}.app-dark .comparison{background:#111827!important;border-color:#475569!important;color:#f8fafc!important}.app-dark .comparison th{background:#1f2937!important;color:#ffffff!important;border-color:#64748b!important}.app-dark .comparison td{background:#111827!important;color:#f8fafc!important;border-color:#475569!important}.app-dark .comparison tr:nth-child(even) td{background:#172033!important}.app-dark .empty{color:#cbd5e1!important}.app-dark .dialect-menu{background:#fff!important;color:#172033!important}.app-dark .dialect-option{background:#fff!important;color:#334155!important}.app-dark .dialect-option strong{color:#0f172a!important}.app-dark .dialect-option small{color:#64748b!important}.app-dark .dialect-option:hover,.app-dark .dialect-option.active{background:#f3f4f6!important}


/* v17.20.0 - Modelagem sem bloco introdutório e Design+Code split */
#pane-modeling .modeling-summary{display:none!important}
.designcode-panel{padding:0!important;overflow:hidden!important;background:#fff}
.designcode-split{height:100%;width:100%;display:flex;min-height:0;background:#fff}
.designcode-design,.designcode-code{min-width:0;min-height:0;overflow:auto;background:#fff;display:flex;flex-direction:column}
.designcode-design{flex:0 0 50%;padding:14px;border-right:1px solid var(--border)}
.designcode-code{flex:1;padding:0;background:#0f172a;color:#f8fafc}
.designcode-pane-head{height:38px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#334155;flex:0 0 auto;border-bottom:1px solid var(--border);padding:0 10px;background:#f8fafc}
.designcode-code .designcode-pane-head{background:#111827;color:#f8fafc;border-color:#334155}
.designcode-divider{width:9px;flex:0 0 9px;cursor:col-resize;background:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0);position:relative}
.designcode-divider::after{content:"";position:absolute;inset:30% 3px;border-left:1px dotted #64748b;border-right:1px dotted #64748b}
.designcode-divider:hover,.designcode-divider.dragging{background:color-mix(in srgb,var(--sgbd-primary) 18%,#e2e8f0)}
#designcode-sql-editor{flex:1;width:100%;min-height:0;border:0;resize:none;outline:0;background:#0f172a;color:#f8fafc;font:14px/1.55 JetBrains Mono,Fira Code,Consolas,monospace;padding:14px;tab-size:2}
#designcode-model-cards.compact{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
#designcode-model-cards .model-card{margin:0}
.app-dark .designcode-panel,.app-dark .designcode-split,.app-dark .designcode-design{background:#0b1220!important;color:#f8fafc!important}
.app-dark .designcode-design{border-color:#334155!important}
.app-dark .designcode-pane-head{background:#111827!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .designcode-divider{background:#1f2937!important}
.app-dark #designcode-sql-editor{background:#020617!important;color:#f8fafc!important}

/* v17.21.0 - Query mode buttons in toolbar and synchronized Design+Code */
.toolbar{position:relative!important;gap:8px!important}
.toolbar-mode-tabs{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:3px!important;
  background:transparent!important;
  border:0!important;
  flex:0 0 auto!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.toolbar-mode-tabs .query-mode-tab{
  height:28px!important;
  border-radius:10px!important;
  padding:0 14px!important;
  font-size:12px!important;
  border:0!important;
}
.toolbar-mode-tabs .query-mode-tab.active{background:var(--sgbd-primary)!important;color:#fff!important}
.toolbar-mode-tabs .query-mode-tab:hover:not(.active){background:#e8eef5!important;color:#172033!important}
.toolbar-right-start{margin-left:0!important}
.design-panel{padding:14px!important;overflow:auto!important;background:#fff!important}
#design-model-cards.compact{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
#design-model-cards .model-card{margin:0}
.designcode-code .CodeMirror{height:100%!important;flex:1!important;background:#0f172a!important;color:#f8fafc!important}
.designcode-code .CodeMirror-gutters{background:#111827!important;border-color:#334155!important}
.designcode-code .CodeMirror-linenumber{color:#cbd5e1!important}
.designcode-code .CodeMirror-cursor{border-left:1px solid #fff!important}
.designcode-code .CodeMirror-selected{background:#334155!important}
.designcode-code .CodeMirror .cm-keyword{color:var(--sql-keyword)!important;font-weight:950!important}
.designcode-code .CodeMirror .cm-variable,.designcode-code .CodeMirror .cm-def,.designcode-code .CodeMirror .cm-property{color:#f8fafc!important}
.app-dark .toolbar-mode-tabs{background:transparent!important;border:0!important}
.app-dark .toolbar-mode-tabs .query-mode-tab{color:#cbd5e1!important}
.app-dark .toolbar-mode-tabs .query-mode-tab.active{background:var(--sgbd-primary)!important;color:#fff!important}
.app-dark .toolbar-mode-tabs .query-mode-tab:hover:not(.active){background:#1f2937!important;color:#fff!important}
.app-dark .design-panel{background:#0b1220!important;color:#f8fafc!important}
.app-dark #design-model-cards .model-card{background:#111827!important;border-color:#475569!important;color:#f8fafc!important}
@media(max-width:1180px){.toolbar{overflow-x:auto!important}.toolbar-mode-tabs{margin-left:8px!important;margin-right:8px!important}.toolbar-right-start{margin-left:8px!important}}

/* v17.23 - object groupers, inline rename, SGBD additions and about modal */
.schema-object-group{margin:8px 0 10px 16px}.schema-group-row{display:flex;align-items:center;gap:8px;min-height:30px;color:#475569;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.schema-group-row:hover{background:transparent!important}.schema-group-icon{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#eef6ff;color:var(--sgbd-primary)}.schema-group-row em{margin-left:auto;background:#eef2f7;color:#475569;border-radius:999px;padding:2px 8px;font-style:normal;font-size:11px}.schema-group-content{margin-left:18px;border-left:1px solid #dbe7f4;padding-left:10px}.schema-routine-row{display:flex;align-items:center;gap:8px;min-height:32px;color:#334155;cursor:default}.schema-routine-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#fff7ed;color:#f97316}.schema-routine-row span:last-child{display:flex;flex-direction:column}.schema-routine-row strong{font-size:13px}.schema-routine-row small{font-size:10px;color:#64748b}.query-tab-inline-input{width:120px;border:1px solid var(--sgbd-secondary);border-radius:8px;background:#fff;color:#0f172a;font-weight:900;font-size:12px;padding:5px 7px;outline:0}.about-modal-card{width:min(820px,92vw)}.about-modal-body p{font-size:14px;line-height:1.55;color:#334155}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}.about-grid article{border:1px solid var(--border);border-radius:14px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:7px}.about-grid i{color:var(--sgbd-primary);font-size:20px}.about-grid strong{font-size:14px;color:#0f172a}.about-grid span{font-size:12px;color:#64748b;line-height:1.4}.about-note{border-left:4px solid var(--sgbd-accent);background:#fffbeb;padding:10px 12px;border-radius:10px}.sqlite-icon{background:#e0f2fe!important;color:#0f4c81!important;border-color:#7dd3fc!important}.firebird-icon{background:#ffedd5!important;color:#d04a02!important;border-color:#fdba74!important}.app-dark .schema-group-row{color:#e5e7eb!important}.app-dark .schema-group-icon{background:#1f2937!important;color:#93c5fd!important}.app-dark .schema-group-row em{background:#334155!important;color:#f8fafc!important}.app-dark .schema-group-content{border-left-color:#475569!important}.app-dark .schema-routine-row{color:#f8fafc!important}.app-dark .schema-routine-row small{color:#cbd5e1!important}.app-dark .schema-routine-icon{background:#334155!important;color:#fbbf24!important}.app-dark .query-tab-inline-input{background:#111827!important;color:#f8fafc!important;border-color:var(--sgbd-accent)!important}.app-dark .about-modal-body p{color:#e5e7eb!important}.app-dark .about-grid article{background:#1f2937!important;border-color:#475569!important}.app-dark .about-grid strong{color:#f8fafc!important}.app-dark .about-grid span{color:#cbd5e1!important}.app-dark .about-note{background:#292524!important;color:#fde68a!important}

/* v17.25.0 - execução semântica e autosugestão SQL */
#run-btn.run-neutral{background:var(--sgbd-primary)!important;border-color:var(--sgbd-primary)!important;color:#fff!important;animation:none!important;}
#run-btn.run-valid{background:#16a34a!important;border-color:#15803d!important;color:#fff!important;animation:runPulseValid 1.25s ease-in-out infinite;}
#run-btn.run-invalid{background:#dc2626!important;border-color:#b91c1c!important;color:#fff!important;animation:runPulseInvalid .85s ease-in-out infinite;}
@keyframes runPulseValid{0%,100%{box-shadow:0 0 0 0 rgb(34 197 94 / .42)}50%{box-shadow:0 0 0 8px rgb(34 197 94 / 0)}}
@keyframes runPulseInvalid{0%,100%{box-shadow:0 0 0 0 rgb(239 68 68 / .48);transform:translateZ(0)}50%{box-shadow:0 0 0 9px rgb(239 68 68 / 0);transform:translateY(-1px)}}
.sql-suggest-box{position:absolute;z-index:2147483000;width:min(360px,calc(100vw - 24px));max-height:260px;overflow:auto;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 18px 45px rgb(15 23 42 / .24);padding:6px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}
.sql-suggest-box button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:#0f172a;padding:9px 10px;border-radius:9px;cursor:pointer;text-align:left;font-size:13px;font-weight:850;}
.sql-suggest-box button small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:900;}
.sql-suggest-box button.active,.sql-suggest-box button:hover{background:var(--sgbd-primary);color:#fff;}
.sql-suggest-box button.active small,.sql-suggest-box button:hover small{color:rgb(255 255 255 / .75)}
.app-dark .sql-suggest-box{background:#111827;border-color:#475569;box-shadow:0 22px 55px rgb(0 0 0 / .55)}
.app-dark .sql-suggest-box button{color:#f8fafc}.app-dark .sql-suggest-box button small{color:#cbd5e1}.app-dark .sql-suggest-box button.active,.app-dark .sql-suggest-box button:hover{background:var(--sgbd-primary)!important;color:#fff!important}


/* v17.26.0 - autosugestão categorizada, execução runtime e alerta didático */
.sql-suggest-box button{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:10px!important;text-align:left!important;}
.sql-suggest-box button span{font-weight:700!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
.sql-suggest-box button small.suggest-kind{font-size:10px!important;font-weight:800!important;text-transform:uppercase!important;border-radius:999px!important;padding:2px 7px!important;background:#eef2ff!important;color:#3730a3!important;}
.sql-suggest-box button small.suggest-table{background:#e0f2fe!important;color:#075985!important;}
.sql-suggest-box button small.suggest-view{background:#fef3c7!important;color:#92400e!important;}
.sql-suggest-box button small.suggest-function{background:#dcfce7!important;color:#166534!important;}
.sql-suggest-box button small.suggest-procedure{background:#f3e8ff!important;color:#6b21a8!important;}
.sql-suggest-box button small.suggest-trigger{background:#fee2e2!important;color:#991b1b!important;}
.sql-suggest-box button small.suggest-column{background:#f1f5f9!important;color:#334155!important;}
.sql-suggest-box button em{font-size:10px!important;font-style:normal!important;color:#64748b!important;white-space:nowrap!important;}
.app-dark .sql-suggest-box button em{color:#cbd5e1!important;}
#run-btn.run-neutral{background:var(--sgbd-primary)!important;color:#fff!important;box-shadow:none!important;animation:none!important;}
#run-btn.run-invalid{background:#dc2626!important;color:#fff!important;animation:sqlabPulseRed .9s infinite!important;box-shadow:0 0 0 0 rgba(220,38,38,.72)!important;}
#run-btn.run-valid{background:#16a34a!important;color:#fff!important;animation:sqlabPulseGreen .75s infinite!important;box-shadow:0 0 0 0 rgba(22,163,74,.85)!important;}
@keyframes sqlabPulseGreen{0%{box-shadow:0 0 0 0 rgba(22,163,74,.85);transform:translateZ(0) scale(1)}55%{box-shadow:0 0 0 8px rgba(22,163,74,0);transform:translateZ(0) scale(1.025)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0);transform:translateZ(0) scale(1)}}
@keyframes sqlabPulseRed{0%{box-shadow:0 0 0 0 rgba(220,38,38,.75);transform:translateZ(0) scale(1)}55%{box-shadow:0 0 0 7px rgba(220,38,38,0);transform:translateZ(0) scale(1.018)}100%{box-shadow:0 0 0 0 rgba(220,38,38,0);transform:translateZ(0) scale(1)}}
.error{border-left:5px solid #dc2626!important;background:#fff7f7!important;color:#7f1d1d!important;}
.error>strong{display:flex!important;gap:8px!important;align-items:center!important;font-size:15px!important;color:#991b1b!important;}
.error #error-msg{font-weight:700!important;margin:8px 0 10px!important;}
.error .error-why{background:#fee2e2!important;border:1px solid #fecaca!important;border-radius:10px!important;padding:10px!important;margin:10px 0!important;color:#7f1d1d!important;}
.error .fix{background:#fef3c7!important;border:1px solid #facc15!important;border-radius:10px!important;padding:10px!important;color:#713f12!important;}
.error .fix code{display:block!important;margin-top:8px!important;background:#fff!important;color:#14532d!important;border:1px solid #fde68a!important;padding:8px!important;border-radius:8px!important;white-space:pre-wrap!important;}
.app-dark .error{background:#2a1214!important;color:#fecaca!important;border-color:#ef4444!important;}
.app-dark .error>strong{color:#fecaca!important;}
.app-dark .error .error-why{background:#3b171a!important;border-color:#7f1d1d!important;color:#fecaca!important;}
.app-dark .error .fix{background:#3b2f12!important;border-color:#854d0e!important;color:#fde68a!important;}
.app-dark .error .fix code{background:#111827!important;color:#86efac!important;border-color:#713f12!important;}


/* v17.27 semantic validation, single result scroll, table inspector */
#pane-results{overflow:hidden!important;display:flex;flex-direction:column;min-height:0;}
#result-wrap{flex:1 1 auto;min-height:0;overflow:auto!important;overscroll-behavior:contain;border-radius:12px;}
#pane-results > .empty{flex:1;display:flex;align-items:center;justify-content:center;}
#result-wrap:not(.hidden) ~ #result-empty{display:none!important;}
.result-table{table-layout:fixed!important;border-collapse:separate!important;border-spacing:0!important;width:max-content;min-width:100%;}
.result-table thead{position:sticky;top:0;z-index:35;}
.result-table th{position:sticky!important;top:0!important;z-index:36!important;user-select:none;}
.result-col-resizer{touch-action:none!important;}
.table-inspector{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px;}
.table-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#0f172a;}
.table-inspector-head small{color:#64748b;font-weight:700;}
.table-inspector-tabs{display:flex;gap:8px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.table-inspector-tabs button{border:0;background:transparent;padding:9px 12px;font-weight:900;color:#64748b;cursor:pointer;border-bottom:3px solid transparent;}
.table-inspector-tabs button.active{color:var(--sgbd-primary);border-bottom-color:var(--sgbd-primary);}
.inspector-pane{overflow:auto;}
.inspector-pane table{width:100%;border-collapse:collapse;font-size:12px;}
.inspector-pane th,.inspector-pane td{border-bottom:1px solid var(--border);padding:9px;text-align:left;}
.inspector-pane th{background:#f8fafc;color:#0f172a;position:sticky;top:0;}
.trigger-card{border:1px solid var(--border);border-radius:10px;padding:10px;margin-bottom:8px;background:#f8fafc;}
.app-dark .table-inspector{background:#111827!important;border-color:#334155!important;color:#f8fafc!important;}
.app-dark .table-inspector-head{color:#f8fafc!important;}
.app-dark .table-inspector-head small{color:#cbd5e1!important;}
.app-dark .inspector-pane th{background:#1f2937!important;color:#f8fafc!important;}
.app-dark .inspector-pane th,.app-dark .inspector-pane td{border-color:#334155!important;color:#e5e7eb!important;}
.app-dark .trigger-card{background:#1f2937!important;border-color:#334155!important;}
.run-invalid{animation:sqlab-error-pulse .85s infinite!important;}
.run-valid{animation:sqlab-valid-pulse 1.05s infinite!important;}
@keyframes sqlab-error-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.70)}50%{box-shadow:0 0 0 7px rgba(239,68,68,.16)}}
@keyframes sqlab-valid-pulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.65)}50%{box-shadow:0 0 0 7px rgba(34,197,94,.18)}}

/* v17.28.0: expansão controlada exclusivamente por + / - */
.schema-expander-btn{
  width:20px;
  height:20px;
  min-width:20px;
  border:0;
  border-radius:6px;
  display:inline-grid;
  place-items:center;
  font-weight:900;
  font-size:14px;
  line-height:1;
  cursor:pointer;
  background:rgba(15,61,92,.10);
  color:var(--sgbd-primary);
  transition:background .12s ease, color .12s ease, transform .12s ease;
}
.schema-expander-btn:hover{
  background:var(--sgbd-primary);
  color:#fff;
}
.schema-expander-btn:active{transform:scale(.94)}
.schema-db-card,.schema-table-card,.schema-group-row{cursor:default!important}
.schema-db-card .schema-db-main,.schema-table-card .schema-table-main,.schema-group-row strong{cursor:default!important}
.schema-table-card{user-select:none}
.schema-table-card[title],.schema-db-card[title],.schema-group-row[title]{cursor:default!important}
.app-dark .schema-expander-btn{background:#1f2937!important;color:#f8fafc!important;border:1px solid #475569!important}
.app-dark .schema-expander-btn:hover{background:var(--sgbd-primary)!important;color:#fff!important;border-color:var(--sgbd-primary)!important}


/* v17.29.0 - Estrutura e expansão sem efeito visual pesado */
.schema-expander-btn,
.schema-expander-btn:hover,
.schema-expander-btn:focus,
.schema-expander-btn:active{
  background:transparent!important;
  color:#64748b!important;
  border:0!important;
  box-shadow:none!important;
  transform:none!important;
  outline:0!important;
}
.app-dark .schema-expander-btn,
.app-dark .schema-expander-btn:hover,
.app-dark .schema-expander-btn:focus,
.app-dark .schema-expander-btn:active{
  background:transparent!important;
  color:#cbd5e1!important;
  border:0!important;
  box-shadow:none!important;
  transform:none!important;
  outline:0!important;
}
#pane-modeling .table-inspector{
  margin-bottom:14px;
}
#pane-modeling .table-inspector:not(.hidden)+.model-grid{
  margin-top:12px;
}


/* v17.31.0 - estrutura, comparação em modal, schema mais limpo e tabs persistentes */
.bottom-tabs{overflow:hidden!important;scrollbar-width:none!important;}
.bottom-tabs::-webkit-scrollbar{display:none!important;}
#tab-comparison{display:none!important;}
#pane-comparison{display:none!important;}
.comparison-modal-card{width:min(1120px,94vw)!important;}
.comparison-modal-body{padding:16px!important;}
.comparison-modal-intro{margin:0 0 12px;color:#475569;font-size:13px;line-height:1.45;}
.comparison-modal-table-wrap{max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:14px;background:#fff;}
.comparison-modal-table-wrap .comparison{border:0!important;width:100%;}
.comparison-modal-table-wrap .comparison th{position:sticky;top:0;z-index:2;}
.schema-object-group{margin:0!important;}
.schema-group-content{margin-left:22px!important;padding-left:12px!important;}
.schema-table{margin-left:0!important;}
.schema-columns{margin-left:48px!important;padding-top:8px!important;padding-bottom:8px!important;}
.schema-column-row{margin:8px 0!important;gap:10px!important;}
.schema-column-row.col .column-kind{display:none!important;}
.schema-table-card,.schema-db-card,.schema-group-row{transition:none!important;}
.schema-table-card:hover,.schema-db-card:hover,.schema-group-row:hover{background:transparent!important;color:inherit!important;box-shadow:none!important;filter:none!important;}
.schema-table-card{cursor:pointer!important;}
.schema-db-card,.schema-group-row{cursor:default!important;}
.schema-expander-btn{cursor:pointer!important;}
.history-head{display:flex!important;align-items:center!important;gap:14px!important;}
.history-status{margin-right:10px!important;}
.history-meta{padding-left:4px!important;}
.app-dark .comparison-modal-intro{color:#dbe4ef!important;}
.app-dark .comparison-modal-table-wrap{background:#111827!important;border-color:#475569!important;}
.app-dark .comparison-modal-table-wrap .comparison th{background:#1f2937!important;color:#fff!important;}
.app-dark .comparison-modal-table-wrap .comparison td{background:#111827!important;color:#f8fafc!important;}
.app-dark .schema-table-card:hover,.app-dark .schema-db-card:hover,.app-dark .schema-group-row:hover{background:transparent!important;color:inherit!important;}

/* v17.32.0 - schema table and column compact visual refinement */
.schema-table-card{
  grid-template-columns:18px 30px minmax(0,1fr)!important;
  min-height:38px!important;
  padding:5px 6px!important;
}
.schema-table-main{
  gap:0!important;
}
.schema-table-main small,
.schema-mini-badges{
  display:none!important;
}
.schema-columns{
  position:relative!important;
  margin:0 0 0 52px!important;
  padding:4px 0 4px 12px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.schema-columns:before{
  content:"";
  position:absolute;
  left:0;
  top:-7px;
  bottom:7px;
  width:1px;
  background:#cbd5e1;
}
.schema-column-row{
  margin:0!important;
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
  padding:3px 0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
.schema-column-row:hover{
  background:transparent!important;
  box-shadow:none!important;
}
.schema-column-row .column-kind,
.schema-column-row .column-type{
  display:none!important;
}
.column-name{
  display:flex!important;
  align-items:baseline!important;
  gap:5px!important;
  min-width:0!important;
  font-size:13px!important;
}
.column-type-inline{
  display:inline-block!important;
  flex:0 0 auto!important;
  font-size:10px!important;
  line-height:1!important;
  color:#64748b!important;
  font-weight:800!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
  max-width:120px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.app-dark .schema-columns:before{
  background:#64748b!important;
}
.app-dark .column-type-inline{
  color:#cbd5e1!important;
}

/* v17.33.0 - ajuste solicitado do schema e revisão visual dos JOINs */
.schema-table-card{
  min-height:24px!important;
  padding:0 6px!important;
}
.join-venn-svg-wrap{display:grid;place-items:center;min-height:112px;}
.join-venn-svg{width:150px;max-width:100%;height:auto;display:block;}
.join-venn-svg text{font-family:Inter,Arial,sans-serif;font-weight:900;fill:#111827;font-size:16px;}
.join-card{background:#fff!important;}
.app-dark .join-card,.app-dark .join-mini-table,.app-dark .join-result-grid>div{background:#111827!important;border-color:#334155!important;color:#f8fafc!important;}
.app-dark .join-mini-table th,.app-dark .join-result-grid th{background:#1f2937!important;color:#f8fafc!important;}
.app-dark .join-mini-table td,.app-dark .join-result-grid td{border-color:#334155!important;color:#e5e7eb!important;}
.app-dark .join-result-grid p,.app-dark .join-result-grid ul{color:#d1d5db!important;}

/* v17.34.0 - tooltips didáticos e biblioteca de comandos por objetivo */
.icon-rail{overflow:visible;z-index:30}.rail-btn{position:relative}.rail-btn::after{content:attr(data-tip-title) "\A" attr(data-tip-desc);position:absolute;left:48px;top:50%;transform:translateY(-50%) translateX(-4px);width:230px;white-space:pre-line;text-align:left;background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px 12px;font-size:11px;line-height:1.35;font-weight:600;box-shadow:0 16px 34px rgba(2,6,23,.28);opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:999}.rail-btn::before{content:"";position:absolute;left:42px;top:50%;transform:translateY(-50%);border:7px solid transparent;border-right-color:#0f172a;opacity:0;transition:opacity .12s ease;z-index:1000}.rail-btn:hover::after,.rail-btn:focus-visible::after,.rail-btn:hover::before,.rail-btn:focus-visible::before{opacity:1}.rail-btn:hover::after,.rail-btn:focus-visible::after{transform:translateY(-50%) translateX(0)}.rail-btn[data-tip-title=""]::after,.rail-btn:not([data-tip-title])::after,.rail-btn:not([data-tip-title])::before{display:none}
.command-search-sticky{position:sticky;top:0;z-index:6;background:var(--panel);padding-bottom:10px;margin-bottom:4px}.cmd-group{margin:0 0 16px}.cmd-group h4{margin:8px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:900}.cmd-group .cmd-item{width:100%;text-align:left;border:1px solid var(--border);background:#fff;border-radius:14px;padding:11px 12px;margin:0 0 8px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .12s ease,box-shadow .12s ease}.cmd-group .cmd-item:hover{border-color:color-mix(in srgb,var(--sgbd-primary) 35%,#dbeafe);box-shadow:0 8px 18px rgba(15,23,42,.08)}.cmd-title{font-size:13px;color:#0f172a;font-weight:900;line-height:1.25}.cmd-desc{font-size:11px;color:#64748b;line-height:1.42;font-weight:600}.cmd-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}.cmd-tag,.cmd-level{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;line-height:1;border:1px solid #dbe3ef}.cmd-tag{background:#f1f5f9;color:#334155}.cmd-level{background:#eef6ff;color:var(--sgbd-primary);border-color:color-mix(in srgb,var(--sgbd-primary) 25%,#dbeafe)}.cmd-level.level-intermediario{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.cmd-level.level-avancado{background:#fef2f2;color:#991b1b;border-color:#fecaca}.search-hit{background:#fde68a;color:#111827;border-radius:4px;padding:0 2px}.dark-mode .command-search-sticky{background:#0f172a}.dark-mode .cmd-group .cmd-item{background:#1e293b;border-color:#334155}.dark-mode .cmd-title{color:#f8fafc}.dark-mode .cmd-desc{color:#cbd5e1}.dark-mode .cmd-tag{background:#0f172a;color:#dbeafe;border-color:#475569}.dark-mode .cmd-level{background:#082f49;color:#bae6fd;border-color:#0369a1}.dark-mode .search-hit{background:#facc15;color:#111827}.dark-mode .rail-btn::after{background:#020617;border-color:#334155}.dark-mode .rail-btn::before{border-right-color:#020617}

/* v17.35.0 - Comandos didáticos sem divisões e busca fixa */
#side-commands{
  overflow-y:auto;
  overflow-x:hidden;
}
#side-commands .command-search-sticky,
#side-commands .search.command-search-sticky{
  position:sticky !important;
  top:0 !important;
  z-index:120 !important;
  background:var(--panel) !important;
  padding:0 0 12px 0 !important;
  margin:0 0 10px 0 !important;
  border-bottom:1px solid var(--border);
  box-shadow:0 10px 18px rgba(15,23,42,.08);
}
#commands-list{
  position:relative;
  z-index:1;
  padding-top:2px;
}
.cmd-list-flat{
  margin:0 !important;
}
.cmd-list-flat h4,
.cmd-group h4{
  display:none !important;
}
.cmd-list-flat .cmd-item{
  margin-bottom:8px;
}
.dark-mode #side-commands .command-search-sticky,
.dark-mode #side-commands .search.command-search-sticky,
.app-dark #side-commands .command-search-sticky,
.app-dark #side-commands .search.command-search-sticky{
  background:#111827 !important;
  border-bottom-color:#334155 !important;
  box-shadow:0 10px 18px rgba(0,0,0,.32);
}


/* v17.36.0 - Filtro de comandos sem sobreposição, contagem e limpeza */
#side-commands{
  display:flex;
  flex-direction:column;
  padding:0 !important;
  overflow:hidden !important;
  min-height:0;
}
#side-commands.hidden{display:none!important;}
#side-commands .command-filter-box{
  flex:0 0 auto;
  background:#fff;
  border-bottom:1px solid var(--border);
  padding:12px;
  box-shadow:none;
}
#side-commands .command-filter-box .search{
  margin:0;
  background:#fff;
}
#side-commands .command-filter-box .search input{
  background:#f8fafc;
}
.command-filter-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:26px;
  margin-top:8px;
  color:#64748b;
  font-size:11px;
  font-weight:800;
}
.command-filter-meta button,
.cmd-clear-end{
  border:1px solid var(--border);
  background:#fff;
  color:var(--sgbd-primary);
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
#commands-list{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:12px !important;
  position:relative !important;
}
.command-search-sticky,
#side-commands .command-search-sticky,
#side-commands .search.command-search-sticky{
  position:static !important;
  top:auto !important;
  z-index:auto !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  padding:0 !important;
  margin:0 !important;
}
.cmd-clear-end{
  width:100%;
  margin:8px 0 2px;
  border-radius:12px;
  min-height:34px;
}
.cmd-empty-filter .empty{
  padding:18px 8px 8px;
}
.app-dark #side-commands .command-filter-box,
.dark-mode #side-commands .command-filter-box{
  background:#111827;
  border-bottom-color:#334155;
}
.app-dark #side-commands .command-filter-box .search,
.dark-mode #side-commands .command-filter-box .search{
  background:#111827;
}
.app-dark #side-commands .command-filter-box .search input,
.dark-mode #side-commands .command-filter-box .search input{
  background:#0f172a;
  color:#f8fafc;
  border-color:#334155;
}
.app-dark .command-filter-meta,
.dark-mode .command-filter-meta{
  color:#cbd5e1;
}
.app-dark .command-filter-meta button,
.app-dark .cmd-clear-end,
.dark-mode .command-filter-meta button,
.dark-mode .cmd-clear-end{
  background:#0f172a;
  color:#bae6fd;
  border-color:#334155;
}


/* v17.38.0 - footer técnico compacto e filtro de comandos real */
.app-shell{height:100vh;display:flex;flex-direction:column;min-height:0}
.workspace{min-height:0;flex:1 1 auto}
.app-footer{height:24px;min-height:24px;background:#f8fafc;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;font-size:10px;line-height:1;color:#64748b;white-space:nowrap;overflow:hidden}
.app-footer .footer-left,.app-footer .footer-right{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.app-footer .footer-item{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.app-footer strong{font-weight:900;color:#334155}.sgbd-dot{width:7px;height:7px;border-radius:50%;background:var(--sgbd-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sgbd-accent) 22%,transparent);display:inline-block;flex:0 0 auto}.app-footer a{color:var(--sgbd-primary);font-weight:800;text-decoration:none}.app-footer a:hover{text-decoration:underline}.db-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px rgba(34,197,94,.16);display:inline-block;flex:0 0 auto}
body.app-dark .app-footer{background:#0f172a;border-color:#334155;color:#cbd5e1}body.app-dark .app-footer strong{color:#f8fafc}body.app-dark .app-footer a{color:#93c5fd}
#side-commands{padding:0;display:flex;flex-direction:column;min-height:0}.command-filter-box{flex:0 0 auto;background:#fff;border-bottom:1px solid var(--border);padding:12px}.command-filter-box .search{margin-bottom:8px}#commands-list{flex:1 1 auto;min-height:0;overflow:auto;padding:10px 12px 12px;background:#fff}.cmd-list-flat{margin:0}.cmd-empty-filter{padding:16px 0}.cmd-clear-end{width:100%;margin-top:10px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:900;color:#334155;cursor:pointer}.command-filter-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#64748b}.command-filter-meta button{border:1px solid var(--border);background:#fff;color:#334155;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;cursor:pointer}
body.app-dark .command-filter-box,body.app-dark #commands-list{background:#111827;border-color:#334155}body.app-dark .command-filter-meta{color:#cbd5e1}body.app-dark .command-filter-meta button,body.app-dark .cmd-clear-end{background:#1f2937;color:#f8fafc;border-color:#475569}
@media(max-width:980px){.app-footer{font-size:9px;gap:6px}.app-footer .footer-left,.app-footer .footer-right{gap:6px}.app-footer .footer-item:nth-child(n+4){display:none}}

.command-filter-box{position:static !important;z-index:auto !important}
#commands-list{position:static !important;z-index:auto !important}


/* v17.39 resultados minimizáveis */
.results-section{position:relative;transition:flex-basis .18s ease,height .18s ease,min-height .18s ease;}
.results-minmax-btn{
  position:absolute;
  top:8px;
  right:10px;
  width:30px;
  height:30px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
  color:#475569;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:13px;
  box-shadow:0 4px 12px rgba(15,23,42,.08);
}
.results-minmax-btn:hover{background:#f8fafc;color:var(--sgbd-primary);}
.results-minmax-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--sgbd-primary) 30%,transparent);outline-offset:2px;}
.results-section .bottom-tabs{padding-right:52px;}
.results-section.results-minimized{
  flex:0 0 46px!important;
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
  overflow:hidden!important;
  border-top:1px solid var(--border);
}
.results-section.results-minimized .pane,
.results-section.results-minimized #pane-results,
.results-section.results-minimized #pane-explain,
.results-section.results-minimized #pane-modeling,
.results-section.results-minimized #pane-challenges,
.results-section.results-minimized #pane-learning,
.results-section.results-minimized #pane-tests,
.results-section.results-minimized #pane-comparison{display:none!important;}
.results-section.results-minimized .bottom-tabs{height:46px!important;border-bottom:0!important;background:var(--panel)!important;}
.results-section.results-minimized .bottom-tabs::after{content:'Resultados minimizados';margin-left:auto;margin-right:54px;color:#64748b;font-size:12px;font-weight:800;}
.results-section.results-minimized + *{display:none!important;}
.results-section.results-minimized ~ .app-footer{display:flex;}
.main.results-panel-minimized .editor-results-resizer{display:none!important;}
.app-dark .results-minmax-btn{background:#111827!important;border-color:#334155!important;color:#e5e7eb!important;box-shadow:none!important;}
.app-dark .results-minmax-btn:hover{background:#1f2937!important;color:#fff!important;}
.app-dark .results-section.results-minimized{border-color:#334155!important;}
.app-dark .results-section.results-minimized .bottom-tabs{background:#0f172a!important;}
.app-dark .results-section.results-minimized .bottom-tabs::after{color:#cbd5e1!important;}

/* v17.40.0 - resultados recolhidos como barra inferior e exportação */
.main.results-panel-minimized{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
}
.main.results-panel-minimized .editor-section{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin-bottom:0!important;
}
.main.results-panel-minimized .editor-wrap{
  flex:1 1 auto!important;
  min-height:0!important;
}
.main.results-panel-minimized .results-section.results-minimized{
  flex:0 0 42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin-top:0!important;
  margin-bottom:6px!important;
  border-radius:0 0 14px 14px!important;
  overflow:hidden!important;
  box-shadow:0 6px 14px rgba(15,23,42,.06)!important;
}
.results-section.results-minimized .bottom-tabs{
  height:42px!important;
  min-height:42px!important;
  align-items:center!important;
}
.results-section.results-minimized .bottom-tabs button{
  height:42px!important;
}
.results-section.results-minimized .results-minmax-btn{
  top:6px!important;
  right:10px!important;
  width:30px!important;
  height:30px!important;
}
.toolbar #export-csv-btn,
.toolbar #export-excel-btn{
  white-space:nowrap;
}
@media(max-width:1180px){
  .toolbar #export-csv-btn,
  .toolbar #export-excel-btn{font-size:11px;padding:8px 10px;}
}

/* v17.41 - remove top query row count */
.row-count{display:none!important}

/* v17.43.0 - modal de exportação, SELECT corrigido e renomeação inline */
.toolbar #export-csv-btn.export-ready,
.toolbar #export-excel-btn.export-ready{
  border-color:#22c55e!important;
  color:#166534!important;
  background:#ecfdf5!important;
  animation:exportPulseGreen 1.35s ease-in-out infinite;
}
.toolbar #export-csv-btn.export-blocked,
.toolbar #export-excel-btn.export-blocked{
  border-color:#ef4444!important;
  color:#991b1b!important;
  background:#fff1f2!important;
  animation:exportPulseRed 1.35s ease-in-out infinite;
}
.app-dark .toolbar #export-csv-btn.export-ready,
.app-dark .toolbar #export-excel-btn.export-ready{
  background:#052e1b!important;
  color:#86efac!important;
  border-color:#16a34a!important;
}
.app-dark .toolbar #export-csv-btn.export-blocked,
.app-dark .toolbar #export-excel-btn.export-blocked{
  background:#3f1217!important;
  color:#fecaca!important;
  border-color:#ef4444!important;
}
@keyframes exportPulseGreen{
  0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.12)}
  50%{box-shadow:0 0 0 5px rgba(34,197,94,.22)}
}
@keyframes exportPulseRed{
  0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.10)}
  50%{box-shadow:0 0 0 5px rgba(239,68,68,.24)}
}
.csv-import-card{max-width:520px!important;}
.csv-import-body{display:flex;flex-direction:column;gap:10px;}
.form-label{font-size:12px;font-weight:900;color:#334155;text-transform:uppercase;letter-spacing:.08em;margin-top:4px;}
.form-input{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 12px;font-weight:800;color:#0f172a;background:#fff;outline:none;}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,116,144,.12);}
.csv-file-name{font-size:12px;font-weight:800;color:#64748b;}
.csv-import-feedback{border-radius:12px;padding:10px 12px;font-weight:800;font-size:13px;}
.csv-import-feedback.bad{background:#fff1f2;color:#991b1b;border:1px solid #fecdd3;}
.csv-import-feedback.ok{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0;}
.app-dark .form-label{color:#cbd5e1;}
.app-dark .form-input{background:#0f172a;color:#f8fafc;border-color:#334155;}
.app-dark .csv-file-name{color:#cbd5e1;}
.app-dark .csv-import-feedback.bad{background:#3f1217;color:#fecaca;border-color:#7f1d1d;}
.app-dark .csv-import-feedback.ok{background:#052e1b;color:#bbf7d0;border-color:#166534;}

/* v17.43.0 - modal informativa de exportação */
.info-modal-card{max-width:520px}
.info-modal-body p{margin:0;font-size:1rem;line-height:1.5;color:var(--text)}
.modal-warning .modal-card{border-left:6px solid #f59e0b}
.modal-error .modal-card{border-left:6px solid #dc2626}
.modal-info .modal-card{border-left:6px solid var(--accent)}
.modal-warning #info-modal-icon{color:#d97706}
.modal-error #info-modal-icon{color:#dc2626}
.modal-info #info-modal-icon{color:var(--accent)}
.query-tab-inline-input{min-width:90px;max-width:220px;border:1px solid var(--accent);border-radius:8px;padding:4px 8px;font:inherit;font-weight:700;color:var(--text);background:var(--panel);outline:2px solid color-mix(in srgb,var(--accent) 25%,transparent)}

/* v17.45.0 - renomeação explícita por lápis e salvamento sem navegação */
.query-tab-rename{width:30px;height:100%;border:0;background:transparent;color:#64748b;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.query-tab-rename:hover{background:#e0f2fe;color:var(--sgbd-primary)}
.query-tab.renaming{min-width:220px;max-width:280px}
.query-tab-main .query-tab-name.hidden{display:none!important}
.query-tab-main .query-tab-inline-input{width:150px;max-width:180px;min-width:120px;margin-left:0;flex:1 1 auto;border:1px solid var(--sgbd-secondary);border-radius:8px;background:#fff;color:#0f172a;font-weight:900;font-size:12px;padding:5px 7px;outline:2px solid rgba(14,165,233,.18)}
body.app-dark .query-tab-rename{color:#cbd5e1!important}
body.app-dark .query-tab-rename:hover{background:#1e3a5f!important;color:#bfdbfe!important}
body.app-dark .query-tab-main .query-tab-inline-input{background:#111827!important;color:#f8fafc!important;border-color:var(--sgbd-accent)!important;outline-color:rgba(251,191,36,.24)!important}

/* v17.45.0 - renomeação explícita por lápis e salvamento sem navegação */
.query-tab-rename{width:30px;height:100%;border:0;background:transparent;color:#64748b;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.query-tab-rename:hover{background:#e0f2fe;color:var(--sgbd-primary)}
.query-tab.renaming{min-width:220px;max-width:280px}
.query-tab-main .query-tab-name.hidden{display:none!important}
.query-tab-main .query-tab-inline-input{width:150px;max-width:180px;min-width:120px;margin-left:0;flex:1 1 auto;border:1px solid var(--sgbd-secondary);border-radius:8px;background:#fff;color:#0f172a;font-weight:900;font-size:12px;padding:5px 7px;outline:2px solid rgba(14,165,233,.18)}
body.app-dark .query-tab-rename{color:#cbd5e1!important}
body.app-dark .query-tab-rename:hover{background:#1e3a5f!important;color:#bfdbfe!important}
body.app-dark .query-tab-main .query-tab-inline-input{background:#111827!important;color:#f8fafc!important;border-color:var(--sgbd-accent)!important;outline-color:rgba(251,191,36,.24)!important}

/* v17.45.0 - renomeação explícita por lápis e salvamento sem navegação */
.query-tab-rename{width:30px;height:100%;border:0;background:transparent;color:#64748b;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.query-tab-rename:hover{background:#e0f2fe;color:var(--sgbd-primary)}
.query-tab.renaming{min-width:220px;max-width:280px}
.query-tab-main .query-tab-name.hidden{display:none!important}
.query-tab-main .query-tab-inline-input{width:150px;max-width:180px;min-width:120px;margin-left:0;flex:1 1 auto;border:1px solid var(--sgbd-secondary);border-radius:8px;background:#fff;color:#0f172a;font-weight:900;font-size:12px;padding:5px 7px;outline:2px solid rgba(14,165,233,.18)}
body.app-dark .query-tab-rename{color:#cbd5e1!important}
body.app-dark .query-tab-rename:hover{background:#1e3a5f!important;color:#bfdbfe!important}
body.app-dark .query-tab-main .query-tab-inline-input{background:#111827!important;color:#f8fafc!important;border-color:var(--sgbd-accent)!important;outline-color:rgba(251,191,36,.24)!important}

/* v17.46.0 - login sem flash visual e logout sem reload */
.login-modal.hidden{display:none!important;}

/* v17.48.0 - Flow puzzle integrado sem alterar estrutura visual base */
.flow-host{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}.sqlab-flow-root{height:100%;min-height:0;display:flex;flex-direction:column;color:#0f172a}.flow-builder{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px}.flow-head{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px 12px;box-shadow:0 8px 20px rgb(15 23 42 / .04)}.flow-head h2{font-size:14px;margin:0;color:#0f172a;font-weight:900}.flow-head span{font-size:12px;color:#64748b}.flow-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.flow-small{padding:6px 9px!important;border-radius:9px!important}.flow-line-counter{font-size:11px!important;font-family:monospace;background:#f1f5f9;border:1px solid var(--border);border-radius:999px;padding:5px 8px;color:#475569!important}.flow-logic{display:flex;gap:7px;overflow-x:auto;min-height:38px;padding:2px}.flow-logic-chip{border:1px solid var(--border);background:#fff;color:#334155;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;white-space:nowrap;cursor:pointer}.flow-logic-chip.done{border-color:#86efac;background:#dcfce7;color:#166534}.flow-logic-chip.pending{background:#f8fafc;color:#64748b}.flow-logic-chip.wrong{border-color:#fecaca;background:#fee2e2;color:#991b1b}.flow-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(230px,310px) minmax(360px,1fr);gap:10px}.flow-palette-card,.flow-canvas-card{min-height:0;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.flow-command-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:10px 10px 0}.flow-type-tab{border:1px solid var(--border);background:#fff;color:#334155;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;cursor:pointer}.flow-type-tab.active{background:var(--sgbd-primary);border-color:var(--sgbd-primary);color:#fff}.flow-search{margin:10px}.flow-palette-list{padding:0 10px 10px;overflow:auto;display:flex;flex-direction:column;gap:7px}.flow-palette-piece{border:1px solid var(--border);background:#fff;color:#0f172a;border-radius:12px;padding:9px 10px;text-align:left;display:flex;flex-direction:column;gap:3px;cursor:grab}.flow-palette-piece:hover{border-color:var(--sgbd-primary);box-shadow:0 8px 20px rgb(15 23 42 / .08)}.flow-palette-piece strong{font-size:12px}.flow-palette-piece span{font-size:11px;color:#64748b}.flow-palette-piece.recommended{border-color:#bfdbfe;background:#eff6ff}.flow-palette-piece.required{border-color:#fde68a;background:#fffbeb}.flow-palette-piece.used{opacity:.72}.flow-canvas-drop{height:100%;min-height:0;overflow:auto;padding:12px;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%)}.flow-empty{border:1px dashed #cbd5e1;border-radius:14px;padding:22px;text-align:center;color:#64748b;background:#fff}.flow-empty strong{display:block;color:#0f172a}.flow-empty span{display:block;margin-top:4px;font-size:12px}.flow-puzzle-stack{display:flex;flex-direction:column;gap:8px}.flow-block{border:0;background:transparent}.flow-block-shell{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:start;gap:8px;border:1px solid var(--border);background:#fff;border-radius:14px;padding:10px;box-shadow:0 8px 18px rgb(15 23 42 / .06)}.flow-block.selected .flow-block-shell{border-color:var(--sgbd-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sgbd-primary) 12%,transparent)}.flow-sequence-badge{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--sgbd-primary);color:#fff;font-size:11px;font-weight:900}.flow-grip{border:0;background:#f1f5f9;color:#64748b;border-radius:8px;min-width:24px;height:24px;cursor:grab}.flow-block-main{min-width:0}.flow-block-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.flow-block-title strong{font-size:12px;color:#0f172a}.flow-block-title span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;color:#475569;border-radius:999px;padding:2px 7px;font-weight:900}.flow-block-title .flow-rule-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.flow-block.has-sequence-error .flow-block-shell{border-color:var(--border);background:#fff}.flow-block-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px;margin-top:9px}.flow-block-fields label{font-size:10px;text-transform:uppercase;font-weight:900;color:#64748b;display:flex;flex-direction:column;gap:4px}.flow-block-fields input,.flow-block-fields select{border:1px solid var(--border);border-radius:9px;background:#f8fafc;color:#0f172a;padding:7px;font-size:12px;min-width:0;outline:0}.flow-block-fields input:focus,.flow-block-fields select:focus{border-color:var(--sgbd-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sgbd-primary) 12%,transparent)}.flow-block-controls{display:flex;gap:4px}.flow-icon{width:26px;height:26px;border:1px solid var(--border);background:#fff;border-radius:8px;color:#475569;font-weight:900}.flow-icon:hover{background:#f1f5f9;color:var(--sgbd-primary)}.flow-connector{height:6px}.flow-preview{display:none;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff;min-height:128px}.design-panel .flow-preview{display:flex;flex-direction:column}.designcode-design .flow-preview{display:none}.flow-preview-head{height:38px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:0 10px}.flow-preview-head strong{font-size:12px}.flow-status{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-status.ok{color:#166534}.flow-status.warn{color:#92400e}.flow-status.bad{color:#991b1b}.flow-editor-shell{display:grid;grid-template-columns:44px 1fr;min-height:90px;background:#0f172a;color:#e5e7eb}.flow-line-gutter{background:#111827;color:#94a3b8;text-align:right;padding:10px 8px;font:12px/1.55 JetBrains Mono,Consolas,monospace;user-select:none;white-space:pre}.flow-code-preview{margin:0;padding:10px;overflow:auto;font:12px/1.55 JetBrains Mono,Consolas,monospace}.flow-code-preview code{white-space:pre}.flow-code-preview .sql-keyword{color:#93c5fd;font-weight:900}.flow-code-preview .sql-func{color:#fbbf24}.flow-code-preview .sql-table{color:#86efac}.flow-code-preview .sql-field{color:#c4b5fd}.flow-code-preview .sql-value{color:#fdba74}.flow-empty{font-size:12px}.designcode-design .flow-builder{gap:8px}.designcode-design .flow-head{box-shadow:none;padding:9px}.designcode-design .flow-head-actions{display:none}.designcode-design .flow-grid{grid-template-columns:minmax(200px,260px) minmax(280px,1fr)}.designcode-design .flow-block-fields{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}@media (max-width:1000px){.flow-grid,.designcode-design .flow-grid{grid-template-columns:1fr}.flow-palette-card{min-height:210px}.flow-head{align-items:flex-start;flex-direction:column}.flow-head-actions{justify-content:flex-start}}.app-dark .sqlab-flow-root,.app-dark .flow-head h2,.app-dark .flow-block-title strong,.app-dark .flow-empty strong{color:#f8fafc!important}.app-dark .flow-head,.app-dark .flow-palette-card,.app-dark .flow-canvas-card,.app-dark .flow-block-shell,.app-dark .flow-preview,.app-dark .flow-palette-piece,.app-dark .flow-type-tab,.app-dark .flow-logic-chip{background:#111827!important;border-color:#334155!important;color:#f8fafc!important}.app-dark .flow-head span,.app-dark .flow-palette-piece span,.app-dark .flow-empty{color:#cbd5e1!important}.app-dark .flow-canvas-drop{background:#0b1220!important}.app-dark .flow-block-fields input,.app-dark .flow-block-fields select,.app-dark .flow-grip{background:#1f2937!important;border-color:#334155!important;color:#f8fafc!important}.app-dark .flow-block-title span{background:#334155!important;color:#e5e7eb!important}.app-dark .flow-line-counter{background:#1f2937!important;border-color:#334155!important;color:#cbd5e1!important}

/* v17.49.0 - refinamento Flow, puzzles coloridos, canvas ampliado e exportação com erro de sintaxe */
.design-panel .flow-preview{display:none!important}
.design-panel .flow-builder{gap:10px}
.design-panel .flow-grid{grid-template-columns:minmax(255px,320px) minmax(520px,1fr);gap:10px;min-height:0}
.flow-canvas-card{min-height:0}
.flow-canvas-drop{min-height:420px;overflow:auto;padding:18px 22px 30px;background:linear-gradient(#e7eef7 1px,transparent 1px),linear-gradient(90deg,#e7eef7 1px,transparent 1px),#f8fbff;background-size:24px 24px;border-radius:0}
.flow-puzzle-stack{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:8px 0 28px}
.flow-empty{border:2px dashed #b7c7db;background:rgba(255,255,255,.86);border-radius:18px;color:#475569;padding:24px;text-align:center;margin-bottom:16px}
.flow-command-tabs{display:flex;gap:7px;flex-wrap:wrap;overflow:visible;padding:10px 12px 8px;border-bottom:1px solid var(--border);background:#fff}
.flow-type-tab{flex:1 1 calc(33.333% - 8px);min-width:58px;height:34px;border:1px solid var(--border);border-radius:999px;background:#f8fbff;color:#334155;padding:0 12px;font-size:11px;font-weight:900;letter-spacing:-.01em;box-shadow:0 1px 2px rgb(15 23 42 / .04)}
.flow-type-tab:hover{border-color:#93c5fd;background:#eef7ff;color:#0f4968}
.flow-type-tab.active{background:var(--sgbd-primary);border-color:var(--sgbd-primary);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--sgbd-primary) 22%,transparent)}
.flow-palette-list{overflow:auto;padding:8px 14px 16px;display:block}
.flow-palette-piece{position:relative;width:100%;min-height:54px;border:0!important;border-radius:12px 18px 18px 12px;margin-bottom:10px;padding:10px 12px 10px 16px;color:#fff!important;text-align:left;box-shadow:0 8px 18px rgb(15 23 42 / .12);background:var(--flow-color,#7c3aed)!important;display:block;cursor:grab;opacity:1!important}
.flow-palette-piece::after{content:"";position:absolute;right:-7px;top:19px;width:14px;height:14px;background:inherit;border-radius:50%}
.flow-palette-piece strong{display:block;font-size:13px;color:#fff!important}
.flow-palette-piece span{display:block;opacity:.9;margin-top:3px;font-size:11px;line-height:1.25;color:#fff!important}
.flow-palette-piece.used{box-shadow:0 0 0 3px rgb(34 197 94 / .18),0 8px 18px rgb(15 23 42 / .12)}
.flow-palette-piece.recommended{box-shadow:0 0 0 3px rgb(14 165 233 / .22),0 8px 18px rgb(15 23 42 / .12)}
.flow-palette-piece.required::before,.flow-palette-piece.optional::before,.flow-palette-piece.available::before,.flow-palette-piece.used::before,.flow-palette-piece.recommended::before{position:absolute;right:12px;top:9px;font-size:9px;font-weight:900;opacity:.86;text-transform:uppercase;color:#fff;letter-spacing:.02em}
.flow-palette-piece.required::before{content:"obrigatório"}.flow-palette-piece.optional::before{content:"opcional"}.flow-palette-piece.available::before{content:"define flow"}.flow-palette-piece.used::before{content:"em uso"}.flow-palette-piece.recommended::before{content:"próximo"}
.flow-block{position:relative;display:grid;grid-template-columns:1fr;margin-top:-3px;filter:drop-shadow(0 10px 14px rgb(15 23 42 / .13));background:transparent!important;border:0!important}
.flow-block.dragging{opacity:.55}
.flow-block.selected .flow-block-shell{outline:3px solid rgb(14 165 233 / .34);outline-offset:2px;box-shadow:none!important}
.flow-block-shell{position:relative;min-height:78px;display:grid;grid-template-columns:34px 30px minmax(0,1fr) auto;gap:8px;align-items:stretch;padding:12px 12px 12px 4px;border:0!important;border-radius:18px 20px 20px 18px;color:#fff;background:var(--flow-color,#7c3aed)!important;box-shadow:none!important}
.flow-block-shell::after{content:"";position:absolute;right:-10px;top:28px;width:20px;height:20px;background:inherit;border-radius:50%}
.flow-block-shell::before{content:"";position:absolute;left:-9px;top:28px;width:18px;height:20px;background:#f8fbff;border-radius:50%}
.flow-connector{height:12px;margin-left:38px;z-index:1;pointer-events:none;background:var(--flow-color,#7c3aed)!important}
.flow-connector::before{content:"";display:block;width:66px;height:16px;background:inherit;border-radius:0 0 18px 18px;transform:translateY(-1px)}
.flow-block .flow-connector:last-child::before{border-radius:18px 18px 0 0;transform:translateY(-3px)}
.flow-sequence-badge{align-self:start;justify-self:center;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:#0ea5e9;color:#fff;border:2px solid rgb(255 255 255 / .82);font-size:12px;font-weight:950;box-shadow:0 3px 8px rgb(14 165 233 / .28);margin-top:2px}
.flow-grip{border:0;background:rgb(255 255 255 / .18)!important;color:rgb(255 255 255 / .86)!important;border-radius:12px;font-weight:900;min-width:30px;height:auto;cursor:grab}
.flow-block-title strong{font-size:15px;letter-spacing:-.01em;color:#fff!important}
.flow-block-title span{font-size:11px;opacity:.9;font-weight:800;background:rgb(255 255 255 / .16)!important;color:#fff!important;border:1px solid rgb(255 255 255 / .18);border-radius:999px;padding:3px 8px;text-transform:none;letter-spacing:0}
.flow-block-title .flow-rule-error{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important;opacity:1}
.flow-block-fields{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.flow-block-fields label{display:flex;align-items:center;gap:5px;background:rgb(255 255 255 / .16);border:1px solid rgb(255 255 255 / .18);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;color:#fff!important;text-transform:none}
.flow-block-fields input,.flow-block-fields select{min-width:70px;max-width:190px;height:26px;border:0!important;border-radius:999px;padding:0 8px;background:rgb(255 255 255 / .95)!important;color:#0f172a!important;outline:0;font-size:12px}
.flow-block-controls{display:flex;flex-direction:column;gap:5px;z-index:1}
.flow-icon{width:25px;height:22px;border:0!important;border-radius:8px;background:rgb(255 255 255 / .18)!important;color:#fff!important;font-weight:900}
.type-select,.flow-palette-piece[data-type="select"],.type-insert,.flow-palette-piece[data-type="insert"],.type-update,.flow-palette-piece[data-type="update"],.type-delete,.flow-palette-piece[data-type="delete"]{--flow-color:#7c3aed}
.type-from,.flow-palette-piece[data-type="from"]{--flow-color:#0ea5e9}.type-join,.flow-palette-piece[data-type="join"]{--flow-color:#2563eb}.type-on,.flow-palette-piece[data-type="on"]{--flow-color:#0284c7}.type-where,.flow-palette-piece[data-type="where"]{--flow-color:#16a34a}.type-group,.flow-palette-piece[data-type="group"]{--flow-color:#0891b2}.type-having,.flow-palette-piece[data-type="having"]{--flow-color:#ea580c}.type-order,.flow-palette-piece[data-type="order"]{--flow-color:#475569}.type-limit,.flow-palette-piece[data-type="limit"]{--flow-color:#64748b}.type-case,.flow-palette-piece[data-type="case"]{--flow-color:#db2777}.type-aggregate,.flow-palette-piece[data-type="aggregate"]{--flow-color:#ca8a04}.type-subquery,.flow-palette-piece[data-type="subquery"]{--flow-color:#9333ea}.type-create,.flow-palette-piece[data-type="create"]{--flow-color:#0f766e}.type-alter,.flow-palette-piece[data-type="alter"]{--flow-color:#0369a1}.type-drop,.flow-palette-piece[data-type="drop"]{--flow-color:#b91c1c}.type-truncate,.flow-palette-piece[data-type="truncate"]{--flow-color:#c2410c}.type-grant,.flow-palette-piece[data-type="grant"]{--flow-color:#15803d}.type-revoke,.flow-palette-piece[data-type="revoke"]{--flow-color:#be123c}.type-begin,.flow-palette-piece[data-type="begin"]{--flow-color:#4f46e5}.type-savepoint,.flow-palette-piece[data-type="savepoint"]{--flow-color:#7c3aed}.type-commit,.flow-palette-piece[data-type="commit"]{--flow-color:#16a34a}.type-rollback,.flow-palette-piece[data-type="rollback"]{--flow-color:#dc2626}
.flow-block.has-sequence-error .flow-block-shell{background:var(--flow-color,#7c3aed)!important;border-color:transparent!important}
.btn.export-syntax-error{background:#dc2626!important;border-color:#b91c1c!important;color:#fff!important;animation:sqlab-export-error-pulse 1.05s ease-in-out infinite;box-shadow:0 0 0 0 rgb(220 38 38 / .45)}
@keyframes sqlab-export-error-pulse{0%{box-shadow:0 0 0 0 rgb(220 38 38 / .55)}70%{box-shadow:0 0 0 8px rgb(220 38 38 / 0)}100%{box-shadow:0 0 0 0 rgb(220 38 38 / 0)}}
@media (max-width:1000px){.design-panel .flow-grid{grid-template-columns:1fr}.flow-canvas-drop{min-height:360px}.flow-palette-card{min-height:240px}.flow-type-tab{flex-basis:calc(50% - 8px)}}
.app-dark .flow-canvas-drop{background:linear-gradient(rgb(51 65 85 / .65) 1px,transparent 1px),linear-gradient(90deg,rgb(51 65 85 / .65) 1px,transparent 1px),#0b1220!important}.app-dark .flow-empty{background:rgb(15 23 42 / .88);border-color:#475569}.app-dark .flow-block-shell::before{background:#0b1220}.app-dark .flow-command-tabs{background:#111827!important;border-color:#334155!important}.app-dark .flow-type-tab{background:#1f2937;color:#e5e7eb;border-color:#334155}.app-dark .flow-type-tab.active{background:var(--sgbd-primary)!important;border-color:var(--sgbd-primary)!important;color:#fff!important}

/* v17.51.0 - ajuste de proporção Flow+Code, cabeçalho Flow em linha única e CodeMirror unificado */
.designcode-design{flex:0 0 60%}
.flow-head>div:first-child{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto;white-space:nowrap}
.flow-head h2{flex:0 0 auto;margin:0!important;line-height:1!important}
.flow-head span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}
.design-panel .flow-line-counter,
.design-panel [data-flow-action="template"]{display:none!important}
.design-panel .flow-head{align-items:center}
.design-panel .flow-head-actions{flex:0 0 auto}
.designcode-code{background:#fff!important;color:#0f172a!important}
.designcode-code .designcode-pane-head{background:#f8fafc!important;color:#334155!important;border-color:var(--border)!important}
.designcode-code .CodeMirror{height:100%!important;flex:1!important;background:#fff!important;color:#0f172a!important;font-family:JetBrains Mono,Fira Code,Consolas,monospace!important;font-size:14px!important}
.designcode-code .CodeMirror-gutters{background:#f8fafc!important;border-color:var(--border)!important}
.designcode-code .CodeMirror-linenumber{color:#64748b!important}
.designcode-code .CodeMirror-cursor{border-left:1px solid #0f172a!important}
.designcode-code .CodeMirror-selected{background:#dbeafe!important}
.designcode-code .CodeMirror .cm-keyword,
.designcode-code .CodeMirror .cm-builtin,
.designcode-code .CodeMirror .cm-atom{color:var(--sql-keyword)!important;font-weight:950!important}
.designcode-code .CodeMirror .cm-string{color:#dc2626!important}
.designcode-code .CodeMirror .cm-number{color:#16a34a!important}
.designcode-code .CodeMirror .cm-comment{color:#64748b!important;font-style:italic!important}
.designcode-code .CodeMirror .cm-variable,
.designcode-code .CodeMirror .cm-def,
.designcode-code .CodeMirror .cm-property{color:#0f172a!important;font-weight:650!important}
.app-dark .designcode-code{background:#0f172a!important;color:#f8fafc!important}
.app-dark .designcode-code .designcode-pane-head{background:#111827!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .designcode-code .CodeMirror,
.app-dark .designcode-code .CodeMirror-gutters{background:#0f172a!important;color:#f8fafc!important;border-color:#334155!important}
.app-dark .designcode-code .CodeMirror-linenumber{color:#cbd5e1!important}
.app-dark .designcode-code .CodeMirror-cursor{border-left-color:#fff!important}
.app-dark .designcode-code .CodeMirror-selected{background:#334155!important}
.app-dark .designcode-code .CodeMirror .cm-keyword,
.app-dark .designcode-code .CodeMirror .cm-builtin,
.app-dark .designcode-code .CodeMirror .cm-atom{color:#7dd3fc!important;font-weight:950!important}
.app-dark .designcode-code .CodeMirror .cm-string{color:#fca5a5!important}
.app-dark .designcode-code .CodeMirror .cm-number{color:#86efac!important}
.app-dark .designcode-code .CodeMirror .cm-comment{color:#cbd5e1!important;font-style:italic!important}
.app-dark .designcode-code .CodeMirror .cm-variable,
.app-dark .designcode-code .CodeMirror .cm-def,
.app-dark .designcode-code .CodeMirror .cm-property{color:#f8fafc!important;font-weight:650!important}
.editor-dark:not(.app-dark) .designcode-code{background:#0f172a!important;color:#e5e7eb!important}
.editor-dark:not(.app-dark) .designcode-code .designcode-pane-head{background:#111827!important;color:#e5e7eb!important;border-color:#334155!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror,
.editor-dark:not(.app-dark) .designcode-code .CodeMirror-gutters{background:#0f172a!important;color:#e5e7eb!important;border-color:#334155!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror-linenumber{color:#94a3b8!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror-cursor{border-left-color:#e5e7eb!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror-selected{background:#334155!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-keyword{color:#60a5fa!important;font-weight:900!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-string{color:#fca5a5!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-number{color:#86efac!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-comment{color:#94a3b8!important;font-style:italic!important}
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-variable,
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-def,
.editor-dark:not(.app-dark) .designcode-code .CodeMirror .cm-property{color:#e5e7eb!important;font-weight:650!important}
@media (max-width:1000px){.flow-head>div:first-child{white-space:normal}.flow-head span{white-space:normal}.designcode-design{flex-basis:100%!important}}

/* v17.52.0 - renomeação SQL/Flow+SQL, editor sem barra extra e trilhas gamificadas */
.designcode-code .designcode-pane-head{display:none!important}
.designcode-code{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:0!important;background:#fff!important;border-left:0!important}
.designcode-code .CodeMirror{width:100%!important;height:100%!important;border:0!important;box-shadow:none!important}
.designcode-code .CodeMirror-scroll{height:100%!important;min-height:100%!important}
.designcode-code .CodeMirror-sizer{border-right:0!important}
.quest-progress,.learning-progress{border:1px solid var(--border);border-radius:14px;background:#f8fafc;padding:12px;margin-bottom:12px;color:#334155}
.quest-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.quest-progress span,.learning-progress span{font-size:11px;color:#64748b;font-weight:800}.quest-bar{height:9px;border-radius:999px;background:#e2e8f0;overflow:hidden}.quest-bar i{display:block;height:100%;background:var(--sgbd-primary);border-radius:999px;transition:width .2s ease}.quest-card{position:relative;overflow:hidden}.quest-card.active{border-color:var(--sgbd-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sgbd-primary) 12%,transparent)}.quest-card.done{border-color:#22c55e;background:#f0fdf4}.quest-card.revealed{border-color:#f97316;background:#fff7ed}.quest-card.locked{opacity:.62;background:#f8fafc}.quest-head,.lesson-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.quest-head em{font-style:normal;border-radius:999px;background:#e2e8f0;color:#475569;padding:3px 8px;font-size:10px;font-weight:900;text-transform:uppercase;white-space:nowrap}.quest-card.active .quest-head em{background:var(--sgbd-primary);color:#fff}.quest-card.done .quest-head em{background:#16a34a;color:#fff}.quest-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.quest-tags span{border-radius:999px;background:#eef2ff;color:#3730a3;padding:3px 8px;font-size:10px;font-weight:900}.quest-actions,.lesson-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.quest-actions button,.lesson-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:#fff;color:#334155;border-radius:10px;padding:7px 8px;font-size:11px;font-weight:900;cursor:pointer}.quest-actions button:hover,.lesson-actions button:hover{background:#eef6ff;color:var(--sgbd-primary)}.quest-actions button:disabled,.lesson-actions button:disabled{opacity:.45;cursor:not-allowed}.lesson-card{border-left:4px solid var(--sgbd-primary)}.lesson-card.done{border-color:#22c55e;background:#f0fdf4}.lesson-head{justify-content:flex-start}.lesson-head span{margin:0;flex:0 0 30px}.lesson-head small{display:block;color:#64748b;font-weight:800;margin-top:2px}.lesson-card details{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px;margin-top:10px}.lesson-card summary{cursor:pointer;font-weight:900;font-size:12px;color:#334155}.lesson-card ul{margin:8px 0 0;padding-left:18px;color:#475569;font-size:12px}.side-feedback.ok,.side-feedback.bad{margin-top:12px;font-size:12px;line-height:1.35}.app-dark .quest-progress,.app-dark .learning-progress,.app-dark .quest-card,.app-dark .lesson-card,.app-dark .lesson-card details{background:#111827!important;border-color:#334155!important;color:#e5e7eb!important}.app-dark .quest-progress span,.app-dark .learning-progress span,.app-dark .lesson-head small,.app-dark .lesson-card li{color:#cbd5e1!important}.app-dark .quest-head em{background:#334155;color:#e5e7eb}.app-dark .quest-actions button,.app-dark .lesson-actions button{background:#1f2937;color:#e5e7eb;border-color:#334155}.app-dark .quest-actions button:hover,.app-dark .lesson-actions button:hover{background:#0f172a;color:#93c5fd}

/* v17.53.0 - trilhas por nível em Aprendizado e Desafios */
.level-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px}
.level-chip{border:1px solid color-mix(in srgb,var(--level-color) 30%,#dbe3ef);background:#fff;color:#334155;border-radius:14px;padding:9px 10px;text-align:left;cursor:pointer;box-shadow:0 6px 16px rgb(15 23 42 / .04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.level-chip strong{display:block;font-size:12px;font-weight:950;color:var(--level-color);line-height:1.1}
.level-chip span{display:block;margin-top:3px;font-size:10px;font-weight:900;text-transform:uppercase;color:#64748b;letter-spacing:.04em}
.level-chip:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px rgb(15 23 42 / .08)}
.level-chip.active{background:color-mix(in srgb,var(--level-color) 10%,#fff);border-color:var(--level-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--level-color) 16%,transparent)}
.level-chip.current strong:after{content:' atual';font-size:9px;margin-left:5px;color:#fff;background:var(--level-color);border-radius:999px;padding:2px 5px;text-transform:uppercase;vertical-align:middle}
.level-chip.passed{background:#f0fdf4;border-color:#86efac}.level-chip.passed strong{color:#15803d}
.level-chip.review{background:#fff7ed;border-color:#fb923c}.level-chip.review strong{color:#c2410c}
.level-chip.locked{opacity:.58;cursor:not-allowed;background:#f8fafc}
.level-progress{border-left:5px solid var(--level-color);box-shadow:0 10px 24px rgb(15 23 42 / .05)}
.level-progress p{font-size:12px;line-height:1.35;color:#475569;margin:8px 0 0;font-weight:700}
.level-progress small{display:block;margin-top:7px;color:#64748b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.level-quest{border-left:5px solid var(--level-color)!important}
.level-quest.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--level-color) 14%,transparent),0 8px 18px rgb(15 23 42 / .06)!important}
.level-quest .quest-head em{background:color-mix(in srgb,var(--level-color) 18%,#e2e8f0);color:var(--level-color)}
.level-quest.active .quest-head em{background:var(--level-color);color:#fff}
.level-quest.done .quest-head em{background:#16a34a;color:#fff}
.level-quest.revealed .quest-head em{background:#f97316;color:#fff}
.level-lesson{border-left-color:var(--level-color)!important}
.level-lesson .lesson-head span{background:color-mix(in srgb,var(--level-color) 12%,#eef2ff);color:var(--level-color);border:1px solid color-mix(in srgb,var(--level-color) 24%,#dbe3ef);border-radius:999px;text-align:center;font-weight:950;padding:4px 0}
.level-review-box{border:1px solid #fb923c;background:#fff7ed;color:#9a3412;border-radius:16px;padding:14px;margin:12px 0;box-shadow:0 10px 24px rgb(154 52 18 / .08)}
.level-review-box.ready{border-color:#22c55e;background:#f0fdf4;color:#166534}
.level-review-box strong{display:block;font-size:13px;margin-bottom:5px}.level-review-box p{font-size:12px;line-height:1.35;margin:0 0 10px}.level-review-box button{border:0;background:#ea580c;color:#fff;border-radius:11px;padding:9px 11px;font-weight:950;cursor:pointer}.level-review-box.ready button{background:#16a34a}.level-review-box button:disabled{opacity:.45;cursor:not-allowed;background:#94a3b8}
.app-dark .level-chip{background:#111827;color:#e5e7eb;border-color:#334155}.app-dark .level-chip span{color:#cbd5e1}.app-dark .level-chip.active{background:color-mix(in srgb,var(--level-color) 24%,#111827)}.app-dark .level-progress p,.app-dark .level-progress small{color:#cbd5e1}.app-dark .level-review-box{background:#432b16;color:#fed7aa;border-color:#9a5a16}.app-dark .level-review-box.ready{background:#142b1d;color:#bbf7d0;border-color:#166534}
@media (max-width:900px){.level-path{grid-template-columns:1fr}.level-chip{padding:8px}}

/* v17.55.0 - cobertura ampliada do Design Color Code para comandos SQL */
.type-show,.flow-palette-piece[data-type="show"]{--flow-color:#0f766e}
.type-describe,.flow-palette-piece[data-type="describe"]{--flow-color:#0891b2}
.type-callProcedure,.flow-palette-piece[data-type="callProcedure"]{--flow-color:#7c3aed}
.type-createDatabase,.flow-palette-piece[data-type="createDatabase"]{--flow-color:#0e7490}
.type-useDatabase,.flow-palette-piece[data-type="useDatabase"]{--flow-color:#0284c7}
.type-dropDatabase,.flow-palette-piece[data-type="dropDatabase"]{--flow-color:#991b1b}
.type-createIndex,.flow-palette-piece[data-type="createIndex"]{--flow-color:#0369a1}
.type-createView,.flow-palette-piece[data-type="createView"]{--flow-color:#0f766e}
.type-alterView,.flow-palette-piece[data-type="alterView"]{--flow-color:#0d9488}
.type-dropView,.flow-palette-piece[data-type="dropView"]{--flow-color:#be123c}
.type-createFunction,.flow-palette-piece[data-type="createFunction"]{--flow-color:#6d28d9}
.type-dropFunction,.flow-palette-piece[data-type="dropFunction"]{--flow-color:#9f1239}
.type-createProcedure,.flow-palette-piece[data-type="createProcedure"]{--flow-color:#7c3aed}
.type-dropProcedure,.flow-palette-piece[data-type="dropProcedure"]{--flow-color:#be123c}
.type-createTrigger,.flow-palette-piece[data-type="createTrigger"]{--flow-color:#c2410c}
.type-dropTrigger,.flow-palette-piece[data-type="dropTrigger"]{--flow-color:#b91c1c}
.CodeMirror .cm-operator{color:#0f766e!important;font-weight:900!important}
.CodeMirror .cm-bracket{color:#64748b!important;font-weight:800!important}
.CodeMirror .cm-qualifier,.CodeMirror .cm-variable-2,.CodeMirror .cm-variable-3{color:#334155!important;font-weight:650!important}
.app-dark .CodeMirror .cm-operator{color:#5eead4!important}
.app-dark .CodeMirror .cm-bracket{color:#cbd5e1!important}
.app-dark .CodeMirror .cm-qualifier,.app-dark .CodeMirror .cm-variable-2,.app-dark .CodeMirror .cm-variable-3{color:#e5e7eb!important}

/* v17.60.0 - Flow workspace dropdowns and multiple selection */
.flow-block-fields label{overflow:visible!important;position:relative}.flow-block-fields{overflow:visible!important}.flow-block-main,.flow-block-shell,.flow-puzzle-stack,.flow-canvas-drop,.flow-canvas-card{overflow:visible!important}.flow-canvas-drop{overflow:auto!important}.flow-combo{position:relative;display:inline-flex;align-items:center;gap:4px;min-width:128px;max-width:260px;min-height:26px;background:rgb(255 255 255 / .95);border-radius:999px;padding:2px 25px 2px 7px;color:#0f172a;z-index:4}.flow-combo-input{min-width:70px!important;max-width:150px!important;height:22px!important;padding:0 5px!important;border:0!important;background:transparent!important;color:#0f172a!important}.flow-combo-toggle{position:absolute;right:3px;top:3px;width:20px;height:20px;border:0;border-radius:999px;background:#e2e8f0;color:#334155;font-weight:900;cursor:pointer}.flow-combo-menu{display:none;position:absolute;left:0;top:calc(100% + 6px);min-width:220px;max-width:310px;max-height:230px;overflow:auto;background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:14px;box-shadow:0 18px 38px rgb(15 23 42 / .28);padding:6px;z-index:9999}.flow-combo.open .flow-combo-menu{display:grid;gap:4px}.flow-combo-option{width:100%;border:0;background:#fff;color:#0f172a;border-radius:9px;padding:7px 9px;text-align:left;font-size:12px;font-weight:800;cursor:pointer}.flow-combo-option:hover{background:#eef6ff;color:var(--sgbd-primary)}.flow-combo-option.selected,.flow-combo-option:disabled{background:#e2e8f0;color:#64748b;cursor:not-allowed}.flow-multi{align-items:flex-start;border-radius:14px;flex-wrap:wrap;min-width:210px;max-width:360px;padding:4px 26px 4px 6px}.flow-multi .flow-combo-input{flex:1;min-width:96px!important}.flow-chipbox{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}.flow-chip{border:0;background:var(--sgbd-primary);color:#fff;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900;cursor:pointer}.flow-chip span{font-weight:900;margin-left:3px}.flow-combo-empty{font-size:12px;color:#64748b;padding:7px 9px}.app-dark .flow-combo{background:#1f2937!important;color:#f8fafc!important}.app-dark .flow-combo-input{color:#f8fafc!important}.app-dark .flow-combo-toggle{background:#334155;color:#e5e7eb}.app-dark .flow-combo-menu{background:#111827;color:#f8fafc;border-color:#475569}.app-dark .flow-combo-option{background:#111827;color:#f8fafc}.app-dark .flow-combo-option:hover{background:#1f2937;color:#93c5fd}.app-dark .flow-combo-option.selected,.app-dark .flow-combo-option:disabled{background:#334155;color:#94a3b8}.app-dark .flow-combo-empty{color:#cbd5e1}

/* v17.62.0 - Flow dropdown workspace fixes */
.flow-block:has(.flow-combo.open){position:relative!important;z-index:100000!important}
.flow-block-shell:has(.flow-combo.open),.flow-block-main:has(.flow-combo.open),.flow-block-fields:has(.flow-combo.open),.flow-block-fields label:has(.flow-combo.open){overflow:visible!important;z-index:100001!important}
.flow-combo.open{z-index:100002!important}
.flow-combo.open .flow-combo-menu{display:grid!important;gap:4px;z-index:100003!important;isolation:isolate}
.flow-combo-option[hidden]{display:none!important}
.flow-canvas-drop{isolation:isolate}

/* v17.63 autosuggest restore: SQL editor suggestions must stay above Flow dropdown layers. */
.sql-suggest-box{z-index:2147483000!important;pointer-events:auto!important}
.sql-suggest-box button{pointer-events:auto!important}
.CodeMirror-focused + .sql-suggest-box,.sql-suggest-box{isolation:isolate}
