
.hidden { display:none; }
.muted { color: rgba(0,0,0,0.6); }
.bold { font-weight: 600; }


.toolbar {
  margin: 12px auto 0;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.file-label {
  display: inline-block;
  border: 1px solid #ddd;
  background: #fff;
  padding: .6rem .9rem;
  border-radius: 6px;
  cursor: pointer;
}
.file-label input { display:none; }
.toolbar button {
  border: 1px solid #111;
  background: #111;
  color: #fff;
  padding: .6rem .9rem;
  border-radius: 6px;
  cursor: pointer;
}
.toolbar button[disabled] { opacity:.45; cursor:not-allowed; }


.treeWrap {
  position: relative;
  border: 1px solid #e5e5e5;
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-top: 18px;
  overflow: auto;
  min-height: 420px;
}
.edges {
  position: absolute;
  inset: 16px 16px 16px 16px; 
  pointer-events: none;
}
.treeGrid { position: relative; }
.columns {
  position: relative;
  display: grid;
  gap: 24px;
}


.column {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.gen-label { font-size: 14px; color: rgba(0,0,0,0.55); }

.node {
  position: relative;
  width: 140px; height: 140px;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
}
.node img { width:100%; height:100%; object-fit: cover; display:block; }
.node .cap {
  position:absolute; left:0; right:0; bottom:0;
  background: rgba(0,0,0,.5); color:#fff;
  font-size: 12px; padding: 4px 6px;
  display: flex; justify-content: space-between;
}
.node .tick {
  position: absolute; top:6px; left:6px;
  background: rgba(255,255,255,.9);
  padding: 2px 6px; font-size: 12px; border-radius: 999px;
}
.node.selected { outline: 2px solid #111; outline-offset: 2px; }


.inspector { margin-top: 16px; }
.inspected-thumb {
  width: 280px; height: 280px;
  border: 1px solid #e5e5e5; border-radius: 10px;
  overflow: hidden; margin: 10px auto;
}
.inspected-thumb img { width:100%; height:100%; object-fit: cover; display:block; }
.meta-row { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
