.edd-map-info-developer {
	padding: 0;
	overflow: visible;
}

/* Tryb „tylko mapa” (layout map_only / widget): bez panelu deweloperskiego */
.ed-layout-map_only .ed-map-info,
.edd-map-map-only .ed-map-info {
	display: none !important;
}
.ed-layout-map_only .edd-dev-table-slot,
.edd-map-map-only .edd-dev-table-slot {
	display: none !important;
}

.edd-widget-developer-map .ed-map-widget-title {
	margin: 0 0 14px;
}

.edd-map-info-panel {
	padding: 0;
}

.edd-top-row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.edd-top-row .ed-map-image-container {
	flex: 1;
	min-width: 0;
}

.edd-top-row .ed-map-info {
	width: 300px;
	flex-shrink: 0;
	padding: 0;
	background: transparent;
	border: none;
}

.edd-map-show-table {
	display: block !important;
}

.edd-dev-filters {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-bottom: 8px;
	padding: 12px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
}

.edd-dev-filters input,
.edd-dev-filters select {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 12px;
}

.edd-filters-reset {
	border: none;
	background: transparent;
	color: #64748b;
	border-radius: 0;
	padding: 2px 0;
	font-size: 11px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
	justify-self: start;
}
.edd-filters-reset:hover {
	color: #0f172a;
}

.edd-mobile-filters-toggle {
	display: none;
	width: 100%;
	border: 1px solid #dbe2ea;
	background: #fff;
	color: #0f172a;
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
	margin-bottom: 8px;
}

.edd-results-box {
	padding: 10px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
	font-size: 12px;
	color: #334155;
	font-weight: 700;
}

@media (max-width: 900px) {
	.edd-dev-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* Opcja Elementor: mapa szersza niż ekran — przewijanie w poziomie */
	.edd-widget-developer-map.edd-map-scroll-x {
		overflow-x: visible;
		overflow-y: visible;
	}
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-wrapper,
	.edd-widget-developer-map.edd-map-scroll-x .edd-top-row {
		max-width: none !important;
	}
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-image-container {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-image-container::-webkit-scrollbar {
		height: 0;
		width: 0;
	}
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-image-container {
		min-width: 100%;
	}
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-image-container .ed-map-image,
	.edd-widget-developer-map.edd-map-scroll-x .ed-map-image-container .ed-map-overlay {
		min-width: var(--edd-map-scroll-min, min(135vw, 2800px));
	}
	.edd-widget-developer-map.edd-map-scroll-x .edd-top-row .ed-map-image-container {
		flex: 0 0 auto;
		max-width: 100%;
		min-width: 100%;
	}

	.edd-top-row {
		flex-direction: column;
	}
	.edd-top-row .ed-map-info {
		width: 100%;
	}
	.edd-mobile-filters-top .edd-top-row .ed-map-info {
		order: -1;
	}
	.edd-mobile-filters-top .edd-top-row .ed-map-image-container {
		order: 1;
	}
	.edd-mobile-hide-table .edd-dev-table-slot {
		display: none !important;
	}
	.edd-dev-filters {
		grid-template-columns: 1fr;
		display: none;
	}
	.edd-dev-filters.is-mobile-open {
		display: grid;
	}
	.edd-mobile-filters-toggle {
		display: block;
	}
	.edd-filters-overlay .edd-top-row {
		display: flex;
		flex-direction: column;
		position: static;
	}
	.edd-filters-overlay .edd-top-row .ed-map-info {
		position: static;
		width: 100%;
		order: -1;
	}
	.edd-filters-overlay .edd-top-row .ed-map-image-container {
		order: 1;
	}

	/* Mobile table responsiveness */
	.edd-dev-table {
		min-width: 640px;
		font-size: 12px;
	}
	.edd-dev-table thead th {
		padding: 10px 12px;
		font-size: 10px;
		letter-spacing: .03em;
		white-space: nowrap;
	}
	.edd-dev-table tbody td {
		padding: 11px 12px;
		white-space: nowrap;
	}
	.edd-dev-table thead th:nth-child(4),
	.edd-dev-table tbody td:nth-child(4),
	.edd-dev-table thead th:nth-child(5),
	.edd-dev-table tbody td:nth-child(5) {
		width: auto;
	}
	.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-dev-table tbody {
		max-height: 112px;
	}
	.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-table-actions {
		bottom: 8px;
	}
}

.edd-prop-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.edd-prop-box {
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 10px;
	background: #fff;
}

.edd-prop-box span {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	color: #64748b;
	margin-bottom: 4px;
	font-weight: 700;
}

.edd-prop-box strong {
	font-size: 14px;
	color: #0f172a;
	font-weight: 700;
}

.edd-prop-box-wide {
	grid-column: span 2;
}

.edd-prop-empty {
	border: 1px dashed #dbe2ea;
	border-radius: 10px;
	padding: 12px;
	font-size: 12px;
	color: #64748b;
	background: #f8fafc;
}

.edd-dev-table-slot {
	margin-top: 14px;
}

.edd-dev-table-wrap {
	overflow-x: auto;
	overflow-y: visible;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: transparent !important;
	margin: 0;
	padding: 0;
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* IE/Edge legacy */
}

.edd-dev-table-wrap::-webkit-scrollbar {
	height: 0;
	width: 0;
}


.edd-dev-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	margin: 0;
}

.edd-dev-table thead th {
	background: #f7f7f8;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: 11px;
	font-weight: 800;
	padding: 14px 18px;
	text-align: left;
}

.edd-dev-table tbody td {
	padding: 16px 18px;
	border-top: 1px solid #eef2f6;
	color: #111827;
	vertical-align: middle;
}

.edd-dev-table tbody tr:last-child td {
	border-bottom: none;
}

.edd-dev-table thead th:nth-child(4),
.edd-dev-table tbody td:nth-child(4) {
	width: 160px;
	text-align: center;
}

.edd-dev-table thead th:nth-child(5),
.edd-dev-table tbody td:nth-child(5) {
	width: 180px;
}

.edd-dev-row {
	cursor: pointer;
	transition: background .2s ease;
}

.edd-dev-row:hover {
	background: #f8fafc;
}

.edd-dev-row-active {
	background: #eef5ff;
	box-shadow: inset 0 0 0 2px #2271b1;
}

.edd-dev-table-wrap.edd-table-wrap-collapsed {
	position: relative;
	overflow: hidden;
	padding-bottom: 0;
}

.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-dev-table thead,
.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-dev-table tbody tr {
	display: table;
	width: 100%;
	table-layout: fixed;
}

.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-dev-table tbody {
	display: block;
	max-height: 126px; /* mniej więcej dwa rekordy + fade */
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.95) 58%, rgba(0, 0, 0, 0) 100%);
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.95) 58%, rgba(0, 0, 0, 0) 100%);
}

.edd-table-actions {
	position: static;
	transform: none;
	background: transparent !important;
	padding: 10px 0 0;
	pointer-events: auto;
	width: 100%;
	display: flex;
	justify-content: center;
}

.edd-dev-table-wrap.edd-table-wrap-collapsed .edd-table-actions {
	position: absolute;
	left: 50%;
	bottom: 10px;
	transform: translateX(-50%);
	z-index: 4;
	padding: 0;
	pointer-events: none;
	width: calc(100% - 24px);
}

.edd-show-all-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 8px 18px;
	border: 1px solid #b8c3d1;
	border-radius: 999px;
	background: transparent;
	color: #1f2937;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: all .2s ease;
	pointer-events: auto;
}

.edd-show-all-button:hover {
	background: rgba(15, 23, 42, 0.045);
	border-color: #8ea0b5;
	color: #0f172a;
}

.edd-status-badge {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
}

.edd-status-available {
	background: #dcfce7;
	color: #14532d;
}

.edd-status-reserved {
	background: #fef3c7;
	color: #854d0e;
}

.edd-status-sold {
	background: #e5e7eb;
	color: #374151;
}

.edd-dev-table a {
	color: #2271b1;
	text-decoration: none;
	font-weight: 700;
}

.edd-dev-table a:hover {
	text-decoration: underline;
}

.edd-tooltip {
	position: absolute;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 16px;
	max-width: 320px;
	box-shadow: 0 4px 20px rgba(0,0,0,.15);
	z-index: 100;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}
.edd-tooltip-visible {
	opacity: 1;
	pointer-events: auto;
}

.edd-property-tooltip {
	/* Portal (body): fixed w JS — nie obcina overflow mapy / Elementora */
	position: fixed;
	left: 0;
	top: 0;
	min-width: 240px;
	max-width: min(340px, calc(100vw - 16px));
	background: rgba(255,255,255,.98);
	border: 1px solid #dbe2ea;
	border-radius: 14px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
	padding: 12px;
	z-index: 2147483647;
	opacity: 0;
	transform: translate(-50%, -100%);
	transition: opacity .18s ease;
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	overflow: visible !important;
	contain: none !important;
	pointer-events: auto;
}

/* Niektóre motywy / Elementor tną overflow — tooltip ma wychodzić poza mapę */
.elementor-element.elementor-widget-edd-developer-map,
.elementor-element.elementor-widget-edd-developer-map .elementor-widget-container {
	overflow: visible !important;
}
/* Bez opcji scroll mapy — nie tnij nic poza mapą (tooltip jest w body) */
.edd-widget-developer-map:not(.edd-map-scroll-x) {
	overflow: visible;
}

.edd-property-tooltip.is-visible { opacity: 1; }
.edd-property-tooltip > div {
	margin-bottom: 8px;
	padding-bottom: 6px;
	border-bottom: 1px solid #eef2f6;
}
.edd-property-tooltip > div:last-child { margin-bottom: 0; }
.edd-property-tooltip span {
	display: block;
	font-size: 10px;
	line-height: 1.2;
	text-transform: uppercase;
	color: #64748b;
	margin-bottom: 2px;
	font-weight: 700;
	letter-spacing: .03em;
}
.edd-property-tooltip strong {
	display: block;
	font-size: 15px;
	line-height: 1.35;
	color: #0f172a;
	font-weight: 800;
}
/* Status w tooltipie na mapie: większy, wyraźniejszy niż w tabeli */
.edd-property-tooltip .edd-status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 4px;
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.045em;
	line-height: 1.25;
	border: 2px solid transparent;
	box-shadow: 0 2px 10px rgba(15, 23, 42, 0.14);
}
.edd-property-tooltip .edd-status-badge.edd-status-available {
	background: #bbf7d0 !important;
	color: #052e16 !important;
	border-color: #22c55e !important;
}
.edd-property-tooltip .edd-status-badge.edd-status-reserved {
	background: #fde68a !important;
	color: #713f12 !important;
	border-color: #f59e0b !important;
}
.edd-property-tooltip .edd-status-badge.edd-status-sold {
	background: #fecaca !important;
	color: #7f1d1d !important;
	border-color: #ef4444 !important;
}
.edd-property-tooltip .edd-tip-val {
	font-size: 15px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.35;
	margin-top: 2px;
	word-break: break-word;
}
.edd-property-tooltip .edd-tip-val a {
	color: #2563eb;
	font-weight: 700;
}

.edd-filters-overlay .edd-top-row {
	position: relative;
	display: block;
}
.edd-filters-overlay .edd-top-row .ed-map-info {
	position: absolute;
	top: var(--edd-overlay-top, 12px);
	right: var(--edd-overlay-right, 12px);
	width: min(320px, 42%);
	z-index: 60;
}

.edd-lightbox {
	position: fixed;
	top: 0; left: 0; right: 0; bottom: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .3s ease;
}
.edd-lightbox-open { opacity: 1; }
.edd-lightbox-overlay {
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(0,0,0,.7);
}
.edd-lightbox-content {
	position: relative;
	background: #fff;
	border-radius: 12px;
	padding: 32px;
	max-width: 640px;
	width: 90%;
	max-height: 80vh;
	overflow-y: auto;
	z-index: 1;
	transform: scale(.9);
	transition: transform .3s ease;
}
.edd-lightbox-open .edd-lightbox-content { transform: scale(1); }
.edd-lightbox-close {
	position: absolute;
	top: 12px; right: 12px;
	background: none;
	border: none;
	font-size: 28px;
	cursor: pointer;
	color: #666;
	width: 36px; height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background .2s;
}
.edd-lightbox-close:hover { background: #f0f0f0; }

/* Hotspoty SVG (Developer Map): widoczność w stanie „normal” + płynne przejścia.
   Kolory inline z mapy Easy Draw mogą mieć bardzo niskie fill-opacity — nadpisujemy sensowny domyślny poziom,
   dopóki nie ustawisz własnych stylów w widżecie Elementor (Hotspoty SVG). */
.edd-widget-developer-map svg .ed-hotspot.edd-dev-hotspot {
	transition: fill 0.2s ease, fill-opacity 0.2s ease, stroke 0.2s ease, stroke-width 0.2s ease, opacity 0.2s ease;
}
.edd-widget-developer-map svg .ed-hotspot.edd-dev-hotspot[data-edd-status] {
	fill-opacity: 0.45 !important;
}

.edd-widget-developer-map svg .edd-hotspot-label-layer {
	pointer-events: none;
}

.edd-widget-developer-map svg .edd-hotspot-label {
	fill: #0f172a;
	font-size: 12px;
	font-weight: 700;
	paint-order: stroke;
	stroke: rgba(255, 255, 255, 0.92);
	stroke-width: 3px;
	stroke-linejoin: round;
}

/* —— Presety kolorów hotspotów (Elementor: Hotspoty SVG → Preset) ——
   Mają !important, żeby przebić inline z edytora mapy. Ustawienia własne w Elementorze
   generują się później i mogą nadpisać preset. */

/* Preset A: zieleń / bursztyn / szarość */
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-available {
	fill: #22c55e !important;
	fill-opacity: 0.48 !important;
	stroke: #15803d !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-available:hover {
	fill: #16a34a !important;
	fill-opacity: 0.58 !important;
	stroke: #14532d !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-available.ed-hotspot-active {
	fill: #166534 !important;
	fill-opacity: 0.72 !important;
	stroke: #052e16 !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-reserved {
	fill: #f59e0b !important;
	fill-opacity: 0.5 !important;
	stroke: #b45309 !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-reserved:hover {
	fill: #d97706 !important;
	fill-opacity: 0.6 !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-reserved.ed-hotspot-active {
	fill: #b45309 !important;
	fill-opacity: 0.7 !important;
}
/* Sprzedane: czerwienie (preset 1) */
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-sold {
	fill: #ef4444 !important;
	fill-opacity: 0.48 !important;
	stroke: #b91c1c !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-sold:hover {
	fill: #dc2626 !important;
	fill-opacity: 0.58 !important;
	stroke: #991b1b !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-status-sold.ed-hotspot-active {
	fill: #b91c1c !important;
	fill-opacity: 0.68 !important;
	stroke: #7f1d1d !important;
}
.edd-widget-developer-map.edd-hs-preset-a svg .ed-hotspot.edd-dev-hotspot-unassigned {
	fill: #cbd5e1 !important;
	fill-opacity: 0.4 !important;
	stroke: #64748b !important;
	stroke-width: 1px !important;
}

/* Preset B: ocean / fiolet / szarość */
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-available {
	fill: #0ea5e9 !important;
	fill-opacity: 0.48 !important;
	stroke: #0369a1 !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-available:hover {
	fill: #0284c7 !important;
	fill-opacity: 0.58 !important;
	stroke: #075985 !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-available.ed-hotspot-active {
	fill: #0369a1 !important;
	fill-opacity: 0.72 !important;
	stroke: #0c4a6e !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-reserved {
	fill: #a855f7 !important;
	fill-opacity: 0.48 !important;
	stroke: #7e22ce !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-reserved:hover {
	fill: #9333ea !important;
	fill-opacity: 0.58 !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-reserved.ed-hotspot-active {
	fill: #7e22ce !important;
	fill-opacity: 0.7 !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-sold {
	fill: #64748b !important;
	fill-opacity: 0.42 !important;
	stroke: #334155 !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-sold:hover {
	fill: #475569 !important;
	fill-opacity: 0.52 !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-status-sold.ed-hotspot-active {
	fill: #334155 !important;
	fill-opacity: 0.62 !important;
}
.edd-widget-developer-map.edd-hs-preset-b svg .ed-hotspot.edd-dev-hotspot-unassigned {
	fill: #bae6fd !important;
	fill-opacity: 0.45 !important;
	stroke: #0284c7 !important;
	stroke-width: 1px !important;
}

/* Preset C: ciepły / musztarda / ziemisty */
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-available {
	fill: #ea580c !important;
	fill-opacity: 0.48 !important;
	stroke: #9a3412 !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-available:hover {
	fill: #c2410c !important;
	fill-opacity: 0.58 !important;
	stroke: #7c2d12 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-available.ed-hotspot-active {
	fill: #9a3412 !important;
	fill-opacity: 0.72 !important;
	stroke: #431407 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-reserved {
	fill: #ca8a04 !important;
	fill-opacity: 0.5 !important;
	stroke: #854d0e !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-reserved:hover {
	fill: #a16207 !important;
	fill-opacity: 0.6 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-reserved.ed-hotspot-active {
	fill: #854d0e !important;
	fill-opacity: 0.7 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-sold {
	fill: #78716c !important;
	fill-opacity: 0.45 !important;
	stroke: #44403c !important;
	stroke-width: 1.5px !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-sold:hover {
	fill: #57534e !important;
	fill-opacity: 0.55 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-status-sold.ed-hotspot-active {
	fill: #44403c !important;
	fill-opacity: 0.65 !important;
}
.edd-widget-developer-map.edd-hs-preset-c svg .ed-hotspot.edd-dev-hotspot-unassigned {
	fill: #fdba74 !important;
	fill-opacity: 0.42 !important;
	stroke: #c2410c !important;
	stroke-width: 1px !important;
}
