/*
 * Древо Рода — стили фронтенда.
 * Палитра нейтральная; фирменные цвета рода применяются через
 * опции (Этап 6) CSS-переменными.
 */

.rd-wrap,
.rd-grid,
.rd-card {
	--rd-primary: #5f7f6a;
	--rd-primary-dark: #495f50;
	--rd-text: #333;
	--rd-muted: #6b6b6b;
	--rd-border: #e3e0da;
	--rd-soft: #f6f4ef;
}

.rd-wrap {
	max-width: 1080px;
	margin: 0 auto;
	padding: 24px 16px;
}

.rd-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
	margin: 24px 0;
}

.rd-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px;
	background: #fff;
	border: 1px solid var(--rd-border);
	border-radius: 12px;
	box-sizing: border-box;
}

.rd-card--restricted {
	background: var(--rd-soft);
	color: var(--rd-muted);
	font-style: italic;
}

.rd-card__photo img {
	width: 100%;
	height: auto;
	border-radius: 10px;
}

.rd-card__title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 1.25;
	color: var(--rd-text);
}

.rd-card--tile .rd-card__title {
	font-size: 1.1rem;
}

.rd-card__meta {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 4px 14px;
	margin: 0;
	font-size: 0.95rem;
}

.rd-card__meta dt {
	color: var(--rd-muted);
}

.rd-card__meta dd {
	margin: 0;
	color: var(--rd-text);
}

.rd-card__excerpt {
	color: var(--rd-muted);
	margin: 0;
}

.rd-card__bio {
	line-height: 1.6;
}

.rd-card__events ul,
.rd-card__relations ul {
	margin: 0;
	padding-left: 18px;
}

.rd-card__events h3,
.rd-card__relations h3 {
	margin: 8px 0 4px;
	font-size: 1.05rem;
	color: var(--rd-primary-dark);
}

.rd-archive__title {
	color: var(--rd-primary-dark);
}

/* ---------- Дерево ([rd_tree]) ---------- */

.rd-tree {
	margin: 24px 0;
}

.rd-tree__controls {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.rd-tree__controls button {
	padding: 6px 14px;
	border: 1px solid var(--rd-border, #e3e0da);
	border-radius: 18px;
	background: #fff;
	color: var(--rd-muted, #6b6b6b);
	font-size: 0.9rem;
	cursor: pointer;
}

.rd-tree__controls button.is-active {
	background: var(--rd-primary, #5f7f6a);
	border-color: var(--rd-primary, #5f7f6a);
	color: #fff;
}

.rd-tree__canvas {
	width: 100%;
	height: 70vh;
	min-height: 420px;
	border: 1px solid var(--rd-border, #e3e0da);
	border-radius: 12px;
	background: var(--rd-soft, #f6f4ef);
	touch-action: none;
}

.rd-tree__hint {
	color: var(--rd-muted, #6b6b6b);
	font-size: 0.85rem;
}

@media (max-width: 600px) {
	.rd-card__meta {
		grid-template-columns: 1fr;
	}
	.rd-card__meta dt::after {
		content: ':';
	}
	.rd-tree__canvas {
		height: 60vh;
		min-height: 360px;
	}
}
