body.descendants #view-container {
  background: #fcb76e;
  min-height: auto;
}

body.descendants.report-mode #view-container {
  background: #ffffff;
}

#descendants li {
  list-style-type: none;
  margin: 0;
  border: 1px solid #ddd;
  margin-bottom: -1px;
  background-color: #f6f6f6;
}
#descendants {
  margin-left: 0;
}
#descendants.hidden {
  display: none !important;
}
#descendants ul.personList {
  display: none; /* Hide the list by default */
}

#descendants ul.personList.expanded {
  display: block; /* Show the list when it has the class 'expanded' */
}

/* Report mode styles */
body.descendants.report-mode #view-container {
  background: #ffffff;
}

#descendantsReportWrapper {
  background: #ffffff;
  border-top: 1px solid #ccc;
  padding: 1em 1.25em 1.25em 1.25em;
  margin-top: 0.5em;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#descendantsReportWrapper.hidden {
  display: none;
}

#descendantsReportStatus,
#reportStatusText {
  display: block; /* Change to block to prevent inline wrapping jumps */
  font-size: 0.9em;
  margin-top: 0.4em;
  color: #666;
  min-height: 1.2em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  text-align: center;
}

#treeViewControls,
#sharedControls,
#reportControls {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  padding: 0.6em 0.8em;
  margin-top: 0.5em;
  border: 2px solid #ccc;
  border-radius: 4px;
  max-width: 100%;
}

/* View Toggling Logic */
/* Default (Tree View): Hide report controls */
#reportControls {
  display: none !important;
}

/* Report View: Hide tree controls, Show report controls */
body.report-mode #treeViewControls {
  display: none !important;
}

body.report-mode #reportControls {
  display: flex !important;
}

#treeViewControls {
  border-color: #999;
  background: rgba(150, 150, 150, 0.05);
  display: grid;
  grid-template-columns: auto auto auto auto;
  gap: 0.4em;
  justify-content: center;
}

#treeViewControls label {
  white-space: nowrap;
}

#sharedControls {
  border-color: #6b9bd1;
  background: rgba(107, 155, 209, 0.05);
}

#reportControls {
  border-color: #d7a860;
  background: rgba(215, 168, 96, 0.08);
}

#helpEtc {
  border: none;
  padding: 0;
  margin: 0;
}

/* View Switcher Controls */
#viewSwitcher {
  display: inline-flex; /* Keep buttons together */
  margin-right: 0.5em; /* Minor spacing from other buttons */
}

#viewSwitcher button {
  margin: 0; /* Remove default margins to join them */
  padding: 0.2em 0.8em; /* Slightly wider click area */
}

/* Join the buttons */
#viewSwitcher button#viewTree {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: none;
}

#viewSwitcher button#viewReport {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Active State Highlight */
#viewSwitcher button.active {
  background-color: #25422d; /* Dark Green (WikiTree-ish) */
  color: #fff;
  font-weight: bold;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
  cursor: default;
  border-color: #1a3020;
}

/* Inactive State Hover */
#viewSwitcher button:not(.active):hover {
  background-color: #eef;
}

.report-person {
  border: 1px solid #ddd;
  padding: 1.2em 1.5em;
  margin-bottom: 1.5em;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  page-break-inside: avoid;
  max-width: 66em;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  width: 100%;
  border-left: 6px solid #d7dfea;
  font-family: Georgia, "Times New Roman", Times, serif; /* Premium serif for narrative */
  display: flow-root; /* Contain floated elements */
  font-size: 1.05em;
  line-height: 1.5;
  color: #333;
}

.report-main-title {
  text-align: center;
  font-size: 1.8em;
  margin: 1.5em 0 2em;
  font-family: inherit;
  font-weight: bold;
  color: #000;
  width: 100%;
  max-width: 66em;
  margin-left: auto;
  margin-right: auto;
}

.report-generation-header {
  text-align: center;
  border-bottom: 2px solid #333;
  margin: 2em 0 1.5em;
  padding-bottom: 0.3em;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 1.4em;
  color: #000;
  width: 100%;
  max-width: 66em;
  margin-left: auto;
  margin-right: auto;
}

.report-person-title {
  font-size: 1.25em;
  font-weight: bold;
  margin-bottom: 0.8em;
  color: #000;
}

.report-ancestry-trace {
  font-weight: normal;
  font-style: italic;
  font-size: 0.9em;
  margin-left: 0.5em;
  color: #555;
}

.report-ancestry-trace sup {
  font-style: normal;
  font-size: 0.7em;
  top: -0.4em;
}

.report-section-label {
  font-weight: bold;
  display: block;
  margin-top: 1.2em;
  margin-bottom: 0.4em;
  font-family: inherit;
  color: #222;
}

.report-vitals,
.report-spouses {
  margin-bottom: 1em;
}

.report-children-list {
  list-style: none;
  padding-left: 0;
  margin: 0.5em 0;
}

.report-children-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 0.3em;
}

.report-child-prefix {
  flex: 0 0 5em;
  display: inline-block; /* Fallback */
  font-weight: bold;
  white-space: nowrap;
}

.report-arabic-num {
  display: inline-block;
  width: 2.3em;
  text-align: right;
  padding-right: 0.5em;
}

.report-roman-num {
  display: inline-block;
  width: 2.2em;
}

.report-child-content {
  flex: 1;
  display: inline-block;
}

.report-name-inline {
  font-weight: bold;
}

.report-notes {
  margin-bottom: 1.5em;
  background-color: #f9f9f9;
  padding: 1em;
  border-left: 3px solid #ccc;
  font-size: 0.95em;
}

.report-notes .report-section-label {
  margin-top: 0;
}

.report-endnotes {
  border-top: 1px solid #eee;
  padding-top: 1em;
  margin-top: 2em;
  font-size: 0.9em;
  color: #666;
}

.report-person-header {
  margin-bottom: 0.8em;
  border-bottom: 1px solid #eee;
  padding-bottom: 0.5em;
  overflow: auto;
}

.report-person-title {
  font-size: 1.15em;
  font-weight: 500;
  display: block;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.4;
  margin: 0;
}

.report-vitals {
  margin-top: 0.3em;
  font-size: 0.95em;
  color: #444;
}

.report-vital-line {
  line-height: 1.4;
}

.report-person-title > span {
  display: inline;
  margin-right: 0.5em;
}

.report-name {
  font-weight: 700 !important;
  color: #222;
}

.report-aboville {
  color: #666;
  font-weight: bold;
}

.report-meta,
.report-places {
  color: #444;
  font-size: 0.95em;
}

.report-spouses,
.report-children {
  color: #444;
  margin-top: 0.5em;
  font-size: 0.95em;
  line-height: 1.4;
}

.report-children-label {
  font-weight: 600;
  margin-top: 0.4em;
}

.report-children-list {
  list-style-type: none;
  margin: 0.5em 0 0 0;
  padding-left: 0;
}

.report-children-list li {
  margin: 0.3em 0;
  line-height: 1.4;
  display: grid;
  grid-template-columns: min-content 1fr;
  gap: 0.5em;
  align-items: baseline;
}

.report-aboville-inline {
  font-weight: 600;
  white-space: nowrap;
  display: none;
}

#descendantsReportWrapper.aboville-mode .report-aboville-inline {
  display: inline;
}

#descendantsReportWrapper.aboville-mode .report-id-num,
#descendantsReportWrapper.aboville-mode .report-arabic-num,
#descendantsReportWrapper.aboville-mode .report-roman-num {
  display: none;
}

.report-bio {
  margin-top: 1em;
  line-height: 1.6;
  font-size: 1.05em;
  color: #333;
}

.report-bio p {
  margin: 0.8em 0;
}

.report-bio h2 {
  font-family: sans-serif;
  font-size: 1.05em;
  margin-top: 0.8em;
  margin-bottom: 0.3em;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.report-bio h3 {
  font-family: sans-serif;
  font-size: 1em;
  margin-top: 0.6em;
  margin-bottom: 0.2em;
  color: #555;
  font-weight: bold;
}

.report-bio-image {
  display: none;
  max-width: 100%;
  height: auto;
  margin: 1em 0;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

#descendantsReportWrapper.show-photos .report-bio-image {
  display: block;
}

.report-endnotes {
  margin-top: 1.5em;
  padding-top: 1em;
  border-top: 1px solid #eee;
  font-size: 0.9em;
  color: #555;
}

.report-photo {
  display: none;
  float: right !important;
  max-width: 75px;
  max-height: 100px;
  margin: 0 0 0.5em 1em !important;
  border: 1px solid #ddd;
  padding: 2px;
  background: #fff;
  border-radius: 4px;
}

#descendantsReportWrapper.show-photos .report-photo {
  display: block;
}

#reportPhotosLabel {
  margin-left: 1em;
  font-size: 0.9em;
  color: #444;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
}

#reportPhotosLabel input {
  margin: 0;
}

@media print {
  @page {
    margin: 1.5cm;
  }

  @page landscape-page {
    size: landscape;
    margin: 1.5cm;
  }

  @page portrait-page {
    size: portrait;
    margin: 1.5cm;
  }

  body.descendants {
    page: landscape-page;
  }

  body.descendants.report-mode {
    page: portrait-page;
  }

  /* CRITICAL: Ensure no containers restrict height or hide overflow in print */
  body.descendants,
  body.descendants #view-container,
  body.descendants #descendantsReportWrapper,
  body.descendants #descendantsReport {
    height: auto !important;
    overflow: visible !important;
    display: block !important;
    min-height: 0 !important;
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Hide UI controls in print */
  body.descendants #descendantsButtons,
  body.descendants #descendantsHelp,
  body.descendants #reportControls,
  body.descendants #reportControlsLabel,
  body.descendants #descendantsReportStatus,
  body.descendants .load-more,
  body.descendants button {
    display: none !important;
  }

  /* Hide tree view only when in report mode */
  body.descendants.report-mode #descendants {
    display: none !important;
  }

  /* Hide report wrapper when NOT in report mode */
  body.descendants:not(.report-mode) #descendantsReportWrapper {
    display: none !important;
  }

  /* Ensure report content is visible in print */
  body.descendants .report-person,
  body.descendants .report-person-header,
  body.descendants .report-person-title,
  body.descendants .report-meta,
  body.descendants .report-places,
  body.descendants .report-spouses,
  body.descendants .report-children,
  body.descendants .report-children-list,
  body.descendants .report-bio,
  body.descendants .report-endnotes {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
  }

  body.descendants .report-person:first-of-type {
    margin-top: 0 !important;
  }

  body.descendants #descendantsReportWrapper {
    border: none;
  }

  body.descendants .report-person {
    border: none;
    border-bottom: 2px solid #eee;
    box-shadow: none;
    max-width: 100%;
    margin-bottom: 2em;
    padding: 0;
  }

  body.descendants .report-person-title {
    font-size: 1.3em;
    font-weight: bold;
  }

  body.descendants {
    background: #fff !important;
    color: #000 !important;
  }

  body.descendants a {
    color: #000 !important;
    text-decoration: none;
  }

  body.descendants .report-photo {
    max-width: 100px; /* Slightly smaller for print */
    border: none;
    padding: 0;
  }
}
#descendants li > .arrow {
  display: inline-block;
  transition: transform 0.3s ease;
  position: absolute;
  margin-left: -0.3em;
  cursor: pointer;
}

#descendants li > .arrow.rotated {
  transform: rotate(90deg);
}

#descendants li.Male {
  background-color: #eef;
}
#descendants li.Female {
  background-color: #fee;
}
#shakyTree {
  height: 7em;
  width: 7em;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -3.5em;
  margin-left: -3.5em;
  border: 3px solid forestgreen;
  border-radius: 50%;
  display: none;
}

#descendantsButtons {
  margin: 0;
  padding: 0.2em;
  display: none;
  top: 0;
  position: sticky;
  background-color: #fcb76e;
  z-index: 100;
}

#descendants button.load-more {
  float: right;
  margin: 0.2em;
}

#seeUpTo {
  margin: 0.2em;
}
body.descendants #generationSelect,
body.descendants #dateFormatSelect,
body.descendants #dateDataStatusSelect {
  margin: 0.2em;
  padding: 0.3em 0 0.3em 0.5em;
  width: 6em !important;
  min-width: 6em;
}
body.descendants #dateFormatSelect,
body.descendants #dateDataStatusSelect {
  padding: 0.3em 0 0.3m 0.1em;
  width: 14em !important;
}

body.descendants #generationSelect {
  width: 18em !important;
}

#descendants .load-more img {
  width: 1em;
  height: 1em;
  margin: 0;
  padding: 0;
  margin-left: 0.5em;
  margin-right: 0.5em;
  vertical-align: middle;
}
body.descendants a.profileLink {
  margin-left: 1em;
  font-size: 1.2em;
  /*font-weight: bold; */
  color: navy;
}

body.descendants a.profileLink:visited {
  color: navy;
}

#descendants.hide-Male li.Male {
  display: none;
}

#descendants.hide-Female li.Female {
  display: none;
}
#descendants ul.personList {
  margin-left: 1em !important;
}

#descendants div.biography {
  margin: 1em;
  padding: 1em;
  border-left: 1px solid #ddd;
  background-color: #f6f6f6;
}
#descendants div.fullBiography {
  cursor: default;
}

#descendants dl.bdDatesLocations {
  display: grid;
  grid-template-areas:
    "birthDate birthLocation "
    "deathDate deathLocation ";
  grid-template-columns: 8em 1fr;
  margin: 0.2em 0.2em 0.5em 0.2em;
  padding: 0.3em;
  border: 1px solid #ddd;
  font-weight: normal;
  font-size: 1em;
}

#descendants .bdDatesLocations dd {
  margin-left: 0;
}

#descendants .bdDatesLocations dt.fullBirthDate {
  grid-area: birthDate;
}

#descendants .bdDatesLocations dt.fullBirthDate:before {
  content: "b. ";
}

#descendants .bdDatesLocations dd.birthLocation {
  grid-area: birthLocation;
}

#descendants .bdDatesLocations dt.fullDeathDate {
  grid-area: deathDate;
}

#descendants .bdDatesLocations dt.fullDeathDate:before {
  content: "d. ";
}

#descendants .bdDatesLocations dd.deathLocation {
  grid-area: deathLocation;
}

#descendants .moreDetailsEye:hover {
  font-weight: bold;
  cursor: pointer;
  color: forestgreen;
  background: gold;
}
#descendants .moreDetailsEye:active {
  font-weight: normal;
  cursor: pointer;
  color: orange;
  font-size: 0.9em;
}

#descendants .aContents {
  display: none;
}

#descendants .profilePicture {
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 1em;
  background-color: #f6f6f6;
  border: 1px solid #ddd;
  float: left;
}

#descendants dl.bdDatesLocations:has(a[data-gender="Female"]) {
  background-color: #fee;
}
#descendants dl.bdDatesLocations:has(a[data-gender="Male"]) {
  background-color: #eef;
}

#descendants dl a.switch {
  margin-left: 2em;
  font-weight: bold;
  font-size: 1.2em;
  color: navy;
}

#descendants li img.dna {
  margin-left: 0.5em;
}
#descendantsButtons button.on {
  background-color: gold;
  color: black;
  border: 1px solid darkorange;
}

#descendantsButtons button.hideMales {
  background-color: pink;
  color: black;
  border: 1px solid red;
}

#descendants .load-more {
  display: none;
}
#descendantsButtons #showHelp,
#descendantsButtons button.download {
  margin-left: 0.2em;
}

#descendantsButtons #helpEtc {
  float: right;
}

#descendantsHelp {
  display: none;
  position: absolute;
  top: 100px;
  width: 50%;
  left: 25%;
  background-color: #f6f6f6;
  border: 1px solid #ddd;
  padding: 1em;
  z-index: 100000;
  box-shadow: 0 0 1em #ddd;
  cursor: move;
}

body.descendants #closeHelp {
  float: right;
  font-size: 1.5em;
  font-weight: bold;
  color: gold;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  margin: 0.2em;
  padding: 0.2em;
}

#descendantsHelp span.button {
  padding: 0.2em;
  margin: 0;
}

#descendantsHelp h2 {
  text-align: center;
}

#descendantsButtons #sharedControls {
  display: inline-block;
}

#descendantsButtons label,
#descendantsHelp label {
  background-color: #f6f6f6;
  border: 1px solid #ddd;
  padding: 0.3em;
  display: inline-block;
}

#descendants .birthDeathDetails {
  display: grid;
  grid-template-columns: 17em 1fr 17em 1fr;
  gap: 0.2em; /* Spacing between grid items */
  margin-left: 1em;
}

#descendants .birthDeathDate,
#descendants .birthDeathLocation {
  padding: 2px;
}

#descendants .birthDate:not(:empty, .datesOnly .birthDate)::before {
  content: "b. ";
}
#descendants .deathDate:not(:empty, .datesOnly .deathDate)::before {
  content: "d. ";
}

#descendants li.person.highlighted {
  background-color: lightgreen;
}

#descendants button.collapse {
  height: 0.8em;
  width: 2em;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
}
#descendants li.person.collapsed {
  height: 0.1em;
  overflow: hidden;
}
#descendants li.person.collapsed *:not(.collapse) {
  display: none;
}

body.descendants button {
  margin-right: 0;
}

#descendants li.person.hidden {
  display: none;
}

#descendants li.person .wtid {
  font-size: 0.8em;
  font-weight: normal;
  color: #666;
}

#descendants li.person .datesOnly {
  display: none;
}

#descendants li.person .aboville {
  float: right;
  margin-right: 2em;
  font-size: 0.8em;
  font-weight: normal;
  color: #666;
  background-color: #f6f6f6;
  border-radius: 1em;
  padding: 0 0.5em;
}

.tree-photo {
  max-width: 40px;
  max-height: 40px;
  margin-right: 0.4em;
  vertical-align: middle;
  border: 1px solid #ccc;
  border-radius: 4px;
}

#descendants a.mapsLink {
  display: inline-block;
  margin-left: 0.1em;
  border: 0;
  width: 12px;
  height: 11px;
}

#descendantsButtons button:active {
  padding-bottom: 6px;
}

#descendantsButtons fieldset {
  display: inline-block;
  margin-bottom: 0.2em;
}

#descendantsButtons #showBiosLabel,
#treeViewControls #showBiosLabel {
  display: none !important;
}

body:not(.report-mode) #treeViewControls #showBiosLabel {
  display: inline !important;
}

body:not(.report-mode) #treeViewControls #showBiosLabel input {
  margin: 0;
}

body:not(.report-mode) #treeViewControls #checkboxIndicator {
  display: none !important;
}

#descendants li.person {
  border-left: 3px solid #ddd;
}

#descendants li.person.childOfSpouse_0,
#descendants dl.spouse dt.spouse_0 {
  border-left: 3px solid green;
}
#descendants li.person.childOfSpouse_1,
#descendants dl.spouse dt.spouse_1 {
  border-left: 3px solid red;
}
#descendants li.person.childOfSpouse_2,
#descendants dl.spouse dt.spouse_2 {
  border-left: 3px solid gold;
}
#descendants li.person.childOfSpouse_3,
#descendants dl.spouse dt.spouse_3 {
  border-left: 3px solid #f5a9a9;
}
#descendants li.person.childOfSpouse_4,
#descendants dl.spouse dt.spouse_4 {
  border-left: 3px solid #d0f5a9;
}
#descendants li.person.childOfSpouse_5,
#descendants dl.spouse dt.spouse_5 {
  border-left: 3px solid #a9f5f2;
}
#descendants li.person.childOfSpouse_6,
#descendants dl.spouse dt.spouse_6 {
  border-left: 3px solid #e6e6e6;
}
#descendants li.person.childOfSpouse_7,
#descendants dl.spouse dt.spouse_7 {
  border-left: 3px solid #d0a9f5;
}
#descendants li.person.childOfSpouse_8,
#descendants dl.spouse dt.spouse_8 {
  border-left: 3px solid #f2f5a9;
}
#descendants li.person.childOfSpouse_9,
#descendants dl.spouse dt.spouse_9 {
  border-left: 3px solid #f78181;
}
#descendants li.person.childOfSpouse_10,
#descendants dl.spouse dt.spouse_10 {
  border-left: 3px solid #bef781;
}
#descendants li.person.childOfSpouse_11,
#descendants dl.spouse dt.spouse_11 {
  border-left: 3px solid #81f7f3;
}
#descendants li.person.childOfSpouse_12,
#descendants dl.spouse dt.spouse_12 {
  border-left: 3px solid #d8d8d8;
}
#descendants li.person.childOfSpouse_13,
#descendants dl.spouse dt.spouse_13 {
  border-left: 3px solid #be81f7;
}
#descendants li.person.childOfSpouse_14,
#descendants dl.spouse dt.spouse_14 {
  border-left: 3px solid #f3f781;
}
#descendants li.person.childOfSpouse_15,
#descendants dl.spouse dt.spouse_15 {
  border-left: 3px solid #fa5858;
}
#descendants li.person.childOfSpouse_16,
#descendants dl.spouse dt.spouse_16 {
  border-left: 3px solid #acfa58;
}
#descendants li.person.childOfSpouse_17,
#descendants dl.spouse dt.spouse_17 {
  border-left: 3px solid #58faf4;
}
#descendants li.person.childOfSpouse_18,
#descendants dl.spouse dt.spouse_18 {
  border-left: 3px solid #bdbdbd;
}
#descendants li.person.childOfSpouse_19,
#descendants dl.spouse dt.spouse_19 {
  border-left: 3px solid #ac58fa;
}
#descendants li.person.childOfSpouse_20,
#descendants dl.spouse dt.spouse_20 {
  border-left: 3px solid #f4fa58;
}
#descendants li.person.childOfSpouse_21,
#descendants dl.spouse dt.spouse_21 {
  border-left: 3px solid #fe2e2e;
}
#descendants li.person.childOfSpouse_22,
#descendants dl.spouse dt.spouse_22 {
  border-left: 3px solid #9afe2e;
}
#descendants li.person.childOfSpouse_23,
#descendants dl.spouse dt.spouse_23 {
  border-left: 3px solid #2efef7;
}
#descendants li.person.childOfSpouse_24,
#descendants dl.spouse dt.spouse_24 {
  border-left: 3px solid #a4a4a4;
}
#descendants li.person.childOfSpouse_25,
#descendants dl.spouse dt.spouse_25 {
  border-left: 3px solid #9a2efe;
}
#descendants li.person.childOfSpouse_26,
#descendants dl.spouse dt.spouse_26 {
  border-left: 3px solid #f7fe2e;
}
#descendants li.person.childOfSpouse_27,
#descendants dl.spouse dt.spouse_27 {
  border-left: 3px solid #ff0000;
}
#descendants li.person.childOfSpouse_28,
#descendants dl.spouse dt.spouse_28 {
  border-left: 3px solid #00ffff;
}
#descendants li.person.childOfSpouse_29,
#descendants dl.spouse dt.spouse_29 {
  border-left: 3px solid #80ff00;
}
#descendants li.person.childOfSpouse_30,
#descendants dl.spouse dt.spouse_30 {
  border-left: 3px solid #848484;
}
#descendants li.person.childOfSpouse_31,
#descendants dl.spouse dt.spouse_31 {
  border-left: 3px solid #8000ff;
}
#descendants li.person.childOfSpouse_32,
#descendants dl.spouse dt.spouse_32 {
  border-left: 3px solid #ffff00;
}
#descendants li.person.childOfSpouse_33,
#descendants dl.spouse dt.spouse_33 {
  border-left: 3px solid #df0101;
}
#descendants li.person.childOfSpouse_34,
#descendants dl.spouse dt.spouse_34 {
  border-left: 3px solid #74df00;
}
#descendants li.person.childOfSpouse_35,
#descendants dl.spouse dt.spouse_35 {
  border-left: 3px solid #01dfd7;
}
#descendants li.person.childOfSpouse_36,
#descendants dl.spouse dt.spouse_36 {
  border-left: 3px solid #6e6e6e;
}
#descendants li.person.childOfSpouse_37,
#descendants dl.spouse dt.spouse_37 {
  border-left: 3px solid #7401df;
}
#descendants li.person.childOfSpouse_38,
#descendants dl.spouse dt.spouse_38 {
  border-left: 3px solid #d7df01;
}
#descendants li.person.childOfSpouse_39,
#descendants dl.spouse dt.spouse_39 {
  border-left: 3px solid #b40404;
}
#descendants li.person.childOfSpouse_40,
#descendants dl.spouse dt.spouse_40 {
  border-left: 3px solid #5fb404;
}
#descendants li.person.childOfSpouse_41,
#descendants dl.spouse dt.spouse_41 {
  border-left: 3px solid #04b4ae;
}
#descendants li.person.childOfSpouse_42,
#descendants dl.spouse dt.spouse_42 {
  border-left: 3px solid #585858;
}
#descendants li.person.childOfSpouse_43,
#descendants dl.spouse dt.spouse_43 {
  border-left: 3px solid #5f04b4;
}
#descendants li.person.childOfSpouse_44,
#descendants dl.spouse dt.spouse_44 {
  border-left: 3px solid #aeb404;
}
#descendants li.person.childOfSpouse_45,
#descendants dl.spouse dt.spouse_45 {
  border-left: 3px solid #8a0808;
}
#descendants li.person.childOfSpouse_46,
#descendants dl.spouse dt.spouse_46 {
  border-left: 3px solid #243b0b;
}
#descendants li.person.childOfSpouse_47,
#descendants dl.spouse dt.spouse_47 {
  border-left: 3px solid #088a85;
}
#descendants li.person.childOfSpouse_48,
#descendants dl.spouse dt.spouse_48 {
  border-left: 3px solid #424242;
}
#descendants li.person.childOfSpouse_49,
#descendants dl.spouse dt.spouse_49 {
  border-left: 3px solid #4b088a;
}
#descendants li.person.childOfSpouse_50,
#descendants dl.spouse dt.spouse_50 {
  border-left: 3px solid #868a08;
}
#descendants li.person.childOfSpouse_51,
#descendants dl.spouse dt.spouse_51 {
  border-left: 3px solid #4b088a;
}

#descendantsButtons #checkboxIndicator {
  width: 0.7em;
  height: 0.7em;
  display: inline-block;
  border: 1px solid #ccc;
  position: absolute;
  margin-left: -1.1em;
  margin-top: 0.3em;
  background-color: lightgray;
}

#descendantsButtons #showBios + #checkboxIndicator {
  visibility: hidden;
}

#descendantsButtons #showBios.half-checked + #checkboxIndicator {
  visibility: visible;
}

#descendants .biography {
  display: none;
}

#descendants .biography.visible {
  display: block;
}
