/*!************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!../../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/(main)/app-shell.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************/
/* ── 이순신돋움체 (UI) ── */
@font-face {
  font-family: 'YiSunshinDotum';
  src: url('/fonts/YiSunshinDotum-L.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'YiSunshinDotum';
  src: url('/fonts/YiSunshinDotum-M.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'YiSunshinDotum';
  src: url('/fonts/YiSunshinDotum-B.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ── 헤더 ── */
:root {
  --site-header-h: 64px;
  --site-subnav-h: 0px;
  --font-sans: 'YiSunshinDotum', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
}

/* 로그인 후 전체 글자 15% 축소 (1rem = 브라우저 기본의 85%) */
html.auth-logged-in {
  font-size: 85%;
}

body {
  font-family: var(--font-sans);
}

body:has([data-site-subnav]) {
  --site-subnav-h: 56px;
}

body.mobile-drawer-open [data-site-subnav] {
  display: none;
}

body.mobile-drawer-open:has([data-site-subnav]) {
  --site-subnav-h: 0px;
}

@media (min-width: 1024px) {
  body:has([data-site-subnav]) {
    --site-subnav-h: 0px;
  }
}

.site-header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 0 1rem;
  height: var(--site-header-h);
  display: flex;
  align-items: center;
  gap: 1rem;
}

@media (min-width: 1024px) {
  body:has([data-map-search-header-rtx]) {
    --site-header-h: 64px;
  }

  body:has([data-map-search-header-rtx]) .site-header {
    overflow: visible;
  }

  body:has([data-map-search-header-rtx]) .site-header .brand {
    flex: 0 0 auto;
    margin-right: 0.35rem;
  }

  body:has([data-map-search-header-rtx]) .header-nav-desktop {
    flex: 0 0 auto;
    min-width: 0;
    margin-left: auto;
    margin-right: 0;
    overflow: hidden;
    align-items: center;
  }

  body:has([data-map-search-header-rtx]) .hamburger-btn {
    margin-left: 0;
  }
}

.site-header .brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.02em;
  font-size: 1.365rem; /* 1.05 × 1.3 */
  font-weight: 600;
  color: #132a6e;
  letter-spacing: 0.16em;
  flex: 1 1;
  margin-right: 0;
  text-decoration: none;
}

.site-header .brand .brand-primary {
  font-weight: 600;
  letter-spacing: 0.16em;
  background: linear-gradient(165deg, #1a2e8a 0%, #2f55c8 55%, #4a74e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.site-header .brand .brand-accent {
  font-weight: 300;
  letter-spacing: 0.22em;
  color: #5b7fd4;
}

.header-nav-desktop {
  display: none;
  gap: 0.15rem;
}

.header-nav-link {
  padding: 0.32rem 0.6rem;
  border: 2px solid transparent;
  border-radius: 8px;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  white-space: nowrap;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

.header-nav-link:hover {
  border-color: #93c5fd;
  background: #f8fafc;
  color: #111;
}

.header-nav-link-active {
  border-color: #4267d4;
  background: #fff;
  color: #4267d4;
  font-weight: 800;
}

.header-nav-group {
  position: relative;
  display: flex;
  align-items: center;
}

.header-nav-group-btn {
  font: inherit;
  cursor: pointer;
  background: transparent;
}

.header-nav-group-btn-open {
  border-color: #93c5fd;
  background: #f8fafc;
}

.header-nav-dropdown {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  z-index: 1100;
  min-width: 9.5rem;
  padding: 0.35rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.header-nav-dropdown-item {
  display: block;
  padding: 0.45rem 0.7rem;
  border-radius: 7px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #0f172a;
  text-decoration: none;
  white-space: nowrap;
}

.header-nav-dropdown-item:hover {
  background: #f1f5f9;
  color: #1d4ed8;
}

.header-nav-dropdown-item-active {
  background: #eff6ff;
  color: #4267d4;
  font-weight: 800;
}

.drawer-group {
  padding: 0.35rem 0 0.15rem;
}

.drawer-group-label {
  padding: 0.45rem 1rem 0.25rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #64748b;
  text-transform: none;
}

.drawer-group-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.drawer-item-nested {
  padding-left: 1.35rem;
}

.hamburger-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 8px;
  padding: 0;
  margin-left: auto;
  flex-shrink: 0;
}

@media (min-width: 1024px) {
  .header-nav-desktop {
    display: flex;
  }

  .hamburger-btn {
    display: none;
  }
}

.hamburger-btn:hover {
  background: #f3f4f6;
}

.hamburger-icon {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 22px;
}

.hamburger-icon span {
  display: block;
  height: 2px;
  background: #374151;
  border-radius: 2px;
  transition: transform 0.2s, opacity 0.2s;
  transform-origin: center;
}

.hamburger-icon.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.hamburger-icon.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.hamburger-icon.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 290;
}

.drawer-backdrop-open {
  display: block;
}

.drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(280px, 85vw);
  background: #fff;
  z-index: 300;
  transform: translateX(-100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
  overflow-y: auto;
}

.drawer-open {
  transform: translateX(0);
}

.drawer:not(.drawer-open) {
  pointer-events: none;
  visibility: hidden;
}

.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  height: 52px;
  border-bottom: 1px solid #f3f4f6;
  flex-shrink: 0;
}

.drawer-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.02em;
  font-size: 1.365rem; /* 1.05 × 1.3 */
  font-weight: 600;
  color: #132a6e;
  letter-spacing: 0.16em;
}

.drawer-brand .brand-primary {
  font-weight: 600;
  letter-spacing: 0.16em;
  background: linear-gradient(165deg, #1a2e8a 0%, #2f55c8 55%, #4a74e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.drawer-brand .brand-accent {
  font-weight: 300;
  letter-spacing: 0.22em;
  color: #5b7fd4;
}

.drawer-close {
  width: 36px;
  height: 36px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 1.1rem;
  color: #6b7280;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.drawer-close:hover {
  background: #f3f4f6;
  color: #111;
}

.drawer-list {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  flex: 1 1;
  display: flex;
  flex-direction: column;
}

.drawer-list-footer {
  margin-top: auto;
  border-top: 1px solid #e5e7eb;
}

.drawer-item-logout {
  width: 100%;
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  text-align: left;
  color: #6b7280;
}

.drawer-item-logout:hover {
  color: #111;
}

.header-nav-logout {
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  color: #6b7280;
}

.header-nav-logout:hover {
  color: #111;
  background: #f3f4f6;
}

.drawer-item {
  display: block;
  padding: 0.9rem 1.25rem;
  font-size: 1.2rem;
  font-weight: 500;
  color: #111827;
  border-bottom: 1px solid #f9fafb;
  -webkit-font-smoothing: antialiased;
}

.drawer-item:hover {
  background: #f3f4f6;
}

.drawer-item-active {
  color: #4267d4;
  font-weight: 800;
  box-shadow: inset 3px 0 0 #4267d4;
  background: #eff6ff;
}

.site-header a {
  color: inherit;
  text-decoration: none;
}

.site-header a:hover {
  color: inherit;
}

.page-back-btn {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  font-size: 1.1375rem; /* 0.875 × 1.3 */
  font-weight: 500;
  cursor: pointer;
  border-radius: 8px;
  padding: 0.4rem 0.85rem;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}

.page-back-btn:hover {
  background: #f3f4f6;
  color: #111;
}

.page-back-btn-header {
  margin-right: 0.25rem;
}

.page-back-btn-fab {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 950;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.15);
  padding: 0.55rem 1rem;
}

@media (max-width: 1023px) {
  .page-back-btn-fab {
    display: none;
  }
}

.site-header .brand {
  min-width: 0;
}

.page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1.5rem;
}

@media (min-width: 1024px) {
  .page {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 1.25rem 1.5rem;
    box-sizing: border-box;
  }

  .role-app-layout {
    max-width: none;
    width: 100%;
  }
}

.card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.btn {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border-radius: 8px;
  border: none;
  background: #2563eb;
  color: #fff;
  font-size: 0.95rem;
  cursor: pointer;
  text-decoration: none;
}

.btn-secondary {
  background: #e5e7eb;
  color: #111;
}

.badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.badge-sale {
  background: #dbeafe;
  color: #1d4ed8;
}

.badge-jeonse {
  background: #dcfce7;
  color: #15803d;
}

.grid-listings {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  grid-gap: 1rem;
  gap: 1rem;
}

.grid-listings-narrow {
  grid-template-columns: 1fr;
}

.listing-card {
  padding: 1rem;
  cursor: pointer;
  transition: box-shadow 0.15s;
}

.listing-card-selectable {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.listing-card-selected {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.18);
}

.listing-detail-embed {
  padding: 1rem;
}

.listing-detail-price-block {
  margin: 0.75rem 0 0.5rem;
}

.listing-detail-price-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  width: 100%;
}

.listing-detail-price {
  margin: 0;
  font-size: 1.38rem; /* +20% vs 1.15 */
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
}

.listing-detail-land-pyeong {
  font-size: 0.92em;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
}

.listing-detail-mgmt {
  font-size: 1.14rem; /* +20% vs 0.95 */
  font-weight: 600;
  color: #475569;
}

/* 평토글 — 가격·칩 줄의 우측 끝 */
.listing-detail-price-line-toggle {
  margin-left: auto;
}

.listing-detail-price-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.listing-detail-verified-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  background: #dbeafe;
  color: #1d4ed8;
}

.listing-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.listing-card h3 {
  margin: 0.5rem 0 0.25rem;
  font-size: 1.05rem;
}

.price {
  font-size: 1.35rem;
  font-weight: 700;
  color: #111;
}

.listing-card-price-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.3rem;
}

.listing-deal-direct-tag {
  font-size: 0.72rem;
  font-weight: 600;
  color: #047857;
  line-height: 1.2;
}

.meta {
  color: #6b7280;
  font-size: 0.9rem;
}

button.linkish {
  border: none;
  background: none;
  padding: 0;
  color: #2563eb;
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
}

button.linkish:hover {
  color: #1d4ed8;
}

.detail-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  grid-gap: 1.25rem;
  gap: 1.25rem;
}

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

.detail-main {
  padding: 1.5rem;
}

.detail-side {
  padding: 1.25rem;
}

.spec-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.spec-table th,
.spec-table td {
  border: 1px solid #e5e7eb;
  padding: 0.55rem 0.75rem;
  text-align: left;
}

/* 매물상세 스펙표 — 라벨 좁게 · 값 넓게 */
.listing-spec-table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  font-size: 1.1rem;
  line-height: 1.25;
}

.listing-spec-table th,
.listing-spec-table td {
  padding: 0.3rem 0.45rem;
  line-height: 1.87;
}

.listing-spec-table th {
  width: 18%;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.listing-spec-table td {
  width: 32%;
  color: #111;
}

.spec-table .spec-value-num,
.listing-spec-table .spec-value-num,
.rtx-table .spec-value-num {
  font-weight: 700;
  color: #000;
}

.price-analysis-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.adequacy-badge {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
}

.adequacy-low {
  background: #dcfce7;
  color: #166534;
}

.adequacy-fair {
  background: #e0e7ff;
  color: #3730a3;
}

.adequacy-high {
  background: #fee2e2;
  color: #b91c1c;
}

.adequacy-unknown {
  background: #f3f4f6;
  color: #4b5563;
}

.price-range-bars {
  margin: 1rem 0;
}

.range-row {
  display: grid;
  grid-template-columns: 48px 1fr 100px;
  grid-gap: 0.5rem;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.4rem;
}

.range-track {
  height: 10px;
  background: #e5e7eb;
  border-radius: 4px;
  overflow: hidden;
}

.range-fill {
  height: 100%;
  border-radius: 4px;
}

.range-p25 {
  background: #93c5fd;
}

.range-p50 {
  background: #3b82f6;
}

.range-p75 {
  background: #1d4ed8;
}

.range-listing {
  background: #f59e0b;
}

.range-label,
.range-value {
  font-size: 0.85rem;
  color: #4b5563;
}

.range-value {
  text-align: right;
  font-weight: 600;
  color: #111;
}

.spec-table th {
  background: #f9fafb;
  width: 28%;
  color: #4b5563;
  font-weight: 500;
}

.listing-spec-table th {
  width: 18%;
  white-space: normal;
  word-break: keep-all;
}

.ledger-spec-table th {
  width: 36%;
}

.building-detail-card {
  padding: 1rem;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: hidden;
}

.building-detail-title {
  margin: 0;
  font-size: clamp(1.2rem, 5vw, 1.65rem);
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.building-display-name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

.complex-fav-register-row {
  display: flex;
  align-items: center;
  margin: 0 0 0.45rem;
}
.building-display-name-edit {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.building-display-name-edit-label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-weight: 600;
  color: #334155;
}
.building-display-name-input { max-width: 24rem; }
.building-display-name-actions { display: flex; gap: 0.35rem; }

.building-detail-address {
  margin: 0.35rem 0 0;
  color: #111827;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
}

.building-detail-card .meta {
  overflow-wrap: anywhere;
}

.building-active-listings {
  margin: 1rem 0 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e5e7eb;
}

.building-listing-register {
  margin-top: 0.8rem;
}

.building-detail-section-title {
  margin: 0;
  font-size: 1rem;
}

.detail-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.btn-back-rtx {
  padding: 0.45rem 0.85rem;
  font-size: 0.85rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.building-collapsible-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.building-collapsible-header .building-collapsible-toggle {
  flex: 1 1 auto;
  min-width: 0;
}

.building-listing-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  border-top: 1px solid #eef2f7;
  padding: 0.55rem 0;
}

.building-spec-grid-wrap {
  container-type: inline-size;
  container-name: building-spec;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: 0.8rem;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

.building-spec-grid {
  table-layout: auto;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.building-spec-grid th,
.building-spec-grid td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-sizing: border-box;
}

/*
 * 건축물현황은 행당 최대 3쌍(6열). 패널 폭(~564–760px)에서는
 * 표 레이아웃을 쓰면 잘리고 가로 스크롤이 생긴다.
 * tr을 2열 그리드로 바꿔 라벨|값 쌍을 세로로 쌓는다.
 */
.building-spec-grid,
.building-spec-grid tbody {
  display: block;
  width: 100%;
  max-width: 100%;
}

.building-spec-grid tr {
  display: grid;
  grid-template-columns: minmax(5.5rem, 36%) minmax(0, 1fr);
  width: 100%;
}

.building-spec-grid th,
.building-spec-grid td {
  display: block;
  width: auto;
  max-width: none;
  min-width: 0;
}

/* 넓은 패널에서만 기존 3쌍 표 */
@container building-spec (min-width: 921px) {
  .building-spec-grid {
    display: table;
    table-layout: fixed;
    width: 100%;
  }

  .building-spec-grid tbody {
    display: table-row-group;
  }

  .building-spec-grid tr {
    display: table-row;
  }

  .building-spec-grid th,
  .building-spec-grid td {
    display: table-cell;
  }
}

/* 건물상세: 좁은 화면 — 선택 UI 세로 배치 */
@media (max-width: 840px) {
  .building-spec-grid th,
  .building-spec-grid td {
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .page {
    padding: 0.75rem;
  }

  .building-detail-card {
    padding: 0.75rem;
  }

  .building-spec-grid {
    font-size: 0.85rem;
  }

  .building-spec-grid th,
  .building-spec-grid td {
    padding: 0.45rem 0.5rem;
  }

  .building-status-selectors {
    flex-direction: column;
    gap: 0.65rem;
  }

  .building-status-select {
    width: 100%;
    min-width: 0;
  }

  .building-listing-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

.building-area-toggle-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.25rem;
}

.building-area-toggle-row-end {
  justify-content: flex-end;
  margin-bottom: 0.65rem;
}

.listing-detail-desc {
  margin-top: 1.25rem;
}

.listing-detail-desc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.listing-detail-desc-head h3 {
  flex: 1 1;
  min-width: 0;
  margin: 0;
}

.listing-detail-desc-body {
  margin: 0.75rem 0 0;
  white-space: pre-line;
  line-height: 1.65;
}

.area-unit-switch {
  padding: 0.35rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  background: #f3f4f6;
  color: #111827;
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s;
}

.area-unit-switch:hover {
  background: #e5e7eb;
  border-color: #d1d5db;
}

.area-unit-label {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  margin-right: 0.2rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.35rem;
  background: #f3f4f6;
  font-size: 0.78rem;
  font-weight: 500;
  vertical-align: middle;
}

.building-rtx-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}

.building-rtx-filters .filter-row-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
}

.building-rtx-filters .filter-row-inline .filter-group-period {
  flex: 1 1 auto;
  min-width: 0;
}

.building-rtx-toolbar .area-unit-switch {
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 1.1rem;
}

.building-collapsible-section {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

.building-collapsible-section:first-of-type {
  margin-top: 0.75rem;
}

.building-collapsible-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  gap: 0.75rem;
}

.building-collapsible-toggle:hover .building-collapsible-title {
  color: #1d4ed8;
}

.building-collapsible-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #111827;
}

.building-collapsible-chevron {
  flex-shrink: 0;
  color: #2563eb;
  font-size: 0.62rem;
  line-height: 1;
  transition: transform 0.2s ease;
}

.building-collapsible-chevron.is-open {
  transform: rotate(180deg);
}

.building-collapsible-body {
  margin-top: 0.75rem;
}

.building-rtx-filters {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.building-rtx-summary {
  margin: 0 0 0.65rem;
}

.building-rtx-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.building-rtx-table-wrap .pagination {
  margin-top: 1rem;
}

.building-status-section {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.building-status-header {
  display: none;
}

.building-status-select {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0;
  font-size: 0.92rem;
  flex: 1 1;
  min-width: 140px;
}

.building-status-selectors {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-bottom: 0.85rem;
}

.building-status-hint {
  margin-top: 0.75rem;
}

.building-status-select span {
  min-width: 3rem;
  color: #4b5563;
  white-space: nowrap;
}

.building-status-select select {
  flex: 1 1;
  min-width: 0;
  max-width: none;
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  background: #fff;
}

.building-floor-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: 420px;
  overflow-y: auto;
}

.building-floor-item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  padding: 0.55rem 0;
  border: none;
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid #eef2f7;
  text-align: left;
  cursor: pointer;
}

.building-floor-item:last-child {
  border-bottom: none;
}

.building-floor-item.is-active {
  background: transparent;
}

.building-floor-item.is-active .building-floor-title {
  color: #2563eb;
}

.building-floor-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  flex-shrink: 0;
}

.building-floor-title {
  font-weight: 600;
  color: #111827;
}

.building-floor-usage {
  margin-top: 0.15rem;
  font-size: 0.9rem;
  color: #374151;
}

.building-floor-meta {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  color: #6b7280;
}

.building-unit-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px dashed #e5e7eb;
}

.building-exclusive-panel {
  margin-top: 0.85rem;
}

.building-exclusive-panel h3 {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  color: #2563eb;
}

.building-unit-exclusive-grid th {
  vertical-align: top;
  white-space: normal;
  line-height: 1.35;
}

.building-unit-exclusive-grid .building-field-note {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.68rem;
  font-weight: 400;
  color: #6b7280;
  line-height: 1.25;
}

.building-field-note {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.75rem;
  font-weight: 400;
  color: #6b7280;
}

.gallery {
  display: grid;
  grid-template-columns: 1fr 80px;
  grid-gap: 0.75rem;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.gallery-main {
  aspect-ratio: 16/10;
  background: #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}

.gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-gallery {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.listing-gallery-main {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  aspect-ratio: 16 / 10;
  background: #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  cursor: zoom-in;
}

.listing-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-gallery-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9ca3af;
  cursor: default;
}

.listing-gallery-thumbs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.15rem;
}

.listing-gallery-thumb {
  flex: 0 0 auto;
  width: 72px;
  height: 54px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 6px;
  overflow: hidden;
  background: #f3f4f6;
  cursor: pointer;
}

.listing-gallery-thumb-active {
  border-color: #2563eb;
  box-shadow: 0 0 0 1px #2563eb;
}

.listing-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-complex-title-link {
  color: #2563eb;
  text-decoration: none;
  font-weight: inherit;
}

.listing-title-price {
  margin-left: 0.45em;
  color: inherit;
  font-weight: inherit;
  white-space: nowrap;
}

.listing-complex-title-link:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.listing-fav-register-btn {
  flex-shrink: 0;
  border: 1px solid #93c5fd;
  border-radius: 8px;
  padding: 0.28rem 0.55rem;
  background: #eff6ff;
  color: #1d4ed8;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.listing-fav-register-btn:hover:not(:disabled) {
  background: #dbeafe;
  border-color: #60a5fa;
}

.listing-fav-register-btn.is-active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

.listing-fav-register-btn:disabled {
  opacity: 0.65;
  cursor: wait;
}

.listing-photo-section {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e5e7eb;
}

.listing-media-stack .listing-photo-section:first-child {
  margin-top: 1.25rem;
}

.listing-balcony-expansion-cell > div + div {
  margin-top: 0.5rem;
}

.listing-balcony-expansion-cell .feature-tags {
  margin-left: 0;
}

.listing-photo-section-title {
  margin: 0 0 0.75rem;
  font-size: 1.2rem; /* +20% */
  font-weight: 600;
}

.media-thumb-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.media-thumb-strip-item {
  flex: 0 0 auto;
  width: 72px;
  padding: 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  background: #f8fafc;
}

.media-thumb-strip-item img {
  width: 72px;
  height: 54px;
  object-fit: cover;
  display: block;
}

.media-thumb-caption {
  display: block;
  padding: 0.15rem 0.25rem;
  font-size: 0.65rem;
  color: #64748b;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: #fff;
}

.complex-info-detail-header h2 {
  margin: 0.25rem 0 0.35rem;
}

.complex-info-detail-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.complex-info-manage-row {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0.75rem;
}

.listing-lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.88);
}

.listing-lightbox {
  position: relative;
  width: min(100%, 960px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.listing-lightbox-image {
  max-width: 100%;
  max-height: calc(92vh - 3rem);
  object-fit: contain;
  border-radius: 8px;
  background: #111;
}

.listing-lightbox-close {
  position: absolute;
  top: -0.25rem;
  right: 0;
  z-index: 2;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.listing-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}

.listing-lightbox-prev {
  left: -0.25rem;
}

.listing-lightbox-next {
  right: -0.25rem;
}

.listing-lightbox-counter {
  margin: 0.65rem 0 0;
  color: #e2e8f0;
}

.listing-photo-gallery-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  gap: 0.65rem;
}

.listing-photo-gallery-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-shrink: 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #eef2f7;
}

.listing-photo-gallery-count {
  font-size: 0.88rem;
  color: #64748b;
}

.listing-photo-gallery-grid {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  min-height: 0;
  width: 100%;
}

.listing-photo-gallery-item {
  display: block;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  background: #f8fafc;
  cursor: pointer;
  overflow: hidden;
  width: min(100%, 336px);
  max-width: 336px;
  max-height: 252px;
  flex: 0 0 auto;
  text-decoration: none;
  color: inherit;
  line-height: 0;
}

.listing-photo-gallery-item img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 252px;
  object-fit: contain;
  pointer-events: none;
}

.listing-photo-gallery-item-selected {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.listing-photo-viewer-page {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  background: #0f172a;
  color: #f8fafc;
}

.listing-photo-viewer-close-fab {
  position: fixed;
  top: calc(0.65rem + env(safe-area-inset-top, 0px));
  right: 0.85rem;
  z-index: 12;
  border: 1.4px solid #c41e3a;
  border-radius: 6px;
  background: rgba(15, 23, 42, 0.82);
  color: #c41e3a;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.listing-photo-viewer-close-fab:hover {
  background: rgba(196, 30, 58, 0.15);
  color: #ff4d6d;
  border-color: #ff4d6d;
}

.listing-photo-viewer-rotate-fab {
  position: fixed;
  top: calc(0.65rem + env(safe-area-inset-top, 0px));
  right: 3.15rem;
  z-index: 12;
  border: 1.4px solid #94a3b8;
  border-radius: 6px;
  background: rgba(15, 23, 42, 0.82);
  color: #e2e8f0;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.listing-photo-viewer-rotate-fab:hover:not(:disabled) {
  background: rgba(148, 163, 184, 0.2);
  color: #fff;
  border-color: #e2e8f0;
}

.listing-photo-viewer-rotate-fab:disabled {
  opacity: 0.45;
  cursor: wait;
}

.listing-photo-viewer-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  padding-top: calc(0.65rem + env(safe-area-inset-top, 0px));
  background: rgba(15, 23, 42, 0.96);
  border-bottom: 1px solid rgba(148, 163, 184, 0.25);
}

.listing-photo-viewer-title-wrap {
  min-width: 0;
}

.listing-photo-viewer-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.listing-photo-viewer-count {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  color: #94a3b8;
}

.listing-photo-viewer-close {
  color: #e2e8f0;
}

.listing-photo-viewer-close:hover {
  color: #fff;
}

.listing-photo-viewer-message {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.listing-photo-viewer-main {
  position: relative;
  flex: 1 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  padding-top: calc(0.5rem + env(safe-area-inset-top, 0px));
}

.listing-photo-viewer-hero-stage {
  position: relative;
  flex: 1 1;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: zoom-in;
  touch-action: none;
}

.listing-photo-viewer-hero-stage[data-zoomed='true'] {
  cursor: -webkit-grab;
  cursor: grab;
}

.listing-photo-viewer-hero-stage[data-panning='true'] {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.listing-photo-viewer-hero-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;
  transform-origin: center center;
  will-change: transform;
}

.listing-photo-viewer-hero {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

.listing-photo-viewer-watermark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  font-size: clamp(0.61rem, 2.2vw, 1.23rem);
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #fff;
  background: rgba(0, 0, 0, 0.38);
  padding: 0.1rem 0.31rem;
  border-radius: 4px;
  line-height: 1.1;
}

.listing-photo-viewer-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: #c41e3a;
  width: auto;
  height: auto;
  min-width: 0;
  padding: 0.15rem 0.35rem;
  border-radius: 0;
  font-size: 3.5rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}

.listing-photo-viewer-nav:hover {
  background: transparent;
  color: #ff4d6d;
}

.listing-photo-viewer-prev {
  left: 0.5rem;
}

.listing-photo-viewer-next {
  right: 0.5rem;
}

.listing-photo-viewer-thumbs {
  flex-shrink: 0;
  display: flex;
  gap: 0.45rem;
  padding: 0.65rem 0.85rem;
  padding-bottom: calc(0.65rem + env(safe-area-inset-bottom, 0px));
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: rgba(15, 23, 42, 0.96);
  border-top: 1px solid rgba(148, 163, 184, 0.25);
}

.listing-photo-viewer-thumb {
  flex: 0 0 auto;
  width: 72px;
  height: 54px;
  border: 2px solid transparent;
  border-radius: 6px;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: #1e293b;
}

.listing-photo-viewer-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.listing-photo-viewer-thumb-selected {
  border-color: #60a5fa;
  box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.35);
}

.listing-detail-close-row {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  justify-content: flex-end;
  margin: -0.25rem 0 0.35rem;
  padding: 0.15rem 0;
  background: #fff;
}

.listing-panel-close-btn {
  border: none;
  background: transparent;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.25rem 0.45rem;
  cursor: pointer;
  flex-shrink: 0;
}

.listing-panel-close-btn:hover {
  color: #2563eb;
}

.listing-detail-scroll-pad {
  flex-shrink: 0;
  height: 2.75rem;
  pointer-events: none;
}

.listing-contact-footer {
  margin-bottom: 0.25rem;
}

@media (max-width: 639px) {
  .listing-gallery-thumb {
    width: 64px;
    height: 48px;
  }

  .listing-lightbox-nav {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1.5rem;
  }
}

.form-section {
  margin-bottom: 1.5rem;
}

.form-section h2 {
  font-size: 1rem;
  margin: 0 0 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #2563eb;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 0.75rem;
  gap: 0.75rem;
}

.region-triple-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 0.4rem;
  gap: 0.4rem;
  min-width: 0;
  width: 100%;
}
.region-triple-row select,
.region-triple-row .input,
.region-triple-row .complex-search-select,
.region-triple-row .filter-select {
  min-width: 0 !important;
  width: 100%;
  max-width: none;
  font-size: 0.82rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}
.region-triple-row > label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.form-grid label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: #4b5563;
}

.form-grid label.listing-field-changeable {
  color: #dc2626;
  font-weight: 700;
}

.form-grid label.listing-field-changeable input:-moz-read-only {
  color: #dc2626;
}

.form-grid label.listing-field-changeable input,
.form-grid label.listing-field-changeable input:read-only {
  color: #dc2626;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
  padding: 0.5rem 0.65rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 0.95rem;
}

.form-grid input:-moz-read-only {
  background: #f3f4f6;
  color: #374151;
  cursor: default;
}

.form-grid input:read-only {
  background: #f3f4f6;
  color: #374151;
  cursor: default;
}

.role-table .broker-floor-orient,
.role-table .broker-floor-url-input {
  padding: 0.5rem 0.65rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 0.95rem;
  width: 100%;
  max-width: 10rem;
  background: #fff;
  cursor: pointer;
}
.role-table select.broker-floor-orient {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  padding-right: 1.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%232563eb' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.55rem center;
}

.role-table .broker-floor-url-input {
  max-width: 14rem;
}

.form-grid .full {
  grid-column: 1 / -1;
}

.listing-form-card {
  padding: 1.5rem 2rem;
  max-width: 1400px;
  width: 100%;
  box-sizing: border-box;
}

.listing-form-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-column-gap: 3.5rem;
  column-gap: 3.5rem;
  grid-row-gap: 1.5rem;
  row-gap: 1.5rem;
  align-items: start;
}

.listing-form-col-left {
  min-width: 0;
  padding-right: 1rem;
  box-sizing: border-box;
}

.listing-form-col-right {
  min-width: 0;
  padding-left: 1.5rem;
  border-left: 1px solid #e5e7eb;
  box-sizing: border-box;
}

.form-grid .master-apt-name-field {
  max-width: 50%;
}

.admin-complex-master-table-wrap {
  max-width: 50%;
}

.listing-form-col-left .form-section,
.listing-form-col-right .form-section {
  max-width: 100%;
}

.listing-form-col-left .form-grid,
.listing-form-col-right .form-grid,
.listing-form-col-right .form-row-pair {
  max-width: 100%;
}

.listing-form-tags-section {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e5e7eb;
}

.listing-form-floor-privacy {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-top: 0.25rem;
}

.listing-form-floor-privacy-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}

.listing-form-floor-level-chips {
  margin-top: 0.15rem;
}

@media (max-width: 900px) {
  .listing-form-columns {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .listing-form-col-left {
    padding-right: 0;
  }

  .listing-form-col-right {
    padding-left: 0;
    border-left: none;
    padding-top: 0.5rem;
    border-top: 1px solid #e5e7eb;
  }
}

.listing-form-property-type {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.listing-form-field-label {
  font-size: 0.85rem;
  color: #4b5563;
}

.listing-form-property-type .filter-row {
  margin: 0;
}

.listing-form-property-type-select {
  width: 100%;
}

.form-grid .full-width-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 0.75rem;
  gap: 0.75rem;
}

.inquiry-box {
  border: 2px solid #22c55e;
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 0;
  font-size: 1.05rem;
}

.inquiry-box .meta {
  font-size: 0.96rem; /* +20% vs ~0.8 */
  margin: 0.2rem 0;
}

.inquiry-box strong {
  font-size: 1.14rem;
}

.listing-contact-footer .inquiry-box + h3 {
  margin-top: 1.25rem;
}

.listing-contact-footer h3 {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
}

.inquiry-box h3 {
  margin: 0 0 0.5rem;
  font-size: 1.2rem; /* +20% */
}

.inquiry-box .agency-name-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.inquiry-box .agency-mini-home-btn {
  flex-shrink: 0;
  font-weight: 600;
  white-space: nowrap;
}

.inquiry-box .agency-address {
  color: #374151;
}

.agency-mini-home-link {
  color: inherit;
  text-decoration: none;
}

.agency-mini-home-link:hover {
  color: #2563eb;
  text-decoration: underline;
}

.form-row-pair {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-gap: 1.25rem;
  gap: 1.25rem;
}

@media (max-width: 768px) {
  .form-row-pair {
    grid-template-columns: 1fr;
  }
}

.checkbox-group,
.toggle-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.group-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #374151;
}

.check-inline {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.95rem;
  color: #111;
}

.toggle-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.toggle-btn {
  padding: 0.35rem 0.65rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  font-size: 0.85rem;
  cursor: pointer;
  color: #374151;
}

.toggle-btn.active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

.label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.btn-sm {
  padding: 0.35rem 0.75rem;
  font-size: 0.8rem;
}

.char-count {
  font-size: 0.8rem;
  color: #6b7280;
  text-align: right;
}

.photo-section {
  margin-top: 0.5rem;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-gap: 0.65rem;
  gap: 0.65rem;
}

@media (max-width: 900px) {
  .photo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 520px) {
  .photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.photo-slot {
  position: relative;
  aspect-ratio: 1;
  border-radius: 8px;
  overflow: hidden;
}

.photo-slot.empty {
  border: 2px dashed #d1d5db;
  background: #f9fafb;
  color: #6b7280;
  font-size: 0.85rem;
  cursor: pointer;
}

.photo-slot.empty:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.photo-slot.filled {
  border: 1px solid #e5e7eb;
  background: #111;
}

.photo-slot.filled img {
  width: 100%;
  height: 70%;
  object-fit: cover;
}

.photo-slot-actions {
  display: flex;
  gap: 0.25rem;
  padding: 0.25rem;
}

.photo-btn {
  flex: 1 1;
  padding: 0.2rem;
  font-size: 0.7rem;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
}

.photo-btn.danger {
  color: #b91c1c;
  border-color: #fecaca;
}

.photo-watermark-tag {
  position: absolute;
  top: 4px;
  right: 4px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.15rem 0.35rem;
  border-radius: 4px;
}

.photo-caption {
  width: calc(100% - 0.5rem);
  margin: 0 0.25rem 0.25rem;
  padding: 0.2rem 0.35rem;
  font-size: 0.7rem;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
}

.feature-tag--rooftop,
.feature-tag--emphasis {
  color: #dc2626;
  font-weight: 800;
}

.complex-info-sections-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-column-gap: 3.5rem;
  column-gap: 3.5rem;
  grid-row-gap: 1.5rem;
  row-gap: 1.5rem;
  align-items: start;
}

.complex-info-sections-grid > .form-section {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .complex-info-sections-grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
}

.feature-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.feature-tag {
  display: inline-block;
  padding: 0.29rem 0.72rem;
  background: #f3f4f6;
  border-radius: 4px;
  font-size: 1.18rem; /* +20% vs 0.98 */
  color: #374151;
}

.unit-toggle {
  display: inline-flex;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  overflow: hidden;
}

.unit-toggle-btn {
  padding: 0.18rem 0.54rem;
  font-size: 0.9rem; /* +20% vs 0.75 */
  border: none;
  background: #fff;
  color: #6b7280;
  cursor: pointer;
}

.unit-toggle-btn.active {
  background: #2563eb;
  color: #fff;
}

.area-sub {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.78rem;
}

/* ── 페이지 공통 ── */
.page-title {
  margin: 0 0 0.25rem;
  font-size: 1.45rem;
  font-weight: 700;
  color: #111;
}

.page-title-row,
.listings-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.page-title-row .page-title,
.listings-header-row .page-title {
  margin: 0;
}

/* ── 필터 카드 (매물보기·최근실거래·가격변동) ── */
.filter-card {
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.filter-row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
}

.filter-row-inline {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0.65rem 1rem;
  width: 100%;
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
  flex: 0 1 auto;
}

.filter-group-grow {
  flex: 1 1 14rem;
  max-width: 100%;
}

.filter-group-narrow {
  flex: 0 0 5.5rem;
}

.filter-group-period {
  flex: 0 1 auto;
}

.filter-group-select {
  flex: 0 0 7.5rem;
  min-width: 6.5rem;
}

.filter-group-tx {
  flex: 1 1 12rem;
  min-width: 10rem;
}

.filter-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #6b7280;
  letter-spacing: 0.01em;
}

.filter-period {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.month-period-picker {
  gap: 0.5rem;
}

.month-period-end {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 1 auto;
}

.filter-select.month-period-year,
.filter-select.month-period-month,
.filter-select.month-period-day {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
  padding-left: 0.4rem;
  padding-right: 0.15rem;
}

.month-period-year {
  min-width: 5.6rem;
}

.month-period-month {
  min-width: 4.1rem;
}

.month-period-day {
  min-width: 3.7rem;
}

/* 매/전/월과 같은 줄. 날짜가 안 들어가면 그 아래로 내려간다. */
.filter-row-deal-period {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  container-type: inline-size;
  container-name: deal-period;
}

.filter-row-deal-period > .filter-group {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.filter-row-deal-period > .filter-group-period {
  flex: 1 1 auto;
  width: auto;
  max-width: 100%;
  min-width: min(100%, 34rem);
}

.month-period-sep {
  flex: 0 0 auto;
  padding: 0 0.1rem;
}

.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.chip {
  padding: 0.38rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  background: #fff;
  font-size: 0.82rem;
  line-height: 1.2;
  color: #374151;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.12s, background 0.12s, color 0.12s;
}

.chip:hover {
  border-color: #93c5fd;
  background: #f8fafc;
}

.chip-active {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
  font-weight: 600;
}

.filter-select,
.filter-input {
  width: 100%;
  min-width: 0;
  padding: 0.48rem 0.6rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.9rem;
  background: #fff;
  color: #111;
  min-height: 2.35rem;
  box-sizing: border-box;
}

.filter-input[type='month'] {
  width: auto;
  min-width: 8.5rem;
  flex: 0 1 auto;
}

.filter-select-dial {
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
       appearance: menulist;
  font-size: 1rem;
}

.filter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  margin-left: auto;
}

.filter-row-inline.filter-row-actions {
  justify-content: flex-start;
}

.filter-row-inline.filter-row-actions .filter-group-grow {
  flex: 1 1 14rem;
}

.filter-row-inline.filter-row-actions .filter-actions {
  margin-left: auto;
}

.btn-filter {
  min-height: 2.35rem;
  padding: 0.48rem 1rem;
  font-size: 0.9rem;
  white-space: nowrap;
}

/* ── 반응형 유틸 (639px) ── */
.desktop-only {
  display: block;
}

.mobile-only {
  display: none;
}

@media (max-width: 639px) {
  .desktop-only {
    display: none !important;
  }

  .mobile-only {
    display: block !important;
  }

  .filter-card {
    padding: 0.85rem;
    gap: 0.75rem;
  }

  .filter-row-inline {
    align-items: stretch;
  }

  .filter-row-inline .filter-group {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: calc(50% - 0.5rem);
    min-width: 0;
  }

  .filter-row-inline .filter-group-period,
  .filter-row-inline .filter-group-grow {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .filter-row-inline .filter-group-tx {
    flex: 1 1 100%;
    min-width: 0;
  }

  .admin-listing-filter .filter-combined-row {
    flex-wrap: nowrap;
    align-items: center;
  }

  .admin-listing-filter .filter-combined-row .filter-group,
  .admin-listing-filter .filter-combined-row .filter-group-select {
    flex: 0 0 4.8rem;
    min-width: 4.4rem;
    max-width: 5.2rem;
  }

  .admin-listing-filter .filter-combined-row .filter-group-tx {
    flex: 0 1 auto;
    min-width: 0;
  }

  .filter-row-inline.filter-row-region {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-gap: 0.5rem;
    gap: 0.5rem;
  }

  .filter-row-inline.filter-row-region .filter-group-period {
    grid-column: 1 / -1;
  }

  .filter-row-inline.filter-row-region .filter-group-select {
    min-width: 0;
  }

  .filter-period {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    grid-gap: 0.35rem;
    gap: 0.35rem;
  }

  .month-period-picker {
    grid-template-columns: 1fr auto 1fr;
  }

  .month-period-end {
    display: grid;
    grid-template-columns: 1.35fr 1fr 0.9fr;
    grid-gap: 0.35rem;
    gap: 0.35rem;
    min-width: 0;
  }

  .month-period-year,
  .month-period-month,
  .month-period-day {
    min-width: 0;
    width: 100%;
  }

  .filter-period .meta {
    text-align: center;
  }

  .filter-select,
  .filter-input {
    width: 100%;
  }

  .filter-row-inline.filter-row-actions {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    grid-gap: 0.65rem 0.75rem;
    gap: 0.65rem 0.75rem;
    align-items: end;
  }

  .filter-row-inline.filter-row-actions .filter-group-grow {
    grid-column: 1 / -1;
  }

  .filter-row-inline.filter-row-actions .filter-group-narrow {
    flex: none;
    width: 100%;
  }

  .filter-row-inline.filter-row-actions .filter-actions {
    width: auto;
    margin-left: 0;
    display: flex;
    gap: 0.5rem;
  }

  .filter-actions {
    width: 100%;
    margin-left: 0;
  }

  .filter-actions .btn-filter {
    flex: 1 1;
  }
}

/* ── 실거래 테이블 ── */
.rtx-table-card {
  position: relative;
}

.rtx-table-refresh-hint {
  margin: 0;
  padding: 0.35rem 1rem 0;
  font-size: 1.07rem;
  color: #6b7280;
}

.rtx-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.14rem;
}

.rtx-table thead th {
  background: #f3f4f6;
  padding: 0.55rem 0.75rem;
  font-weight: 600;
  color: #374151;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
}

.rtx-sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  font-weight: 600;
  color: inherit;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.rtx-sort-btn:hover {
  color: #1d4ed8;
}

.rtx-sort-btn-right {
  margin-left: auto;
}

.rtx-table thead th .rtx-sort-btn-right {
  width: 100%;
  justify-content: flex-end;
}

.rtx-table tbody td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
  vertical-align: middle;
}

.rtx-table tbody tr:hover {
  background: #f8fafc;
}

.rtx-table tbody tr[style*='pointer']:hover {
  background: #eff6ff;
}

.rtx-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25rem;
}

/* 최근실거래 표: 칸이 줄바꿈되지 않게 하고 구분(2열)은 단지명이 들어가게 */
.rtx-table th,
.rtx-table td {
  white-space: nowrap;
}

.rtx-table th:nth-child(2),
.rtx-table td:nth-child(2) {
  min-width: 14rem;
}

.rtx-table .rtx-tags {
  flex-wrap: nowrap;
}

.rtx-tag {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.94rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.rtx-tag-broker {
  background: #eff6ff;
  color: #1d4ed8;
}

.rtx-tag-direct {
  background: #f0fdf4;
  color: #15803d;
}

.rtx-tag-corp {
  background: #fef3c7;
  color: #b45309;
}

.rtx-tag-muted {
  background: #f3f4f6;
  color: #6b7280;
}

.rtx-tag-sale {
  background: #dbeafe;
  color: #1d4ed8;
}

.rtx-tag-jeonse {
  background: #dcfce7;
  color: #15803d;
}

.rtx-tag-monthly {
  background: #fef3c7;
  color: #b45309;
}

.sort-icon {
  display: inline-flex;
  flex-direction: column;
  margin-left: 0.2rem;
  font-size: 0.55rem;
  line-height: 0.65rem;
  vertical-align: middle;
}

/* ── 페이지네이션 ── */
.pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  padding: 0.85rem 1rem 1rem;
}

.pagination-inline {
  justify-content: flex-start;
  padding: 0;
  margin: 0;
  flex: 0 1 auto;
}

.page-size-control {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-right: 0.25rem;
  white-space: nowrap;
}

.page-size-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}

.page-size-select {
  min-width: 4.5rem;
  padding: 0.3rem 0.4rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  font-size: 0.85rem;
  color: #374151;
  cursor: pointer;
}

.page-size-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.page-btn {
  min-width: 2rem;
  padding: 0.35rem 0.55rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  font-size: 0.85rem;
  color: #374151;
  cursor: pointer;
}

.rtx-table-card .page-btn {
  font-size: 1.11rem; /* 최근실거래 페이지 30% 확대 */
}

.page-btn:hover:not(:disabled) {
  border-color: #93c5fd;
  background: #f8fafc;
}

.page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.page-btn-active {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
  font-weight: 600;
}

/* ── 역할별 센터 (중개사·관리자) ── */
.role-shell-header {
  margin-bottom: 1rem;
}

.role-shell-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.role-shell-link {
  padding: 0.45rem 0.9rem;
  border-radius: 8px;
  font-size: 0.9rem;
  color: #374151;
  background: #f3f4f6;
  text-decoration: none;
}

.role-shell-link:hover {
  background: #e5e7eb;
}

.role-shell-link-active {
  background: #2563eb;
  color: #fff;
  font-weight: 600;
}

.role-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  grid-gap: 1rem;
  gap: 1rem;
}

.role-stat-card {
  padding: 1.25rem;
}

.role-stat-card h2 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  color: #64748b;
}

.role-stat-value {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.role-stat-link {
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.15s;
}

.role-stat-link:hover {
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.role-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.role-alert {
  padding: 0.85rem 1rem;
  border-radius: 10px;
  margin-bottom: 1rem;
  font-size: 0.95rem;
}

.role-alert-warn {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
}

.role-error {
  color: #dc2626;
  margin-bottom: 0.75rem;
}

.role-empty-card {
  padding: 2rem;
  text-align: center;
}

.role-empty-card p {
  margin: 0 0 1rem;
  color: #64748b;
}

.role-section-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 1rem 1.1rem 0;
}

.role-section-title-row-end {
  justify-content: flex-end;
}

/* 일반회원 매물관리 — 등록·직거래/중개거래 버튼 50% 확대 */
.member-listing-register-btn {
  padding: 0.525rem 1.125rem;
  font-size: 1.2rem;
  font-weight: 700;
}

.member-listings-table .mine-listing-deal-chips {
  gap: 0.4rem;
}

.member-listings-table .mine-listing-deal-chips .chip-sm {
  padding: 0.27rem 0.75rem;
  font-size: 1.08rem;
  line-height: 1.25;
}

.member-listings-table .col-actions .role-table-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.12rem;
}

.member-listings-table .mine-listing-actions-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.2rem;
}

.role-section-title-row .building-detail-section-title {
  margin: 0;
}

.role-table-card {
  padding: 0;
  overflow-x: auto;
}

.role-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.role-table th,
.role-table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}

.role-table th {
  background: #f8fafc;
  font-weight: 600;
  color: #475569;
}

.role-table-actions {
  white-space: nowrap;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.role-table td.role-table-actions {
  display: table-cell;
  vertical-align: middle;
}

.mine-listing-deal-chips {
  display: inline-flex;
  gap: 0.25rem;
  align-items: center;
}

.chip-sm {
  padding: 0.18rem 0.5rem;
  font-size: 0.72rem;
  line-height: 1.2;
}

.badge-direct {
  background: #ecfdf5;
  color: #047857;
}

.badge-brokered {
  background: #eff6ff;
  color: #1d4ed8;
}

.role-listing-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.role-listing-item {
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.role-listing-title {
  font-weight: 700;
  color: #111;
  text-decoration: none;
}

.role-listing-title:hover {
  color: #2563eb;
}

.role-listing-title-btn {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  text-align: left;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-listing-card-title.role-listing-title-btn {
  flex: 1 1;
  min-width: 0;
  white-space: normal;
}

.role-guard-card {
  padding: 2rem;
  max-width: 420px;
  margin: 2rem auto;
  text-align: center;
}

.role-guard-card h1 {
  margin-top: 0;
}

.account-card {
  padding: 1.5rem;
  max-width: 520px;
}

.account-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.account-card-header .page-title {
  margin: 0;
}

.account-profile-form {
  margin-top: 1rem;
}

.account-profile-form .account-actions {
  margin-top: 1.25rem;
}

.account-dl {
  display: grid;
  grid-template-columns: 7rem 1fr;
  grid-gap: 0.65rem 1rem;
  gap: 0.65rem 1rem;
  margin: 1.25rem 0;
}

.account-dl dt {
  color: #64748b;
  font-size: 0.9rem;
}

.account-dl dd {
  margin: 0;
  font-weight: 500;
}

.account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.badge-rent {
  background: #ffedd5;
  color: #c2410c;
}

.admin-user-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 1.25rem;
  max-width: 420px;
}

.admin-user-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
}

.admin-user-field span {
  color: #64748b;
}

.admin-user-field input {
  padding: 0.55rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.95rem;
}

.admin-user-message {
  margin: 0;
  font-size: 0.9rem;
}

.admin-user-message-error {
  color: #b91c1c;
}

.admin-user-message-success {
  color: #15803d;
}

.admin-users-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.role-stat-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.admin-user-actions {
  flex-wrap: wrap;
  min-width: 9rem;
}

.admin-region-pager {
  margin-bottom: 1rem;
}

.admin-region-filters {
  margin-bottom: 0.75rem;
}

.admin-region-total {
  margin-left: auto;
}

.admin-region-pagination {
  margin-top: 0;
}

.admin-listings-section .filter-card {
  margin-bottom: 0.75rem;
}

.admin-listings-section .building-detail-section-title {
  padding: 1rem 1rem 0;
}

.admin-listings-status {
  padding: 0 1rem 1rem;
}

.admin-listing-filter .filter-row-actions {
  align-items: center;
}

.admin-listing-filter .filter-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.admin-listing-filter .filter-type-nav {
  align-items: flex-start;
}

.admin-listing-filter .filter-type-nav > nav {
  flex-wrap: wrap;
  width: 100%;
  gap: 0.35rem;
}

.admin-listing-filter .filter-type-nav > nav > button {
  min-height: unset;
  padding: 0.38rem 0.75rem;
  font-size: 0.82rem;
  line-height: 1.2;
  font-weight: 500;
  border-radius: 999px;
}

.admin-listing-filter .filter-combined-row {
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  overflow-x: auto;
}

.admin-listing-filter .filter-combined-row .filter-group {
  gap: 0;
}

.admin-listing-filter .filter-combined-row .filter-group-select {
  flex: 0 0 4.8rem;
  min-width: 4.4rem;
  max-width: 5.2rem;
}

.admin-listing-filter .filter-combined-row .filter-select {
  padding: 0.32rem 0.4rem;
  font-size: 0.82rem;
  line-height: 1.2;
  min-height: unset;
  border-radius: 999px;
}

.admin-listing-filter .filter-combined-row .filter-group-tx {
  flex: 0 1 auto;
  min-width: 0;
}

.admin-listing-filter .filter-combined-row .filter-chips {
  flex-wrap: nowrap;
}

.admin-listing-filter .filter-combined-row .filter-detail-ui {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}

.admin-listing-filter .filter-combined-row .filter-detail-ui > div {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}

.admin-filter-label {
  margin-right: 0.5rem;
  white-space: nowrap;
}

.admin-listing-owner {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.admin-listing-cards {
  list-style: none;
  margin: 0;
  padding: 0 1rem 1rem;
  display: none;
  flex-direction: column;
  gap: 0.75rem;
}

.admin-listings-table {
  display: table;
  table-layout: fixed;
  width: 100%;
}

.admin-listings-table .col-actions {
  width: 19rem;
  min-width: 19rem;
  max-width: 19rem;
  vertical-align: middle;
  overflow: visible;
}

.admin-listings-table .col-actions .role-table-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
}

.admin-listings-table .col-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-listings-table .col-actions {
  width: 12rem;
  max-width: 13rem;
  min-width: 11rem;
}

.member-listings-table .col-actions .role-table-actions {
  max-width: 100%;
  contain: layout style;
}

.admin-listings-table tbody td {
  position: relative;
  background: #fff;
}

.admin-listings-section {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.admin-listing-card {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 0.85rem 1rem;
  background: #fff;
}

.admin-listing-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.admin-listing-card-no {
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #6b7280;
  min-width: 1.5rem;
}

.admin-listing-card-status {
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  background: #f1f5f9;
  border-radius: 999px;
  padding: 0.15rem 0.5rem;
}

.admin-listing-card-title {
  font-weight: 700;
  color: #111827;
  text-decoration: none;
  line-height: 1.35;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.admin-listing-card-title:hover {
  color: #2563eb;
}

.admin-listing-card-meta {
  margin: 0 0 0.35rem;
}

.admin-listing-card-owner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
}

.admin-listing-card-actions {
  flex-wrap: wrap;
}

@media (max-width: 639px) {
  .admin-listings-section.role-table-card {
    overflow-x: visible;
  }

  .admin-listings-section .admin-region-pagination {
    padding: 0 1rem;
  }

  .admin-listings-table {
    display: none;
  }

  .admin-listings-table.member-listings-table {
    display: table;
  }

  .member-listing-table-wrap {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .admin-listing-cards {
    display: flex;
  }

  .admin-listing-filter .filter-row-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-listing-filter .filter-actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }

  .admin-listing-filter .filter-actions .btn-filter {
    flex: 0 0 auto;
    min-width: 5.5rem;
  }

  .admin-listing-filter .admin-region-total {
    margin-left: 0;
  }
}

.owner-role-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--muted, #64748b);
  background: rgba(100, 116, 139, 0.12);
  border: 1px solid rgba(100, 116, 139, 0.2);
}

.admin-broker-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.admin-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.45);
}

.admin-modal {
  width: min(100%, 520px);
  max-height: min(88vh, 720px);
  overflow: auto;
  padding: 1.15rem 1.25rem 1.25rem;
  margin: 0;
}

.admin-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.admin-modal-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #0f172a;
}

.admin-modal-close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.admin-modal-close:hover {
  background: #e2e8f0;
}

.admin-detail-dl {
  margin: 0;
}

.admin-detail-row {
  display: contents;
}

.role-table-row-clickable {
  cursor: pointer;
}

.role-table-row-clickable:hover td {
  background: #f8fafc;
}

.broker-listing-table .role-table-row-clickable:hover td,
.member-listings-table .role-table-row-clickable:hover td {
  background: #e2e8f0;
}

.role-table .col-row-no {
  width: 3.25rem;
  text-align: center;
  color: #64748b;
  white-space: nowrap;
}

.role-table .col-select {
  width: 2.75rem;
  text-align: center;
}

.role-table .col-select input[type='checkbox'] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
}

.role-list-bulk-bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0 1rem 0.75rem;
}

.admin-listing-card-select {
  display: inline-flex;
  align-items: center;
  margin-right: 0.35rem;
}

.admin-listing-card-select input[type='checkbox'] {
  width: 1rem;
  height: 1rem;
}

.admin-region-pagination-bottom {
  padding-top: 0.5rem;
  padding-bottom: 1rem;
}

.pagination-unit-hint {
  margin-left: 0.35rem;
  font-size: 0.94rem;
  font-weight: 600;
  color: #94a3b8;
  white-space: nowrap;
}

.admin-listing-card-clickable {
  cursor: pointer;
}

.admin-listing-card-clickable:hover {
  border-color: #93c5fd;
  background: #f8fbff;
}

.admin-broker-region-filters {
  padding: 1rem 1rem 0.75rem;
}

.admin-broker-region-actions {
  margin-left: auto;
}

@media (max-width: 639px) {
  .admin-broker-region-filters {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-broker-region-filters .filter-group-select {
    flex: 1 1 100%;
    min-width: 0;
  }

  .admin-broker-region-actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
}

.admin-pw-input-wrap {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-pw-input-wrap input {
  flex: 1 1;
  min-width: 0;
}

.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.5rem;
  min-width: 2rem;
}

.admin-pw-eye-btn {
  flex-shrink: 0;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  color: #374151;
  cursor: pointer;
  padding: 0.35rem 0.45rem;
  line-height: 0;
}

.admin-pw-eye-btn:hover {
  background: #f3f4f6;
}

.admin-pw-eye-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.admin-pw-eye-btn svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* AptAi sidebar layout */
.role-app-layout {
  display: grid;
  grid-template-columns: var(--role-sidebar-width, 240px) minmax(0, 1fr);
  grid-gap: 1.25rem;
  gap: 1.25rem;
  max-width: 1400px;
  margin: 0 auto;
}
.role-app-layout-broker {
  gap: 0;
  max-width: none;
  width: 100%;
  min-height: calc(100vh - var(--site-header-h, 64px));
  margin: 0;
  padding: 0;
}
.role-sidebar {
  position: -webkit-sticky;
  position: sticky;
  top: 1rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 1rem 0.75rem;
  min-height: 480px;
  display: flex;
  flex-direction: column;
}
.role-sidebar-broker {
  top: 0;
  align-self: stretch;
  min-height: calc(100vh - var(--site-header-h, 64px));
  border-radius: 0;
  border-top: none;
  border-bottom: none;
  border-left: none;
  position: relative;
  padding-right: 0.5rem;
  z-index: 1;
  overflow: hidden;
  /* 좌측 사이드바 글자·아이콘·버튼 50% 확대 */
  font-size: 150%;
}
.role-sidebar-broker .role-sidebar-brand {
  gap: 0.75rem;
  padding-bottom: 1.1rem;
  margin-bottom: 0.85rem;
}
.role-sidebar-broker .role-sidebar-brand strong {
  font-size: 1.05em;
  line-height: 1.35;
}
.role-sidebar-broker .role-sidebar-logo {
  width: 2.7em;
  height: 2.7em;
  border-radius: 0.55em;
  font-size: 1.05em;
}
.role-sidebar-broker .role-sidebar-section {
  margin-bottom: 0.65em;
}
.role-sidebar-broker .role-sidebar-section-label {
  margin: 0.55em 0.35em 0.35em;
  font-size: 0.92em;
  font-weight: 700;
  color: #64748b;
}
.role-sidebar-broker .role-sidebar-link {
  padding: 0.55em 0.7em;
  font-size: 1em;
  line-height: 1.35;
  border-radius: 0.55em;
}
.role-sidebar-broker .role-sidebar-badge {
  font-size: 0.78em;
  min-width: 1.35em;
  padding: 0.1em 0.4em;
}
.role-sidebar-broker .role-sidebar-plan {
  font-size: 1em;
  padding: 0.75em 0.85em;
  margin: 0 0 0.75em;
  flex-shrink: 0;
}
.role-sidebar-broker .role-sidebar-plan .meta {
  margin: 0 0 0.35em;
}
.role-sidebar-broker .role-sidebar-plan-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5em;
  flex-wrap: wrap;
}
.role-sidebar-broker .role-sidebar-plan-row strong {
  font-size: 1em;
}
.role-sidebar-broker .role-sidebar-plan .btn,
.role-sidebar-broker .role-sidebar-plan .btn-sm {
  font-size: 0.95em;
  padding: 0.45em 0.85em;
}
.role-sidebar-nav {
  position: relative;
  z-index: 2;
  flex: 1 1;
}
.role-sidebar-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 8px;
  height: 100%;
  cursor: col-resize;
  z-index: 5;
  pointer-events: auto;
}
.role-sidebar-resizer:hover { background: rgba(37, 99, 235, 0.15); }
.role-app-layout-admin {
  gap: 0;
  max-width: none;
  width: 100%;
  min-height: calc(100vh - 56px);
  margin: 0;
  padding: 0;
  --role-sidebar-width: 312px;
}
.role-app-layout-admin .role-app-main {
  /* 상단 로고 제외, 본문 글자·버튼·칩 30% 확대 */
  zoom: 1.3;
}
.role-sidebar-admin .role-sidebar-nav {
  font-size: 130%;
}
.role-sidebar-admin .role-sidebar-link {
  font-size: 1em;
  line-height: 1.35;
  padding: 0.55em 0.65em;
}
.role-sidebar-admin .role-sidebar-section-label {
  font-size: 1em;
  font-weight: 700;
  color: #64748b;
  margin: 0.85em 0.35em 0.3em;
}
.role-sidebar-admin .role-sidebar-badge {
  font-size: 0.72em;
  min-width: 1.25em;
  padding: 0 0.35em;
}
.role-app-main-broker {
  min-width: 0;
  background: #f8fafc;
  padding: 1rem 1.25rem 1.5rem;
  position: relative;
  z-index: 2;
  /* 본문 제목·탭·필터·버튼 50% 확대 */
  zoom: 1.5;
}
.role-app-main-broker .role-app-header,
.role-app-main-broker .role-top-tabs {
  position: relative;
  z-index: 3;
}
.role-app-main-broker .broker-listing-table-rich {
  /* zoom 1.5와 기존 표 1.5배(1.32rem) 중복 방지 */
  font-size: 0.88rem;
}
.role-sidebar-admin {
  top: 0;
  align-self: stretch;
  min-height: calc(100vh - 56px);
  border-radius: 0;
  border-top: none;
  border-bottom: none;
  border-left: none;
  z-index: 20;
}
.role-app-main {
  min-width: 0;
}
.role-sidebar-brand {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 0.75rem;
}
.role-sidebar-brand-link {
  display: flex;
  gap: inherit;
  align-items: center;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.role-sidebar-brand-link:hover strong {
  color: #2563eb;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.role-sidebar-brand strong {
  display: block;
  font-size: 1rem;
  line-height: 1.35;
  word-break: keep-all;
}
.role-sidebar-logo {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  background: #2563eb;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
}
.role-sidebar-logo-admin { background: #0f766e; }
.role-sidebar-link {
  display: flex;
  justify-content: space-between;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  color: #334155;
  text-decoration: none;
  position: relative;
  z-index: 1;
}
.role-sidebar-link:hover {
  background: #e2e8f0;
}
.role-sidebar-link-active { background: #eff6ff; color: #1d4ed8; font-weight: 600; }
.role-sidebar-link-active:hover {
  background: #e2e8f0;
  color: #1d4ed8;
}
.role-sidebar-badge {
  background: #2563eb;
  color: #fff;
  border-radius: 999px;
  font-size: 0.72rem;
  padding: 0 0.35rem;
  min-width: 1.25rem;
  text-align: center;
}
.role-top-tabs { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 1rem; }
.role-top-tab {
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid #e2e8f0;
  color: #475569;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.role-top-tab-active { background: #ecfdf5; border-color: #6ee7b7; color: #047857; }
.role-alert-info { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.broker-tx-tag { font-size: 0.75rem; padding: 0.1rem 0.4rem; border-radius: 4px; margin-right: 0.35rem; }
.broker-tx-tag.tx-sale { background: #dcfce7; color: #166534; }
.broker-tx-tag.tx-jeonse { background: #fef9c3; color: #854d0e; }
.broker-tx-tag.tx-monthly { background: #ffedd5; color: #9a3412; }
.broker-complex-head {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.broker-complex-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  min-width: 0;
}
.broker-complex-head-main {
  min-width: 0;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}
.broker-complex-name {
  font-weight: 700;
  line-height: 1.3;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.broker-complex-tags {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.25rem;
  min-width: 0;
  overflow: hidden;
}
.broker-complex-tags .broker-tx-tag,
.broker-complex-tags .broker-promo-tag,
.broker-complex-tags .broker-deal-done-tag {
  margin-right: 0;
}
.broker-complex-meta {
  margin: 0;
  line-height: 1.25;
  flex-shrink: 0;
  white-space: nowrap;
}
.broker-complex-head-row .broker-complex-tags {
  flex: 1 1;
}
.broker-listing-no-wrap {
  flex-shrink: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 0;
  white-space: nowrap;
  line-height: 1.25;
}
.broker-listing-type {
  font-size: 0.85em;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}
.broker-listing-no {
  flex-shrink: 0;
  font-size: 0.54rem; /* 매물번호 — 리스트 본문 대비 50% */
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
  white-space: nowrap;
  margin-top: 0;
}
.btn-outline-green { border: 1px solid #22c55e; color: #15803d; background: #fff; }
.btn-outline-blue { border: 1px solid #3b82f6; color: #1d4ed8; background: #fff; }
.btn-outline-danger { border: 1px solid #ef4444; color: #b91c1c; background: #fff; }
.btn-outline { border: 1px solid #cbd5e1; color: #334155; background: #fff; }

.admin-notification-list {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.admin-notification-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.admin-notification-item--unread {
  border-color: #93c5fd;
  background: #eff6ff;
}

.site-header-internal {
  zoom: 1.5;
}
.site-header-internal .brand {
  flex: 0 0 auto;
  margin-right: 0.75rem;
  /* 기본 1.05rem 대비 30% 확대 + 두 글자분 우측 이동 */
  font-size: calc(1.05rem * 1.3);
  margin-left: 2em;
}
.site-header-internal .header-nav-desktop {
  margin-left: auto;
}

.role-ops-queue-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  grid-gap: 1rem;
  gap: 1rem;
  margin-top: 1.25rem;
}

.role-ops-queue-card {
  padding: 1rem 1.1rem;
  min-height: 12rem;
}

.role-ops-queue-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}

.role-ops-queue-header-actions {
  display: flex;
  gap: 0.35rem;
  flex-shrink: 0;
}

.role-ops-queue-list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.role-ops-queue-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  text-decoration: none;
  color: inherit;
}

a.role-ops-queue-item {
  flex-direction: column;
  align-items: stretch;
  transition: border-color 0.15s, box-shadow 0.15s;
}

a.role-ops-queue-item:hover {
  border-color: #93c5fd;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}

.role-ops-queue-item strong {
  display: block;
  font-size: 0.92rem;
  color: #0f172a;
}

.role-ops-queue-item .meta {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.8rem;
}

.role-ops-queue-item--unread {
  border-color: #93c5fd;
  background: #eff6ff;
}
.broker-complex-form-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; gap: 1rem; }
.complex-info-search {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
}
.complex-search-region-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 0.5rem;
  gap: 0.5rem;
}
.complex-info-search-stacked .complex-search-region-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.complex-search-jibun-group {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
}
.complex-search-jibun-label { font-size: 0.85rem; font-weight: 600; color: #475569; white-space: nowrap; flex-shrink: 0; }
.complex-search-jibun-input {
  flex: 1 1;
  min-width: 0;
  max-width: none;
  padding: 0.55rem 0.45rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.92rem;
}
.complex-search-jibun-sep { color: #64748b; font-size: 0.9rem; flex-shrink: 0; }
.complex-search-keyword-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-gap: 0.5rem;
  gap: 0.5rem;
  align-items: center;
}
.complex-info-search-stacked .complex-search-keyword-row {
  grid-template-columns: 1fr;
}
.complex-search-filter-hint { margin: -0.35rem 0 0.5rem; font-size: 0.82rem; }
.complex-search-select,
.complex-search-input { width: 100%; padding: 0.55rem 0.65rem; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 0.92rem; }
.complex-search-input-wrap { position: relative; display: block; width: 100%; }
.complex-search-input-wrap .complex-search-input { padding-right: 2rem; }
.complex-search-clear {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #64748b;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.complex-search-clear:hover { background: #e2e8f0; color: #0f172a; }
.complex-search-btn { white-space: nowrap; min-width: 4.5rem; }
.complex-search-stop-btn { white-space: nowrap; min-width: 3.5rem; background: #fff; color: #dc2626; border: 1px solid #dc2626; border-radius: 6px; padding: 0.45rem 0.9rem; font-size: 0.92rem; cursor: pointer; }
.complex-search-stop-btn:disabled { color: #cbd5e1; border-color: #cbd5e1; cursor: default; }
.complex-search-area-filter-row { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; padding: 0.4rem 0.5rem; background: #f8fafc; border-radius: 6px; margin-bottom: 0.5rem; }
.complex-search-area-filter-group { display: flex; align-items: center; gap: 0.3rem; }
.complex-search-area-input { width: 5.5rem; padding: 0.4rem 0.5rem; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 0.85rem; }
.complex-search-year-input { width: 4.5rem; }
.complex-search-table-header { display: flex; align-items: center; justify-content: flex-end; padding: 0.35rem 0.5rem; border-bottom: 1px solid #e2e8f0; }
.complex-search-table-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 0.35rem 0.75rem; border-bottom: 1px solid #e2e8f0; gap: 0.5rem; }
.complex-toolbar-left { display: flex; align-items: center; gap: 0.75rem; }
.complex-toolbar-count { font-size: 0.8rem; color: #64748b; white-space: nowrap; }
.complex-info-table th.col-num, .complex-info-table td.col-num { text-align: right; white-space: nowrap; min-width: 4.5rem; }
/* 정렬 버튼 */
.sortable-th { cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; white-space: nowrap; }
.sortable-th:hover { background: #f1f5f9; }
.sort-active { background: #f0fdf4 !important; }
.sort-icons { display: inline-flex; flex-direction: column; font-size: 0.55rem; line-height: 1; margin-left: 3px; vertical-align: middle; color: #94a3b8; }
.sort-tri { display: block; line-height: 1; }
.sort-tri-on { color: #0f766e; font-weight: 700; }
/* 주소 2줄 셀 */
.complex-addr-cell { min-width: 12rem; }
.complex-addr-jibun { display: block; font-size: 0.88rem; text-align: left; }
.complex-addr-road { margin: 0.1rem 0 0; font-size: 0.78rem; color: #64748b; }
.complex-search-title { margin: 0 0 0.35rem; font-size: 1.75rem; font-weight: 700; }
.complex-info-desc { margin: 0 0 1rem; max-width: 52rem; line-height: 1.55; }
.complex-info-kind-tabs { display: flex; gap: 0.5rem; margin: 0.75rem 0 1rem; flex-wrap: wrap; }
.complex-info-kind-tabs button { padding: 0.45rem 1.1rem; border-radius: 999px; border: 1px solid #cbd5e1; background: #fff; color: #334155; font-size: 0.9rem; cursor: pointer; }
.complex-land-category-tabs { display: flex; gap: 0.35rem; margin: -0.35rem 0 1rem; flex-wrap: wrap; }
.complex-land-category-tabs button { padding: 0.35rem 0.85rem; border-radius: 999px; border: 1px solid #cbd5e1; background: #fff; color: #334155; font-size: 0.82rem; cursor: pointer; }
.complex-kind-active { background: #064e3b !important; color: #fff !important; border-color: #064e3b !important; }
.complex-field-master { color: #15803d; font-weight: 600; }
.complex-info-table .complex-search-name-link .complex-field-master { color: #15803d; }
.complex-info-table .complex-search-name-link { background: none; border: none; padding: 0; color: #064e3b; font-weight: 700; font-size: inherit; cursor: pointer; text-align: left; }
.complex-info-table .complex-search-name-link:hover { text-decoration: underline; }
.complex-info-row-clickable { cursor: pointer; }
.complex-info-row-clickable:hover td { background: #f8fafc; }
.complex-info-row-selected td { background: #eff6ff !important; }
.complex-info-empty { padding: 1rem; }
.complex-search-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 0.75rem; flex-wrap: wrap; }
.complex-search-footer-top { margin-top: 0.75rem; margin-bottom: 0.5rem; }
.complex-search-footer-compact { margin-top: 0.5rem; font-size: 0.85rem; }
.complex-discovery-sidebar {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 0;
  flex: 1 1 auto;
}
.complex-discovery-sidebar-filters { flex-shrink: 0; }
.complex-discovery-sidebar-list {
  flex: 1 1 auto;
  min-height: 8rem;
  overflow: auto;
  margin-top: 0.25rem;
  padding-top: 0.65rem;
  border-top: 1px solid #e5e7eb;
}
.complex-discovery-sidebar-list .complex-search-table-wrap { margin: 0; }
.complex-discovery-sidebar-list .role-table { font-size: 0.85rem; }
.complex-search-detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 1rem; gap: 1rem; margin: 1rem 0; padding: 1rem; }
.complex-search-detail-grid strong { display: block; margin-top: 0.2rem; }
@media (max-width: 960px) {
  .complex-search-region-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .complex-search-region-row .complex-search-select:last-child { grid-column: auto; }
  .complex-search-detail-grid { grid-template-columns: 1fr 1fr; }
}
.broker-complex-span3 { grid-column: span 3; }
.broker-complex-section-title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.broker-field-locked { color: #64748b; font-weight: normal; font-size: 0.8rem; }
.broker-media-section { margin-top: 1rem; }
.broker-media-kind-block { margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #f1f5f9; }
.broker-media-kind-head { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.broker-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); grid-gap: 0.75rem; gap: 0.75rem; }
.broker-media-thumb { margin: 0; }
.broker-media-thumb img { width: 72px; height: 54px; object-fit: cover; border-radius: 6px; border: 1px solid #e2e8f0; }
.broker-media-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.broker-media-thumb figcaption { margin-top: 0.35rem; }
.broker-media-thumb-actions { display: flex; flex-direction: column; gap: 0.35rem; }
.broker-media-order-btns { display: flex; gap: 0.25rem; }
.broker-floor-orient { max-width: 6rem; }
.broker-floor-link { font-size: 0.88rem; }
.broker-floor-upload-cell { display: flex; flex-direction: column; gap: 0.35rem; min-width: 12rem; }
.broker-floor-upload-row { display: flex; gap: 0.35rem; }
.broker-floor-url-row { display: flex; gap: 0.35rem; align-items: center; }
.broker-floor-url-input { flex: 1 1; min-width: 0; font-size: 0.82rem; }
.broker-floor-url-error { margin: 0; font-size: 0.78rem; }
.broker-floor-registered { display: inline-flex; align-items: center; gap: 0.25rem; }
.broker-floor-empty {
  text-align: center;
  color: #6b7280;
  padding: 1.25rem 0.75rem !important;
}
.broker-floor-add-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}
.broker-floor-add-hint { margin: 0 0 0.75rem; line-height: 1.55; }
.broker-floor-add-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  grid-gap: 0.75rem 1rem;
  gap: 0.75rem 1rem;
  align-items: end;
}
.broker-floor-add-grid label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #374151;
}
.broker-floor-add-grid input {
  font-weight: 400;
  padding: 0.5rem 0.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}
.broker-floor-add-grid-single {
  grid-template-columns: 1fr auto;
}
.broker-unit-sample-table { max-height: 16rem; overflow: auto; }
.unit-address-panels {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-gap: 0.5rem;
  gap: 0.5rem;
  align-items: stretch;
  min-height: 10rem;
}
.unit-address-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}
.unit-address-panel-head {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid #e5e7eb;
  background: #f1f5f9;
}
.unit-address-panel-head-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  text-align: center;
  letter-spacing: 0.02em;
}
.unit-address-panel-select-wrap {
  position: relative;
  width: 100%;
}
.unit-address-panel-select-wrap::after {
  content: '▼';
  position: absolute;
  right: 0.55rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.5rem;
  color: #2563eb;
  pointer-events: none;
}
.unit-address-panel-select {
  width: 100%;
  padding: 0.4rem 1.4rem 0.4rem 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  color: #111827;
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
.unit-address-panel-select:disabled {
  background: #f8fafc;
  color: #94a3b8;
  cursor: not-allowed;
}
.unit-address-panel-select:not(:disabled):hover {
  border-color: #93c5fd;
}
.unit-address-panel-select:focus {
  outline: 2px solid #93c5fd;
  outline-offset: 1px;
}
.unit-address-panel-list {
  list-style: none;
  margin: 0;
  padding: 0.35rem;
  overflow-y: auto;
  max-height: 16rem;
  flex: 1 1 auto;
}
.unit-address-panel-list li + li {
  margin-top: 0.25rem;
}
.unit-address-panel-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: #111827;
}
.unit-address-panel-item:hover {
  background: #f8fafc;
  border-color: #e2e8f0;
}
.unit-address-panel-item.is-active {
  background: #eff6ff;
  border-color: #93c5fd;
  color: #1d4ed8;
}
.unit-address-panel-item.is-readonly {
  cursor: default;
}
.unit-address-panel-item.is-readonly:hover {
  background: #eff6ff;
  border-color: #93c5fd;
}
.unit-address-panel-item-label {
  font-weight: 600;
  font-size: 0.9rem;
}
.unit-address-panel-item-meta {
  font-size: 0.78rem;
  color: #64748b;
  font-weight: 400;
}
.unit-address-panel-item.is-active .unit-address-panel-item-meta {
  color: #3b82f6;
}
.unit-address-panel-empty {
  margin: auto;
  padding: 1rem 0.65rem;
  font-size: 0.82rem;
  color: #94a3b8;
  text-align: center;
}
.unit-address-area-result {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 0.65rem;
  flex: 1 1 auto;
  text-align: center;
}
.unit-address-area-result-value {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1d4ed8;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}
.unit-address-orient-value {
  color: #334155;
}
@media (max-width: 960px) {
  .unit-address-panels {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .unit-address-panels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .unit-address-panels {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .broker-floor-add-grid { grid-template-columns: 1fr; }
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.broker-custody-risk { color: #b45309; font-size: 0.85rem; }
.broker-free-plan-card { display: flex; flex-direction: column; gap: 0.85rem; }
.broker-free-plan-title { margin: 0; font-size: 1.15rem; }
.broker-free-plan-region-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 0.5rem;
  gap: 0.5rem;
}
.broker-free-plan-jibun-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}
.broker-free-plan-jibun-label { font-weight: 600; color: #334155; min-width: 2rem; }
.broker-free-plan-jibun-input {
  width: 6.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
}
.broker-free-plan-jibun-sep { color: #64748b; }
.broker-free-plan-kind-tabs { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; margin-left: 0.25rem; }
.broker-free-plan-kind-tabs button {
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  background: #fff;
  font-size: 0.85rem;
  cursor: pointer;
}
.broker-free-plan-hint { margin: 0; }
.broker-free-plan-complex-panel {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.85rem;
  background: #fff;
}
.broker-free-plan-complex-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.65rem;
}
.broker-free-plan-complex-actions { display: flex; gap: 0.35rem; }
.broker-free-plan-complex-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 0.45rem 0.75rem;
  gap: 0.45rem 0.75rem;
  max-height: 320px;
  overflow: auto;
  margin-bottom: 0.75rem;
  padding-right: 0.25rem;
}
.broker-free-plan-complex-item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  grid-gap: 0.1rem 0.45rem;
  gap: 0.1rem 0.45rem;
  align-items: start;
  padding: 0.35rem 0.25rem;
  border-radius: 6px;
  cursor: pointer;
}
.broker-free-plan-complex-item input { margin-top: 0.15rem; }
.broker-free-plan-complex-name { font-weight: 600; color: #0f172a; font-size: 0.9rem; }
.broker-free-plan-complex-jibun { grid-column: 2; font-size: 0.8rem; color: #64748b; }
.broker-free-plan-complex-selected { background: #f0fdf4; }
.broker-free-plan-complex-claimed {
  opacity: 0.45;
  cursor: not-allowed;
}
.broker-free-plan-complex-claimed .broker-free-plan-complex-name,
.broker-free-plan-complex-claimed .broker-free-plan-complex-jibun {
  color: #94a3b8;
}
.broker-free-plan-claimed-tag {
  grid-column: 2;
  font-size: 0.72rem;
  color: #b45309;
}
.broker-free-plan-entry-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.broker-free-plan-entry-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}
.broker-free-plan-entry-complexes { margin: 0.2rem 0 0; }
.broker-free-plan-memo { display: flex; flex-direction: column; gap: 0.35rem; }
.broker-free-plan-memo textarea {
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  resize: vertical;
}
.broker-free-plan-warn { margin: 0; color: #15803d; font-size: 0.9rem; }
@media (max-width: 960px) {
  .broker-free-plan-region-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .broker-free-plan-complex-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .broker-free-plan-complex-grid { grid-template-columns: 1fr; }
}
.broker-listing-toolbar-rich {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin: 0.75rem 0 1rem;
  padding: 0.65rem 0.85rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
.broker-listing-toolbar-left,
.broker-listing-toolbar-right {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}
.broker-listing-select-all {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.88rem;
  color: #334155;
}
.broker-listing-selected { color: #2563eb; }
.broker-area-toggle { min-width: 5.5rem; }
.broker-listing-table-rich {
  font-size: 1.32rem; /* 0.88rem × 1.5 — 매물번호 제외 */
  table-layout: auto;
  width: 100%;
}
.admin-listings-table.broker-listing-table-rich {
  table-layout: auto;
}
.broker-listing-table-rich .col-select { width: 2.25rem; text-align: center; }
.broker-listing-table-rich .col-complex {
  width: 21%;
  min-width: 9.8rem;
  max-width: 21%;
}

.member-listings-table.broker-listing-table-rich .col-complex {
  width: 21%;
  min-width: 11.2rem;
  max-width: 21%;
  vertical-align: middle;
  white-space: normal;
}

.member-listings-table .member-complex-2line {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.member-listings-table .member-complex-2line-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  min-width: 0;
}

.member-listings-table .member-complex-2line-row .broker-complex-name,
.member-listings-table .member-complex-2line-row .broker-listing-no {
  min-width: 0;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-listings-table .member-complex-2line-row .broker-listing-no {
  flex-shrink: 0;
  margin: 0;
  font-size: 0.41rem;
}

.member-listings-table .member-complex-2line-row .broker-complex-tags {
  flex: 1 1;
  min-width: 0;
  flex-wrap: nowrap;
  gap: 0.15rem;
  overflow: hidden;
}

.member-listings-table .member-complex-2line-status {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex-shrink: 0;
  white-space: nowrap;
}

.member-listings-table .member-complex-2line-status .broker-complex-meta {
  display: inline;
  margin: 0;
  font-size: 0.75rem;
}

.member-listings-table .member-complex-2line-status .broker-listing-type {
  font-size: 0.82rem;
  font-weight: 800;
  color: #c2410c;
}

.member-listings-table th.col-complex .col-complex-sub {
  margin-left: 0.25rem;
  font-weight: 600;
  color: #64748b;
}

.member-listings-table th,
.member-listings-table td {
  word-break: keep-all;
  overflow-wrap: normal;
  line-height: 1.3;
}

.member-listings-table th.col-price,
.member-listings-table th.col-date,
.member-listings-table th.col-area {
  white-space: normal;
  word-break: keep-all;
  min-width: 4.5rem;
}

.member-listings-table td.col-price,
.member-listings-table td.col-date {
  white-space: nowrap;
  min-width: 4.2rem;
}

.member-listings-table th.col-date {
  min-width: 5rem;
}
/* 동·호·층 — 행 내용에 맞춰 확대 (표 폭 100% 안에서 내용만큼) */
.broker-listing-table-rich .col-dong,
.broker-listing-table-rich .col-ho,
.broker-listing-table-rich .col-floor {
  width: 1%;
  max-width: none;
  padding-left: 0.28rem;
  padding-right: 0.28rem;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
}
.broker-listing-table-rich .broker-listing-no {
  font-size: 0.54rem;
}
.broker-listing-table-rich .broker-tx-tag { font-size: 0.85em; }
.broker-listing-table-rich .broker-promo-tag,
.broker-listing-table-rich .broker-deal-done-tag { font-size: 0.82em; }
.broker-listing-table-rich .broker-sort-icon { font-size: 0.75em; }
.broker-listing-table-rich .broker-deal-done-check { font-size: 0.85em; }
.broker-listing-table-rich .btn-sm { font-size: 0.85em; }
.broker-addr-cell {
  max-width: 10.5rem;
  min-width: 7rem;
  width: 11%;
  white-space: nowrap;
  vertical-align: middle;
  cursor: help;
}
.broker-listing-table-rich .broker-addr-cell,
.broker-listing-table-rich .col-addr {
  width: 11%;
  min-width: 7rem;
  max-width: 10.5rem;
}
.broker-addr-line {
  display: block;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: keep-all;
}
.broker-area-cell {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.broker-area-line {
  display: block;
  line-height: 1.35;
}
.broker-listing-row-actions { flex-wrap: wrap; gap: 0.25rem; }
.broker-sort-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-weight: 600;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.broker-sort-icon { color: #94a3b8; font-size: 0.75rem; }
.broker-promo-tag {
  display: inline-block;
  margin-right: 0.25rem;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  font-size: 0.72rem;
  background: #fef2f2;
  color: #b91c1c;
}
.broker-deal-done-tag {
  display: inline-block;
  margin-right: 0.25rem;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  background: #e0e7ff;
  color: #3730a3;
}
.broker-deal-done-check {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8rem;
  color: #334155;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  white-space: nowrap;
}
.broker-deal-done-check input {
  width: 1rem;
  height: 1rem;
  accent-color: #4f46e5;
  cursor: pointer;
}
.col-deal-done {
  width: 4.5rem;
  text-align: center;
  white-space: nowrap;
}
.broker-contract-choice-modal {
  width: min(100%, 420px);
}
.broker-contract-choice-list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.5;
}
.broker-contract-choice-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}
.broker-price-negotiable { color: #6b7280; font-style: italic; }
.broker-incomplete-tag { color: #d97706; font-weight: 600; }
.broker-analytics-stat {
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}
.broker-analytics-ip {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.82rem;
}
.broker-fav-registered {
  display: inline-block;
  padding: 0.1em 0.45em;
  border-radius: 0.25rem;
  background: #ecfdf5;
  color: #047857;
  font-weight: 700;
  font-size: 0.85em;
}
.filter-chip-divider {
  display: inline-block;
  width: 1px;
  height: 1.1rem;
  background: #cbd5e1;
  margin: 0 0.25rem;
  align-self: center;
}
.chip-promo.promo-urgent { color: #dc2626; }
.chip-promo.promo-recommended { color: #2563eb; }
.chip-promo.promo-exclusive { color: #0f172a; }
.chip-promo.chip-active {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
  font-weight: 600;
}
.chip-promo.promo-urgent.chip-active {
  border-color: #dc2626;
  background: #dc2626;
  color: #fff;
}
.chip-promo.promo-recommended.chip-active {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
}
.chip-promo.promo-exclusive.chip-active {
  border-color: #0f172a;
  background: #0f172a;
  color: #fff;
}
.btn-danger {
  background: #fff;
  color: #dc2626;
  border: 1px solid #fecaca;
}
.btn-danger:hover { background: #fef2f2; }
@media (max-width: 960px) {
  .broker-complex-span3 { grid-column: span 1; }
  .broker-profile-form {
    display: flex;
    flex-direction: column;
  }
  .broker-profile-actions-top { display: none; }
  .broker-profile-layout {
    display: contents;
  }
  .broker-profile-main { order: 1; margin: 0 0 1rem; }
  .broker-profile-side { order: 2; margin: 0 0 1rem; }
  .broker-profile-actions-bottom { order: 3; }
  .broker-profile-grid { grid-template-columns: 1fr; }
  .broker-profile-span2 { grid-column: span 1; }
  .broker-profile-certs { grid-template-columns: 1fr; }
  .broker-profile-textarea-side { min-height: 10rem; }
}

.broker-notice-box {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.broker-notice-box strong { display: block; color: #1e3a8a; margin-bottom: 0.35rem; }
.broker-notice-box p { margin: 0; color: #1e40af; line-height: 1.55; font-size: 0.92rem; }
.broker-notice-compact { padding: 0.75rem 1rem; }
.broker-complex-detail-head { margin-bottom: 0.75rem; }
.broker-complex-detail-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}
.broker-complex-detail-nav a { color: #2563eb; text-decoration: none; }
.broker-complex-detail-nav a:hover { text-decoration: underline; }
.broker-complex-detail-title { margin: 0 0 0.25rem; font-size: 1.5rem; font-weight: 800; }
.broker-complex-td-center { text-align: center; }
.broker-profile-form { padding: 1.25rem; }
.broker-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
  grid-gap: 1.25rem 1.5rem;
  gap: 1.25rem 1.5rem;
  align-items: start;
  margin: 1rem 0;
}
.broker-profile-main { min-width: 0; }
.broker-profile-side { min-width: 0; height: 100%; }
.broker-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 1rem;
  gap: 1rem;
  margin: 0 0 1rem;
}
.broker-profile-span2 { grid-column: span 2; }
.broker-profile-field { display: flex; flex-direction: column; gap: 0.35rem; }
.broker-profile-label { font-size: 0.82rem; font-weight: 700; color: #374151; }
.broker-profile-readonly,
.broker-profile-editable,
.broker-profile-textarea {
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.95rem;
  box-sizing: border-box;
}
.broker-profile-readonly { background: #f9fafb; color: #6b7280; }
.broker-profile-editable { background: #fff; color: #111827; }
.broker-profile-editable:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}
.broker-profile-textarea { background: #fff; color: #111827; resize: vertical; }
.broker-profile-textarea-side { min-height: 18rem; }
.broker-profile-certs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 0.75rem;
  gap: 0.75rem;
  margin-bottom: 0;
}
.broker-profile-cert-img {
  max-width: 100%;
  max-height: 180px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}
.broker-profile-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin: 0 0 1rem;
  padding: 0.85rem 0;
  border-top: 1px solid #f3f4f6;
  border-bottom: 1px solid #f3f4f6;
}
.broker-profile-form > .broker-profile-actions:last-child {
  margin-bottom: 0;
  border-bottom: none;
  padding-bottom: 0;
}
.broker-profile-notify {
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  flex: 1 1 auto;
}
.broker-profile-notify legend { margin-bottom: 0; width: auto; margin-right: 0.25rem; }
.broker-profile-check { display: flex; align-items: center; gap: 0.4rem; font-size: 0.92rem; }
.broker-profile-submit { min-width: 10rem; flex-shrink: 0; }

.admin-portal-filter { padding: 0.75rem 1rem; margin-bottom: 1rem; }
.admin-portal-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.admin-portal-search-input { flex: 1 1; min-width: 12rem; }
.admin-portal-result-count { white-space: nowrap; margin-left: 0.25rem; }
.admin-portal-filter-extra { margin-top: 0.75rem; }
.admin-search-type-tabs { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.admin-search-type-tabs button {
  padding: 0.35rem 1rem;
  border-radius: 999px;
  border: none;
  background: #f1f5f9;
  color: #64748b;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}
.admin-search-tab-active { background: #0f172a !important; color: #fff !important; }
.admin-search-section { margin-top: 1rem; }
.admin-search-section-title { margin: 0 0 0.75rem; font-size: 1rem; }
.admin-empty-msg { padding: 2rem; text-align: center; }
.admin-status-pill {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}
.admin-status-pending { background: #fef9c3; color: #854d0e; }
.admin-status-approved { background: #dcfce7; color: #166534; }
.admin-status-rejected { background: #fee2e2; color: #991b1b; }
.admin-manual-sub-box { margin-bottom: 1rem; }
.admin-free-plan-pending-box { margin-bottom: 1rem; }
.admin-free-plan-table-wrap { margin-top: 0.75rem; }
.admin-free-plan-region-line + .admin-free-plan-region-line { margin-top: 0.35rem; }
.admin-manual-sub-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  grid-gap: 0.75rem;
  gap: 0.75rem;
  align-items: end;
  margin-top: 0.75rem;
}

/* 지도검색 — 주소 검색 마커 팝업 (MapLibre 전역 클래스) */
.map-address-popup.maplibregl-popup,
.map-address-popup .maplibregl-popup-content {
  pointer-events: none;
}

.map-address-popup .maplibregl-popup-content {
  padding: 0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.map-address-popup .maplibregl-popup-tip {
  border-top-color: #fff;
}

.map-address-popup-body {
  padding: 0.45rem 0.6rem;
  font-size: 0.8rem;
  line-height: 1.35;
  color: #111827;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  max-width: 220px;
  word-break: keep-all;
}

/* 모든 지도 — 필지 클릭 작은 팝업 */
.map-parcel-click-popup .maplibregl-popup-content {
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.16);
}

.map-parcel-click-popup-body {
  font-size: 0.74rem;
  line-height: 1.25;
  color: #0f172a;
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: keep-all;
}

.map-parcel-popup-title {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: #1e3a8a;
  margin-bottom: 0.1rem;
}

.map-parcel-popup-addr {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  color: #0f172a;
}

.map-parcel-popup-meta {
  font-size: 0.65rem;
  font-weight: 500;
  color: #64748b;
}

.map-parcel-hover-popup {
  pointer-events: none;
}

.map-parcel-hover-popup .maplibregl-popup-content {
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.2);
  pointer-events: none;
}

.map-parcel-hover-popup-body {
  font-size: 1.05rem;
  line-height: 1.45;
  font-weight: 600;
  color: #0f172a;
  max-width: 320px;
  word-break: keep-all;
}

/* 매물 목록 — 지도 price pill 마커 (농도 원색 65%) */
.map-listing-marker-hit {
  display: block;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
  line-height: 1;
}

/* 매물(컬러) 마커를 실거래(회색) 위에 — z-index는 레이어에서 marker.getElement()로 설정 */

.map-listing-marker-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.63rem 0.82rem; /* ×1.5 */
  border-radius: 6px; /* 알약(999px) → 모서리 둥근 직사각형 */
  /* 기본(기타·상가 등): 주황 채움 — 구 흰 배경과 맞바꿈 */
  background: color-mix(in srgb, #f97316 65%, white);
  border: 3px solid color-mix(in srgb, #ea580c 65%, white);
  color: #fff;
  font-size: 1.12rem;
  font-weight: 800;
  font-family: 'Malgun Gothic', '맑은 고딕', 'Apple SD Gothic Neo', 'Noto Sans KR',
    'Noto Sans CJK KR', sans-serif;
  letter-spacing: -0.02em;
  -webkit-font-smoothing: antialiased;
  text-shadow: none;
  white-space: nowrap;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.11);
  pointer-events: none;
}

.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #ea580c 65%, white);
  border-color: color-mix(in srgb, #c2410c 65%, white);
  color: #fff;
}

.map-listing-marker-pill--sale {
  border-color: color-mix(in srgb, #ea580c 65%, white);
}

.map-listing-marker-pill--sale.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #ea580c 65%, white);
  border-color: color-mix(in srgb, #c2410c 65%, white);
}

.map-listing-marker-pill--jeonse {
  border-color: color-mix(in srgb, #059669 65%, white);
}

.map-listing-marker-pill--jeonse.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #ea580c 65%, white);
  border-color: color-mix(in srgb, #047857 65%, white);
}

.map-listing-marker-pill--monthly {
  border-color: color-mix(in srgb, #2563eb 65%, white);
}

/* 아파트 — 매매: 흰+적 테두리 / 전·월세 청색 채움 */
.map-listing-marker-pill--apt-sale {
  background: #fff;
  border-color: color-mix(in srgb, #dc2626 65%, white);
  color: #0f172a;
}

.map-listing-marker-pill--apt-rent {
  background: color-mix(in srgb, #2563eb 65%, white);
  border-color: color-mix(in srgb, #2563eb 65%, white);
  color: #fff;
}

/* 오피스텔 — 매매: 흰+홍적 테두리 / 임대 스카이블루 */
.map-listing-marker-pill--offi-sale {
  background: #fff;
  border-color: color-mix(in srgb, #c41e3a 65%, white);
  color: #0f172a;
}

.map-listing-marker-pill--offi-rent {
  background: color-mix(in srgb, #38bdf8 65%, white);
  border-color: color-mix(in srgb, #0ea5e9 65%, white);
  color: #0f172a;
}

/* 건물 — 매매: 흰+주황 테두리 / 임대 민트 */
.map-listing-marker-pill--bld-sale {
  background: #fff;
  border-color: color-mix(in srgb, #f97316 65%, white);
  color: #0f172a;
}

.map-listing-marker-pill--bld-rent {
  background: color-mix(in srgb, #6ee7b7 65%, white);
  border-color: color-mix(in srgb, #34d399 65%, white);
  color: #0f172a;
}

.map-listing-marker-pill--apt-sale.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #dc2626 65%, white);
  border-color: color-mix(in srgb, #b91c1c 65%, white);
  color: #fff;
}

.map-listing-marker-pill--offi-sale.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #c41e3a 65%, white);
  border-color: color-mix(in srgb, #991b1b 65%, white);
  color: #fff;
}

.map-listing-marker-pill--bld-sale.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #f97316 65%, white);
  border-color: color-mix(in srgb, #ea580c 65%, white);
  color: #fff;
}

.map-listing-marker-pill--apt-rent.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #1d4ed8 65%, white);
  border-color: color-mix(in srgb, #1e40af 65%, white);
  color: #fff;
}

.map-listing-marker-pill--offi-rent.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #0284c7 65%, white);
  border-color: color-mix(in srgb, #0369a1 65%, white);
  color: #fff;
}

.map-listing-marker-pill--bld-rent.map-listing-marker-pill--selected {
  background: color-mix(in srgb, #34d399 65%, white);
  border-color: color-mix(in srgb, #059669 65%, white);
  color: #0f172a;
}

.map-listing-marker-count {
  display: inline-flex;
  min-width: 1.35rem;
  justify-content: center;
  padding: 0.05rem 0.3rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.12);
  font-size: 0.93rem; /* 0.62 × 1.5 */
  font-weight: 800;
}

.map-listing-marker-pill--selected .map-listing-marker-count {
  background: rgba(255, 255, 255, 0.28);
}

.map-listing-marker-pill--aggregate {
  opacity: 0.92;
  font-size: 1.12rem;
  padding: 0.42rem 0.68rem;
}

.map-listing-marker-cluster {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.15rem; /* 2.1 × 1.5 */
  height: 3.15rem;
  border-radius: 50%;
  background: color-mix(in srgb, #1d4ed8 65%, white);
  color: #fff;
  font-size: 1.17rem;
  font-weight: 800;
  box-shadow: 0 2px 10px rgba(29, 78, 216, 0.26);
  pointer-events: none;
}

.map-rtx-marker-pill {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.14rem;
  min-width: 3.4rem;
  min-height: 4.2rem;
  padding: 0.34rem 0.38rem;
  border-radius: 0.42rem;
  background: rgba(100, 116, 139, 0.48);
  border: 2.5px solid rgba(71, 85, 105, 0.72);
  color: rgba(255, 255, 255, 0.98);
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
  pointer-events: none;
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  box-sizing: border-box;
}

.map-rtx-marker-pill-tag {
  display: block;
  font-size: 0.92rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
}

.map-rtx-marker-pill-price {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
}

.map-rtx-marker-pill .map-listing-marker-count {
  min-width: 1.15rem;
  padding: 0.04rem 0.28rem;
  font-size: 0.78rem;
  font-weight: 900;
}

.map-rtx-marker-pill--apartment {
  background: rgba(59, 130, 246, 0.52);
  border-color: rgba(37, 99, 235, 0.58);
}

.map-rtx-marker-pill--row {
  background: rgba(20, 184, 166, 0.5);
  border-color: rgba(13, 148, 136, 0.58);
}

.map-rtx-marker-pill--detached {
  background: rgba(16, 185, 129, 0.48);
  border-color: rgba(5, 150, 105, 0.55);
}

.map-rtx-marker-pill--officetel {
  background: rgba(139, 92, 246, 0.5);
  border-color: rgba(124, 58, 237, 0.58);
}

.map-rtx-marker-pill--land {
  background: rgba(217, 119, 6, 0.5);
  border-color: rgba(180, 83, 9, 0.58);
}

.map-rtx-marker-pill--building {
  background: rgba(99, 102, 241, 0.5);
  border-color: rgba(79, 70, 229, 0.58);
}

.map-rtx-marker-pill--factory {
  background: rgba(120, 113, 108, 0.52);
  border-color: rgba(87, 83, 78, 0.58);
}

.map-rtx-marker-pill--commercial {
  background: rgba(249, 115, 22, 0.5);
  border-color: rgba(234, 88, 12, 0.58);
}

.map-rtx-marker-pill--hotel {
  background: rgba(236, 72, 153, 0.48);
  border-color: rgba(219, 39, 119, 0.55);
}

.map-rtx-marker-pill--redev {
  background: rgba(244, 63, 94, 0.48);
  border-color: rgba(225, 29, 72, 0.55);
}

.map-rtx-marker-pill--presale {
  background: rgba(6, 182, 212, 0.48);
  border-color: rgba(8, 145, 178, 0.55);
}

.map-rtx-marker-pill--default {
  background: rgba(100, 116, 139, 0.45);
  border-color: rgba(71, 85, 105, 0.52);
}

/* ── 실거래 wide 모드: 물건종류별 원형 클러스터 ─────────────────────── */
.map-rtx-type-cluster {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(100, 116, 139, 0.55);
  border: 2.5px solid rgba(71, 85, 105, 0.7);
  color: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.22);
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
  pointer-events: none;
  gap: 2px;
}

.map-rtx-type-cluster-label {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0.92;
  white-space: nowrap;
}

.map-rtx-type-cluster-count {
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1;
}

/* 물건종류별 색상 (pill과 동일 계열) */
.map-rtx-type-cluster.map-rtx-marker-pill--apartment {
  background: rgba(59, 130, 246, 0.62);
  border-color: rgba(37, 99, 235, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--row {
  background: rgba(20, 184, 166, 0.6);
  border-color: rgba(13, 148, 136, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--detached {
  background: rgba(16, 185, 129, 0.58);
  border-color: rgba(5, 150, 105, 0.70);
}
.map-rtx-type-cluster.map-rtx-marker-pill--officetel {
  background: rgba(139, 92, 246, 0.6);
  border-color: rgba(124, 58, 237, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--land {
  background: rgba(217, 119, 6, 0.6);
  border-color: rgba(180, 83, 9, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--building {
  background: rgba(99, 102, 241, 0.6);
  border-color: rgba(79, 70, 229, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--factory {
  background: rgba(120, 113, 108, 0.62);
  border-color: rgba(87, 83, 78, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--commercial {
  background: rgba(249, 115, 22, 0.6);
  border-color: rgba(234, 88, 12, 0.72);
}
.map-rtx-type-cluster.map-rtx-marker-pill--hotel {
  background: rgba(236, 72, 153, 0.58);
  border-color: rgba(219, 39, 119, 0.70);
}
.map-rtx-type-cluster.map-rtx-marker-pill--redev {
  background: rgba(244, 63, 94, 0.58);
  border-color: rgba(225, 29, 72, 0.70);
}
.map-rtx-type-cluster.map-rtx-marker-pill--presale {
  background: rgba(6, 182, 212, 0.58);
  border-color: rgba(8, 145, 178, 0.70);
}
.map-rtx-type-cluster.map-rtx-marker-pill--default {
  background: rgba(100, 116, 139, 0.55);
  border-color: rgba(71, 85, 105, 0.68);
}

/* ── 실거래 block 모드: 필지/단지별 개수 원형 버블 ──────────────────── */
.map-rtx-site-cluster {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(100, 116, 139, 0.52);
  border: 2px solid rgba(71, 85, 105, 0.65);
  color: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  pointer-events: none;
  gap: 1px;
}

.map-rtx-site-cluster-count {
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
}

.map-rtx-site-cluster-tag {
  font-size: 0.52rem;
  font-weight: 700;
  opacity: 0.82;
  line-height: 1;
}

/* block 모드 색상도 pill과 동일 */
.map-rtx-site-cluster.map-rtx-marker-pill--apartment {
  background: rgba(59, 130, 246, 0.55);
  border-color: rgba(37, 99, 235, 0.68);
}
.map-rtx-site-cluster.map-rtx-marker-pill--row {
  background: rgba(20, 184, 166, 0.52);
  border-color: rgba(13, 148, 136, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--detached {
  background: rgba(16, 185, 129, 0.50);
  border-color: rgba(5, 150, 105, 0.62);
}
.map-rtx-site-cluster.map-rtx-marker-pill--officetel {
  background: rgba(139, 92, 246, 0.52);
  border-color: rgba(124, 58, 237, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--land {
  background: rgba(217, 119, 6, 0.52);
  border-color: rgba(180, 83, 9, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--building {
  background: rgba(99, 102, 241, 0.52);
  border-color: rgba(79, 70, 229, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--factory {
  background: rgba(120, 113, 108, 0.54);
  border-color: rgba(87, 83, 78, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--commercial {
  background: rgba(249, 115, 22, 0.52);
  border-color: rgba(234, 88, 12, 0.65);
}
.map-rtx-site-cluster.map-rtx-marker-pill--hotel {
  background: rgba(236, 72, 153, 0.50);
  border-color: rgba(219, 39, 119, 0.62);
}
.map-rtx-site-cluster.map-rtx-marker-pill--redev {
  background: rgba(244, 63, 94, 0.50);
  border-color: rgba(225, 29, 72, 0.62);
}
.map-rtx-site-cluster.map-rtx-marker-pill--presale {
  background: rgba(6, 182, 212, 0.50);
  border-color: rgba(8, 145, 178, 0.62);
}
.map-rtx-site-cluster.map-rtx-marker-pill--default {
  background: rgba(100, 116, 139, 0.50);
  border-color: rgba(71, 85, 105, 0.62);
}

/* 지도 줌·기울기 컨트롤 — 2배 대비 20% 축소(scale 1.6), 레이어 버튼과 분리 */
.map-viewport-root .maplibregl-ctrl-top-right {
  top: 10px;
  right: 10px;
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  pointer-events: auto;
}

.map-viewport-root .maplibregl-ctrl-group {
  transform: scale(1.6);
  transform-origin: top right;
  margin: 0 !important;
  float: none !important;
  background-color: #fff;
  pointer-events: auto;
}

.map-viewport-root .maplibregl-ctrl-group button {
  width: 29px;
  height: 29px;
  background-color: #fff;
}


/* ── P1 master-detail listings ── */
.role-master-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  grid-gap: 1rem;
  gap: 1rem;
  align-items: start;
}
.role-master-detail-list {
  min-width: 0;
}
.role-master-detail-panel {
  position: -webkit-sticky;
  position: sticky;
  top: 1rem;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.role-master-detail-panel--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 12rem;
  color: #64748b;
}
.role-master-detail-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.role-master-detail-kicker {
  margin: 0 0 0.2rem;
  color: #2563eb;
  font-weight: 600;
}
.role-master-detail-title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35;
}
.role-master-detail-fields {
  margin: 0;
  display: grid;
  grid-gap: 0.55rem;
  gap: 0.55rem;
}
.role-master-detail-fields > div {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  grid-gap: 0.5rem;
  gap: 0.5rem;
  font-size: 0.88rem;
}
.role-master-detail-fields dt {
  margin: 0;
  color: #64748b;
}
.role-master-detail-fields dd {
  margin: 0;
  color: #0f172a;
  word-break: break-word;
}
.role-master-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e2e8f0;
}
.role-master-detail-row-active td,
.admin-listing-card.role-master-detail-row-active {
  background: #eff6ff;
}
.admin-listings-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.admin-listings-section-head .building-detail-section-title {
  margin: 0;
}

/* ── P1 inquiries inbox ── */
.inquiry-inbox-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
}
.inquiry-inbox-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.inquiry-inbox-table {
  font-size: 0.9rem;
}
.inquiry-message-cell {
  max-width: 18rem;
  white-space: pre-wrap;
  word-break: break-word;
}
.inquiry-status-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}
.inquiry-status-new {
  background: #fef3c7;
  color: #b45309;
}
.inquiry-status-progress {
  background: #dbeafe;
  color: #1d4ed8;
}
.inquiry-status-done {
  background: #dcfce7;
  color: #15803d;
}

.verification-status-badge {
  display: inline-block;
  margin-top: 0.35rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}
.verification-status-unverified {
  background: #f3f4f6;
  color: #4b5563;
}
.verification-status-pending {
  background: #fef3c7;
  color: #b45309;
}
.verification-status-verified {
  background: #dbeafe;
  color: #1d4ed8;
}
.verification-status-rejected {
  background: #fee2e2;
  color: #b91c1c;
}

.broker-tools-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.broker-tools-embed {
  width: 100%;
  min-height: 70vh;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}
.broker-tools-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.broker-data-expand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  grid-gap: 0.75rem;
  gap: 0.75rem;
}
.broker-data-expand-card {
  opacity: 0.85;
}
.broker-data-expand-card .meta {
  margin-top: 0.35rem;
}
/* agency mini-home layout → components/agency/agency-mini-home.module.css */
.broker-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  grid-gap: 0.5rem;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.broker-kpi-chip {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.5rem 0.65rem;
}
.broker-kpi-chip strong {
  display: block;
  font-size: 1.05rem;
}
.broker-share-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.5rem;
}
.broker-share-url {
  flex: 1 1;
  min-width: 12rem;
  font-size: 0.85rem;
}

@media (max-width: 1100px) {
  .role-master-detail {
    grid-template-columns: 1fr;
  }
  .role-master-detail-panel {
    position: static;
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/property-type-nav.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************/
.property-type-nav_propertyNav__g9K2B {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.85rem;
  padding: 0.65rem 0.85rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  flex-shrink: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.property-type-nav_propertyNavItem__rS62N {
  flex: 0 0 auto;
  border: none;
  background: transparent;
  padding: 0.2rem 0;
  font: inherit;
  font-size: 1.06rem;
  font-weight: 500;
  color: #0f172a;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
}

.property-type-nav_propertyNavItem__rS62N:hover {
  color: #4267d4;
}

.property-type-nav_propertyNavItemActive__aZ50E {
  color: #4267d4;
  font-weight: 700;
}

/* 칩 버튼 — 지도검색·매물보기 상단 필터 행 (신축 버튼과 동일 톤) */
.property-type-nav_propertyNavChips__UthxV {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 1;
  min-width: 0;
  overflow: visible;
}

.property-type-nav_propertyNavChips__UthxV:has([aria-expanded="true"]),
.property-type-nav_propertyNavChips__UthxV:has(.property-type-nav_dealKindRow__ZNOQA) {
  flex-wrap: wrap;
}

.property-type-nav_propertyNavChips__UthxV .property-type-nav_propertyNavItem__rS62N {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.38rem 0.65rem;
  min-height: 38px;
  background: #fff;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  cursor: pointer;
  white-space: nowrap;
  -webkit-font-smoothing: antialiased;
}

.property-type-nav_propertyNavChips__UthxV .property-type-nav_propertyNavItem__rS62N:hover {
  border-color: #93c5fd;
  color: #0f172a;
}

.property-type-nav_propertyNavChips__UthxV .property-type-nav_propertyNavItemActive__aZ50E {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
  font-weight: 800;
}

.property-type-nav_propertyNavInline__VcyCc {
  flex: 1 1;
  min-width: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  gap: 0.35rem 1.15rem;
  overflow-x: auto;
}

.property-type-nav_propertyNavInline__VcyCc .property-type-nav_propertyNavItem__rS62N {
  font-size: 0.98rem;
  font-weight: 500;
}

.property-type-nav_propertyNavCompact__0nY7n {
  padding: 0.35rem 0.5rem;
  gap: 0.3rem 0.65rem;
  border: none;
  background: transparent;
  border-radius: 0;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.property-type-nav_propertyNavCompact__0nY7n .property-type-nav_propertyNavItem__rS62N {
  font-size: 0.88rem;
}

.property-type-nav_propertyNavCompactChips__7kprO {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  overflow: visible;
  width: 100%;
  padding: 0.35rem 0.5rem;
}

.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_propertyNavItem__rS62N {
  display: inline-flex;
  align-items: center;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  min-height: 34px;
  background: #fff;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  -webkit-font-smoothing: antialiased;
}

.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_propertyNavItemActive__aZ50E {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
}

.property-type-nav_propertyNavSidebarGrid__Mc7sS {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 0.35rem;
  gap: 0.35rem;
  width: 100%;
}

.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_propertyNavItem__rS62N {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.34rem 0.45rem;
  min-height: 34px;
  background: #fff;
  font-size: 0.94rem;
  font-weight: 800;
  color: #0f172a;
  text-align: center;
  line-height: 1.2;
  white-space: normal;
}

.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_propertyNavItem__rS62N:hover {
  border-color: #93c5fd;
}

.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_propertyNavItemActive__aZ50E {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
}

/* 중개사 미니홈 — 좌측 물건종류: 선택=청색, 비선택=흰색 */
.property-type-nav_propertyNavSidebarStack__FMhQ2 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  width: 100%;
}

.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_propertyNavItem__rS62N {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 1.5px solid #4a69d6;
  border-radius: 10px;
  padding: 0.48rem 0.55rem;
  min-height: 38px;
  background: #fff;
  font-size: 0.88rem;
  font-weight: 800;
  color: #4a69d6;
  text-align: center;
  line-height: 1.25;
  white-space: normal;
  box-sizing: border-box;
}

.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_propertyNavItem__rS62N:hover {
  background: #eff4ff;
}

.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_propertyNavItemActive__aZ50E {
  background: #4a69d6;
  border-color: #4a69d6;
  color: #fff;
  box-shadow: none;
}

.property-type-nav_stackRow__vIFDe {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4.6rem;
  grid-gap: 0.3rem;
  gap: 0.3rem;
  align-items: stretch;
}

.property-type-nav_stackRow__vIFDe .property-type-nav_propertyNavItem__rS62N {
  min-width: 0;
}

.property-type-nav_stackRowActive__KL5g5 .property-type-nav_txKindSelect__22Qqb {
  border-color: #93c5fd;
}

.property-type-nav_txKindSelect__22Qqb {
  width: 100%;
  min-height: 36px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.2rem 0.2rem;
  background: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0f172a;
  cursor: pointer;
}

.property-type-nav_txKindSelect__22Qqb:focus {
  outline: 2px solid #93c5fd;
  outline-offset: 1px;
}

.property-type-nav_propertyNavItemHidden__V4bLS {
  opacity: 0.42;
  border-style: dashed !important;
}

.property-type-nav_propertyNavChips__UthxV .property-type-nav_propertyNavItemHidden__V4bLS.property-type-nav_propertyNavItemActive__aZ50E,
.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_propertyNavItemHidden__V4bLS.property-type-nav_propertyNavItemActive__aZ50E,
.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_propertyNavItemHidden__V4bLS.property-type-nav_propertyNavItemActive__aZ50E,
.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_propertyNavItemHidden__V4bLS.property-type-nav_propertyNavItemActive__aZ50E {
  background: #94a3b8;
  color: #fff;
  box-shadow: none;
}

.property-type-nav_moreBtnOpen__ASXcR {
  color: #dc2626;
}

.property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_moreToggleBtn___0FUA:hover,
.property-type-nav_propertyNavChips__UthxV .property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_propertyNavChips__UthxV .property-type-nav_moreToggleBtn___0FUA:hover,
.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_moreToggleBtn___0FUA:hover,
.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_moreToggleBtn___0FUA:hover,
.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_moreToggleBtn___0FUA:hover,
.property-type-nav_propertyNavInline__VcyCc .property-type-nav_moreToggleBtn___0FUA,
.property-type-nav_propertyNav__g9K2B .property-type-nav_moreToggleBtn___0FUA {
  color: #dc2626;
  font-weight: 500;
}

.property-type-nav_propertyNavChips__UthxV .property-type-nav_moreToggleBtn___0FUA.property-type-nav_moreBtnOpen__ASXcR,
.property-type-nav_propertyNavCompactChips__7kprO .property-type-nav_moreToggleBtn___0FUA.property-type-nav_moreBtnOpen__ASXcR,
.property-type-nav_propertyNavSidebarGrid__Mc7sS .property-type-nav_moreToggleBtn___0FUA.property-type-nav_moreBtnOpen__ASXcR,
.property-type-nav_propertyNavSidebarStack__FMhQ2 .property-type-nav_moreToggleBtn___0FUA.property-type-nav_moreBtnOpen__ASXcR {
  border-color: #fca5a5;
  background: #fff;
  color: #dc2626;
}

.property-type-nav_dealKindRow__ZNOQA {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  flex-shrink: 0;
  margin-left: 0.15rem;
}

.property-type-nav_dealKindChip__81fRT {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-family: inherit;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  padding: 0.28rem 0.72rem;
  min-height: 34px;
  background: #fff;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  cursor: pointer;
  white-space: nowrap;
  -webkit-font-smoothing: antialiased;
}

.property-type-nav_dealKindChip__81fRT:hover {
  border-color: #93c5fd;
  color: #0f172a;
}

.property-type-nav_dealKindChipOn__VKalG {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
  font-weight: 800;
}

@media (max-width: 420px) {
  .property-type-nav_propertyNavCompact__0nY7n {
    gap: 0.25rem 0.5rem;
  }

  .property-type-nav_propertyNavCompact__0nY7n .property-type-nav_propertyNavItem__rS62N {
    font-size: 0.8rem;
  }
}

@media (min-width: 768px) {
  .property-type-nav_propertyNav__g9K2B {
    padding: 0.75rem 1rem;
    gap: 0.4rem 1rem;
  }

  .property-type-nav_propertyNavItem__rS62N {
    font-size: 1.1rem;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/site-section-subnav.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
.site-section-subnav_subnav__FiJL7 {
  position: -webkit-sticky;
  position: sticky;
  top: var(--site-header-h, 64px);
  z-index: 900;
  flex-shrink: 0;
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
  overflow: hidden;
}

/* PC·큰 모바일: 페이지 제목 옆 인라인 노출 — 별도 서브내비 숨김 */
.site-section-subnav_subnavCompactOnly__iUols {
  display: block;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

@media (min-width: 1024px) {
  .site-section-subnav_subnavCompactOnly__iUols {
    display: none;
  }
}

@media (min-width: 1024px) {
  .site-section-subnav_subnav__FiJL7 {
    padding: 0.5rem 1rem;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/map/map-search-top-filters.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
.map-search-top-filters_bar__ahnao {
  flex-shrink: 0;
  position: relative;
  z-index: 500;
  isolation: isolate;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 0.5rem 0.75rem;
  font-weight: 800;
  pointer-events: auto;
}

/** 지도검색 좌측 사이드바 — 상단 가로 바 제거해 지도 세로 확보 */
.map-search-top-filters_barSidebar__5kln5 {
  z-index: 1;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 0.45rem;
  background: #fff;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_mainRow__bP_v0 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  min-width: 0;
  width: 100%;
}

/** 1행: 시·구·동 + 주소란 + 검색 — 한 줄 (검색 버튼이 잘리지 않게) */
.map-search-top-filters_sidebarAddressRow__5QBMD {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.2rem;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.map-search-top-filters_sidebarAddressRow__5QBMD select {
  /* 전역 .regionSelect 등의 min-width(5.5~6.5rem) 무력화 */
  flex: 0 1 4.7rem;
  min-width: 0 !important;
  width: 4.7rem;
  max-width: 5rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.32rem 0.12rem;
  font-size: 0.884rem; /* 0.68 × 1.3 */
  font-weight: 800;
  min-height: 42px;
  background: #fff;
  color: #0f172a;
}

.map-search-top-filters_sidebarAddressRow__5QBMD .map-search-top-filters_sigunguSelect__wAetS {
  flex-basis: 5.2rem;
  width: 5.2rem;
  max-width: 5.5rem;
}

.map-search-top-filters_sidebarAddressRow__5QBMD .map-search-top-filters_dongSelect__nIFUg {
  flex-basis: 5.7rem;
  width: 5.7rem;
  max-width: 6rem;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_queryInput__XmvQN {
  flex: 1 1 !important;
  width: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0.32rem 0.35rem;
  font-size: 0.884rem;
  min-height: 42px;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_queryInputWrap__UA3_w {
  flex: 1 1 !important;
  width: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_queryInputWrap__UA3_w .map-search-top-filters_queryInput__XmvQN {
  width: 100% !important;
  flex: none !important;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_searchBtn__T6oxj {
  flex: 0 0 auto;
  flex-shrink: 0;
  padding: 0 0.6rem;
  min-height: 42px;
  font-size: 0.936rem; /* 0.72 × 1.3 */
  white-space: nowrap;
}

/** 2행: 직거래·실거래 + 기간 슬라이더 — 한 줄 */
.map-search-top-filters_sidebarRtxRow__M0aGs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
  width: 100%;
  padding-top: 0.35rem;
  border-top: 1px solid #f1f5f9;
}

.map-search-top-filters_sidebarRtxRow__M0aGs .map-search-top-filters_directDealBtn__g9QEF {
  flex: 0 0 auto;
  width: auto;
  align-self: center;
  padding: 0.25rem 0.4rem;
  min-height: 28px;
  font-size: 0.68rem;
  border-radius: 999px;
}

@media (min-width: 1024px) {
  .map-search-top-filters_sidebarRtxRow__M0aGs {
    display: none;
  }
}

/* 가로바용 min-width(29rem) 무력화 — 트랙이 남는 폭만 사용 */
.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriod__BoK1Q {
  display: flex !important;
  flex: 1 1 !important;
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  margin: 0 !important;
  gap: 0.2rem;
  align-items: center;
  overflow: hidden;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodEdge__Upu9Y {
  flex: 0 0 auto;
  font-size: 0.6rem;
  margin: 0;
  padding-bottom: 0.45rem;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodTrackWrap__ZbRUN {
  position: relative;
  flex: 1 1 !important;
  min-width: 0 !important;
  width: auto !important;
  height: 2.4rem;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  overflow: visible;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodTrack__00HZu {
  left: 0;
  right: 0;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodMarkLabel__jV_qL {
  font-size: 0.52rem;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodThumbYear__h0j3y {
  font-size: 0.62rem;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodRange__Xl749 {
  width: 100%;
  height: 1.5rem;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodRange__Xl749::-webkit-slider-thumb {
  width: 14px;
  height: 22px;
}

.map-search-top-filters_barSidebar__5kln5 .map-search-top-filters_rtxPeriodRange__Xl749::-moz-range-thumb {
  width: 14px;
  height: 22px;
}

.map-search-top-filters_mainRow__bP_v0 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  overflow: visible;
}

.map-search-top-filters_addressRow__d543F {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  justify-content: flex-start;
}

.map-search-top-filters_addressRow__d543F select {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.45rem 0.55rem;
  font-size: 0.88rem;
  font-weight: 800;
  min-height: 38px;
  background: #fff;
  color: #0f172a;
}

.map-search-top-filters_regionSelect__NNbE2 {
  min-width: 5.5rem;
}

.map-search-top-filters_sigunguSelect__wAetS {
  min-width: 6.5rem;
}

.map-search-top-filters_dongSelect__nIFUg {
  min-width: 6.5rem;
}

.map-search-top-filters_queryInput__XmvQN {
  flex: 0 0 auto;
  width: 11.25rem;
  max-width: 30%;
  min-width: 8.25rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.45rem 0.55rem;
  font-size: 0.82rem;
  font-weight: 800;
  min-height: 38px;
}

.map-search-top-filters_queryInputWrap__UA3_w {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: 11.25rem;
  max-width: 30%;
  min-width: 8.25rem;
}

.map-search-top-filters_queryInputWrap__UA3_w .map-search-top-filters_queryInput__XmvQN {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 1.85rem;
}

.map-search-top-filters_queryClearBtn__eglof {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #64748b;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.map-search-top-filters_queryClearBtn__eglof:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.map-search-top-filters_queryInput__XmvQN::placeholder {
  font-weight: 400;
  color: #94a3b8;
}

.map-search-top-filters_searchBtn__T6oxj {
  border: 0;
  border-radius: 8px;
  min-height: 38px;
  padding: 0 0.85rem;
  background: #2563eb;
  color: #fff;
  font-size: 0.88rem;
  font-weight: 700;
  flex-shrink: 0;
}

.map-search-top-filters_searchBtn__T6oxj:disabled {
  opacity: 0.65;
  cursor: wait;
}

.map-search-top-filters_directDealBtn__g9QEF {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  color: #0f172a;
  min-height: 34px;
  cursor: pointer;
  white-space: nowrap;
}

.map-search-top-filters_directDealBtnActive__gws_7 {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
}

.map-search-top-filters_rtxPeriod__BoK1Q {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  /* 상단 가로 바용. 사이드바는 .barSidebar .rtxPeriod 에서 min-width 0으로 덮음 */
  flex: 1 1 27rem;
  min-width: 18rem;
  max-width: 96.5rem;
  margin-top: -0.45rem;
  margin-bottom: -0.2rem;
  padding-bottom: 0;
}

.map-search-top-filters_rtxPeriodLabel__6GL_H {
  flex-shrink: 0;
  font-size: 1.014rem;
  font-weight: 800;
  color: #334155;
  white-space: nowrap;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.28rem 0.55rem;
  background: #fff;
  line-height: 1.2;
}

.map-search-top-filters_rtxPeriodEdge__Upu9Y {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
  /* 트랙 중심에 맞춤 (아래 눈금 공간 보정) */
  margin-bottom: 0.15rem;
  padding-bottom: 0;
}

.map-search-top-filters_rtxPeriodTrackWrap__ZbRUN {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  height: 3.3rem;
  display: flex;
  align-items: center;
  padding-top: 0.95rem;
  padding-bottom: 0.95rem;
  box-sizing: border-box;
}

.map-search-top-filters_rtxPeriodThumbYear__h0j3y {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 0.72rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
  z-index: 2;
}

.map-search-top-filters_rtxPeriodTrack__00HZu {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  /* 두께 50% 확대 (4px → 6px) */
  height: 6px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
  pointer-events: none;
}

.map-search-top-filters_rtxPeriodTrackFill__4A1Oa {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #2563eb 0%, #1e293b 100%);
}

.map-search-top-filters_rtxPeriodMarks__bymBE {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1;
}

.map-search-top-filters_rtxPeriodMark__sqJpn {
  position: absolute;
  top: 50%;
  width: 0;
  height: 0;
}

.map-search-top-filters_rtxPeriodMarkTick__HQr6K {
  position: absolute;
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
  width: 2px;
  height: 12px;
  border-radius: 1px;
  background: #64748b;
  opacity: 0.85;
}

.map-search-top-filters_rtxPeriodMarkLabel__jV_qL {
  position: absolute;
  left: 0;
  top: 10px;
  transform: translateX(-50%);
  font-size: 0.62rem;
  font-weight: 700;
  color: #475569;
  white-space: nowrap;
  line-height: 1;
}

.map-search-top-filters_rtxPeriodRange__Xl749 {
  position: relative;
  z-index: 3;
  width: 100%;
  margin: 0;
  height: 1.875rem;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

.map-search-top-filters_rtxPeriodRange__Xl749::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 21px;
  height: 33px;
  border-radius: 5px;
  border: 1px solid #cbd5e1;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.15);
  cursor: pointer;
}

.map-search-top-filters_rtxPeriodRange__Xl749::-moz-range-thumb {
  width: 21px;
  height: 33px;
  border-radius: 5px;
  border: 1px solid #cbd5e1;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.15);
  cursor: pointer;
}

.map-search-top-filters_rtxPeriodRange__Xl749::-webkit-slider-runnable-track {
  height: 6px;
  background: transparent;
}

.map-search-top-filters_rtxPeriodRange__Xl749::-moz-range-track {
  height: 6px;
  background: transparent;
}

.map-search-top-filters_rtxPeriodLg__jW4hW {
  gap: 0.5rem;
  min-width: 0;
  max-width: none;
  margin: 0;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodEdge__Upu9Y {
  font-size: 0.92rem;
  padding-bottom: 0.7rem;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodTrackWrap__ZbRUN {
  height: 4.4rem;
  padding-top: 1.15rem;
  padding-bottom: 1.15rem;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodThumbYear__h0j3y {
  font-size: 0.95rem;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodTrack__00HZu {
  height: 10px;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodMarkTick__HQr6K {
  height: 18px;
  width: 3px;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodMarkLabel__jV_qL {
  font-size: 0.85rem;
  top: 14px;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodRange__Xl749 {
  height: 2.4rem;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodRange__Xl749::-webkit-slider-thumb {
  width: 42px;
  height: 52px;
  border-radius: 8px;
}

.map-search-top-filters_rtxPeriodLg__jW4hW .map-search-top-filters_rtxPeriodRange__Xl749::-moz-range-thumb {
  width: 42px;
  height: 52px;
  border-radius: 8px;
}

/** 최상단 헤더 — 음수 마진 제거, 연도 라벨 상단 여백 */
.map-search-top-filters_rtxPeriodHeader__7m0YM {
  margin-top: 0;
  margin-bottom: 0;
  min-width: 0;
  max-width: none;
  flex: 1 1 auto;
  gap: 0.28rem;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodEdge__Upu9Y {
  font-size: 0.68rem;
  padding-bottom: 0.45rem;
  margin-bottom: 0;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodEdgeNow__DtGjm {
  font-size: 0.884rem; /* 0.68 × 1.3 */
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodTrackWrap__ZbRUN {
  height: 2.85rem;
  padding-top: 0.95rem;
  padding-bottom: 0.7rem;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodThumbYear__h0j3y {
  top: 2px;
  font-size: 0.7rem;
  line-height: 1;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodTrack__00HZu {
  height: 5px;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodMarkTick__HQr6K {
  height: 8px;
  width: 1px;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodMarkLabel__jV_qL {
  font-size: 0.55rem;
  top: 8px;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodRange__Xl749 {
  height: 1.45rem;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodRange__Xl749::-webkit-slider-thumb {
  width: 18px;
  height: 22px;
  border-radius: 5px;
}

.map-search-top-filters_rtxPeriodHeader__7m0YM .map-search-top-filters_rtxPeriodRange__Xl749::-moz-range-thumb {
  width: 18px;
  height: 22px;
  border-radius: 5px;
}

.map-search-top-filters_filterRow__gBlNC {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.15rem;
  width: 100%;
  min-width: 0;
  overflow: visible;
  pointer-events: auto;
  position: relative;
  z-index: 1;
}

.map-search-top-filters_dropdownWrap__72OVW {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
  width: auto;
  pointer-events: auto;
}

.map-search-top-filters_dropdownWrapWide__Fbugi {
  min-width: 0;
  width: auto;
}

.map-search-top-filters_dropdownBtn__8543A {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: auto;
  max-width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  background: #fff;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  min-height: 34px;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  white-space: nowrap;
  -webkit-font-smoothing: antialiased;
}

.map-search-top-filters_filterRowHeaderInline__3tDKB {
  justify-content: flex-start;
  flex-wrap: nowrap;
  flex-shrink: 0;
  gap: 0.15rem;
  max-width: 100%;
}

.map-search-top-filters_filterRowHeaderInlineExpanded__bFXrA {
  flex-wrap: wrap;
}

.map-search-top-filters_filterRowChipSize__UQLfX {
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
}

.map-search-top-filters_filterRowChipSize__UQLfX .map-search-top-filters_dropdownBtn__8543A {
  min-height: unset;
  padding: 0.38rem 0.75rem;
  font-size: 0.82rem;
  line-height: 1.2;
  font-weight: 500;
  border-radius: 999px;
}

.map-search-top-filters_headerInlineWrap__8rkAr {
  flex: 0 0 auto;
  min-width: 0;
  overflow: visible;
}

.map-search-top-filters_filterRowHeaderInline__3tDKB .map-search-top-filters_dropdownWrap__72OVW,
.map-search-top-filters_filterRowHeaderInline__3tDKB .map-search-top-filters_dropdownWrapWide__Fbugi {
  width: auto;
  min-width: 0;
}

.map-search-top-filters_filterRowHeaderInline__3tDKB .map-search-top-filters_dropdownBtn__8543A {
  width: auto;
}

.map-search-top-filters_filterRowHeaderInline__3tDKB .map-search-top-filters_dropdownSummary__FqgE9 {
  display: none;
}

.map-search-top-filters_filterMoreBtn__pzg0B {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid #fca5a5;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  background: #fff;
  color: #dc2626;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  cursor: pointer;
  -webkit-font-smoothing: antialiased;
}

.map-search-top-filters_filterMoreBtn__pzg0B:hover {
  background: #fef2f2;
  color: #b91c1c;
}

.map-search-top-filters_filterSearchBtn__glU4_ {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid #2563eb;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  background: #fff;
  color: #2563eb;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  min-height: 34px;
  cursor: pointer;
  white-space: nowrap;
  touch-action: manipulation;
  -webkit-font-smoothing: antialiased;
}

.map-search-top-filters_filterSearchBtn__glU4_:hover:not(:disabled) {
  background: #eff6ff;
}

.map-search-top-filters_filterSearchBtn__glU4_:disabled {
  opacity: 0.65;
  cursor: default;
}

.map-search-top-filters_filterSearchBtnFull__7lpTo {
  width: 100%;
  min-height: 38px;
}

.map-search-top-filters_filterResetAllBtn__AbqiW {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 0;
  border-radius: 8px;
  padding: 0.32rem 0.55rem;
  background: #2563eb;
  color: #fff;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 500;
  min-height: 34px;
  cursor: pointer;
  white-space: nowrap;
  touch-action: manipulation;
  -webkit-font-smoothing: antialiased;
}

.map-search-top-filters_filterResetAllBtn__AbqiW:hover {
  background: #1d4ed8;
}

.map-search-top-filters_filterRowEmbedded__OheuB .map-search-top-filters_filterResetAllBtn__AbqiW {
  width: 100%;
  min-height: 38px;
}

.map-search-top-filters_filterRowHeaderInline__3tDKB .map-search-top-filters_filterResetAllBtn__AbqiW,
.map-search-top-filters_filterRow__gBlNC .map-search-top-filters_filterResetAllBtn__AbqiW {
  width: auto;
}

.map-search-top-filters_embeddedWrap__ESfRD {
  position: relative;
  z-index: 1;
  margin-top: 0.5rem;
  overflow: visible;
}

.map-search-top-filters_filterRowEmbedded__OheuB {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-gap: 0.35rem;
  gap: 0.35rem;
  width: 100%;
}

.map-search-top-filters_filterRowEmbedded__OheuB .map-search-top-filters_dropdownWrap__72OVW,
.map-search-top-filters_filterRowEmbedded__OheuB .map-search-top-filters_dropdownWrapWide__Fbugi {
  width: 100%;
  min-width: 0;
}

.map-search-top-filters_dropdownBtnActive__dvoJ3 {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
}

.map-search-top-filters_dropdownBtnOpen__iu8NN {
  border-color: #4267d4;
  box-shadow: 0 0 0 2px rgba(66, 103, 212, 0.2);
}

.map-search-top-filters_dropdownBtnOpen__iu8NN:not(.map-search-top-filters_dropdownBtnActive__dvoJ3) {
  background: #fff;
  color: #0f172a;
}

.map-search-top-filters_dropdownSummary__FqgE9 {
  font-weight: 500;
  color: #64748b;
  font-size: 0.78rem;
}

.map-search-top-filters_dropdownLabel__zKkJK {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
}

.map-search-top-filters_dropdownUnitHint__L_tBs {
  font-size: 0.68rem;
  font-weight: 500;
  color: #94a3b8;
}

.map-search-top-filters_dropdownPanel__ztriu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: auto;
  z-index: 600;
  pointer-events: auto;
  width: max-content;
  min-width: 0;
  max-width: min(560px, calc(100vw - 2rem));
  padding: 0.45rem 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

.map-search-top-filters_dropdownPanelOverlay__U5bqk {
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
  width: max-content;
}

.map-search-top-filters_dropdownPanelWide__E_XeF {
  min-width: min(280px, calc(100vw - 2rem));
  max-width: min(560px, calc(100vw - 2rem));
}

.map-search-top-filters_dropdownPanelAlignRight__k5mir {
  left: auto;
  right: 0;
}

.map-search-top-filters_dropdownPanelAlignCenter__waL9N {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/** 면적 드롭다운 본문 — 칩·입력·푸터 2배 */
.map-search-top-filters_dropdownPanelScale2__B5yck {
  padding: 0.9rem 1rem;
  border-radius: 20px;
  min-width: min(560px, calc(100vw - 2rem));
  max-width: min(960px, calc(100vw - 2rem));
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelLine__EWe8T {
  gap: 0.3rem;
  flex-wrap: nowrap;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelBodyStack__Hlyao {
  gap: 0.3rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelFooter__h3_Oa {
  margin-top: 0.5rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelResetBtn__yZ3Fm,
.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelCloseBtn__S0Rmo {
  padding: 0.64rem 1.3rem;
  font-size: 1.52rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelResetBtn__yZ3Fm {
  border-radius: 12px 0 0 12px;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelCloseBtn__S0Rmo {
  border-radius: 0 12px 12px 0;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_chipGrid__NFoKD,
.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_chipGridInline__Zujbg {
  gap: 0.3rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_chip__fbCsX {
  padding: 0.56rem 1.24rem;
  font-size: 1.56rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeLabel__wG1I5 {
  font-size: 1.52rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeBlockInline__kJJQO {
  gap: 0.3rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeInputs__e2loN {
  gap: 0.3rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeInputs__e2loN input {
  width: 11.7rem;
  border-radius: 12px;
  padding: 0.72rem 1.04rem;
  font-size: 2.02rem;
  min-height: 4rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeTrack__CprkE {
  flex: 0 0 48px;
  height: 8px;
  min-width: 48px;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeBlockRow__bUSlI .map-search-top-filters_rangeLabel__wG1I5,
.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeBlockRowCenter__3Op1C .map-search-top-filters_rangeLabel__wG1I5 {
  min-width: 6.5rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeBlockRow__bUSlI .map-search-top-filters_rangeTrack__CprkE,
.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeBlockRowCenter__3Op1C .map-search-top-filters_rangeTrack__CprkE {
  flex-basis: 48px;
  min-width: 36px;
  height: 8px;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_rangeInputsPrice__o2gbr input {
  width: 14rem;
  padding: 0.72rem 1.04rem;
  font-size: 2.02rem;
  min-height: 4rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelFooterHint__zbHLy {
  font-size: 1.44rem;
}

.map-search-top-filters_dropdownPanelScale2__B5yck .map-search-top-filters_panelTitle__QI8ax {
  font-size: 1.56rem;
}

.map-search-top-filters_panelStack__VoqQk {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.map-search-top-filters_panelBodyStack__Hlyao {
  display: flex;
  flex-direction: column;
  gap: 0;
  align-items: stretch;
  min-width: 0;
}

.map-search-top-filters_panelBodyStackPrice__u5ot5 {
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0;
}

.map-search-top-filters_panelLine__EWe8T {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.15rem;
  min-width: 0;
}

.map-search-top-filters_panelRowBody__bnrPi {
  display: block;
  min-width: 0;
}

.map-search-top-filters_panelFooter__h3_Oa {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  flex-wrap: nowrap;
  margin-top: 0.25rem;
}

.map-search-top-filters_panelFooterEnd__tSRSN {
  justify-content: flex-end;
  width: 100%;
}

.map-search-top-filters_panelFooterHint__zbHLy {
  font-size: 0.72rem;
  font-weight: 600;
  color: #94a3b8;
  white-space: nowrap;
  margin-right: 0.15rem;
  order: 0;
}

.map-search-top-filters_panelFooterBtns__9U7QX {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-shrink: 0;
  order: 1;
}

.map-search-top-filters_panelResetBtn__yZ3Fm {
  flex-shrink: 0;
  border: 0;
  border-radius: 6px 0 0 6px;
  padding: 0.32rem 0.65rem;
  font-size: 0.76rem;
  font-weight: 600;
  background: #2563eb;
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
}

.map-search-top-filters_panelResetBtn__yZ3Fm:hover {
  background: #1d4ed8;
}

.map-search-top-filters_panelCloseBtn__S0Rmo {
  flex-shrink: 0;
  border: 0;
  border-radius: 0 6px 6px 0;
  padding: 0.32rem 0.65rem;
  font-size: 0.76rem;
  font-weight: 600;
  background: #64748b;
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
}

.map-search-top-filters_panelCloseBtn__S0Rmo:hover {
  background: #475569;
}

.map-search-top-filters_panelTitle__QI8ax {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
}

.map-search-top-filters_chipGrid__NFoKD {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
}

.map-search-top-filters_chipGridInline__Zujbg {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  min-width: 0;
}

.map-search-top-filters_chip__fbCsX {
  border: 1px solid #d1d5db;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
  font-size: 0.78rem;
  font-weight: 700;
  background: #f8fafc;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}

.map-search-top-filters_chipActive__duvV6 {
  border-color: #4267d4;
  background: #4267d4;
  color: #fff;
  font-weight: 600;
}

.map-search-top-filters_rangeBlock__oomEZ {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-bottom: 0;
}

.map-search-top-filters_rangeBlockInline__kJJQO {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
  margin-bottom: 0;
}

.map-search-top-filters_rangeBlockRow__bUSlI {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
}

.map-search-top-filters_rangeBlockRow__bUSlI .map-search-top-filters_rangeLabel__wG1I5 {
  flex: 0 0 auto;
  min-width: 3.25rem;
}

.map-search-top-filters_rangeBlockRow__bUSlI .map-search-top-filters_rangeInputs__e2loN {
  flex: 1 1 auto;
  min-width: 0;
  gap: 0.15rem;
}

.map-search-top-filters_rangeBlockRow__bUSlI .map-search-top-filters_rangeTrack__CprkE {
  flex: 0 0 36px;
  min-width: 24px;
}

.map-search-top-filters_rangeBlockRowCenter__3Op1C {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
}

.map-search-top-filters_rangeBlockRowCenter__3Op1C .map-search-top-filters_rangeLabel__wG1I5 {
  flex: 0 0 auto;
  min-width: 3.5rem;
}

.map-search-top-filters_rangeBlockRowCenter__3Op1C .map-search-top-filters_rangeInputs__e2loN {
  flex: 0 0 auto;
  justify-content: center;
}

.map-search-top-filters_rangeBlockRowCenter__3Op1C .map-search-top-filters_rangeTrack__CprkE {
  flex: 0 0 44px;
  min-width: 28px;
}

.map-search-top-filters_rangeInputsPrice__o2gbr input {
  width: 7.02rem;
  padding: 0.43rem 0.62rem;
  font-size: 1.21rem;
  min-height: 2.4rem;
}

.map-search-top-filters_rangeBlockInline__kJJQO .map-search-top-filters_rangeLabel__wG1I5 {
  flex-shrink: 0;
}

.map-search-top-filters_rangeBlockInline__kJJQO .map-search-top-filters_rangeInputs__e2loN {
  flex-shrink: 0;
}

.map-search-top-filters_rangeBlock__oomEZ:last-child {
  margin-bottom: 0;
}

.map-search-top-filters_rangeLabel__wG1I5 {
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
}

.map-search-top-filters_rangeInputs__e2loN {
  display: flex;
  align-items: center;
  gap: 0.15rem;
}

.map-search-top-filters_rangeInputs__e2loN input {
  width: 5.85rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 0.36rem 0.52rem;
  font-size: 1.01rem;
  min-height: 2rem;
  box-sizing: border-box;
}

.map-search-top-filters_rangeTrack__CprkE {
  flex: 1 1;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #2563eb 0%, #93c5fd 100%);
  min-width: 24px;
}

.map-search-top-filters_unitToggleBtn__UBbC0 {
  flex-shrink: 0;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
  font-size: 0.78rem;
  font-weight: 700;
  background: #f8fafc;
  cursor: pointer;
  white-space: nowrap;
}

.map-search-top-filters_unitToggleBtnActive__YImO3 {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
}

.map-search-top-filters_panelActions__vCJV1 {
  display: flex;
  justify-content: flex-end;
  gap: 0.35rem;
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px solid #f1f5f9;
}

.map-search-top-filters_panelGhostBtn__V4ebm {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.28rem 0.55rem;
  font-size: 0.76rem;
  background: #fff;
  cursor: pointer;
}

.map-search-top-filters_panelApplyBtn__zhLMB {
  border: 0;
  border-radius: 6px;
  padding: 0.28rem 0.65rem;
  font-size: 0.76rem;
  font-weight: 600;
  background: #2563eb;
  color: #fff;
  cursor: pointer;
}

@media (min-width: 1024px) {
  .map-search-top-filters_bar__ahnao {
    padding: 0.55rem 1rem;
  }

  .map-search-top-filters_mainRow__bP_v0 {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem 0.65rem;
  }

  .map-search-top-filters_addressRow__d543F {
    flex: 0 1 auto;
    flex-wrap: nowrap;
    min-width: 0;
  }

  .map-search-top-filters_filterRow__gBlNC {
    flex: 1 1 auto;
    justify-content: center;
    width: auto;
    min-width: 0;
    overflow: visible;
  }

  .map-search-top-filters_queryInput__XmvQN {
    width: 12.75rem;
    max-width: 16.5rem;
  }

  .map-search-top-filters_dropdownWrap__72OVW {
    min-width: 5rem;
    width: 5.75rem;
  }
}

@media (max-width: 1023px) {
  .map-search-top-filters_filterRow__gBlNC {
    justify-content: center;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 0.1rem;
  }

  .map-search-top-filters_dropdownWrap__72OVW {
    min-width: 4.5rem;
    width: 4.75rem;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/map/map-search-header-rtx.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************/
.map-search-header-rtx_wrap__A1x3h {
  display: none;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.35rem;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 0;
  margin-right: 0.5rem;
  overflow-x: auto;
  overflow-y: visible;
  max-height: none;
}

@media (min-width: 1024px) {
  .map-search-header-rtx_wrap__A1x3h {
    display: flex;
  }
}

/* 지도검색 메뉴(.header-nav-link)와 동일 크기·테두리 */
.map-search-header-rtx_chip___0v_9 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-family: inherit;
  line-height: inherit;
  padding: 0.32rem 0.6rem;
  border: 2px solid transparent;
  border-radius: 8px;
  background: #fff;
  font-size: 1.05rem;
  font-weight: 500;
  color: #111827;
  cursor: pointer;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}

.map-search-header-rtx_chip___0v_9:hover {
  border-color: #93c5fd;
  background: #f8fafc;
  color: #111;
}

.map-search-header-rtx_chipOn__blMTg {
  border-color: #4267d4;
  background: #fff;
  color: #4267d4;
  font-weight: 800;
}

.map-search-header-rtx_slider__lyPFN {
  flex: 1 1 14.3rem;
  width: auto;
  min-width: 12.35rem;
  max-width: 18.2rem;
  align-self: stretch;
  display: flex;
  align-items: center;
  overflow: visible;
}

/** 실거래 칩과 슬라이더 사이 = 실거래 버튼 너비 (flex gap 상쇄) */
.map-search-header-rtx_sliderGap__Xqqxt {
  visibility: hidden;
  pointer-events: none;
  border-color: transparent;
  margin-left: calc(-1 * 0.35rem);
  margin-right: calc(-1 * 0.35rem);
}

.map-search-header-rtx_dealKinds__6PxFH {
  display: flex;
  align-items: center;
  gap: 0.28rem;
  flex-shrink: 0;
  margin-left: 0.15rem;
}

