.acg__lede {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 2rem;
}

.acg__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px;
	gap: 2rem;
	align-items: start;
	padding-bottom: 6rem;
}

.acg__map-wrap {
	background: var(--mr-surface);
	border: 1px solid var(--mr-surface-border);
	border-radius: var(--mr-radius);
	padding: 1rem;
}

.acg__map {
	position: relative;
	min-height: 300px;
}

.acg__loading,
.acg__error {
	text-align: center;
	color: var(--mr-muted);
	padding: 4rem 1rem;
}

.acg__error {
	color: #f87171;
}

#acg-svg {
	width: 100%;
	height: auto;
	display: block;
}

.acg-frame {
	fill: rgba(0, 0, 0, 0.25);
	stroke: var(--mr-surface-border);
	stroke-width: 1;
}

.acg-grid-line {
	stroke: rgba(255, 255, 255, 0.06);
	stroke-width: 1;
}

.acg-city-dot {
	fill: var(--mr-muted);
	opacity: 0.6;
}

.acg-city-label {
	fill: var(--mr-muted);
	font-size: 8px;
	opacity: 0.55;
	pointer-events: none;
}

.acg-line-path {
	stroke-width: 1.6;
	opacity: 0.85;
	cursor: pointer;
	transition: opacity 0.15s ease, stroke-width 0.15s ease;
}

.acg-line:hover .acg-line-path {
	opacity: 1;
	stroke-width: 2.6;
}

.acg__sidebar {
	position: sticky;
	top: 100px;
}

.acg__legend {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	background: var(--mr-surface);
	border: 1px solid var(--mr-surface-border);
	border-radius: var(--mr-radius);
	padding: 1.25rem;
}

.acg-legend__item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.85rem;
	color: var(--mr-white);
	cursor: pointer;
}

.acg-legend__item input {
	accent-color: var(--acg-legend-color, var(--mr-violet));
}

.acg-legend__swatch {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--acg-legend-color, var(--mr-violet));
	flex-shrink: 0;
}

.acg__detail {
	margin-top: 1.25rem;
	background: var(--mr-surface);
	border: 1px solid var(--mr-surface-border);
	border-radius: var(--mr-radius);
	padding: 1.25rem;
}

.acg__detail-title {
	font-family: var(--mr-font-display);
	font-weight: 600;
	margin-bottom: 0.5rem;
}

.acg__detail-text {
	color: var(--mr-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

@media (max-width: 860px) {
	.acg__layout {
		grid-template-columns: 1fr;
	}

	.acg__sidebar {
		position: static;
	}

	.acg__legend {
		flex-direction: row;
		flex-wrap: wrap;
	}
}
