/* IP Block Tree Styles */

.ip-block-tree {
  font-size: 0.95rem;
}

.ip-block-node {
  border-left: 1px solid var(--bulma-border);
  padding-left: 0.5rem;
  margin-bottom: 0.1rem;
}

.ip-block-node:last-child {
  border-left-color: transparent;
}

.ip-block-row {
  display: flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  transition: background-color 0.15s ease;
}

.ip-block-row:hover {
  background-color: var(--bulma-scheme-main-bis);
}

.ip-block-row.is-search-match {
  background-color: hsl(48, 100%, 90%);
  border-radius: 4px;
}

.ip-block-row.is-search-match:hover {
  background-color: hsl(48, 100%, 85%);
}

.ip-block-toggle {
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  flex-shrink: 0;
}

.ip-block-cidr {
  font-family: monospace;
}

.ip-block-cidr a {
  color: var(--bulma-link);
}

.ip-block-cidr a:hover {
  color: var(--bulma-link-hover);
}

.ip-block-label {
  font-size: 0.9em;
}

.ip-block-row .ip-block-actions {
  opacity: 0;
  transition: opacity 0.15s ease;
}

.ip-block-row:hover .ip-block-actions {
  opacity: 1;
}

.ip-block-children {
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}

.ip-block-children.is-collapsed {
  display: none;
}

/* Top-level superblocks don't need the left border */
.ip-block-tree > .ip-block-node {
  border-left: none;
  padding-left: 0;
}

/* Ensure buttons don't wrap awkwardly */
.ip-block-actions .buttons {
  flex-wrap: nowrap;
  margin-bottom: 0;
}

.ip-block-actions .button {
  margin-bottom: 0;
}

/* Dark theme overrides */
[data-theme="dark"] .ip-block-row.is-search-match {
  background-color: rgba(16, 185, 129, 0.2);
}

[data-theme="dark"] .ip-block-row.is-search-match:hover {
  background-color: rgba(16, 185, 129, 0.3);
}
