/* ── VISUALIZER-SPECIFIC CSS — table-deps SQL visualizer ── */

/* ── Navigation button to Project DAG ── */
.nav-btn {
  display: flex; align-items: center; gap: 10px;
  margin: 12px 12px 0; padding: 10px 14px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--surface2)), var(--surface2));
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  border-radius: 8px;
  color: var(--accent); font-size: 13px; font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, transform 0.1s;
}
.nav-btn:hover {
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 20%, var(--surface2)), var(--surface2));
  border-color: var(--accent);
}
.nav-btn:active { transform: scale(0.98); }
.nav-btn svg { flex-shrink: 0; opacity: 0.8; }
.nav-btn .nav-arrow {
  margin-left: auto; font-size: 14px; opacity: 0.5;
  transition: transform 0.2s, opacity 0.2s;
}
.nav-btn:hover .nav-arrow { transform: translateX(3px); opacity: 1; }

textarea#sql-input {
  width: 100%; height: 160px;
  background: var(--surface2); border: 1px solid var(--border); border-radius: 6px;
  color: var(--text); font-family: 'SF Mono','Fira Code',monospace;
  font-size: 11px; line-height: 1.6; padding: 8px 10px;
  resize: vertical; outline: none; transition: border-color 0.15s;
}
textarea#sql-input:focus { border-color: var(--accent); }

#analyze-btn { flex: 1; background: var(--accent); color: #0d1117; }
#example-btn { background: var(--surface2); color: var(--text); border: 1px solid var(--border); }
#clear-btn   { background: var(--surface2); color: var(--muted); border: 1px solid var(--border); padding: 7px 10px; }

/* Table list badge */
#table-list li .badge {
  margin-left: auto; font-size: 9px; color: var(--muted);
  background: var(--border); border-radius: 3px; padding: 1px 4px;
}

/* CTE list */
#cte-list { display: flex; flex-direction: column; gap: 8px; max-height: 220px; overflow-y: auto; }
.cte-item {
  background: var(--surface2); border: 1px solid var(--cte);
  border-radius: 6px; overflow: hidden;
}
.cte-item-header {
  background: color-mix(in srgb, var(--cte) 15%, transparent);
  padding: 5px 10px;
  font-size: 11px; font-weight: 700; font-family: 'SF Mono',monospace;
  color: var(--cte); display: flex; align-items: center; gap: 6px;
}
.cte-item-header .cte-badge {
  margin-left: auto; font-size: 9px; font-weight: 600;
  background: color-mix(in srgb, var(--cte) 20%, transparent);
  border-radius: 3px; padding: 1px 5px; color: var(--cte);
}
.cte-item-tables { padding: 4px 10px 8px; display: flex; flex-direction: column; gap: 2px; }
.cte-item-table {
  font-size: 10px; font-family: 'SF Mono',monospace;
  color: var(--muted); padding: 1px 0;
}

/* ── SVG STYLES ──────────────────────────── */
.link { stroke-opacity: 0.55; stroke-width: 1.5; fill: none; }
.link-label {
  font-size: 9px; font-family: 'SF Mono',monospace; font-weight: 600;
  fill: #333333; text-anchor: middle; dominant-baseline: middle;
  pointer-events: none; user-select: none;
}
.col-endpoint-label {
  font-size: 8px; font-family: 'SF Mono',monospace; font-weight: 600;
  fill: #555555; text-anchor: middle; dominant-baseline: middle;
  pointer-events: none; user-select: none; opacity: 0.85;
}
.table-node text { pointer-events: none; user-select: none; }
.cte-node { cursor: grab; }
.cte-node:active { cursor: grabbing; }
.cte-node text { pointer-events: none; user-select: none; }
.cte-node rect { transition: filter 0.15s; }
.cte-node:hover .cte-bg { filter: brightness(1.15); }
