/* Hoying Family Tree — Bootstrap theme overrides
   Heritage palette: aged parchment background, oxblood accent, brass rules. */
:root {
  --bs-body-bg: #EDE4D3;
  --bs-body-font-family: 'Source Serif 4', Georgia, serif;
  --bs-primary: #6B2E2E;
  --bs-primary-rgb: 107, 46, 46;
  --bs-link-color: #6B2E2E;
  --bs-link-hover-color: #4f2222;
}

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap');

body { background-color: var(--bs-body-bg); }

h1, h2, h3, .navbar-brand { font-family: 'Fraunces', serif; font-weight: 600; }

.navbar-heritage { background-color: #2B2620 !important; }
.navbar-heritage .navbar-brand, .navbar-heritage .nav-link { color: #EDE4D3 !important; }
.navbar-heritage .nav-link:hover { color: #B8A888 !important; }

.btn-primary { background-color: #6B2E2E; border-color: #6B2E2E; }
.btn-primary:hover { background-color: #5a2626; border-color: #5a2626; }

.card { background-color: rgba(255,255,255,0.35); border-color: #B8A888; }

.text-mono, .dates, .badge-mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 0.85rem; }
.dates { color: #55493A; }
.status-badge { background-color: #6B2E2E; }

.list-group-item { background-color: transparent; border-color: #B8A888; }

a { text-decoration-thickness: 1px; }

/* Tree view (D3) */
#tree-wrap { background: rgba(255,255,255,0.25); border: 1px solid #B8A888; border-radius: 0.375rem; }
#search-results { max-height: 280px; overflow-y: auto; border: 1px solid #B8A888; border-top: none; }

.node-card {
  fill: #FBF8F1;
  stroke: #B8A888;
  stroke-width: 1.4px;
}
.node.collapsed .node-card { stroke: #6B2E2E; stroke-width: 2px; }

.node-name {
  font-family: 'Source Serif 4', serif;
  font-weight: 600;
  font-size: 13.5px;
  fill: #2B2620;
}
.node-spouse {
  font-family: 'Source Serif 4', serif;
  font-style: italic;
  font-size: 12px;
  fill: #3F5D46;
}
.node-dates {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10.5px;
  fill: #55493A;
}

.toggle-badge {
  fill: #EDE4D3;
  stroke: #6B2E2E;
  stroke-width: 1.5px;
}
.node.collapsed .toggle-badge { fill: #6B2E2E; }
.toggle-badge-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  fill: #6B2E2E;
  pointer-events: none;
}
.node.collapsed .toggle-badge-label { fill: #EDE4D3; }

.link { fill: none; stroke: #B8A888; stroke-width: 1.6px; }

/* Welcome / landing page */
.welcome-hero {
  background: rgba(255,255,255,0.35);
  border-color: #B8A888 !important;
}
.welcome-crest {
  max-height: 220px;
  filter: drop-shadow(0 4px 10px rgba(43,38,32,0.25));
}
