/**
 * Comment thread railway — vertical line through avatar center; L-connect into nests.
 */

.peforums-single-a-card {
	--pef-rail-color: #b5cdf7;
	--pef-rail-width: 1.5px;
	--pef-thread-pad: 20px;
	--pef-avatar: 32px;
	--pef-answer-avatar: 44px;
	--pef-header-gap: 10px;
	--pef-content-inset: calc(var(--pef-avatar) + var(--pef-header-gap));
	--pef-rail-col: calc(var(--pef-avatar) / 2);
	--pef-rail-x: calc(var(--pef-thread-pad) + var(--pef-rail-col));
	--pef-answer-rail-x: calc(var(--pef-answer-avatar) / 2);
	--pef-nest-indent: 48px;
	--pef-list-gap: 12px;
	--pef-nest-gap: 10px;
}

/* Answer rail — through answer avatar center */
.peforums-answer-has-thread .peforums-single-a-card-inner {
	position: relative;
}

.peforums-answer-has-thread .peforums-single-a-card-inner::after {
	content: "";
	position: absolute;
	left: var(--pef-answer-rail-x);
	top: var(--pef-answer-avatar);
	width: 0;
	bottom: 0;
	border-left: var(--pef-rail-width) solid var(--pef-rail-color);
	pointer-events: none;
	z-index: 0;
}

.peforums-answer-has-thread .peforums-single-a-header::after {
	display: none;
	content: none;
}

.peforums-answer-has-thread .peforums-single-a-thread-wrapper,
.peforums-single-a-thread-wrapper {
	padding-left: var(--pef-thread-pad) !important;
	margin-top: var(--pef-list-gap);
	position: relative;
}

/* Bridge answer rail → first comment rail (same x as comment column) */
.peforums-answer-has-thread .peforums-single-a-thread-wrapper::before {
	content: "";
	position: absolute;
	left: var(--pef-rail-x);
	top: calc(-1 * var(--pef-list-gap));
	width: 0;
	height: var(--pef-list-gap);
	border-left: var(--pef-rail-width) solid var(--pef-rail-color);
	pointer-events: none;
	z-index: 0;
}

.peforums-subanswers-list,
.peforums-single-a-thread-wrapper .peforums-subanswers-list,
.peforums-answer-subthread .peforums-subanswers-list {
	position: relative;
	margin: 0;
	padding: 0;
	display: block;
}

.peforums-subanswers-list > .peforums-comment-branch:not(:last-child) {
	margin-bottom: var(--pef-list-gap);
}

.peforums-comment-branch {
	display: block;
	position: relative;
}

.peforums-comment-branch > apcomment.peforums-comment-thread-item {
	display: block;
	margin: 0 !important;
	position: relative;
	z-index: 1;
}

.peforums-comment-replies {
	position: relative;
	margin: var(--pef-nest-gap) 0 0 var(--pef-nest-indent);
	padding: 0;
	display: block;
}

.peforums-comment-replies > .peforums-comment-branch:not(:last-child) {
	margin-bottom: var(--pef-nest-gap);
}

.peforums-comment-replies .peforums-comment-replies {
	margin-left: var(--pef-nest-indent);
}

/* Vertical rail through avatar centers (starts at first avatar midline) */
.peforums-subanswers-list::before,
.peforums-comment-replies::before {
	content: "";
	position: absolute;
	left: var(--pef-rail-col);
	top: calc(var(--pef-avatar) / 2);
	bottom: 0;
	width: 0;
	border-left: var(--pef-rail-width) solid var(--pef-rail-color);
	pointer-events: none;
	z-index: 0;
}

/* Parent trunk continues down (same center column) */
.peforums-comment-branch:has(.peforums-comment-replies)::before {
	content: "";
	position: absolute;
	left: var(--pef-rail-col);
	top: calc(var(--pef-avatar) / 2);
	bottom: 0;
	width: 0;
	border-left: var(--pef-rail-width) solid var(--pef-rail-color);
	pointer-events: none;
	z-index: 0;
}

/*
 * Nested fork: horizontal at first child avatar height (not top: 0 — that caused
 * the stray line above nested avatars).
 */
.peforums-comment-replies::after {
	content: "";
	position: absolute;
	left: calc(-1 * var(--pef-nest-indent) + var(--pef-rail-col));
	top: calc(var(--pef-avatar) / 2);
	width: var(--pef-nest-indent);
	height: 0;
	border-top: var(--pef-rail-width) solid var(--pef-rail-color);
	pointer-events: none;
	z-index: 0;
}

/* Stop rail below last sibling */
.peforums-subanswers-list > .peforums-comment-branch:last-child::before,
.peforums-comment-replies > .peforums-comment-branch:last-child::before {
	content: "";
	position: absolute;
	left: var(--pef-rail-col);
	top: calc(var(--pef-avatar) / 2 + 1px);
	width: 6px;
	bottom: 0;
	background: #fff;
	z-index: 2;
	pointer-events: none;
}

.peforums-comment-row,
.peforums-comment-inner {
	position: relative;
	display: block;
}

.peforums-comment-header {
	display: flex;
	align-items: center;
	gap: var(--pef-header-gap);
	margin-bottom: 4px;
	min-height: var(--pef-avatar);
}

.peforums-subanswers-list .peforums-comment-avatar,
.peforums-comment-replies .peforums-comment-avatar {
	flex-shrink: 0;
	width: var(--pef-avatar);
	height: var(--pef-avatar);
	border-radius: 999px;
	overflow: visible;
	position: relative;
	z-index: 2;
	background: #fff;
}

.peforums-subanswers-list .peforums-comment-avatar img,
.peforums-comment-replies .peforums-comment-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 999px;
}

.peforums-subanswers-list .peforums-comment-content,
.peforums-subanswers-list .peforums-comment-engagement,
.peforums-comment-replies .peforums-comment-content,
.peforums-comment-replies .peforums-comment-engagement {
	padding-left: var(--pef-content-inset) !important;
	margin-left: 0 !important;
}

/* No L on avatar — rail runs through center; avoids extra horizontal cap */
.peforums-subanswers-list .peforums-comment-avatar::after,
.peforums-comment-replies .peforums-comment-avatar::after {
	display: none !important;
	content: none !important;
}

.peforums-subanswers-list .peforums-comment-inner::after,
.peforums-comment-replies .peforums-comment-inner::after {
	display: none !important;
	content: none !important;
}

@media (max-width: 768px) {
	.peforums-single-a-card {
		--pef-thread-pad: 12px;
		--pef-avatar: 24px;
		--pef-answer-avatar: 32px;
		--pef-header-gap: 8px;
		--pef-nest-indent: 32px;
		--pef-list-gap: 10px;
		--pef-nest-gap: 8px;
	}
}
