/* REALJEJU 6.706 | 2026-09-04 */
/* REALJEJU VERSION: 6.706 */
/* REALJEJU 5.436 CSS module: map and core layout
+ * Original cascade order is preserved. Rules are moved, not duplicated.
+ */
/* ===== MERGED FROM map_2.712.css ===== */
/* ===== INLINE FROM map.css ===== */
/* REALJEJU map.css - stable split from realjeju_2.361(3).html / Ver 2.396 */

.map-side-tools{
	filter: drop-shadow(4px 7px 12px rgba(15, 23, 42, 0.22));
	transition: none;
}

.map-wrap.is-roadview-open #map{
	transform: none;
	filter: none;
}

.roadview-overlay{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: auto;
	width: min(66vw, calc(100% - 360px));
	min-width: min(520px, 100%);
	max-width: 100%;
	z-index: 260;
	overflow: hidden;
	pointer-events: none;
	opacity: 0;
	transform: translateX(-24px) scale(1.02);
	transition: opacity 0.28s ease, transform 0.32s ease;
	background: #000;
}

.roadview-overlay.detail-panel-roadview{
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	width: var(--rj-detail-panel-width);
	max-width: 100vw;
	z-index: 10080;
	transform: translateX(24px) scale(1.02);
}

.roadview-overlay.detail-left-roadview{
	position: fixed;
	top: 0;
	right: var(--rj-detail-panel-width, 420px);
	bottom: 0;
	left: 0;
	width: auto;
	min-width: 0;
	max-width: none;
	z-index: 10015;
	transform: translateX(-16px) scale(1.01);
	box-shadow: 20px 0 34px rgba(15, 23, 42, 0.32);
}

.roadview-overlay.detail-left-roadview::after{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 18px;
	z-index: 5;
	pointer-events: none;
	background: linear-gradient(to left, rgba(15, 23, 42, 0.26), rgba(15, 23, 42, 0));
}

.roadview-overlay:fullscreen{
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	min-width: 0;
	max-width: none;
	z-index: 2147483647;
}

.roadview-overlay:-webkit-full-screen{
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	min-width: 0;
	max-width: none;
	z-index: 2147483647;
}

.roadview-overlay.open{
	pointer-events: auto;
	opacity: 1;
	transform: translateX(0) scale(1);
}

.roadview-overlay.detail-left-roadview.open{
	transform: translateX(0) scale(1);
}

body.education-facility-detail-open .roadview-overlay,
body.education-facility-detail-open .roadview-overlay.open,
body.education-facility-detail-open .roadview-overlay.detail-left-roadview,
body.education-facility-detail-open .roadview-overlay.detail-panel-roadview,
body.education-facility-detail-open .roadview-overlay:fullscreen,
body.education-facility-detail-open .roadview-overlay:-webkit-full-screen{
	display: none;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

body.roadview-detail-left-open.detail-page-panel-open::before{
	background: transparent;
}

.roadview-inner{
	width: 100%;
	height: 100%;
}

.roadview-close-btn{
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 130;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: rgba(17,24,39,0.72);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	backdrop-filter: blur(6px);
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.2s ease 0.08s, transform 0.24s ease 0.08s, background 0.18s ease;
}

.roadview-close-btn:hover{
	background: rgba(17,24,39,0.84);
}

.roadview-close-btn i{
	font-size: 17px;
	line-height: 1;
}

.roadview-fullscreen-btn{
	position: absolute;
	top: 16px;
	right: 64px;
	z-index: 130;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,0.92);
	color: #111827;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	backdrop-filter: blur(6px);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: -0.1px;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.2s ease 0.08s, transform 0.24s ease 0.08s, background 0.18s ease;
}

.roadview-fullscreen-btn:hover{
	background: rgba(255,255,255,0.98);
}

.roadview-fullscreen-btn i{
	font-size: 17px;
	line-height: 1;
}

.roadview-overlay.open .roadview-close-btn,
.roadview-overlay.open .roadview-fullscreen-btn{
	opacity: 1;
	transform: translateY(0);
}

.roadview-direction-overlay{
	position: relative;
	width: 122px;
	height: 122px;
	pointer-events: none;
	transform: translateZ(0);
}

.roadview-direction-composite{
	display: block;
	position: absolute;
	inset: 0;
	width: 122px;
	height: 122px;
	overflow: visible;
}

.roadview-direction-range-fill{
	fill: rgba(96, 165, 250, 0.28);
	stroke: rgba(37, 99, 235, 0.24);
	stroke-width: 1;
}

.roadview-direction-rotor{
	transform-box: view-box;
	transform-origin: 61px 66.1px;
	transform: rotate(calc(var(--roadview-pan, 0deg) + 180deg));
}

.roadview-direction-cone{
	fill: rgba(52, 211, 153, 0.88);
	stroke: rgba(52, 211, 153, 0.88);
	stroke-width: 1;
	stroke-linejoin: round;
}

.roadview-direction-pin-shape{
	fill: #ffffff;
	stroke: #9ca3af;
	stroke-width: 2.3;
	stroke-linejoin: round;
	filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.18));
}

.roadview-direction-arrow{
	display: none;
}

.roadview-direction-pin{
	top: 15px;
	z-index: 4;
}

.roadview-direction-pin-mark{
	display: none;
}

.roadview-pick-overlay{
	position: relative;
	width: 42px;
	height: 54px;
	pointer-events: none;
	transform: translateZ(0);
}

.roadview-direction-overlay.roadview-pick-overlay{
	width: 122px;
	height: 122px;
}

.roadview-pick-pin{
	position: absolute;
	left: 50%;
	top: 0;
	width: 42px;
	height: 54px;
	transform: translateX(-50%);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='54' viewBox='0 0 42 54'%3E%3Cpath d='M21 2C10.5 2 2 10.5 2 21c0 7.1 4.3 14.1 10.9 21.8 3 3.5 6 6.4 8.1 8.3 2.1-1.9 5.1-4.8 8.1-8.3C35.7 35.1 40 28.1 40 21 40 10.5 31.5 2 21 2Z' fill='%23ffffff' stroke='%239ca3af' stroke-width='2.3' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	box-sizing: border-box;
	filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.18));
	z-index: 1;
}

.roadview-pick-pin.roadview-direction-pin{
	transform: translateX(-50%);
	transform-origin: 50% 100%;
	filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.18));
}

.roadview-pick-pin-line{
	position: absolute;
	left: 50%;
	top: 20px;
	width: 21px;
	height: 4px;
	transform: translate(-50%, -50%);
	border-radius: 1px;
	background: #0067d9;
	border: 0;
	box-sizing: border-box;
	z-index: 3;
}

.roadview-direction-pin .roadview-pick-pin-line{
	display: none;
}

.map-filter-bar{
	position: absolute;
	top: 18px;
	left: 16px;
	z-index: 30;
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-width: calc(100% - 24px);
	padding: 12px;
	border-radius: 0;
	background: rgba(255,255,255,0.94);
	border: 1px solid rgba(0,0,0,0.05);
	box-shadow: var(--shadow);
	backdrop-filter: blur(10px);
}

.map-result-count{
	display: none;
	position: absolute;
	top: 120px;
	left: 12px;
	z-index: 30;
	align-items: center;
	gap: 7px;
	min-height: 46px;
	padding: 10px 15px;
	border-radius: 0;
	background: rgba(15,41,66,0.92);
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	box-shadow: var(--shadow);
	backdrop-filter: blur(10px);
	letter-spacing: -0.2px;
}

.map-result-count::before{
	content: "●";
	color: #34d399;
	font-size: 14px;
	letter-spacing: -0.1px;
}

.map-agent-card{
	position: absolute;
	top: 24px;
	right: 20px;
	z-index: 33;
	width: 460px;
	border-radius: 0;
	background: rgba(255,255,255,0.98);
	border: 1px solid rgba(15, 41, 66, 0.08);
	box-shadow: 0 16px 36px rgba(15, 41, 66, 0.16);
	backdrop-filter: blur(10px);
	overflow: hidden;
	display: none;
}

.map-agent-close{
	position: absolute;
	top: 10px;
	right: 10px;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 0;
	background: rgba(15, 41, 66, 0.08);
	color: #506104;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
}

.map-agent-close:hover{
	background: rgba(15, 41, 66, 0.08);
	color: #506104;
}

.map-agent-close i{
	font-size: 14px;
	line-height: 1;
}

.map-agent-head{
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 14px 16px 10px;
	border-bottom: 1px solid #eef2f6;
	background: rgba(255,255,255,0.6);
	backdrop-filter: blur(10px);
}

.map-agent-head-title{
	font-size: 18px;
	font-weight: 800;
	color: #2563eb;
	letter-spacing: -0.3px;
}

.map-agent-head-sub{
	font-size: 15px;
	font-weight: 800;
	color: #1f2a36;
	letter-spacing: -0.2px;
}

.map-agent-body{
	display: grid;
	grid-template-columns: 124px 1fr;
	gap: 12px;
	padding: 12px 14px 14px;
}

.map-agent-photo{
	height: 118px;
	border-radius: 0;
	background: #eef3f7 center / cover no-repeat;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.10);
	overflow: hidden;
}

.map-agent-photo img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	background: #f4f7fb;
}

.map-agent-content{
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.map-agent-name-row{
	display: flex;
	align-items: baseline;
	gap: 8px;
	min-width: 0;
	flex-wrap: wrap;
}

.map-agent-name-role{
	font-size: 15px;
	font-weight: 800;
	color: #111827;
	line-height: 1.35;
	letter-spacing: -0.2px;
}

.map-agent-badges{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
	margin-bottom: var(--property-registrant-check-bottom-gap);
}

.map-agent-badge{
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 10px;
	border-radius: 0;
	background: #ffffff;
	color: #2563eb;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.map-agent-badge.secondary{
	background: #f3eefe;
	color: #7c4dff;
}

.map-agent-name{
	font-size: 24px;
	font-weight: 800;
	color: #111827;
	line-height: 1.08;
	letter-spacing: -0.8px;
	margin: 0;
}

.map-agent-office{
	font-size: 16px;
	font-weight: 700;
	color: #1f6fff;
	letter-spacing: -0.25px;
	line-height: 1.35;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}

.map-agent-desc{
	display: none;
}

.map-agent-badge.secondary{
	display: none;
}

.map-agent-desc{
	font-size: 13px;
	font-weight: 700;
	color: #7c4dff;
	line-height: 1.4;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}

.map-agent-meta{
	display: flex;
	flex-direction: column;
	gap: 0px;
	margin-top: 2px;
}

.map-agent-meta-row{
	display: flex;
	align-items: center;
	gap: 0px;
	min-width: 0;
	min-height: 28px;
}

.map-agent-meta-label{
	width: 72px;
	flex: 0 0 72px;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
	color: #9aa3af;
	line-height: 1.35;
	white-space: nowrap;
	font-family: var(--font-ui);
}

.map-agent-meta-value{
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	min-height: 24px;
	margin: 0;
	padding: 0;
	font-family: var(--font-ui);
	font-variant-numeric: normal;
	font-size: 14px;
	font-weight: 600;
	color: #4b5573;
	letter-spacing: -0.12px;
	line-height: 1.35;
	min-width: 0;
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
	word-break: normal;
}

#mapAgentAddress{
	white-space: normal;
	line-height: 1.45;
	word-break: keep-all;
}

#mapAgentRegNo{
	line-height: 1.35;
}

#mapAgentPhone{
	display: flex;
	align-items: center;
	font-size: 20px;
	font-weight: 700;
	color: #1f2a36;
	letter-spacing: -0.18px;
	line-height: 1.35;
	font-family: var(--font-ui);
	font-variant-numeric: normal;
}

.map-recommend-close{
	position: absolute;
	top: 10px;
	right: 10px;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 0;
	background: rgba(15, 41, 66, 0.08);
	color: #506104;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 1;
}

.map-recommend-close:hover{
	background: rgba(15, 41, 66, 0.08);
	color: #506104;
}

.map-recommend-close i{
	font-size: 14px;
	line-height: 1;
}

.map-recommend-card{
	display: none;
	position: absolute;
	right: 20px;
	bottom: 20px;
	z-index: 32;
	width: 320px;
	border-radius: 0;
	background: rgba(255,255,255,0.98);
	border: 1px solid rgba(15, 41, 66, 0.08);
	box-shadow: 0 16px 36px rgba(15, 41, 66, 0.16);
	backdrop-filter: blur(10px);
	overflow: hidden;
	cursor: pointer;
}

.map-recommend-head{
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 14px 16px 10px;
	border-bottom: 1px solid #eef2f6;
}

.map-recommend-title{
	font-size: 18px;
	font-weight: 800;
	color: #2563eb;
	letter-spacing: -0.3px;
}

.map-recommend-sub{
	font-size: 15px;
	font-weight: 800;
	color: #1f2a36;
	letter-spacing: -0.2px;
}

.map-recommend-body{
	display: grid;
	grid-template-columns: 124px 1fr;
	gap: 12px;
	padding: 12px 14px 14px;
}

.map-recommend-thumb{
	height: 118px;
	border-radius: 0;
	background: #eef3f7 center / cover no-repeat;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.10);
}

.map-recommend-content{
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.map-recommend-badges{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
	margin-bottom: 0;
}

.map-recommend-badge{
	display: inline-flex;
	align-items: center;
	height: 22px;
	padding: 0 10px;
	border-radius: 0;
	background: #f3eefe;
	color: #7c4dff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.map-recommend-badge.deal{
	background: #eef5ff;
	color: #2563eb;
}

.map-recommend-price{
	font-family: var(--font-ui);
	font-variant-numeric: tabular-nums;
	font-size: 24px;
	font-weight: 800;
	color: #111827;
	line-height: 1.08;
	letter-spacing: -0.8px;
	margin: 0;
}

.map-recommend-title-text{
	font-size: 15px;
	font-weight: 800;
	color: #111827;
	line-height: 1.35;
	letter-spacing: -0.25px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	word-break: keep-all;
}

.map-recommend-address{
	font-size: 13px;
	font-weight: 600;
	color: #6b7785;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.map-recommend-footer,
.map-agent-footer{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 5px;
	padding: 10px 16px 14px;
	border-top: 1px solid #eef2f6;
	background: rgba(255,255,255,0.98);
}

.map-hide-today-label{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	letter-spacing: -0.1px;
	cursor: pointer;
	user-select: none;
}

.map-hide-today-label input{
	width: 14px;
	height: 14px;
	margin: 0;
	accent-color: #2563eb;
	cursor: pointer;
	flex: 0 0 auto;
}

.weekly-specialist-broker-panel{
	--weekly-specialist-panel-width: 236px;
	position: absolute;
	top: var(--weekly-specialist-panel-top, calc(var(--map-side-tools-top, 16px) + var(--map-control-box-size, 42px) + var(--map-tool-stack-gap, 16px)));
	left: var(--weekly-specialist-panel-left, 24px);
	z-index: 35;
	width: min(var(--weekly-specialist-panel-width), calc(100vw - 48px));
	max-height: calc(100vh - 132px);
	display: none;
	flex-direction: column;
	border: 0;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 18px 48px rgba(15, 23, 42, 0.24), 0 3px 10px rgba(15, 23, 42, 0.08);
	backdrop-filter: blur(10px);
	overflow: hidden;
	color: #111827;
}

.weekly-specialist-broker-panel[aria-hidden="false"]{
	display: flex;
}

body.map-panels-collapsed .weekly-specialist-broker-panel,
body.detail-page-panel-open .weekly-specialist-broker-panel,
body.map-detail-panel-active .weekly-specialist-broker-panel,
body.admin-page-open .weekly-specialist-broker-panel,
body.broker-home-page-open .weekly-specialist-broker-panel,
body.property-register-page-open .weekly-specialist-broker-panel,
body.my-suite-page-open .weekly-specialist-broker-panel,
body.notice-page-open .weekly-specialist-broker-panel,
body.auth-page-open .weekly-specialist-broker-panel,
body.payment-page-open .weekly-specialist-broker-panel{
	display: none;
}

.weekly-specialist-broker-head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 16px 14px 10px;
	background: linear-gradient(180deg, rgba(239, 246, 255, 0.92), rgba(255, 255, 255, 0.96));
}

.weekly-specialist-broker-head h2{
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	color: #0f172a;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
}

.weekly-specialist-broker-head h2 i{
	color: #2563eb;
	font-size: 18px;
	line-height: 1;
}

.weekly-specialist-broker-close{
	position: relative;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(15, 23, 42, 0.42);
	border-radius: 999px;
	background: #ffffff;
	color: #374151;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex: 0 0 auto;
}

.weekly-specialist-broker-close i{
	display: none;
}

.weekly-specialist-broker-close::before,
.weekly-specialist-broker-close::after{
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 15px;
	height: 1.4px;
	border-radius: 999px;
	background: currentColor;
	transform-origin: center;
}

.weekly-specialist-broker-close::before{
	transform: translate(-50%, -50%) rotate(45deg);
}

.weekly-specialist-broker-close::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}

.weekly-specialist-broker-close:hover,
.weekly-specialist-broker-close:focus-visible{
	border-color: #111827;
	color: #111827;
}

.weekly-specialist-broker-scroll{
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 4px 14px 10px;
}

.weekly-specialist-empty{
	margin: 12px 0 18px;
	padding: 18px 12px;
	border-radius: 12px;
	background: #f8fafc;
	color: #64748b;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.weekly-specialist-broker-section{
	margin: 0 0 18px;
}

.weekly-specialist-broker-section:last-child{
	margin-bottom: 4px;
}

.weekly-specialist-broker-section h3{
	margin: 0 0 9px;
	color: #111827;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.2px;
}

.weekly-specialist-broker-grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px 6px;
}

.weekly-specialist-broker-card{
	min-width: 0;
	border: 0;
	padding: 0 2px 2px;
	background: transparent;
	color: #111827;
	display: grid;
	justify-items: center;
	gap: 2px;
	text-align: center;
	cursor: pointer;
	font-family: inherit;
}

.weekly-specialist-broker-card:hover .broker-office-map-marker-icon,
.weekly-specialist-broker-card:focus-visible .broker-office-map-marker-icon{
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16), 0 3px 8px rgba(15, 41, 66, 0.18);
}

.weekly-specialist-broker-marker{
	--broker-office-marker-size: 44px;
	transform: none;
	pointer-events: none;
}

.weekly-specialist-broker-marker .broker-office-map-marker-badge{
	min-width: 56px;
}

.weekly-specialist-broker-marker .broker-office-map-marker-count{
	height: 18px;
	min-width: 44px;
	font-size: 11px;
	font-weight: 700;
	background: rgba(37, 99, 235, 0.94);
}

.weekly-specialist-broker-name{
	width: 100%;
	min-height: 0;
	color: #374151;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: -0.15px;
	word-break: keep-all;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.weekly-specialist-stars{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: 14px;
	margin-top: -2px;
	color: #facc15;
	text-shadow: 0 1px 0 rgba(146, 64, 14, 0.20);
}

.weekly-specialist-star{
	font-size: 12px;
	line-height: 1;
}

.weekly-specialist-star.big{
	font-size: 15px;
	color: #f59e0b;
}

.weekly-specialist-broker-footer{
	flex: 0 0 auto;
	padding: 14px;
	border-top: 1px solid #e5e7eb;
	background: rgba(255, 255, 255, 0.96);
}

.weekly-specialist-hide-today-label{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #111827;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.15px;
	cursor: pointer;
	user-select: none;
}

.weekly-specialist-hide-today-label input{
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: #2563eb;
	cursor: pointer;
	flex: 0 0 auto;
}

@media (max-width: 720px) {
	.weekly-specialist-broker-panel{
		top: 80px;
		left: 12px;
		width: min(430px, calc(100vw - 24px));
		max-height: calc(100vh - 104px);
		border-radius: 16px;
	}

	.weekly-specialist-broker-head{
		padding: 15px 16px 10px;
	}

	.weekly-specialist-broker-scroll{
		padding-left: 16px;
		padding-right: 16px;
	}
}

.map-side-tools{
	position: absolute;
	top: var(--map-side-tools-top);
	z-index: 2147483000;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: var(--map-tool-stack-gap);
	pointer-events: auto;
}

.map-tool-group{
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0;
	height: auto;
	border-radius: var(--map-control-radius);
	background: #f3f4f6;
	border: 0;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
	backdrop-filter: none;
	overflow: hidden;
}

.map-primary-tool-group,
.map-unit-tool-group{
	border: 0;
	background: transparent;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.10), 0 8px 16px rgba(15, 23, 42, 0.10);
	overflow: visible;
	gap: var(--map-tool-stack-gap);
}

.map-parcel-analysis-tool-group{
	display: none;
	border: 0;
	background: #fff;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.10), 0 8px 16px rgba(15, 23, 42, 0.10);
}

body[data-global-category="parcel"] .map-parcel-analysis-tool-group{
	display: flex;
}

.map-parcel-analysis-tool-group .map-tool-btn{
	width: var(--map-control-box-size);
	min-width: var(--map-control-box-size);
	height: 56px;
	min-height: 56px;
	padding: 5px 3px;
}

.map-parcel-analysis-tool-group .map-tool-btn + .map-tool-btn{
	border-top: 1px solid #e5e7eb;
}

.map-parcel-analysis-tool-group .map-tool-btn.active{
	background: #1764ff;
	color: #fff;
}

.map-parcel-analysis-tool-group .map-tool-label-stack{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	margin: auto;
	line-height: 1.05;
}

.map-parcel-road-contact-tool-btn .map-tool-label{
	font-size: 11px;
	font-weight: 700;
}

.map-parcel-road-contact-tool-btn.is-level-disabled,
.map-parcel-road-contact-tool-btn:disabled{
	background:#f3f4f6;
	color:#9ca3af;
	cursor:not-allowed;
	opacity:1;
}
.map-parcel-road-contact-tool-btn.is-level-disabled .map-tool-label,
.map-parcel-road-contact-tool-btn:disabled .map-tool-label{
	color:#9ca3af;
}

.map-tool-btn{
	width: var(--map-control-box-size);
	min-width: var(--map-control-box-size);
	height: var(--map-control-box-size);
	min-height: var(--map-control-box-size);
	box-sizing: border-box;
	border: 0;
	border-radius: 0;
	padding: 5px 4px;
	background: #ffffff;
	color: #15171b;
	font-size: var(--map-control-font-size);
	font-weight: 600;
	letter-spacing: -0.2px;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: none;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	text-align: center;
	line-height: 1;
}

.map-primary-tool-group .map-tool-btn,
.map-unit-tool-group .map-tool-btn{
	border-radius: var(--map-control-radius);
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-tool-btn + .map-tool-btn{
	margin-left: 0;
	border-top: 1px solid #edf1f5;
	border-left: 0;
}

.map-primary-tool-group .map-tool-btn + .map-tool-btn{
	border-top: 0;
}

.map-tool-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 20px;
	font-size: 17px;
	line-height: 1;
	pointer-events: none;
}

.map-tool-label{
	display: block;
	max-width: 100%;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.12;
	word-break: keep-all;
	pointer-events: none;
}

#mapDistanceToolBtn .map-tool-label{
	font-size: 10px;
	line-height: 1.08;
}

/* 5.995: 일반 지도는 카카오 내부 요소의 손 커서를 덮어 기본 화살표로 고정하고,
   실제 지도 드래그 이벤트가 진행되는 동안에만 잡은 손 커서를 표시합니다. */
body:not(.pickaxe-mode-active) #map:not(.distance-measure-active):not(.is-map-dragging),
body:not(.pickaxe-mode-active) #map:not(.distance-measure-active):not(.is-map-dragging) *:not(.realjeju-property-cluster-badge):not(.property-region-count-label):not(.property-region-count-label *):not([style*="cursor: pointer"]):not([style*="cursor:pointer"]):not([style*="cursor: pointer"] *):not([style*="cursor:pointer"] *){
	cursor: default;
}

.realjeju-property-cluster-badge:not(.is-selected):hover{
	filter: brightness(1.04);
}

body:not(.pickaxe-mode-active) #map:not(.distance-measure-active).is-map-dragging,
body:not(.pickaxe-mode-active) #map:not(.distance-measure-active).is-map-dragging *{
	cursor: grabbing;
}

#map.distance-measure-active,
body.distance-measure-active #map{
	cursor: pointer;
}

#map.distance-measure-active *,
body.distance-measure-active #map *{
	cursor: pointer;
}

#map.distance-measure-active:active,
#map.distance-measure-active:active *,
body.distance-measure-active #map:active,
body.distance-measure-active #map:active *{
	cursor: grabbing;
}

body.distance-measure-active #map .realjeju-property-cluster-badge,
body.distance-measure-active #map .property-region-count-label,
body.distance-measure-active #map .parcel-region-trade-map-badge{
	pointer-events:none;
}

/* 5.192: 작은 규격은 유지하고 곡괭이 날ㆍ손잡이ㆍ연결부를 같은 게임형 아이콘으로 통일합니다. */
body.pickaxe-mode-active #map,
body.pickaxe-mode-active #map *{
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 32 32'%3E%3Cg transform='rotate(-38 16 16)'%3E%3Crect x='14.2' y='8' width='3.6' height='21.5' rx='1.8' fill='%239a6038' stroke='%23533524' stroke-width='1.3'/%3E%3Crect x='12.9' y='8.1' width='6.2' height='4.2' rx='2.1' fill='%23d7a84f' stroke='%2376551f' stroke-width='1'/%3E%3Cpath d='M3.4 8.2C9.1 3.3 22.9 3.3 28.6 8.2l-2.7 3.3c-5.5-2.8-14.3-2.8-19.8 0z' fill='%23dce5ec' stroke='%235d6974' stroke-width='1.35' stroke-linejoin='round'/%3E%3Cpath d='M7.1 7.7c4.8-2.5 13-2.5 17.8 0' fill='none' stroke='%23ffffff' stroke-width='1.15' stroke-linecap='round' opacity='.82'/%3E%3C/g%3E%3C/svg%3E") 6 22, crosshair;
}

.pickaxe-mode-hud{
	position:fixed;
	left:50%;
	bottom:20px;
	z-index:1200;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:5px;
	min-width:68px;
	height:34px;
	padding:0 12px;
	border:1px solid rgba(255,255,255,.36);
	border-radius:17px;
	background:rgba(31,36,42,.94);
	color:#fff;
	box-shadow:0 4px 14px rgba(15,23,42,.24);
	font-size:13px;
	font-weight:800;
	line-height:1;
	letter-spacing:-.15px;
	box-sizing:border-box;
	transform:translateX(-50%);
	pointer-events:none;
	user-select:none;
	-webkit-user-select:none;
}

.pickaxe-mode-hud[hidden]{
	display:none;
}

.pickaxe-mode-hud.is-empty{
	background:rgba(91,99,110,.94);
}

.pickaxe-mode-hud-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:17px;
	height:17px;
	font-size:17px;
	line-height:1;
}

.pickaxe-mode-hud-icon svg{
	display:block;
	width:17px;
	height:17px;
}

.pickaxe-mode-center-message{
	position:fixed;
	left:50%;
	top:50%;
	z-index:1201;
	max-width:min(520px, calc(100vw - 40px));
	color:#ffffff;
	font-size:19px;
	font-weight:800;
	line-height:1.35;
	letter-spacing:-.2px;
	text-align:center;
	text-shadow:0 2px 7px rgba(0,0,0,.95), 0 0 2px rgba(0,0,0,.85);
	white-space:nowrap;
	transform:translate(-50%, -50%);
	pointer-events:none;
	user-select:none;
	-webkit-user-select:none;
}

.pickaxe-mode-center-message[hidden]{
	display:none;
}

.pickaxe-mode-hud.has-message::after{
	content:attr(data-message);
	position:absolute;
	left:50%;
	bottom:calc(100% + 9px);
	max-width:min(340px, calc(100vw - 32px));
	padding:9px 13px;
	border-radius:10px;
	background:rgba(17,24,39,.94);
	color:#fff;
	box-shadow:0 5px 18px rgba(15,23,42,.22);
	font-size:13px;
	font-weight:700;
	line-height:1.35;
	white-space:nowrap;
	transform:translateX(-50%);
}

.distance-measure-point{
	position: relative;
	width: 22px;
	height: 22px;
	border: 3px solid #d83b5f;
	border-radius: 50%;
	background: #ffffff;
	box-sizing: border-box;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
	pointer-events: none;
}

.distance-measure-point.radius{
	border-color: #1764ff;
	box-shadow: 0 1px 3px rgba(23, 100, 255, 0.18);
}

.distance-measure-cursor{
	width: 22px;
	height: 22px;
	border-width: 3px;
	background: radial-gradient(circle at center, #d83b5f 0 4px, #ffffff 5px);
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
}

.distance-measure-cursor.radius{
	background: radial-gradient(circle at center, #1764ff 0 4px, #ffffff 5px);
	box-shadow: 0 1px 3px rgba(23, 100, 255, 0.18);
}

.distance-measure-cursor.target{
	width: 22px;
	height: 22px;
	border-width: 3px;
	background: #ffffff;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
}

.distance-measure-cursor.target.radius{
	background: #ffffff;
	box-shadow: 0 1px 3px rgba(23, 100, 255, 0.18);
}

.distance-measure-point.start::after{
	content: "";
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: #d83b5f;
	z-index: 1;
}

.distance-measure-point.start.radius::after{
	background: #1764ff;
}

.distance-measure-start-label{
	position: absolute;
	left: 50%;
	top: 18px;
	z-index: 2;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 26px;
	padding: 0 8px;
	border-radius: 13px;
	background: #d83b5f;
	color: #ffffff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}

.distance-measure-point.radius .distance-measure-start-label{
	background: #1764ff;
}

.distance-measure-label{
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	min-width: 74px;
	padding: 9px 12px;
	border: 1.5px solid rgba(216,59,95,0.55);
	border-radius: 8px;
	background: rgba(255,255,255,0.96);
	color: #334155;
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.14);
	white-space: nowrap;
	pointer-events: none;
}

.distance-measure-label.radius{
	border-color: rgba(23, 100, 255, 0.55);
}

.distance-measure-label.preview{
	opacity: 0.62;
	background: rgba(255,255,255,0.84);
}

.distance-measure-label.total-summary{
	gap: 5px;
	padding: 10px 12px;
}

.distance-measure-label strong{
	color: #111827;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.1;
}

.distance-measure-label span{
	color: #475573;
}

.distance-measure-total{
	color: #d83b5f;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.15;
}

.distance-measure-label.radius .distance-measure-total{
	color: #1764ff;
}

.distance-measure-toolbar{
	position: absolute;
	left: 50%;
	bottom: 28px;
	z-index: 2147483102;
	display: flex;
	align-items: center;
	gap: 6px;
	max-width: calc(100vw - 260px);
	padding: 7px;
	border: 0;
	border-radius: 999px;
	background: rgba(255,255,255,0.96);
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.16);
	transform: translateX(-50%);
	white-space: nowrap;
}

.distance-measure-toolbar[hidden]{
	display: none;
}

.distance-measure-toolbar-btn{
	min-width: 64px;
	height: 38px;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #111827;
	font-family: var(--font-ui);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.distance-measure-toolbar-btn.icon{
	min-width: 44px;
	width: 44px;
	padding: 0;
	font-size: 22px;
}

.distance-measure-toolbar-btn.icon i{
	display: block;
	line-height: 1;
}

.distance-measure-toolbar-btn:hover{
	background: #f3f4f6;
}

.distance-measure-toolbar-btn.active{
	background: #1764ff;
	color: #ffffff;
}

.distance-measure-toolbar-btn:disabled{
	color: #9ca3af;
	cursor: default;
}

.distance-measure-toolbar-btn:disabled:hover{
	background: transparent;
}

.distance-measure-toolbar-btn.close{
	min-width: 58px;
}

.map-tool-btn.active{
	background: #1764ff;
	color: #ffffff;
	box-shadow: 0 10px 22px rgba(31,111,255,0.24);
}


.map-location-tool-group .map-tool-btn,
.map-map-tool-group .map-tool-btn{
	height: 56px;
	min-height: 40px;
}

.map-settings-tool-group,
.map-settings-tool-group .map-tool-btn,
.map-current-tool-group,
.map-current-tool-group .map-tool-btn{
	width: var(--map-control-box-size);
	min-width: var(--map-control-box-size);
	max-width: var(--map-control-box-size);
	height: var(--map-control-box-size);
	min-height: var(--map-control-box-size);
	max-height: var(--map-control-box-size);
	aspect-ratio: 1 / 1;
}

.map-settings-tool-group .map-tool-btn,
.map-current-tool-group .map-tool-btn{
	padding: 0;
	gap: 0;
}

.map-location-tool-group .map-tool-btn.active,
.map-map-tool-group .map-tool-btn.active,
.map-settings-tool-group .map-tool-btn.active{
	background: #1764ff;
	color: #ffffff;
	box-shadow: 0 10px 22px rgba(31,111,255,0.24);
}

.map-location-tool-group .map-tool-btn.configuring,
.map-map-tool-group .map-tool-btn.configuring,
.map-settings-tool-group .map-tool-btn.configuring,
.map-settings-tool-group .map-current-btn.configuring{
	background: #ffffff;
	color: #1764ff;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-settings-tool-group[hidden]{
	display: none;
}




.map-property-toggle-btn{
	padding: 0;
	gap: 0;
	background: #ffffff;
	color: #111827;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-property-toggle-btn.active{
	background: #ffffff;
	color: #ffffff;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-property-toggle-btn .map-tool-label{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	min-width: 30px;
	min-height: 30px;
	max-width: 30px;
	max-height: 30px;
	box-sizing: border-box;
	border-radius: 9999px;
	background: #e9edf2;
	color: #111827;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	overflow: hidden;
}

.map-property-toggle-btn.active .map-tool-label{
	background: #1764ff;
	color: #ffffff;
}

#areaUnitToolGroup{
	display: flex;
	height: auto;
	border: 0;
	border-radius: var(--map-control-radius);
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

body.map-panels-collapsed #areaUnitToolGroup{
	display: none;
}


.map-area-unit-toggle-btn,
.map-area-unit-toggle-btn.active{
	background: #ffffff;
	color: #111827;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-unit-cycle-icon{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: #111827;
}

.map-unit-cycle-svg{
	position: absolute;
	inset: 1px;
	width: 32px;
	height: 32px;
	overflow: visible;
}

.map-unit-cycle-svg path,
.map-unit-cycle-svg line{
	fill: none;
	stroke: currentColor;
	stroke-width: 1.55;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.map-unit-cycle-svg .map-unit-cycle-head line{
	fill: none;
	stroke: currentColor;
	stroke-width: 1.35;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.map-unit-cycle-label{
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	height: 16px;
	color: #111827;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0;
}

:is(#areaUnitToggleBtn, .management-list-area-unit-toggle) .map-unit-cycle-label{
	width: 30px;
	min-width: 30px;
	height: 30px;
	border-radius: 9999px;
	background: #1764ff;
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.map-area-unit-toggle-btn .map-tool-icon{
	font-size: 20px;
}

.map-side-tools .map-tool-btn:not(.map-property-toggle-btn):not(.active):hover,
.map-side-tools .map-tool-btn:not(.map-property-toggle-btn):not(.active):focus-visible,
.parcel-trade-left-tool-stack .map-parcel-analysis-tool-group .map-tool-btn:not(.active):hover,
.parcel-trade-left-tool-stack .map-parcel-analysis-tool-group .map-tool-btn:not(.active):focus-visible{
	background: #f3f4f6;
	color: #111827;
	box-shadow: 0 8px 20px rgba(15, 41, 66, 0.12);
}

.map-type-popover{
	position: absolute;
	top: calc((var(--map-control-box-size) * 2) + var(--map-tool-stack-gap) + var(--map-control-box-size) + var(--map-tool-stack-gap) + (var(--map-control-box-size) * 4) + var(--map-tool-stack-gap) + var(--map-control-box-size) + 4px);
	right: calc(var(--map-control-box-size) + 10px);
	z-index: 2147483100;
	display: none;
	width: 340px;
	max-width: calc(100vw - 64px);
	box-sizing: border-box;
	padding: 14px 14px 12px;
	border: 0;
	border-radius: 12px;
	background: #ffffff;
	box-shadow: 0 12px 30px rgba(15, 41, 66, 0.16);
	font-family: var(--font-ui);
	overflow: hidden;
}

.map-type-popover.open{
	display: block;
}

.map-type-card-row{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px;
}

.map-type-option.map-type-card{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 11px;
	height: auto;
	min-width: 0;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: #202124;
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0;
	cursor: pointer;
}

.map-type-thumb{
	display: block;
	width: 100%;
	aspect-ratio: 1.5 / 1;
	box-sizing: border-box;
	border: 0;
	border-radius: 6px;
	background-color: #eef2f6;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.map-type-option.active .map-type-thumb{
	border: 2px solid #15171b;
}

.map-type-label{
	display: block;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: #202124;
}

.map-type-thumb.roadmap{
	background: #eef2f6 url("../img/map-type-roadmap-nohyeong.jpg") center center / cover no-repeat;
}

.map-type-thumb.satellite{
	background: #203a35 url("../img/map-type-satellite-nohyeong.jpg") center center / cover no-repeat;
}

.map-type-thumb.terrain{
	background: #e7e9e7 url("../img/map-type-terrain-nohyeong.jpg") center center / cover no-repeat;
}

.map-type-divider{
	height: 1px;
	margin: 14px 0 12px;
	background: #e6ebf1;
}

.map-type-cadastral-toggle{
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 20px;
	box-sizing: border-box;
	border: 0;
	padding: 0;
	background: transparent;
	color: #202124;
	font-family: var(--font-ui);
	cursor: pointer;
}

.map-type-cadastral-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	margin-right: 7px;
	font-size: 16px;
	line-height: 1;
	color: #202124;
}

.map-type-cadastral-label{
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: #202124;
}

.map-type-switch{
	position: relative;
	display: inline-flex;
	width: 34px;
	height: 20px;
	margin-left: auto;
	border-radius: 999px;
	background: #c4c8cc;
	transition: none;
}

.map-type-switch::after{
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 1px 3px rgba(0,0,0,0.22);
}



.map-type-cadastral-toggle.active .map-type-switch::after{
	left: 16px;
}

.map-unit-split,
.map-unit-half-btn{
	display: none;
}

.life-safety-legend{
	position: absolute;
	top: var(--map-side-tools-top);
	right: calc(var(--map-side-tools-right) + var(--map-control-box-size) + var(--map-zoom-stack-gap-from-unit));
	z-index: 33;
	display: none;
	width: 162px;
	box-sizing: border-box;
	padding: 10px 11px;
	border: 1px solid #dbe4ee;
	border-radius: var(--map-control-radius);
	background: rgba(255,255,255,0.94);
	box-shadow: 0 6px 14px rgba(15, 41, 66, 0.12);
	color: #223244;
	font-family: var(--font-ui);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.25;
	pointer-events: none;
}

.life-safety-legend.open{
	display: block;
}

.life-safety-legend-title{
	margin-bottom: 3px;
	font-size: 13px;
	font-weight: 700;
	color: #111827;
	white-space: nowrap;
}

.life-safety-legend-scope{
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 600;
	color: #6b7280;
	white-space: normal;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.life-safety-legend-row{
	display: flex;
	align-items: center;
	gap: 7px;
	min-height: 18px;
	color: #374151;
}

.life-safety-legend-swatch{
	width: 14px;
	height: 10px;
	border: 1px solid #d1d5db;
	box-shadow: 2px 4px 10px rgba(15, 23, 42, 0.15);
	box-sizing: border-box;
	flex: 0 0 auto;
}

.life-safety-legend-swatch.level-1{
	background: #fff7cc;
}

.life-safety-legend-swatch.level-2{
	background: #facc15;
}

.life-safety-legend-swatch.level-3{
	background: #f59e0b;
}

.life-safety-legend-swatch.level-4{
	background: #f97316;
}

.life-safety-legend-swatch.level-5{
	background: #dc2626;
}

.life-safety-legend-note{
	margin-top: 7px;
	padding-top: 7px;
	border-top: 1px solid #e5e7eb;
	color: #6b7280;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
}

.sewer-treatment-area-legend .life-safety-legend-note{
	text-align: justify;
}

.map-wrap > .map-filter-bar{
	display: none;
}

.map-empty-state{
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	z-index: 29;
	display: none;
	width: min(420px, calc(100% - 48px));
	padding: 18px 20px;
	border-radius: 0;
	background: rgba(255,255,255,0.96);
	border: 1px solid rgba(15, 41, 66, 0.08);
	box-shadow: 0 16px 36px rgba(15, 41, 66, 0.14);
	backdrop-filter: blur(10px);
	pointer-events: none;
}

.map-empty-state.open{
	display: block;
}

.map-empty-state-title{
	font-size: 17px;
	font-weight: 800;
	color: #17212b;
	letter-spacing: -0.25px;
	margin-bottom: 8px;
	line-height: 1.35;
}

.map-empty-state-desc{
	font-size: 14px;
	font-weight: 600;
	color: #6b7785;
	letter-spacing: -0.15px;
	line-height: 1.5;
}

/* ===== 5.001 bottom settings button slot (formerly current location) ===== */ .map-zoom-stack{
	position: absolute;
	right: var(--map-side-tools-right);
	top: auto;
	bottom: 18px;
	transform: none;
	z-index: 2147483000;
	display: flex;
	flex-direction: column;
	align-items: center;
	pointer-events: auto;
}


@media (max-height: 820px) {
	.map-zoom-stack{
		right: var(--map-side-tools-right);
	}
}

.map-current-btn{
	min-width: var(--map-control-box-size);
	max-width: var(--map-control-box-size);
	min-height: var(--map-control-box-size);
	max-height: var(--map-control-box-size);
	aspect-ratio: 1 / 1;
	box-sizing: border-box;
	flex: 0 0 var(--map-control-box-size);
	padding: 0;
	line-height: 1;
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	transition: none;
}

.map-current-btn{
	width: var(--map-control-box-size);
	height: var(--map-control-box-size);
	border: 1px solid #cfd7e2;
	border-radius: var(--map-control-radius);
	background: #ffffff;
	color: #223244;
	box-shadow: 0 6px 14px rgba(15, 41, 66, 0.12);
}

.map-current-btn i{
	font-size: 16px;
	line-height: 1;
	pointer-events: none;
}

.map-current-btn:hover{
	background: #f3f4f6;
	color: #223244;
	box-shadow: 0 6px 14px rgba(15, 41, 66, 0.12);
}

.map-current-btn:active{
	transform: none;
	box-shadow: none;
}

/* ===== hide Kakao original zoom control ===== */ .map-wrap .map_zoomcontrol,
.map-wrap .map_controls,
.map-wrap .map_typecontrol{
	display: none;
}

.sidebar,
.map-wrap,
#map{
	height:calc(100dvh - var(--topbar-main-height) - var(--topbar-sub-height));
}

.map-wrap{
	position:relative;
	min-width:0;
	width:100%;
	overflow:hidden;
	background:#dde7ef;
}

#map{
	width:100%;
	transition:transform .32s ease, filter .28s ease;
	transform-origin:center center;
}

.admin-boundary-bottom-pill{
	position:absolute;
	left:50%;
	bottom:39px;
	z-index:120;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	min-width:144px;
	max-width:min(360px, calc(100% - 48px));
	height:50px;
	padding:0 22px;
	box-sizing:border-box;
	border:1px solid #2563eb;
	border-radius:999px;
	background:#ffffff;
	box-shadow:0 10px 24px rgba(15, 23, 42, 0.16);
	color:#111827;
	font-size:16px;
	font-weight:700;
	line-height:1;
	transform:translateX(-50%);
	cursor:pointer;
	pointer-events:auto;
	white-space:nowrap;
}

.admin-boundary-bottom-pill:focus-visible{
	outline:3px solid rgba(37, 99, 235, 0.24);
	outline-offset:3px;
}

.admin-boundary-bottom-pill[hidden]{
	display:none;
}

body.distance-measure-active .admin-boundary-bottom-pill{
	display:none;
}

.admin-boundary-bottom-pill-name{
	overflow:hidden;
	text-overflow:ellipsis;
	min-width:0;
	max-width:180px;
}

.admin-boundary-bottom-pill-count{
	color:#111827;
}

.admin-boundary-bottom-pill-count-label{
	color:#111827;
}

.admin-boundary-bottom-pill-count-number{
	color:#2563eb;
	font-weight:800;
}

/* 원형 뱃지에서 행정구역 네모 뱃지로 바뀌는 첫 렌더 전용 애니메이션.
   이미 네모 단계인 이동ㆍ필터ㆍ재렌더에는 클래스를 붙이지 않아 최종 크기로 바로 표시한다. */
@keyframes property-region-count-label-enter{
	from{ transform:scale(0.97); }
	to{ transform:scale(1); }
}

.property-region-count-label{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	min-width:64px;
	padding:7px 8px;
	box-sizing:border-box;
	border:1px solid #d1d5db;
	box-shadow:2px 4px 10px rgba(15, 23, 42, 0.15);
	border-radius:6px;
	background:#ffffff;
	color:#111111;
	font-size:13px;
	font-weight:600;
	line-height:1.2;
	letter-spacing:0;
	text-align:center;
	white-space:nowrap;
	pointer-events:auto;
	cursor:pointer;
	transform-origin:center center;
}

.property-region-count-label *{
	cursor:inherit;
}

.property-region-count-label.is-circle-to-square-enter{
	animation:property-region-count-label-enter 140ms ease-out both;
}

.property-region-count-label strong{
	display:block;
	font-size:14px;
	font-weight:700;
}

.property-region-count-label span{
	display:block;
	color:#111111;
	font-size:12px;
	font-weight:600;
}

.property-region-count-label b{
	color:#2563eb;
	font-weight:800;
}

.property-region-count-label .property-region-broker-count{
	color:#111111;
	font-size:12px;
	font-weight:600;
}

.property-region-count-label .property-region-broker-count b{
	color:#2563eb;
	font-weight:800;
}

.property-region-count-label.is-city{
	min-width:64px;
	padding:7px 8px;
	font-size:13px;
}

.property-region-count-label.is-city strong{
	font-size:14px;
}

.property-region-count-label.is-province{
	align-items:flex-start;
	text-align:left;
}

.property-region-count-label.is-province strong,
.property-region-count-label.is-province span{
	width:100%;
	text-align:left;
}

.property-region-count-label.is-district{
	align-items:flex-start;
	border-radius:9px;
	text-align:left;
}

.property-region-count-label.is-selected{
	border-color:#1f2937;
	background:#1f2937;
	color:#ffffff;
}

.property-region-count-label.is-selected strong,
.property-region-count-label.is-selected span,
.property-region-count-label.is-selected b{
	color:#ffffff;
}

.global-topbar .map-filter-bar{
	position:static;
	top:auto;
	left:auto;
	z-index:auto;
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	gap:12px;
	padding:0;
	border-radius: 0;
	background:transparent;
	border:0;
	box-shadow:none;
	backdrop-filter:none;
}

.map-side-tools{
	right: var(--map-side-tools-right);
	left: auto;
}

.map-empty-state{
	text-align:left;
}

.map-empty-state-desc{
	display:flex;
	flex-direction:column;
	gap:2px;
	text-align:left;
	white-space:normal;
}

.global-topbar .map-filter-bar{
	width: max-content;
	min-width: max-content;
	max-width: none;
	overflow: visible;
	flex: 0 0 auto;
}

.sub-topbar .map-filter-bar{
	position:static;
	top:auto;
	left:auto;
	z-index:auto;
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	gap:var(--sub-filter-gap);
	width: max-content;
	min-width: max-content;
	max-width: none;
	padding:0;
	border-radius:0;
	background:transparent;
	border:0;
	box-shadow:none;
	backdrop-filter:none;
	overflow: visible;
	flex: 0 0 auto;
	margin: 0 auto;
}


/* REALJEJU 5.995: restore the two reserved map settings cells. */
.map-settings-filter-option.map-settings-filter-preparing,
.map-settings-filter-option.map-settings-filter-preparing:disabled {
  opacity: 1;
  color: #b7bcc5;
  background: #f7f8fa;
  border-color: transparent;
  cursor: default;
  pointer-events: none;
}

.map-settings-filter-preparing-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #c5c9d0;
  font-size: 22px;
  line-height: 1;
}

/* 5.995: 매물 토글은 기존 지도 객체를 유지하고 표시 상태만 전환한다. */
body.map-properties-hidden .realjeju-property-cluster-badge,
body.map-properties-hidden .property-region-count-label{
	visibility:hidden;
	pointer-events:none;
}

/* 5.995: 위성 지명 감추기와 지적편집도 사이에 공통 구분 여백을 둔다. */
.map-type-label-toggle{
	margin-bottom:14px;
	padding-bottom:14px;
	border-bottom:1px solid #e6ebf1;
}
.map-type-label-toggle:disabled{
	opacity:.42;
	cursor:default;
}
body.parcel-region-trade-badges-hidden .parcel-trade-marker-canvas{
	visibility:hidden;
}


/* 5.995: 1~5레벨에서는 개별 필지 말풍선만 표시한다. */
body.parcel-individual-trade-level .property-region-count-label{
	display:none;
	pointer-events:none;
}


/* 5.995: 필지분석 1~5레벨에서는 행정구역 실거래 통계 뱃지를 표시하지 않는다. */
body.parcel-individual-trade-level .parcel-region-trade-map-badge{
	display:none;
	pointer-events:none;
}


/* 5.995: 필지분석 1~5레벨 실거래 유형 필터 */
.parcel-trade-left-tool-stack{
	position:absolute;
	top:138px;
	left:var(--map-side-tools-right,16px);
	z-index:35;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:var(--map-tool-stack-gap);
	transform:none;
	pointer-events:auto;
}
.parcel-trade-left-tool-stack[hidden]{display:none;}

.parcel-trade-filter-control{
	position:static;
	top:auto;
	left:auto;
	order:1;
	z-index:35;
	width:var(--map-control-box-size);
	min-width:var(--map-control-box-size);
	max-width:var(--map-control-box-size);
	height:var(--map-control-box-size);
	min-height:var(--map-control-box-size);
	max-height:var(--map-control-box-size);
	border:0;
	border-radius:var(--map-control-radius);
	background:#fff;
	box-shadow:0 8px 20px rgba(15,41,66,.12);
}
.parcel-trade-filter-control[hidden]{display:none;}
.parcel-trade-filter-control .map-tool-label{margin:auto;}
.parcel-trade-filter-control.active .map-tool-label{background:#1764ff;color:#fff;}

.parcel-trade-badge-visibility-control{
	position:static;
	top:auto;
	left:auto;
	order:2;
	z-index:35;
	width:var(--map-control-box-size);
	min-width:var(--map-control-box-size);
	max-width:var(--map-control-box-size);
	height:var(--map-control-box-size);
	min-height:var(--map-control-box-size);
	max-height:var(--map-control-box-size);
	border:0;
	border-radius:var(--map-control-radius);
	background:#fff;
	box-shadow:0 8px 20px rgba(15,41,66,.12);
}
.parcel-trade-badge-visibility-control .map-tool-label{margin:auto;}
.parcel-trade-badge-visibility-control[hidden]{display:none;}

.parcel-trade-price-mode-control{
	position:static;
	top:auto;
	left:auto;
	order:4;
	z-index:35;
	display:grid;
	grid-template-rows:repeat(2,minmax(0,1fr));
	width:var(--map-control-box-size);
	min-width:var(--map-control-box-size);
	max-width:var(--map-control-box-size);
	height:var(--map-control-box-size);
	min-height:var(--map-control-box-size);
	max-height:var(--map-control-box-size);
	aspect-ratio:1 / 1;
	padding:0;
	border:0.25px solid #d1d5db;
	border-radius:var(--map-control-radius);
	background:#fff;
	box-shadow:0 8px 20px rgba(15,41,66,.12);
	overflow:hidden;
	font-family:var(--font-ui);
}
.parcel-trade-price-mode-control > button{
	display:flex;
	align-items:center;
	justify-content:center;
	min-width:0;
	min-height:0;
	padding:0;
	border:0;
	background:#fff;
	color:#111827;
	font:inherit;
	cursor:pointer;
}
.parcel-trade-filter-control,
.parcel-trade-badge-visibility-control{
	cursor:pointer;
}
.parcel-trade-price-mode-control > button:first-child{border-bottom:0.25px solid #d1d5db;}
.parcel-trade-price-mode-control > button.active{background:#1764ff;color:#fff;}
.parcel-trade-price-mode-control .map-tool-label{
	margin:0;
	font-size:12px;
	font-weight:600;
	background:transparent;
	color:inherit;
}
.parcel-trade-price-mode-control[hidden]{display:none;}

.parcel-trade-satellite-control{
	position:static;
	top:auto;
	left:auto;
	order:3;
	z-index:35;
	display:flex;
	align-items:center;
	justify-content:center;
	width:var(--map-control-box-size);
	min-width:var(--map-control-box-size);
	max-width:var(--map-control-box-size);
	height:var(--map-control-box-size);
	min-height:var(--map-control-box-size);
	max-height:var(--map-control-box-size);
	padding:0;
	border:1px solid #d1d5db;
	border-radius:var(--map-control-radius);
	background:#fff;
	color:#111827;
	cursor:pointer;
}
.parcel-trade-satellite-control .map-tool-label{margin:auto;}
.parcel-trade-satellite-control.active{background:#fff;color:#111827;}
.parcel-trade-satellite-control.active .map-tool-label{background:#1764ff;color:#fff;}
.parcel-trade-satellite-control[hidden]{display:none;}

.parcel-trade-left-tool-stack .map-parcel-analysis-tool-group{
	order:5;
}
.parcel-trade-left-tool-stack .map-parcel-analysis-tool-group .map-tool-btn:disabled{
	background:#f3f4f6;
	border-color:#d1d5db;
	color:#9ca3af;
	box-shadow:none;
	cursor:not-allowed;
}
.parcel-trade-left-tool-stack .map-parcel-analysis-tool-group .map-tool-btn:disabled .map-tool-icon{
	opacity:.62;
}

body[data-global-category="parcel"] #mapPropertyToggleBtn.parcel-primary-placeholder{
	opacity:1;
	cursor:default;
	pointer-events:none;
}

body:is(
  [data-global-category="realestate"],
  [data-global-category="parcel"],
  [data-global-category="local-business"],
  [data-global-category="ev-charger"]
) .map-primary-tool-group,
body:is([data-global-category="local-business"], [data-global-category="ev-charger"]) .map-unit-tool-group,
body:is([data-global-category="local-business"], [data-global-category="ev-charger"]) .map-location-tool-group{
  display:flex;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}

.parcel-area-measure-map-label{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:4px;
	pointer-events:none;
}
.parcel-area-measure-map-label strong{
	display:block;
	padding:5px 9px;
	border-radius:15px;
	background:#fff;
	color:#1764ff;
	box-shadow:0 2px 8px rgba(15,23,42,.18);
	font-size:13px;
	font-weight:800;
	line-height:1;
	white-space:nowrap;
}
.parcel-area-measure-map-label span{
	display:flex;
	align-items:center;
	justify-content:center;
	width:22px;
	height:22px;
	border:2px solid #fff;
	border-radius:50%;
	background:#1764ff;
	color:#fff;
	box-shadow:0 2px 7px rgba(15,23,42,.2);
	font-size:12px;
	font-weight:800;
	line-height:1;
}

body > .parcel-trade-type-filter-modal{
	position:fixed;
	inset:0;
	z-index:2147483000;
	display:flex;
	justify-content:center;
	padding:20px;
	box-sizing:border-box;
	background:rgba(15,23,42,.42);
}
.parcel-trade-type-filter-dialog{
	max-height:min(620px,calc(100vh - 40px));
	margin:0;
	overflow:hidden;
	border-radius:12px;
	background:#fff;
	box-shadow:0 18px 55px rgba(15,23,42,.28);
}
.parcel-trade-type-filter-dialog > header{height:56px;min-height:56px;}
.parcel-trade-filter-heading{
	display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px;box-sizing:border-box;border-bottom:1px solid #e3e7ed;
}
.parcel-trade-filter-heading strong{font-size:15px;font-weight:700;color:#111827;}
.parcel-trade-filter-heading button{border:0;background:transparent;color:#69707c;font:inherit;font-size:12px;font-weight:600;cursor:pointer;}
.parcel-trade-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#fff;}
.parcel-trade-filter-grid > button{border:1px solid #e3e7ed;background:#f8f9fa;color:#075a9e;font:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;
}
.parcel-trade-filter-grid > button i{border:0;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.38);}
.parcel-trade-filter-grid > button.is-selected{border-color:#0b63a5;background:#0b63a5;color:#fff;}
.parcel-trade-filter-grid > button.is-selected i{opacity:1;visibility:visible;}
@media (max-width:640px) {
	.parcel-trade-left-tool-stack{left:12px;}
}


/* 5.995: 필지 실거래 필터 가로 배치와 리얼제주 팔레트 */
.parcel-trade-filter-grid{padding:12px;gap:10px;}
.parcel-trade-filter-grid > button{flex-direction:row;gap:10px;height:52px;border-radius:4px;}
.parcel-trade-filter-grid > button i{display:block;flex:0 0 12px;width:12px;height:12px;opacity:1;visibility:visible;background-color:var(--parcel-filter-color);}
.parcel-trade-filter-grid > button span{flex:0 0 auto;}


/* 5.995: 필터 색상 원은 고정 열에 두고 항목명은 같은 시작선에서 왼쪽 정렬합니다. */
body.parcel-individual-trade-level .parcel-trade-filter-control .map-tool-label{background:#1764ff;color:#fff;}
.parcel-trade-filter-grid > button{
  position:relative;
  display:grid;
  grid-template-columns:14px minmax(0,1fr);
  align-items:center;
  justify-content:stretch;
  column-gap:12px;
  padding:0 18px;
}
.parcel-trade-filter-grid > button i{
  position:static;
  justify-self:start;
  margin:0;
  transform:none;
}
.parcel-trade-filter-grid > button span{
  min-width:0;
  text-align:left;
}


/* 5.995: 실거래 필터 폭 320px */
.parcel-trade-type-filter-dialog{width:min(320px,calc(100vw - 40px));}

/* REALJEJU 5.995: transaction-kind controls in the parcel-analysis top-left filter. */
.parcel-trade-deal-filter-heading {
  border-top: 1px solid #e3e7ed;
}

/* 5.995: vertically center only the menu opened from the parcel-analysis filter. */
body > .parcel-trade-type-filter-modal {
	align-items: center;
}
body > .parcel-trade-type-filter-modal > .parcel-trade-type-filter-dialog {
	position: relative;
	top: auto;
	bottom: auto;
	transform: none;
	align-self: center;
	margin-top: 0;
	margin-bottom: 0;
}

/* REALJEJU 6.140: every parcel-analysis left tool exposes the same clickable cursor. */
body[data-global-category="parcel"] .parcel-trade-left-tool-stack button,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack button:hover,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack button:focus,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack button:active,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack button:disabled {
  cursor: pointer;
}

/* REALJEJU 6.140: 필지분석 왼쪽 도구는 하단·우측 방향의 공통 그림자를 사용합니다. */
body[data-global-category="parcel"] .parcel-trade-left-tool-stack .parcel-trade-filter-control,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack .parcel-trade-badge-visibility-control,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack .parcel-trade-satellite-control,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack .parcel-trade-price-mode-control,
body[data-global-category="parcel"] .parcel-trade-left-tool-stack .map-parcel-analysis-tool-group {
  box-shadow: 2px 4px 10px rgba(15, 23, 42, 0.18);
}
body[data-global-category="realestate"] .parcel-trade-left-tool-stack .parcel-trade-filter-control,
body[data-global-category="realestate"] .parcel-trade-left-tool-stack .parcel-trade-badge-visibility-control,
body[data-global-category="realestate"] .parcel-trade-left-tool-stack .parcel-trade-satellite-control {
  box-shadow: 2px 4px 10px rgba(15, 23, 42, 0.18);
}
