.cp-genealogy-form,
.cp-genealogy-account {
	--cp-genealogy-accent: #1f5d4a;
	--cp-genealogy-border: #d8dedb;
	--cp-genealogy-muted: #59635f;
	--cp-genealogy-surface: #fff;
	box-sizing: border-box;
	color: #1e2723;
	font: inherit;
	margin-inline: auto;
	max-width: 860px;
	width: 100%;
}

.cp-genealogy-form *,
.cp-genealogy-account * { box-sizing: border-box; }
.cp-genealogy-form__header { margin-bottom: 1.75rem; }
.cp-genealogy-form__title { margin: 0 0 .55rem; }
.cp-genealogy-form__intro { color: var(--cp-genealogy-muted); margin: 0; }
.cp-genealogy-form__form { display: grid; gap: 1.25rem; }
.cp-genealogy-form__section { background: var(--cp-genealogy-surface); border: 1px solid var(--cp-genealogy-border); border-radius: 10px; margin: 0; padding: 1.25rem; }
.cp-genealogy-form__section legend { color: var(--cp-genealogy-accent); font-size: 1.15rem; font-weight: 700; padding: 0 .4rem; }
.cp-genealogy-form__grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cp-genealogy-field { display: grid; gap: .4rem; margin-top: 1rem; }
.cp-genealogy-form__grid .cp-genealogy-field { margin-top: 0; }
.cp-genealogy-field label { font-weight: 650; }
.cp-genealogy-field input,
.cp-genealogy-field select,
.cp-genealogy-field textarea,
.cp-genealogy-supplement input,
.cp-genealogy-supplement textarea { background: #fff; border: 1px solid #aeb8b3; border-radius: 6px; color: inherit; font: inherit; max-width: 100%; padding: .72rem .8rem; width: 100%; }
.cp-genealogy-field input[type="file"], .cp-genealogy-supplement input[type="file"] { padding: .55rem; }
.cp-genealogy-field input:focus-visible,
.cp-genealogy-field select:focus-visible,
.cp-genealogy-field textarea:focus-visible,
.cp-genealogy-supplement input:focus-visible,
.cp-genealogy-supplement textarea:focus-visible,
.cp-genealogy-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--cp-genealogy-accent) 38%, transparent); outline-offset: 2px; }
.cp-genealogy-field [aria-invalid="true"] { border-color: #b32d2e; }
.cp-genealogy-field__description { color: var(--cp-genealogy-muted); font-size: .9rem; margin: 0; }
.cp-genealogy-form__declarations { display: grid; gap: .8rem; }
.cp-genealogy-check { align-items: flex-start; display: flex; gap: .65rem; line-height: 1.45; }
.cp-genealogy-check input { flex: 0 0 auto; margin-top: .28rem; }
.cp-genealogy-button { align-items: center; background: var(--cp-genealogy-accent); border: 1px solid var(--cp-genealogy-accent); border-radius: 6px; color: #fff; cursor: pointer; display: inline-flex; font-weight: 700; justify-content: center; line-height: 1.2; padding: .8rem 1.2rem; text-decoration: none; }
.cp-genealogy-button:hover { background: #174738; color: #fff; }
.cp-genealogy-button[disabled] { cursor: not-allowed; opacity: .55; }
.cp-genealogy-notice { border-inline-start: 4px solid #2271b1; margin-bottom: 1.25rem; padding: 1rem 1.1rem; }
.cp-genealogy-notice--error { background: #fcf0f1; border-color: #b32d2e; }
.cp-genealogy-notice--success { background: #edfaef; border-color: #198754; }
.cp-genealogy-notice--info { background: #eef6fc; }
.cp-genealogy-notice > :first-child { margin-top: 0; }
.cp-genealogy-notice > :last-child { margin-bottom: 0; }
.cp-genealogy-confirmation dl,
.cp-genealogy-case dl { display: grid; gap: .65rem; margin: 1rem 0; }
.cp-genealogy-confirmation dl div,
.cp-genealogy-case dl div { display: grid; gap: .4rem; grid-template-columns: minmax(130px, .35fr) 1fr; }
.cp-genealogy-confirmation dt,
.cp-genealogy-case dt { font-weight: 700; }
.cp-genealogy-confirmation dd,
.cp-genealogy-case dd { margin: 0; overflow-wrap: anywhere; }
.cp-genealogy-table { border-collapse: collapse; width: 100%; }
.cp-genealogy-table th,
.cp-genealogy-table td { border-bottom: 1px solid var(--cp-genealogy-border); padding: .8rem .65rem; text-align: start; vertical-align: top; }
.cp-genealogy-status { background: #eef5f1; border-radius: 999px; display: inline-block; font-size: .88rem; font-weight: 650; padding: .25rem .65rem; }
.cp-genealogy-action { font-weight: 700; }
.cp-genealogy-notice--action { background: #fff8dc; border-color: #b88900; }
.cp-genealogy-case__section { border-top: 1px solid var(--cp-genealogy-border); margin-top: 1.5rem; padding-top: 1.5rem; }
.cp-genealogy-files,
.cp-genealogy-messages { display: grid; gap: .65rem; list-style: none; padding: 0; }
.cp-genealogy-message { background: #f6f8f7; border-radius: 6px; padding: .9rem 1rem; }
.cp-genealogy-message p { margin: .35rem 0 0; white-space: pre-wrap; }
.cp-genealogy-supplement { display: grid; gap: 1rem; }
.cp-genealogy-pagination { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: 1.25rem; }
.cp-genealogy-pagination a,
.cp-genealogy-pagination span { border: 1px solid var(--cp-genealogy-border); border-radius: 4px; padding: .4rem .65rem; text-decoration: none; }
.cp-genealogy-timeline { list-style: none; margin: 0; padding: 0; }
.cp-genealogy-timeline li { display: grid; gap: .75rem; grid-template-columns: 14px minmax(0, 1fr); padding: 0 0 1rem; position: relative; }
.cp-genealogy-timeline li:not(:last-child)::before { background: var(--cp-genealogy-border); content: ""; inset-block: 14px -2px; inset-inline-start: 6px; position: absolute; width: 2px; }
.cp-genealogy-timeline__marker { background: var(--cp-genealogy-accent); border: 3px solid #eef5f1; border-radius: 50%; height: 14px; margin-top: .2rem; width: 14px; z-index: 1; }
.cp-genealogy-timeline time { color: var(--cp-genealogy-muted); display: block; font-size: .88rem; margin-top: .15rem; }

@media (max-width: 680px) {
	.cp-genealogy-form__grid { grid-template-columns: 1fr; }
	.cp-genealogy-table thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
	.cp-genealogy-table tr { border-bottom: 1px solid var(--cp-genealogy-border); display: block; padding: .6rem 0; }
	.cp-genealogy-table td { border: 0; display: grid; gap: .5rem; grid-template-columns: minmax(110px, .42fr) 1fr; padding: .38rem 0; }
	.cp-genealogy-table td::before { content: attr(data-label); font-weight: 700; }
	.cp-genealogy-confirmation dl div, .cp-genealogy-case dl div { grid-template-columns: 1fr; }
}

/* Public genealogy archive, cards, dynamic details, and native fallbacks. */
.cp-genealogies,
.cp-genealogy-detail,
.cp-genealogy-widget,
.cp-genealogy-template {
	--cp-public-accent: #1f5d4a;
	--cp-public-border: #d8dedb;
	--cp-public-muted: #59635f;
	--cp-public-surface: #fff;
	--cp-genealogy-columns: 3;
	box-sizing: border-box;
}
.cp-genealogies *,
.cp-genealogy-detail *,
.cp-genealogy-widget *,
.cp-genealogy-template * { box-sizing: border-box; }
.cp-genealogy-template { margin-inline: auto; max-width: 1240px; padding: clamp(1rem, 3vw, 2.5rem); width: 100%; }
.cp-genealogy-template__header { margin-bottom: 1.5rem; }
.cp-genealogy-grid__filters:empty { display: none; }
.cp-genealogy-filters { align-items: end; background: #f6f8f7; border: 1px solid var(--cp-public-border); border-radius: 8px; display: flex; flex-wrap: wrap; gap: .85rem; margin-bottom: 1.5rem; padding: 1rem; }
.cp-genealogy-filters__field { display: grid; flex: 1 1 165px; gap: .35rem; margin: 0; }
.cp-genealogy-filters__search { flex-basis: 240px; }
.cp-genealogy-filters__field span { font-size: .88rem; font-weight: 650; }
.cp-genealogy-filters input,
.cp-genealogy-filters select { background: #fff; border: 1px solid #aeb8b3; border-radius: 5px; color: inherit; font: inherit; min-height: 42px; padding: .55rem .65rem; width: 100%; }
.cp-genealogy-filters__submit { background: var(--cp-public-accent); border: 1px solid var(--cp-public-accent); border-radius: 5px; color: #fff; cursor: pointer; font: inherit; font-weight: 700; min-height: 42px; padding: .55rem 1rem; }
.cp-genealogy-filters__reset { align-self: center; color: inherit; padding: .55rem .25rem; }
.cp-genealogy-grid__cards,
.cp-genealogies__grid { align-items: stretch; display: grid; gap: 24px; grid-template-columns: repeat(var(--cp-genealogy-columns, 3), minmax(0, 1fr)); width: 100%; }
.cp-genealogy-grid__cards > .cp-genealogy-card,
.cp-genealogy-card { background: var(--cp-public-surface); border: 1px solid var(--cp-public-border); border-radius: 9px; box-sizing: border-box; display: flex; flex-basis: auto; flex-direction: column; grid-column: auto; height: 100%; margin: 0; max-width: none; min-width: 0; overflow: hidden; width: 100%; }
.cp-genealogy-card--image-left { flex-direction: row; }
.cp-genealogy-card__image { flex: 0 0 auto; overflow: hidden; width: var(--cp-genealogy-image-width, 100%); }
.cp-genealogy-card--image-left .cp-genealogy-card__image { max-width: 45%; width: min(var(--cp-genealogy-image-width, 40%), 45%); }
.cp-genealogy-card__image a { display: block; height: 100%; }
.cp-genealogy-card__image img { display: block; height: 220px; object-fit: cover; transition: transform .25s ease; width: 100%; }
.cp-genealogy-card--image-top .cp-genealogy-card__image { margin-bottom: var(--cp-genealogy-image-gap, 0); }
.cp-genealogy-card--image-left .cp-genealogy-card__image { margin-inline-end: var(--cp-genealogy-image-gap, 0); }
.cp-genealogy-card__body { display: flex; flex: 1 1 auto; flex-direction: column; height: auto; min-width: 0; padding: 1.2rem; }
.cp-genealogy-card__badge { margin-bottom: .75rem; }
.cp-genealogy-card__title { font-size: 1.25rem; line-height: 1.25; margin: 0 0 .6rem; }
.cp-genealogy-card__title a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .16em; }
.cp-genealogy-card__lineage { font-weight: 650; margin: 0 0 .45rem; }
.cp-genealogy-card__meta { color: var(--cp-public-muted); display: grid; font-size: .92rem; gap: .25rem; margin: 0 0 .75rem; }
.cp-genealogy-card__meta > div { display: grid; gap: .4rem; grid-template-columns: minmax(75px, auto) 1fr; }
.cp-genealogy-card__meta dt { color: inherit; font-weight: 700; }
.cp-genealogy-card__meta dt::after { content: ":"; }
.cp-genealogy-card__meta dd { margin: 0; overflow-wrap: anywhere; }
.cp-genealogy-card__excerpt { margin: 0 0 1rem; }
.cp-genealogy-card__action { margin: auto 0 0; }
.cp-genealogy-card__button {
	align-items: center;
	background: #0b4a3b;
	border: 1px solid #0b4a3b;
	border-radius: 6px;
	color: #fff;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	padding: 10px 16px;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
	width: auto;
}
.cp-genealogy-card__button:hover,
.cp-genealogy-card__button:focus-visible { background: #073a2e; border-color: #073a2e; color: #fff; }
.cp-genealogy-card__button-icon { flex: 0 0 auto; margin-inline-start: 8px; }
.cp-genealogies .cp-genealogy-button,
.cp-genealogy-detail .cp-genealogy-button,
.cp-genealogy-widget .cp-genealogy-button { background: var(--cp-public-accent); border-color: var(--cp-public-accent); }
.cp-genealogy-button--original { margin-top: .5rem; }
.cp-verification-badge { align-items: center; background: #eef5f1; border: 1px solid #9cbcac; border-radius: 999px; color: #174738; display: inline-flex; font-size: .82rem; font-weight: 750; line-height: 1.2; padding: .34rem .68rem; }
.cp-verification-badge--verified::before { content: "✓"; margin-inline-end: .35rem; }
.cp-verification-badge--review_required { background: #fff8dc; border-color: #d5b85b; color: #655000; }
.cp-verification-badge--review_required::before { content: "!"; margin-inline-end: .35rem; }
.cp-verification-badge--unverified { background: #fcf0f1; border-color: #c98287; color: #8a242b; }
.cp-verification-badge--unverified::before { content: "×"; margin-inline-end: .35rem; }
.cp-genealogy-pagination { display: block; margin-top: 1.5rem; }
.cp-genealogy-pagination ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.cp-genealogy-pagination a,
.cp-genealogy-pagination span { align-items: center; border: 1px solid var(--cp-public-border); border-radius: 5px; display: inline-flex; min-height: 38px; padding: .4rem .7rem; text-decoration: none; }
.cp-genealogy-pagination .current { background: var(--cp-public-accent); border-color: var(--cp-public-accent); color: #fff; }
.cp-genealogies__empty { border: 1px dashed var(--cp-public-border); border-radius: 8px; padding: 1.25rem; text-align: center; }
.cp-genealogy-detail { margin-inline: auto; max-width: 960px; width: 100%; }
.cp-genealogy-detail__header { margin-bottom: 1.2rem; }
.cp-genealogy-detail__header h1 { margin-bottom: 0; }
.cp-genealogy-detail__featured { margin: 0 0 1.5rem; overflow: hidden; }
.cp-genealogy-detail__featured-image { border-radius: 10px; display: block; height: auto; max-width: 100%; width: 100%; }
.cp-genealogy-metadata { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); margin: 0 0 1.5rem; }
.cp-genealogy-metadata > div { border-bottom: 1px solid var(--cp-public-border); padding: 0 0 .65rem; }
.cp-genealogy-metadata dt { color: var(--cp-public-muted); font-size: .82rem; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.cp-genealogy-metadata dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.cp-genealogy-verification { background: #f6f8f7; border-inline-start: 4px solid var(--cp-public-accent); margin: 0 0 1.5rem; padding: 1rem; }
.cp-genealogy-verification p { margin: .7rem 0 0; }
.cp-genealogy-verification__details { color: var(--cp-public-muted); font-size: .9rem; }
.cp-genealogy-section,
.cp-genealogy-references,
.cp-genealogy-documents,
.cp-genealogy-citation { margin: 2rem 0 0; }
.cp-genealogy-section h2,
.cp-genealogy-references h2,
.cp-genealogy-documents h2,
.cp-genealogy-citation h2 { font-size: 1.35rem; margin: 0 0 .8rem; }
.cp-genealogy-section__content { overflow-wrap: anywhere; }
.cp-genealogy-section--transcription .cp-genealogy-section__content,
.cp-genealogy-section--translation .cp-genealogy-section__content { white-space: normal; }
.cp-genealogy-references ol { padding-inline-start: 1.35rem; }
.cp-genealogy-references li { overflow-wrap: anywhere; padding-inline-start: .25rem; }
.cp-genealogy-references li + li { margin-top: .75rem; }
.cp-genealogy-documents__gallery { --cp-preview-columns: 3; display: grid; gap: 1rem; grid-template-columns: repeat(var(--cp-preview-columns), minmax(0, 1fr)); }
.cp-genealogy-documents figure { margin: 0; min-width: 0; }
.cp-genealogy-documents img { background: #f3f4f5; border: 1px solid var(--cp-public-border); display: block; height: auto; max-width: 100%; width: 100%; }
.cp-genealogy-documents figcaption { color: var(--cp-public-muted); font-size: .85rem; margin-top: .4rem; }
.cp-genealogy-citation { background: #f6f8f7; border: 1px solid var(--cp-public-border); border-radius: 7px; padding: 1rem; }
.cp-genealogy-citation p { margin-bottom: 0; overflow-wrap: anywhere; }
.cp-genealogy-widget-empty { border: 1px dashed var(--cp-public-border); color: var(--cp-public-muted); padding: 1rem; }
.cp-genealogy-filters input:focus-visible,
.cp-genealogy-filters select:focus-visible,
.cp-genealogy-filters button:focus-visible,
.cp-genealogy-card a:focus-visible,
.cp-genealogy-pagination a:focus-visible,
.cp-genealogy-documents a:focus-visible,
.cp-genealogy-references a:focus-visible { outline: 3px solid color-mix(in srgb, var(--cp-public-accent) 38%, transparent); outline-offset: 2px; }

.cp-genealogy-form__submit {
	display: flex;
	padding: .25rem 0 .5rem;
	align-items: center;
	justify-content: flex-start;
}

.cp-genealogy-form__submit .cp-genealogy-button {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	min-width: 190px;
	min-height: 48px;
	padding: .8rem 1.35rem;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--cp-genealogy-accent, #1f5d4a);
	border-radius: 7px;
	background: var(--cp-genealogy-accent, #1f5d4a);
	box-shadow: 0 6px 16px rgba(31, 93, 74, .18);
	color: #fff;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	visibility: visible;
	opacity: 1;
}

.cp-genealogy-form__submit .cp-genealogy-button:hover,
.cp-genealogy-form__submit .cp-genealogy-button:focus-visible {
	border-color: #174738;
	background: #174738;
	color: #fff;
}

.cp-genealogy-form__submit .cp-genealogy-button[disabled] { opacity: .55; }

@media (max-width: 1024px) {
	.cp-genealogy-grid__cards,
	.cp-genealogies__grid { --cp-genealogy-columns: 2; }
	.cp-genealogy-documents__gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cp-genealogy-card__image img { height: 200px; }
}
@media (max-width: 767px) {
	.cp-genealogy-grid__cards,
	.cp-genealogies__grid { --cp-genealogy-columns: 1; }
	.cp-genealogy-documents__gallery { grid-template-columns: 1fr; }
	.cp-genealogy-filters__field { flex-basis: 100%; }
	.cp-genealogy-filters__submit { width: 100%; }
	.cp-genealogy-metadata { grid-template-columns: 1fr; }
	.cp-genealogy-card--image-left { flex-direction: column; }
	.cp-genealogy-card--image-left .cp-genealogy-card__image { margin-inline-end: 0; max-width: none; width: 100%; }
	.cp-genealogy-card__image img { height: 190px; }
}
.cp-genealogy-intent{display:flex;align-items:flex-start;gap:12px;padding:16px;margin:0 0 12px;border:1px solid #d6e0db;border-radius:10px;background:#fbfdfc;cursor:pointer}.cp-genealogy-intent:has(input:checked){border-color:#145a45;background:#eef8f3;box-shadow:0 0 0 2px rgba(20,90,69,.1)}.cp-genealogy-intent input{margin-top:4px}.cp-genealogy-intent span{display:grid;gap:4px}.cp-genealogy-intent small{display:block;color:#52615a;line-height:1.5}

/* ASCII-safe symbols override legacy encoded CSS content. */
.cp-verification-badge--verified::before { content: "\2713"; }
.cp-verification-badge--unverified::before { content: "\00D7"; }
