/* Общие стили для d3-карт (используются на /worldmap и /surname/{slug}) */

.land { fill: #e4ddd3; stroke: #c5b49c; stroke-width: 0.4; transition: fill .2s; cursor: default; }
.land.has:hover { stroke: #2f2619; stroke-width: 0.9; }

/* Glow-оверлей: рисуется отдельным path поверх всех соседей через JS.
   Сам hovered-элемент не трогаем — поэтому никакого flicker'а и потери hover'а. */
.hover-glow {
	fill: var(--gold);
	stroke: var(--gold);
	stroke-width: 1;
	pointer-events: none;
	filter: drop-shadow(0 0 2px var(--gold));
}

/* Кнопка drill-down «← Все страны» */
.map-back-btn {
	display: none;
	align-items: center; gap: 6px;
	margin: 0 0 8px 0;
	padding: 6px 14px;
	background: var(--paper); border: 1px solid var(--gold);
	border-radius: 20px; color: var(--ink-1);
	font-size: 13px; font-family: var(--sans); cursor: pointer;
	transition: background .15s, color .15s;
}
.map-back-btn:hover { background: var(--gold); color: var(--dark-1); }
.map-back-btn:disabled { opacity: .55; cursor: default; }

/* ── Мини-карта: интерактивный контейнер ── */
.geo-map-interactive { position: relative; }

/* Контролы зума (+/−/↺) */
.minimap-zoom-ctrl {
	position: absolute; top: 8px; right: 8px;
	display: flex; flex-direction: column; gap: 4px;
	z-index: 10;
}
.mz-btn {
	width: 28px; height: 28px; padding: 0;
	background: rgba(255,255,255,.85); border: 1px solid var(--gold);
	border-radius: 6px; cursor: pointer; font-size: 15px; line-height: 1;
	color: var(--ink-1); transition: background .12s, color .12s;
	display: flex; align-items: center; justify-content: center;
}
.mz-btn:hover { background: var(--gold); color: var(--dark-1); }
.mz-reset { opacity: 0; transition: opacity .2s, background .12s, color .12s; font-size: 13px; }

/* Подсказка под картой */
.minimap-hint {
	margin: 4px 0 0; padding: 0;
	font-size: 11px; color: var(--ink-3); text-align: center;
	font-family: var(--sans); line-height: 1.4;
}

/* Прогресс-бар загрузки карты */
.map-loading-bar {
	position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
	background-size: 200% 100%;
	animation: map-shimmer 1.1s linear infinite;
	border-radius: 14px 14px 0 0;
	z-index: 20;
}
@keyframes map-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

.tip {
	position: fixed; pointer-events: none;
	background: var(--dark-2); color: var(--paper);
	border: 1px solid var(--gold); border-radius: 8px;
	padding: 8px 12px; font-size: 13px; z-index: 100;
	opacity: 0; transition: opacity .12s;
	box-shadow: 0 6px 18px rgba(0,0,0,.35);
}
.tip .t-c { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--gold-soft); }
.tip .t-n { color: #e8dcc2; }
