/* ============================================================
   layout.css — Page Layout + Tree Layout
   ============================================================ */

/* Page wrapper */
.hb-page {
  max-width: 1200px;
  margin: 20px auto 60px;
  padding: 0 20px;
}

/* Tree layout */
ul {
  list-style: none;
  margin: 0;
  padding-left: 20px;
}

.node {
  margin-bottom: 10px;
}

.node .row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.toggle {
  cursor: pointer;
  font-weight: bold;
  width: 20px;
  display: inline-block;
}

.toggle.empty {
  opacity: 0.3;
  cursor: default;
}

.node.collapsed > ul {
  display: none;
}

/* Person card */
.person {
  display: inline-block;
  background: #ffffff;
  border: 1px solid #d8cbb8;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 14px;
  max-width: 600px;
}

.person .nm {
  font-weight: bold;
  color: #2b211a;
}

.person .yrs {
  margin-left: 6px;
  color: #6b5b4d;
}

.person .place {
  display: block;
  font-size: 12px;
  color: #6b5b4d;
}

.person .spouse {
  display: block;
  font-size: 13px;
  margin-top: 4px;
}

.person .penmark {
  margin-left: 6px;
  color: #5a4a86;
}

.count {
  margin-left: 8px;
  font-size: 12px;
  color: #6b5b4d;
}

/* Center couple banner */
.center-banner {
  display: block;
  background: #5a4a86;
  color: #fff;
  padding: 2px 6px;
  font-size: 11px;
  border-radius: 4px;
  margin-bottom: 4px;
}
