/* =====================================================================
   [통합 섹션] 원본 파일명: style.css
   ===================================================================== */
* { 
  box-sizing: border-box; 
  margin: 0; 
  padding: 0; 
  font-family: "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif; 
  letter-spacing: -0.025em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body { 
  display: flex; 
  flex-direction: column; 
  height: 100vh; 
  overflow: hidden; 
  background-color: #f8fafc; 
  color: #0f172a; 
  position: relative; 
}

/* 최상단 헤더 */
header { 
  height: 60px; 
  background-color: #ffffff; 
  border-bottom: 1px solid #e2e8f0; 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  padding: 0 20px; 
  z-index: 1000; 
  flex-shrink: 0; 
  box-shadow: 0 1px 3px rgba(0,0,0,0.02); 
}
.logo-area { display: flex; align-items: center; gap: 14px; }

.logo-brand { 
  display: flex; 
  align-items: center; 
  gap: 8px; 
  text-decoration: none; 
  padding: 4px 0;
  transition: opacity 0.15s ease;
}
.logo-brand:hover { opacity: 0.88; }

.brand-symbol { 
  width: 30px; 
  height: 30px; 
  flex-shrink: 0; 
  display: flex; 
  align-items: center; 
  justify-content: center;
  filter: drop-shadow(0 2px 5px rgba(185, 28, 28, 0.22));
}
.brand-symbol svg { width: 100%; height: 100%; }

.brand-name { 
  font-size: 19px; 
  font-weight: 900; 
  color: #0f172a; 
  letter-spacing: -0.04em; 
  display: flex; 
  align-items: center; 
  gap: 5px; 
  line-height: 1;
}
.brand-name .brand-en { 
  font-size: 11px; 
  font-weight: 900; 
  letter-spacing: 0.05em; 
  color: #991b1b;
  background: #fee2e2;
  padding: 2px 6px;
  border-radius: 4px;
}

.current-region-badge { 
  background-color: #991b1b; 
  color: #fff; 
  font-size: 11px; 
  font-weight: bold; 
  padding: 4px 10px; 
  border-radius: 20px; 
}
.btn-home { 
  font-size: 11px; 
  color: #475569; 
  text-decoration: none; 
  padding: 4px 10px; 
  border: 1px solid #cbd5e1; 
  border-radius: 4px; 
  font-weight: 500; 
}
.btn-home:hover { background: #f1f5f9; color: #0f172a; }

.nav-links { display: flex; align-items: center; gap: 8px; }
.btn-register { 
  background-color: #991b1b; 
  color: white; 
  border: none; 
  height: 34px;
  padding: 0 15px; 
  border-radius: 6px; 
  font-size: 13px; 
  font-weight: bold; 
  cursor: pointer; 
  transition: background 0.15s ease; 
  display: flex;
  align-items: center;
  gap: 4px;
}
.btn-register:hover { background-color: #7f1d1d; }

/* 계정 상태 뱃지 */
.agent-auth-status { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: #334155; }
.auth-role-tag { font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 4px; }
.auth-role-tag.master { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
.auth-role-tag.staff { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.btn-manage-staff { background: #334155; color: white; border: none; padding: 5px 9px; border-radius: 4px; font-size: 11px; font-weight: bold; cursor: pointer; }
.btn-manage-staff:hover { background: #0f172a; }
.btn-logout { background: #f1f5f9; border: 1px solid #cbd5e1; color: #475569; padding: 5px 9px; border-radius: 4px; font-size: 11px; cursor: pointer; }
.btn-logout:hover { background: #e2e8f0; color: #0f172a; }

/* 실무 퀵 필터 툴바 */
.filter-bar { 
  height: 48px; 
  background-color: #ffffff; 
  border-bottom: 1px solid #e2e8f0; 
  display: flex; 
  align-items: center; 
  padding: 0 20px; 
  gap: 8px; 
  z-index: 999; 
  flex-shrink: 0; 
  overflow-x: auto; 
  white-space: nowrap; 
}
.filter-group { display: flex; align-items: center; gap: 5px; }
.filter-label { font-size: 12px; font-weight: bold; color: #64748b; margin-right: 2px; }
.filter-divider { width: 1px; height: 16px; background-color: #e2e8f0; margin: 0 4px; }

.filter-chip { 
  font-size: 12px; 
  font-weight: 600; 
  padding: 5px 12px; 
  border-radius: 6px; 
  border: 1px solid #e2e8f0; 
  background: #ffffff; 
  color: #334155; 
  cursor: pointer; 
  transition: all 0.12s ease; 
  user-select: none; 
}
.filter-chip:hover { border-color: #94a3b8; background: #f8fafc; }
.filter-chip.active { background-color: #1e293b; color: #ffffff; border-color: #1e293b; font-weight: bold; }
.filter-chip.toggle-active { background-color: #0f172a; color: #fecaca; border-color: #0f172a; font-weight: bold; }

.btn-reset-filter { font-size: 11px; color: #64748b; background: none; border: 1px dashed #cbd5e1; padding: 4px 8px; border-radius: 4px; cursor: pointer; margin-left: 6px; }
.btn-reset-filter:hover { background: #f1f5f9; color: #0f172a; }

/* 본문 레이아웃 */
.main-container { display: flex; flex: 1; height: calc(100vh - 108px); position: relative; overflow: hidden; }
#map { flex: 1; height: 100%; width: 100%; min-width: 0; min-height: 400px; position: relative; z-index: 1; background: #f1f5f9; }
body.locked-mode .main-container, body.locked-mode .filter-bar {
  filter: blur(10px);
  pointer-events: none;
  user-select: none;
}

/* [디자인 개선 1] 사이드바 490px 슬림화 (지도 시야율 극대화) */
.sidebar { 
  width: 490px; 
  height: 100%; 
  background: #ffffff; 
  border-left: 1px solid #e2e8f0; 
  display: flex; 
  flex-direction: column; 
  z-index: 2; 
  box-shadow: -4px 0 16px rgba(0,0,0,0.03); 
  flex-shrink: 0;
}
.sidebar-header { padding: 12px 16px; border-bottom: 1px solid #e2e8f0; background: #ffffff; }
.status-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.count-text { font-size: 14.5px; font-weight: 700; color: #1e293b; }
.count-text strong { color: #991b1b; font-size: 16px; font-weight: 900; }
.db-status-badge { font-size: 11px; padding: 3px 8px; border-radius: 4px; font-weight: bold; background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }

.control-row { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #64748b; }
.tool-group { display: flex; align-items: center; gap: 6px; }
.btn-print-action { background-color: #f1f5f9; color: #334155; border: 1px solid #cbd5e1; padding: 4px 10px; border-radius: 4px; font-size: 11.5px; font-weight: 700; cursor: pointer; display: flex; align-items: center; gap: 4px; }
.btn-print-action:hover { background-color: #e2e8f0; }

.btn-kakao-action { background-color: #fee500; color: #191919; border: 1px solid #fada0a; }
.btn-kakao-action:hover { background-color: #fdd835; }

.sort-group select { font-size: 12px; padding: 3px 6px; border: 1px solid #cbd5e1; border-radius: 4px; color: #334155; }
.property-list { flex: 1; overflow-y: auto; padding: 10px 14px; background: #f8fafc; display: flex; flex-direction: column; gap: 8px; }

/* [디자인 개선 2] 슬림 매물 카드 */
.property-row { 
  display: flex; 
  align-items: flex-start; 
  background: #ffffff; 
  border: 1px solid #e2e8f0; 
  border-radius: 8px; 
  padding: 12px 14px; 
  cursor: pointer; 
  transition: all 0.15s ease; 
  gap: 12px; 
  position: relative; 
}
.property-row:hover { border-color: #991b1b; box-shadow: 0 4px 12px rgba(153, 27, 27, 0.08); transform: translateY(-1px); }
.property-row.active { border-color: #991b1b; background-color: #fffdfd; box-shadow: 0 0 0 1.5px #991b1b; }
.property-row.is-completed { opacity: 0.55; filter: grayscale(0.85); background-color: #f1f5f9; }

.col-thumb { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; }
.col-thumb input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: #991b1b; }
.thumb-wrap { width: 88px; height: 66px; border-radius: 6px; overflow: hidden; background: #f1f5f9; position: relative; cursor: pointer; border: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: center; }
.thumb-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.thumb-badge { position: absolute; bottom: 3px; right: 3px; background: rgba(15, 23, 42, 0.75); color: #fff; font-size: 9.5px; text-align: center; padding: 1px 4px; border-radius: 3px; font-weight: 800; }

/* No-Image 세련된 플레이스홀더 */
.thumb-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 10px;
  font-weight: 700;
  gap: 2px;
}
.thumb-placeholder svg { width: 22px; height: 22px; stroke: #94a3b8; }

.col-main-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.card-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.price-area {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.price-text-bold {
  font-size: 16.5px;
  font-weight: 900;
  color: #0f172a;
  letter-spacing: -0.4px;
}
.fee-text-sub {
  font-size: 11.5px;
  color: #64748b;
  font-weight: 600;
}
.room-badge { 
  display: inline-block; 
  font-size: 10.5px; 
  padding: 2px 6px; 
  border-radius: 4px; 
  font-weight: 800; 
  background-color: #f1f5f9; 
  color: #334155; 
  border: 1px solid #e2e8f0; 
}

.building-title-row {
  font-size: 13.5px;
  font-weight: 800;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
}
.address-sub-row {
  font-size: 11.5px;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.owner-badge-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
  padding: 2px 7px;
  border-radius: 4px;
  margin-top: 3px;
  width: fit-content;
}
.secret-memo-box { 
  margin-top: 4px; 
  padding: 4px 8px; 
  background: #fefce8; 
  border: 1px dashed #facc15; 
  border-radius: 4px; 
  font-size: 11px; 
  color: #854d0e; 
  line-height: 1.4; 
}

/* [디자인 개선 3] 가로 슬림형 액션바 */
.card-actions-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed #e2e8f0;
}
.actions-left-group {
  display: flex;
  align-items: center;
  gap: 6px;
}
.btn-act-compact {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.1s;
}
.btn-act-compact:hover { background: #f1f5f9; border-color: #cbd5e1; }
.btn-act-call-green { color: #15803d; border-color: #bbf7d0; background: #f0fdf4; }
.btn-act-call-green:hover { background: #dcfce7; }
.btn-act-detail-text { color: #991b1b; border-color: #fecaca; background: #fef2f2; }
.btn-act-detail-text:hover { background: #fee2e2; }

.btn-card-more {
  border: none;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  font-size: 14px;
  padding: 2px 6px;
  border-radius: 4px;
}
.btn-card-more:hover { color: #0f172a; background: #f1f5f9; }

/* 모달 공통 */
.modal-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.72); backdrop-filter: blur(4px); display: none; align-items: center; justify-content: center; z-index: 2000; }
.modal-box { background: white; width: 500px; max-height: 90vh; overflow-y: auto; border-radius: 12px; padding: 24px; box-shadow: 0 16px 36px rgba(0,0,0,0.2); border: 1px solid #e2e8f0; }
.modal-title { font-size: 17px; font-weight: 900; margin-bottom: 14px; border-bottom: 1px solid #e2e8f0; padding-bottom: 8px; color: #0f172a; }
.form-group { margin-bottom: 12px; }
.form-group label { display: block; font-size: 12px; font-weight: bold; color: #334155; margin-bottom: 4px; }
.form-group input, .form-group select { width: 100%; padding: 9px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 13px; }
.form-group input:focus, .form-group select:focus { border-color: #991b1b; outline: none; }
.form-buttons { display: flex; gap: 8px; margin-top: 18px; }
.btn-submit { flex: 1; padding: 11px 0; background: #991b1b; color: white; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; transition: background 0.15s; }
.btn-submit:hover { background: #7f1d1d; }
.btn-cancel { flex: 1; padding: 11px 0; background: #475569; color: white; border: none; border-radius: 6px; cursor: pointer; }
.btn-close { width: 100%; padding: 10px 0; background: #0f172a; color: white; border: none; border-radius: 6px; font-size: 13px; cursor: pointer; }

/* 로그인 게이트 모달 */
.auth-gate-modal { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.82); backdrop-filter: blur(8px); z-index: 9999; display: none; align-items: center; justify-content: center; padding: 20px; }
.auth-gate-box { background: #ffffff; width: 440px; border-radius: 14px; padding: 32px 28px; box-shadow: 0 20px 45px rgba(0,0,0,0.35); text-align: center; border: 1px solid #e2e8f0; }
.auth-lock-icon { width: 54px; height: 54px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; margin: 0 auto 14px; }
.auth-gate-title { font-size: 20px; font-weight: 900; color: #0f172a; margin-bottom: 6px; }
.auth-gate-desc { font-size: 13px; color: #64748b; line-height: 1.5; margin-bottom: 18px; }

.auth-input-group { display: flex; flex-direction: column; gap: 6px; text-align: left; margin-bottom: 12px; }
.auth-input-group label { font-size: 12px; font-weight: bold; color: #334155; }
.auth-input-group input { padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 13px; outline: none; }
.auth-input-group input:focus { border-color: #991b1b; }
.btn-auth-submit { width: 100%; background: #991b1b; color: white; border: none; padding: 12px 0; border-radius: 6px; font-size: 14px; font-weight: bold; cursor: pointer; margin-top: 4px; margin-bottom: 14px; transition: background 0.15s; }
.btn-auth-submit:hover { background: #7f1d1d; }

/* 직원 계정 관리 모달 */
.staff-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 12px; }
.staff-table th, .staff-table td { padding: 9px 8px; border-bottom: 1px solid #e2e8f0; text-align: left; }
.staff-table th { background: #f8fafc; color: #334155; font-weight: 700; }
.btn-staff-status { padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: bold; cursor: pointer; border: none; }
.btn-staff-status.active { background: #dcfce7; color: #15803d; }
.btn-staff-status.blocked { background: #fee2e2; color: #dc2626; }

/* 상세페이지 모달 */
.detail-modal-box { width: 720px; max-height: 90vh; background: #ffffff; border-radius: 12px; overflow-y: auto; padding: 26px; border: 1px solid #e2e8f0; }
.detail-top-bar { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.detail-main-img-box { width: 100%; height: 350px; aspect-ratio: 4/3; background: #0f172a; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.detail-main-img-box img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.detail-thumbs-scroll { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 12px; }
.detail-thumb-item { width: 76px; height: 57px; aspect-ratio: 4 / 3; border-radius: 4px; overflow: hidden; cursor: pointer; opacity: 0.6; flex-shrink: 0; border: 2px solid transparent; background: #000; }
.detail-thumb-item.active { opacity: 1; border-color: #991b1b; }
.detail-thumb-item img { width: 100%; height: 100%; object-fit: cover; }

.detail-price-banner { background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.detail-price-big { font-size: 22px; font-weight: 900; color: #991b1b; }
.detail-spec-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.spec-grid-item { background: #f8fafc; border: 1px solid #e2e8f0; padding: 10px 12px; border-radius: 6px; }
.spec-grid-label { font-size: 11px; color: #64748b; margin-bottom: 2px; }
.spec-grid-value { font-size: 13px; font-weight: 800; color: #0f172a; }

.detail-actions-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #e2e8f0; }
.btn-detail-action { padding: 11px 0; border-radius: 6px; font-size: 13px; font-weight: bold; cursor: pointer; text-align: center; text-decoration: none; border: none; display: flex; align-items: center; justify-content: center; }

/* 사진 업로드 미리보기 */
.preview-grid { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; min-height: 64px; padding: 8px; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 6px; align-items: center; }
.preview-item { width: 76px; height: 57px; aspect-ratio: 4 / 3; border-radius: 4px; overflow: hidden; position: relative; border: 1px solid #94a3b8; background: #0f172a; }
.preview-item img { width: 100%; height: 100%; object-fit: cover; }
.preview-item .btn-del-img { position: absolute; top: 2px; right: 2px; background: rgba(0,0,0,0.75); color: #fff; border: none; border-radius: 50%; width: 18px; height: 18px; font-size: 11px; cursor: pointer; display: flex; align-items: center; justify-content: center; }

/* 브리핑 인쇄 모달 */
.print-modal-box { width: 760px; max-height: 92vh; background: #fff; padding: 25px; border-radius: 10px; }
.briefing-paper { background: #ffffff; border: 1px solid #cbd5e1; padding: 25px; border-radius: 6px; }
.briefing-header { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid #0f172a; padding-bottom: 14px; margin-bottom: 16px; }
.briefing-title { font-size: 22px; font-weight: 900; color: #0f172a; }
.briefing-card { display: flex; border: 1px solid #e2e8f0; border-radius: 6px; padding: 12px; gap: 16px; background: #f8fafc; margin-bottom: 12px; }
.briefing-card-thumb { width: 140px; height: 105px; aspect-ratio: 4 / 3; border-radius: 4px; overflow: hidden; background: #000; flex-shrink: 0; }
.briefing-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.briefing-card-body { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }

@media print {
  body * { visibility: hidden; }
  #printModal, #printModal * { visibility: visible; }
  #printModal { position: fixed; inset: 0; background: white !important; z-index: 99999; display: block !important; padding: 0 !important; }
  .print-modal-box { width: 100% !important; max-height: none !important; border: none !important; }
  .no-print { display: none !important; }
}

/* 상단 헤더 메뉴 캡슐형 스타일 */
.unified-header-select {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #cbd5e1;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  outline: none;
  transition: all 0.15s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  height: 34px;
}
.unified-header-select:hover { border-color: #991b1b; color: #991b1b; }
.unified-header-select:focus { border-color: #991b1b; box-shadow: 0 0 0 2px rgba(153, 27, 27, 0.15); }

.unified-header-btn {
  display: inline-flex;
  align-items: center;
  background: #f8fafc;
  color: #475569;
  border: 1px solid #cbd5e1;
  padding: 0 13px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.15s ease;
  height: 34px;
  line-height: 34px;
}
.unified-header-btn:hover { background: #991b1b; color: #ffffff; border-color: #991b1b; }


/* =====================================================================
   [통합 섹션] 원본 파일명: design_patch.css
   ===================================================================== */
/* 공실드림 Business v2.0 */
:root{
  --ink-0:#fff;--ink-50:#fafafa;--ink-100:#f4f4f5;--ink-150:#ececee;
  --ink-200:#e4e4e7;--ink-300:#d4d4d8;--ink-400:#a1a1aa;--ink-500:#71717a;
  --ink-600:#52525b;--ink-700:#3f3f46;--ink-800:#27272a;--ink-900:#18181b;
  --brand:#991b1b;--brand-hover:#7f1d1d;--brand-press:#6b1414;
  --brand-subtle:#fef2f2;--brand-border:#fecaca;--brand-text:#7f1d1d;
  --ok-bg:#f0fdf4;--ok-fg:#166534;--ok-border:#bbf7d0;
  --warn-bg:#fffbeb;--warn-fg:#92400e;--warn-border:#fde68a;
  --err-bg:#fef2f2;--err-fg:#991b1b;--err-border:#fecaca;
  --r-1:3px;--r-2:4px;--r-3:6px;--r-4:8px;
  --shadow-3:0 12px 32px rgba(9,9,11,.10),0 4px 8px rgba(9,9,11,.06);
  --ease:cubic-bezier(.2,0,.2,1);--dur:.15s;
}
html,body{font-size:13px;line-height:1.5;letter-spacing:-0.01em;
  color:var(--ink-800);background:var(--ink-50);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"tnum" 1,"ss01" 1;}
.price-text,.fee-text,.badge-bottom-count,.detail-price-big,
.stat-val,.count-text strong,.item-count,.board-main-title{
  font-variant-numeric:tabular-nums;letter-spacing:-0.02em;}

/* ─── 헤더 ─── */
header{height:56px!important;background:var(--ink-0)!important;
  border-bottom:1px solid var(--ink-200)!important;box-shadow:none!important;}
.brand-name{font-size:18px!important;font-weight:800!important;}
.brand-symbol{width:28px!important;height:28px!important;}
.unified-header-select{height:30px!important;padding:0 12px!important;
  font-size:12px!important;font-weight:500!important;color:var(--ink-700)!important;
  background:var(--ink-0)!important;border:1px solid var(--ink-200)!important;
  border-radius:var(--r-2)!important;box-shadow:none!important;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);}
.unified-header-select:hover{border-color:var(--ink-400)!important;color:var(--ink-900)!important;}
.unified-header-select:focus{border-color:var(--brand)!important;
  box-shadow:0 0 0 3px var(--brand-subtle)!important;}
.unified-header-btn{height:30px!important;line-height:30px!important;
  padding:0 12px!important;font-size:12px!important;font-weight:500!important;
  color:var(--ink-700)!important;background:var(--ink-0)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-2)!important;
  box-shadow:none!important;transition:all var(--dur) var(--ease);}
.unified-header-btn:hover{background:var(--ink-50)!important;
  color:var(--ink-900)!important;border-color:var(--ink-400)!important;}
.current-region-badge{background:var(--ink-900)!important;color:var(--ink-0)!important;
  font-weight:700!important;padding:4px 10px!important;border-radius:var(--r-2)!important;
  font-size:11.5px!important;}

/* ─── 버튼 통일 ─── */
.btn-register,.btn-contact-blue,.btn-submit,.btn-dark-submit,
.btn-submit-registration,.btn-auth-submit{
  background:var(--brand)!important;color:var(--ink-0)!important;
  border:1px solid var(--brand)!important;border-radius:var(--r-2)!important;
  box-shadow:none!important;font-weight:600!important;font-size:12.5px!important;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.btn-register:hover,.btn-contact-blue:hover,.btn-submit:hover,
.btn-dark-submit:hover,.btn-submit-registration:hover,.btn-auth-submit:hover{
  background:var(--brand-hover)!important;border-color:var(--brand-hover)!important;
  transform:none!important;box-shadow:none!important;}
.btn-register:focus-visible,.btn-contact-blue:focus-visible,.btn-submit:focus-visible,
.filter-chip:focus-visible,.unified-header-select:focus-visible,
.unified-header-btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none!important;
  box-shadow:0 0 0 3px var(--brand-subtle),0 0 0 1px var(--brand)!important;}

/* ─── 필터 바 ─── */
.filter-bar{height:44px!important;padding:0 20px!important;
  background:var(--ink-0)!important;border-bottom:1px solid var(--ink-200)!important;gap:8px!important;}
.filter-label{font-size:11px!important;font-weight:700!important;
  color:var(--ink-500)!important;text-transform:uppercase;letter-spacing:0.04em;}
.filter-divider{background:var(--ink-200)!important;height:16px!important;margin:0 6px!important;}
.filter-chip{height:26px!important;padding:0 10px!important;font-size:12px!important;
  font-weight:500!important;color:var(--ink-700)!important;background:var(--ink-0)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-2)!important;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),
    color var(--dur) var(--ease);letter-spacing:-0.01em;}
.filter-chip:hover{background:var(--ink-50)!important;
  border-color:var(--ink-400)!important;color:var(--ink-900)!important;}
.filter-chip.active{background:var(--ink-900)!important;color:var(--ink-0)!important;
  border-color:var(--ink-900)!important;font-weight:600!important;box-shadow:none!important;}
.filter-chip.toggle-active{background:var(--brand-subtle)!important;
  color:var(--brand-text)!important;border-color:var(--brand-border)!important;
  font-weight:600!important;box-shadow:none!important;}
.filter-chip.toggle-active::before{content:"\2713";margin-right:4px;
  font-weight:800;font-size:10px;}
.btn-reset-filter{font-size:11.5px!important;color:var(--ink-600)!important;
  background:var(--ink-0)!important;border:1px solid var(--ink-200)!important;
  border-radius:var(--r-2)!important;padding:4px 10px!important;
  transition:all var(--dur) var(--ease);}
.btn-reset-filter:hover{background:var(--ink-50)!important;
  color:var(--ink-900)!important;border-color:var(--ink-400)!important;}

/* ─── 사이드바 ─── */
.sidebar{border-left:1px solid var(--ink-200)!important;box-shadow:none!important;}
.sidebar-header{padding:12px 16px!important;background:var(--ink-0)!important;
  border-bottom:1px solid var(--ink-200)!important;}
.count-text{font-size:12.5px!important;color:var(--ink-600)!important;font-weight:500!important;}
.count-text strong{color:var(--ink-900)!important;font-size:15px!important;font-weight:800!important;}
.db-status-badge{font-size:10px!important;padding:3px 8px!important;
  border-radius:var(--r-2)!important;background:var(--ok-bg)!important;
  color:var(--ok-fg)!important;border:1px solid var(--ok-border)!important;
  font-weight:700!important;text-transform:uppercase;letter-spacing:0.01em;}

/* ─── 매물 리스트: 카드 → 헤어라인 행 ─── */
.property-list{padding:0!important;background:var(--ink-0)!important;}
.property-row{position:relative;display:flex!important;align-items:flex-start!important;
  gap:12px!important;padding:12px 16px!important;margin:0!important;
  background:var(--ink-0)!important;border:none!important;
  border-bottom:1px solid var(--ink-150)!important;border-radius:0!important;
  box-shadow:none!important;transition:background var(--dur) var(--ease)!important;}
.property-row:hover{background:var(--ink-50)!important;
  border-bottom-color:var(--ink-150)!important;transform:none!important;box-shadow:none!important;}
.property-row.active{background:var(--brand-subtle)!important;
  box-shadow:inset 2px 0 0 var(--brand)!important;}
.property-row.active::before,.property-row::before{display:none!important;}
.property-row.is-completed{opacity:.5;filter:none!important;background:var(--ink-50)!important;}

.thumb-wrap{width:76px!important;height:57px!important;border-radius:var(--r-1)!important;
  overflow:hidden;background:var(--ink-100);position:relative;
  box-shadow:inset 0 0 0 1px rgba(9,9,11,.06)!important;flex-shrink:0;}
.thumb-wrap::after{display:none!important;}
.thumb-badge{position:absolute!important;bottom:3px!important;right:3px!important;
  left:auto!important;background:rgba(9,9,11,.78)!important;color:var(--ink-0)!important;
  font-size:9.5px!important;font-weight:700!important;padding:1px 5px!important;
  border-radius:var(--r-1)!important;letter-spacing:0.02em;z-index:2;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;width:auto!important;}
.room-badge{display:inline-block!important;padding:2px 7px!important;
  border-radius:var(--r-1)!important;font-size:10.5px!important;font-weight:700!important;
  background:var(--ink-100)!important;color:var(--ink-700)!important;
  border:1px solid var(--ink-200)!important;letter-spacing:-0.01em;margin-bottom:4px!important;}
.price-text{font-size:14px!important;font-weight:800!important;color:var(--ink-900)!important;
  letter-spacing:-0.02em!important;line-height:1.25!important;}
.fee-text{font-size:11.5px!important;color:var(--ink-500)!important;
  font-weight:500!important;margin-top:1px!important;}
.col-price{width:116px!important;padding-top:2px!important;}
.info-title{font-size:13px!important;font-weight:600!important;
  color:var(--ink-900)!important;letter-spacing:-0.01em!important;}
.info-sub{font-size:11.5px!important;color:var(--ink-500)!important;
  margin-top:2px!important;font-weight:400!important;}
.icon-n{background:var(--brand)!important;color:var(--ink-0)!important;
  font-size:9px!important;font-weight:800!important;padding:1px 4px!important;
  border-radius:var(--r-1)!important;letter-spacing:0.02em;margin-right:4px!important;
  line-height:1.4;vertical-align:middle;}
.registrant-tag{font-size:10.5px!important;color:var(--ink-600)!important;
  background:var(--ink-100)!important;border:1px solid var(--ink-200)!important;
  padding:1px 6px!important;border-radius:var(--r-1)!important;
  font-weight:600!important;letter-spacing:-0.01em;margin-top:4px!important;}
.secret-memo-box{margin-top:8px!important;padding:6px 9px!important;
  background:var(--warn-bg)!important;border:1px solid var(--warn-border)!important;
  border-left:3px solid #d97706!important;border-radius:var(--r-2)!important;
  font-size:11px!important;color:var(--warn-fg)!important;
  line-height:1.5!important;font-weight:500!important;}
.secret-memo-box strong{font-weight:800!important;color:var(--warn-fg)!important;}

.col-actions{width:84px!important;gap:4px!important;}
.col-actions .btn-sub-action,.btn-sub-action{height:24px!important;
  padding:0 8px!important;font-size:11px!important;font-weight:500!important;
  color:var(--ink-600)!important;background:var(--ink-0)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-1)!important;
  transition:all var(--dur) var(--ease);line-height:22px!important;
  display:inline-flex;align-items:center;justify-content:center;}
.btn-sub-action:hover{background:var(--ink-50)!important;color:var(--ink-900)!important;
  border-color:var(--ink-400)!important;}
.btn-del-item{color:var(--err-fg)!important;border-color:var(--err-border)!important;}
.btn-del-item:hover{background:var(--err-bg)!important;color:var(--err-fg)!important;
  border-color:#f87171!important;}

/* ─── 지도 뱃지 ─── */
.gongsil-stat-badge{width:78px!important;background:var(--ink-0)!important;
  border-radius:var(--r-2)!important;overflow:hidden;
  box-shadow:0 0 0 1px var(--ink-200),0 2px 6px rgba(9,9,11,.10)!important;
  border:none!important;transition:box-shadow var(--dur) var(--ease),
    transform var(--dur) var(--ease)!important;}
.gongsil-stat-badge::before{display:none!important;}
.gongsil-stat-badge:hover{transform:translateY(-2px)!important;
  box-shadow:0 0 0 1px var(--brand),0 6px 16px rgba(153,27,27,.18)!important;
  z-index:9999!important;}
.badge-top-label{background:var(--brand)!important;color:var(--ink-0)!important;
  font-size:11px!important;font-weight:700!important;padding:3px 0!important;}
.badge-bottom-count{background:var(--ink-0)!important;color:var(--ink-900)!important;
  font-size:13px!important;font-weight:800!important;padding:4px 0 5px!important;
  letter-spacing:-0.02em!important;}

/* ─── 모달 ─── */
.modal-overlay{background:rgba(9,9,11,.55)!important;
  backdrop-filter:blur(2px)!important;-webkit-backdrop-filter:blur(2px)!important;
  animation:gp2fade .12s var(--ease)!important;}
@keyframes gp2fade{from{opacity:0}to{opacity:1}}
@keyframes gp2in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.modal-box,.detail-modal-box,.modal-content-card,.auth-gate-box{
  animation:gp2in .18s var(--ease)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-4)!important;
  box-shadow:var(--shadow-3)!important;background:var(--ink-0)!important;}
.modal-title{font-size:15px!important;font-weight:800!important;
  color:var(--ink-900)!important;letter-spacing:-0.01em;padding-bottom:10px!important;
  border-bottom:1px solid var(--ink-200)!important;margin-bottom:14px!important;}

.form-group input,.form-group select,.auth-input-group input,
.reg-form-group input,.field-input{height:34px!important;padding:0 10px!important;
  font-size:12.5px!important;color:var(--ink-900)!important;background:var(--ink-0)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-2)!important;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.form-group input:focus,.form-group select:focus,.auth-input-group input:focus,
.reg-form-group input:focus,.field-input:focus{border-color:var(--brand)!important;
  box-shadow:0 0 0 3px var(--brand-subtle)!important;}
.form-group label,.reg-form-group label,.auth-input-group label{
  font-size:11.5px!important;font-weight:600!important;color:var(--ink-600)!important;
  letter-spacing:0.01em;margin-bottom:5px!important;}

.detail-price-banner{background:var(--ink-50)!important;
  border:1px solid var(--ink-200)!important;border-left:3px solid var(--brand)!important;
  border-radius:var(--r-2)!important;padding:12px 16px!important;}
.detail-price-big{font-size:20px!important;font-weight:900!important;
  color:var(--ink-900)!important;letter-spacing:-0.03em;}
.spec-grid-item{background:var(--ink-0)!important;border:1px solid var(--ink-200)!important;
  border-radius:var(--r-2)!important;padding:9px 11px!important;}
.spec-grid-label{font-size:10.5px!important;color:var(--ink-500)!important;
  font-weight:600!important;text-transform:uppercase;letter-spacing:0.04em;
  margin-bottom:3px!important;}
.spec-grid-value{font-size:12.5px!important;color:var(--ink-900)!important;
  font-weight:700!important;}
.btn-detail-action{height:34px!important;padding:0 14px!important;
  font-size:12.5px!important;font-weight:600!important;border-radius:var(--r-2)!important;
  border:1px solid transparent!important;transition:all var(--dur) var(--ease);}
.btn-detail-action:hover{transform:none!important;filter:brightness(.96);}
#modalDetailSecretWrap{background:var(--warn-bg)!important;
  border:1px solid var(--warn-border)!important;border-radius:var(--r-2)!important;}
#modalStakeholderWrap{background:var(--ink-50)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-2)!important;}

/* ─── 게시판 테이블 ─── */
.gongsil-table th{font-size:11px!important;font-weight:700!important;
  color:var(--ink-500)!important;background:var(--ink-50)!important;
  text-transform:uppercase;letter-spacing:0.04em;padding:9px 12px!important;
  border-bottom:1px solid var(--ink-200)!important;border-right:1px solid var(--ink-150)!important;}
.gongsil-table td{font-size:12.5px!important;color:var(--ink-800)!important;
  padding:10px 12px!important;border-bottom:1px solid var(--ink-150)!important;
  border-right:1px solid var(--ink-150)!important;}
.gongsil-table tbody tr:hover{background:var(--ink-50)!important;}
.gongsil-table tbody tr.row-selected{background:var(--brand-subtle)!important;}
.table-secret-badge{background:var(--warn-bg)!important;
  border:1px solid var(--warn-border)!important;color:var(--warn-fg)!important;
  padding:3px 7px!important;border-radius:var(--r-1)!important;
  font-size:11px!important;font-weight:600!important;}
.btn-tbl-act{padding:3px 8px!important;font-size:11px!important;
  font-weight:600!important;border-radius:var(--r-1)!important;}
.btn-tbl-call{background:var(--brand)!important;color:var(--ink-0)!important;}
.btn-tbl-kakao{background:#fee500!important;color:#191919!important;}
.btn-tbl-detail{background:var(--ink-0)!important;color:var(--ink-700)!important;
  border:1px solid var(--ink-200)!important;}

/* ─── 스켈레톤 ─── */
@keyframes gp2shim{0%{background-position:-200% 0}100%{background-position:200% 0}}
.shimmer{background:linear-gradient(90deg,var(--ink-100) 0%,var(--ink-50) 40%,
  var(--ink-100) 80%)!important;background-size:200% 100%;
  animation:gp2shim 1.4s ease-in-out infinite;border-radius:var(--r-1)!important;}
.skeleton-card{display:flex!important;gap:12px!important;padding:12px 16px!important;
  background:var(--ink-0)!important;border:none!important;
  border-bottom:1px solid var(--ink-150)!important;border-radius:0!important;margin:0!important;}
.skeleton-thumb{width:76px!important;height:57px!important;flex-shrink:0;}
.skeleton-body{flex:1;}
.skeleton-line{border-radius:3px!important;display:block;}

/* ─── 빈 상태 ─── */
.empty-state{padding:56px 24px!important;text-align:center;
  background:var(--ink-0)!important;border-radius:0!important;border:none!important;
  border-bottom:1px solid var(--ink-150)!important;}
.empty-illustration{width:96px!important;height:96px!important;margin:0 auto 14px!important;}
.empty-title{font-size:13px!important;font-weight:700!important;
  color:var(--ink-800)!important;margin-bottom:4px!important;}
.empty-sub{font-size:12px!important;color:var(--ink-500)!important;
  margin-bottom:18px!important;line-height:1.5!important;font-weight:400;}

/* ─── index.html 폼 카드 ─── */
.form-card{background:var(--ink-0)!important;border:1px solid var(--ink-200)!important;
  border-radius:var(--r-3)!important;box-shadow:none!important;padding:20px 18px!important;}
.form-card-title{font-size:14px!important;font-weight:800!important;
  color:var(--ink-900)!important;letter-spacing:-0.02em;}
.form-card-subtitle{font-size:11.5px!important;color:var(--ink-500)!important;
  margin-bottom:16px!important;font-weight:500!important;}
.section-caption-label{font-size:11.5px!important;font-weight:700!important;
  color:var(--ink-500)!important;text-transform:uppercase;letter-spacing:0.08em;
  margin-top:12px!important;}
.region-chip{padding:8px 0!important;font-size:12px!important;
  border-radius:var(--r-2)!important;font-weight:500!important;
  border:1px solid var(--ink-200)!important;background:var(--ink-0)!important;
  color:var(--ink-700)!important;transition:all var(--dur) var(--ease);}
.region-chip:hover{background:var(--ink-50)!important;
  border-color:var(--ink-400)!important;color:var(--ink-900)!important;}
.region-chip.active{background:var(--ink-900)!important;color:var(--ink-0)!important;
  border-color:var(--ink-900)!important;font-weight:600!important;}
.region-chip-grid .region-chip[style*="grid-column"]{
  background:var(--brand)!important;color:var(--ink-0)!important;
  border-color:var(--brand)!important;}
.dashboard-card-toss{border:1px solid var(--ink-200)!important;
  border-radius:var(--r-3)!important;box-shadow:none!important;}
.toss-search-header{background:var(--ink-900)!important;padding:12px 18px!important;}
.toss-search-title{font-size:13px!important;font-weight:700!important;}
.toss-select{height:30px!important;padding:0 12px!important;font-size:12px!important;
  font-weight:500!important;border-radius:var(--r-2)!important;
  border:1px solid var(--ink-200)!important;}
.btn-toss-search{width:30px!important;height:30px!important;
  background:var(--brand)!important;border-radius:var(--r-2)!important;font-size:12px!important;}
.btn-toss-search:hover{background:var(--brand-hover)!important;transform:none!important;}
.toss-live-ticker-bar{padding:9px 18px!important;
  border-bottom:1px solid var(--ink-200)!important;font-size:12px!important;}
.badge-capsule{font-size:11px!important;font-weight:600!important;
  padding:3px 9px!important;border-radius:var(--r-1)!important;letter-spacing:0;}
.pricing-card{border:1px solid var(--ink-200)!important;
  border-radius:var(--r-3)!important;background:var(--ink-0)!important;
  transition:all var(--dur) var(--ease);}
.pricing-card:hover{border-color:var(--ink-400)!important;}
.pricing-card.selected{border-color:var(--brand)!important;
  background:var(--ink-0)!important;box-shadow:0 0 0 3px var(--brand-subtle)!important;}
.plan-price{color:var(--ink-900)!important;font-weight:900!important;letter-spacing:-0.03em;}
.plan-badge{background:var(--ink-900)!important;color:var(--ink-0)!important;
  border-radius:var(--r-1)!important;font-size:10px!important;font-weight:700!important;
  padding:2px 7px!important;letter-spacing:0.03em;text-transform:uppercase;}
.admin-member-table th{font-size:11px!important;text-transform:uppercase;
  letter-spacing:0.04em;color:var(--ink-500)!important;background:var(--ink-50)!important;
  font-weight:700!important;}
.admin-stat-box{border:1px solid var(--ink-200)!important;
  border-radius:var(--r-2)!important;background:var(--ink-0)!important;padding:14px!important;}
.stat-label{font-size:10.5px!important;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--ink-500)!important;font-weight:600!important;margin-bottom:6px!important;}
.stat-val{font-size:18px!important;font-weight:800!important;
  color:var(--ink-900)!important;letter-spacing:-0.02em;}
.auth-pill-badge{background:var(--ink-0)!important;
  border:1px solid var(--ink-200)!important;border-radius:var(--r-2)!important;
  padding:5px 10px!important;font-size:11.5px!important;font-weight:600!important;
  color:var(--ink-700)!important;}
.btn-logout-header{color:var(--ink-500)!important;font-weight:500!important;
  text-decoration:none!important;border:1px solid var(--ink-200)!important;
  padding:2px 8px!important;border-radius:var(--r-1)!important;font-size:11px!important;
  margin-left:8px!important;background:var(--ink-0)!important;
  transition:all var(--dur) var(--ease);}
.btn-logout-header:hover{background:var(--ink-50)!important;
  color:var(--ink-900)!important;border-color:var(--ink-400)!important;}
.auth-role-tag{padding:2px 8px!important;border-radius:var(--r-1)!important;
  font-size:10.5px!important;font-weight:700!important;letter-spacing:0.02em;
  text-transform:uppercase;}

/* ─── 애니 ─── */
@keyframes gp2up{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.main-workspace>*{animation:gp2up .25s var(--ease) backwards!important;}
.forms-wrapper{animation-delay:.02s!important;}
.dashboard-wrapper{animation-delay:.06s!important;}
input[type="checkbox"].prop-check{accent-color:var(--brand)!important;transition:none!important;}
input[type="checkbox"].prop-check:checked{transform:none!important;}

/* ─── 스크롤바 ─── */
.property-list::-webkit-scrollbar,.detail-modal-box::-webkit-scrollbar,
.modal-box::-webkit-scrollbar,.modal-content-card::-webkit-scrollbar,
.board-table-container::-webkit-scrollbar{width:8px;height:8px;}
.property-list::-webkit-scrollbar-track,.detail-modal-box::-webkit-scrollbar-track,
.modal-box::-webkit-scrollbar-track,.modal-content-card::-webkit-scrollbar-track,
.board-table-container::-webkit-scrollbar-track{background:transparent;}
.property-list::-webkit-scrollbar-thumb,.detail-modal-box::-webkit-scrollbar-thumb,
.modal-box::-webkit-scrollbar-thumb,.modal-content-card::-webkit-scrollbar-thumb,
.board-table-container::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:4px;
  border:2px solid transparent;background-clip:content-box;}
.property-list::-webkit-scrollbar-thumb:hover,.detail-modal-box::-webkit-scrollbar-thumb:hover,
.modal-box::-webkit-scrollbar-thumb:hover,.modal-content-card::-webkit-scrollbar-thumb:hover,
.board-table-container::-webkit-scrollbar-thumb:hover{background:var(--ink-500);
  background-clip:content-box;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;
    animation-iteration-count:1!important;transition-duration:.01ms!important;}
}


/* =====================================================================
   [통합 섹션] 원본 파일명: design_finish.css
   ===================================================================== */
/* ═══════════════════════════════════════════════════════
   공실드림 Design Finish — 헤더/사이드바/디테일 마감
   v2 뒤에 로드되어 세부 톤만 조정합니다.
   ═══════════════════════════════════════════════════════ */

/* ─── 1. 헤더: 로고 ↔ 드롭다운 구분선 ──────────────── */
.logo-area {
  gap: 12px !important;
}
.logo-area > div {
  padding-left: 16px !important;
  border-left: 1px solid var(--ink-200, #e4e4e7) !important;
  gap: 6px !important;
}
/* 도시 select 최소폭 (지역명 잘림 방지) */
.unified-header-select#quickCitySelect { min-width: 130px !important; }
.unified-header-select#quickGuSelect  { min-width: 130px !important; }
.unified-header-select#quickDongSelect { min-width: 130px !important; }

/* ─── 2. 우측 상단 버튼 통일 (2색 체계) ─────────────── */
.nav-links,
.header-user-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* 세션 정보 영역 (agent-auth-status) */
.agent-auth-status {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 4px !important;
  font-size: 11.5px !important;
  color: var(--ink-700, #3f3f46) !important;
}
.agent-auth-status strong {
  font-weight: 700 !important;
  color: var(--ink-900, #18181b) !important;
}

/* 등급 태그 (대표/직원) — 톤 다운 */
.auth-role-tag {
  padding: 2px 8px !important;
  border-radius: 3px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  border: 1px solid transparent !important;
}
.auth-role-tag.master {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}
.auth-role-tag.staff {
  background: #f4f4f5 !important;
  color: #52525b !important;
  border-color: #e4e4e7 !important;
}

/* 직원 관리 — outline 버튼 */
.btn-manage-staff {
  background: #ffffff !important;
  color: #3f3f46 !important;
  border: 1px solid #d4d4d8 !important;
  border-radius: 4px !important;
  padding: 5px 10px !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  transition: all .15s cubic-bezier(.2,0,.2,1) !important;
}
.btn-manage-staff:hover {
  background: #fafafa !important;
  border-color: #a1a1aa !important;
  color: #18181b !important;
}

/* 로그아웃 — 텍스트만 */
.btn-logout,
.btn-logout-header {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: #71717a !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  padding: 5px 10px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  transition: all .15s cubic-bezier(.2,0,.2,1) !important;
}
.btn-logout:hover,
.btn-logout-header:hover {
  color: #18181b !important;
  background: #f4f4f5 !important;
}

/* ─── 3. 필터 바 — 간격 정리 ──────────────────────── */
.filter-bar {
  gap: 6px !important;
  padding: 0 16px !important;
}
.filter-group {
  gap: 4px !important;
}
.filter-divider {
  margin: 0 4px !important;
}

/* 검수필요 뱃지 — 톤 다운 */
.filter-bar button[onclick*="toggleReviewFilter"] {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border: 1px solid #fecaca !important;
  font-weight: 600 !important;
  font-size: 11.5px !important;
  padding: 5px 10px !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

/* 검색창 폭 */
#filterKeywordInput {
  width: 240px !important;
}

/* ─── 4. 사이드바 헤더 ───────────────────────────── */
.sidebar-header {
  padding: 12px 16px !important;
}
.status-row {
  margin-bottom: 10px !important;
}
.control-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
}
.control-row label {
  font-size: 11.5px !important;
  color: #52525b !important;
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  cursor: pointer !important;
  padding: 4px 8px !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  transition: all .15s !important;
}
.control-row label:hover {
  border-color: #a1a1aa !important;
  background: #fafafa !important;
}
.control-row input[type="checkbox"] {
  width: 13px !important;
  height: 13px !important;
  accent-color: #991b1b !important;
  cursor: pointer !important;
}

/* 카톡복사 / 선택인쇄 버튼 */
.btn-kakao-action {
  background: #fef9c3 !important;
  color: #78350f !important;
  border: 1px solid #fde68a !important;
  font-weight: 600 !important;
}
.btn-kakao-action:hover {
  background: #fef08a !important;
  border-color: #facc15 !important;
}
.btn-print-action {
  background: #ffffff !important;
  color: #3f3f46 !important;
  border: 1px solid #d4d4d8 !important;
  font-weight: 500 !important;
}
.btn-print-action:hover {
  background: #fafafa !important;
  border-color: #a1a1aa !important;
  color: #18181b !important;
}

/* 정렬 셀렉트 */
.sort-group select {
  height: 26px !important;
  padding: 0 8px !important;
  font-size: 11.5px !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  color: #3f3f46 !important;
}

/* ─── 5. 매물 카드 디테일 ────────────────────────── */
.property-row {
  padding: 14px 16px !important;
}

/* "건물확인 실소유주" 노란 박스 톤 다운 (inline style 대응) */
.property-row [style*="fef3c7"],
.property-row [style*="#fef3c7"] {
  background: #fffbeb !important;
  border: 1px solid #fde68a !important;
  color: #854d0e !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
}

/* 비밀메모 박스 */
.secret-memo-box {
  background: #fffbeb !important;
  border: 1px solid #fde68a !important;
  border-left: 3px solid #d97706 !important;
  color: #78350f !important;
  border-radius: 4px !important;
}
.secret-memo-box strong {
  color: #92400e !important;
}

/* 등록자 태그 */
.registrant-tag {
  background: #f4f4f5 !important;
  border: 1px solid #e4e4e7 !important;
  color: #52525b !important;
  padding: 2px 7px !important;
  font-weight: 500 !important;
}

/* 액션 버튼 (상세보기/수정/계약완료/삭제) */
.btn-sub-action {
  font-weight: 500 !important;
  color: #52525b !important;
}
.btn-sub-action:hover {
  color: #18181b !important;
}

/* 상세보기 버튼만 강조 */
.btn-contact-blue {
  font-weight: 600 !important;
}

/* ─── 6. 지도 뱃지 ───────────────────────────────── */
.gongsil-stat-badge {
  min-width: 84px !important;
}

/* ─── 7. 스크롤바 ────────────────────────────────── */
.property-list::-webkit-scrollbar-thumb {
  background: #d4d4d8 !important;
  border: 2px solid transparent !important;
  background-clip: content-box !important;
}

/* ─── 8. 헤더 그림자 (미묘) ──────────────────────── */
header {
  border-bottom: 1px solid #e4e4e7 !important;
  box-shadow: 0 1px 0 rgba(24,24,27,.02) !important;
}

/* ═══════════════════════════════════════════════════
   헤더 여백 + 결제 모달 여백 확대 v1
   ═══════════════════════════════════════════════════ */

/* ─── 헤더: 로고 ↔ 버튼 그룹 간격 ──────────────── */
header {
  padding: 0 32px !important;
  gap: 24px !important;
}
.logo-brand {
  margin-right: auto !important;   /* 로고는 왼쪽 끝, 나머지 오른쪽 */
}
.header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

/* 헤더 버튼 자체에 좌우 여백 (버튼끼리 더 벌어짐) */
.btn-membership,
.btn-header-admin,
.btn-register {
  margin-left: 4px !important;
}
.auth-pill-badge {
  margin-left: 6px !important;
}

/* 뷰 토글 버튼과 로고 사이 여백 */
.gp-view-switch {
  margin: 0 16px !important;
}

/* ─── 결제 모달: 내부 여백 대폭 확대 ───────────── */
#subscriptionModal .modal-content-card {
  width: 640px !important;
  max-width: 92vw !important;
  padding: 32px 32px 28px !important;
}

/* 모달 헤더 */
#subscriptionModal .modal-head-row {
  margin-bottom: 22px !important;
  padding-bottom: 16px !important;
}
#subscriptionModal .modal-head-row h2 {
  font-size: 19px !important;
  margin-bottom: 6px !important;
}
#subscriptionModal .modal-head-row p {
  font-size: 12.5px !important;
  margin-top: 6px !important;
}

/* 요금제 카드 그리드 — gap 확대 */
#subscriptionModal .pricing-card-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  margin-bottom: 26px !important;
}

/* 요금제 카드 내부 패딩 확대 */
#subscriptionModal .pricing-card {
  padding: 22px 20px !important;
  border-radius: 6px !important;
  line-height: 1.55 !important;
}
#subscriptionModal .plan-title {
  font-size: 15.5px !important;
  margin-bottom: 10px !important;
}
#subscriptionModal .plan-price {
  font-size: 20px !important;
  margin-bottom: 14px !important;
  line-height: 1.3 !important;
}
#subscriptionModal .plan-price span {
  font-size: 12px !important;
  margin-left: 4px !important;
  color: #71717a !important;
}
#subscriptionModal .plan-features {
  font-size: 12.5px !important;
  line-height: 1.85 !important;
  color: #52525b !important;
}
#subscriptionModal .plan-badge {
  top: 14px !important;
  right: 14px !important;
  padding: 3px 9px !important;
}

/* 결제수단 선택 라벨 여백 */
#subscriptionModal > .modal-content-card > div[style*="결제 수단"] {
  margin-bottom: 12px !important;
  margin-top: 6px !important;
}

/* 결제수단 버튼 그리드 */
#subscriptionModal .payment-method-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  margin-bottom: 24px !important;
}
#subscriptionModal .pay-method-btn {
  padding: 13px 8px !important;
  border-radius: 4px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* 안내 박스 여백 확대 */
#subscriptionModal .modal-content-card > div[style*="background:#f9fafb"],
#subscriptionModal .modal-content-card > div[style*="background: #f9fafb"] {
  padding: 18px 20px !important;
  border-radius: 6px !important;
  margin-bottom: 24px !important;
  line-height: 1.65 !important;
}
#subscriptionModal .modal-content-card > div[style*="background:#f9fafb"] > div:first-child,
#subscriptionModal .modal-content-card > div[style*="background: #f9fafb"] > div:first-child {
  margin-bottom: 10px !important;
}

/* 하단 결제 버튼 — 여백 + 크기 */
#subscriptionModal .btn-submit-registration {
  padding: 16px 0 !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* 닫기 X 버튼 — 살짝 안쪽으로 */
#subscriptionModal .btn-close-modal {
  padding: 4px 8px !important;
  font-size: 22px !important;
  line-height: 1 !important;
}

/* ─── 다른 모달들도 여백 통일 ─────────────────── */
.modal-content-card {
  padding: 30px 28px !important;
}
.modal-head-row {
  margin-bottom: 20px !important;
  padding-bottom: 14px !important;
}

/* ─── 헤더 로고 옆 여백 (index.html 전용) ─────── */
.header-actions > * + * {
  margin-left: 4px !important;
}

/* ─── 좁은 화면에서도 안 깨지게 ───────────────── */
@media (max-width: 1280px) {
  #subscriptionModal .pricing-card-grid {
    grid-template-columns: 1fr !important;
  }
  #subscriptionModal .payment-method-row {
    grid-template-columns: 1fr !important;
  }
}


/* =====================================================================
   [통합 섹션] 원본 파일명: design_board.css
   ===================================================================== */
/* ============================================================= */
/* 공실드림 전산 보드 (design_board.css) - 무결점 완결판 */
/* ============================================================= */

/* 1. 지도 모드일 때는 게시판 테이블을 100% 숨김 (사이드바 침범 원천 차단) */
body.gp-mode-map #gpBoardView {
  display: none !important;
}

/* 2. 게시판 모드일 때는 지도와 사이드바를 숨기고 테이블 전산망만 풀스크린 노출 */
body.gp-mode-board .main-container {
  display: none !important;
}

body.gp-mode-board #gpBoardView {
  display: flex !important;
  flex-direction: column;
  flex: 1;
  height: calc(100vh - 108px);
  background: #ffffff;
  overflow: hidden;
  position: relative;
  z-index: 10;
}

/* 헤더 뷰 스위치 토글 버튼 */
.gp-view-switch {
  display: inline-flex;
  align-items: center;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 2px;
  gap: 2px;
  margin-right: 8px;
}
.gp-view-switch button {
  border: none;
  background: transparent;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.gp-view-switch button.active {
  background: #ffffff;
  color: #991b1b;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* 게시판 헤더바 */
.gp-board-header {
  height: 52px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
  flex-shrink: 0;
}
.gp-board-title {
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
}
.gp-board-count {
  font-size: 13px;
  color: #991b1b;
  font-weight: 900;
}
.gp-board-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}
.gp-board-btn {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
}
.gp-board-btn:hover { background: #f1f5f9; }
.gp-board-btn.gp-primary {
  background: #991b1b;
  color: #ffffff;
  border-color: #991b1b;
}

/* 게시판 테이블 스타일 */
.gp-board-table-wrap {
  flex: 1;
  overflow-y: auto;
  background: #ffffff;
}
.gp-board-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  text-align: left;
}
.gp-board-table th {
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
  padding: 10px 12px;
  border-bottom: 1px solid #cbd5e1;
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 5;
}
.gp-board-table td {
  padding: 9px 12px;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  vertical-align: middle;
}
.gp-board-table tr:hover { background: #f8fafc; }

/* 건물 행 & 하위 호실 행 */
.gp-building-row {
  background: #eff6ff !important;
  font-weight: 800;
  cursor: pointer;
}
.gp-building-row:hover { background: #dbeafe !important; }
.gp-bldg-count {
  background: #1e3a8a;
  color: #ffffff;
  padding: 2px 7px;
  border-radius: 10px;
  font-size: 11px;
}
.gp-sub-row {
  background: #ffffff;
}
.gp-sub-row td:first-child { padding-left: 20px; }

/* 썸네일 */
.gp-board-thumb {
  width: 44px;
  height: 33px;
  border-radius: 4px;
  overflow: hidden;
  background: #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e2e8f0;
}
.gp-board-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* 페이지네이션 바 */
.gp-board-pager {
  height: 48px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
  flex-shrink: 0;
}
.gp-pager-info { font-size: 12px; color: #64748b; }
.gp-pager-controls { display: flex; align-items: center; gap: 4px; }
.gp-pager-btn {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.gp-pager-btn.gp-pager-active {
  background: #991b1b;
  color: #ffffff;
  border-color: #991b1b;
}


/* =====================================================================
   [통합 섹션] 원본 파일명: design_polish.css
   ===================================================================== */
/* ═══════════════════════════════════════════════════════
   공실드림 디자인 폴리시 — 상세 모달 + 게시판 디테일
   ═══════════════════════════════════════════════════════ */

/* ─── 1. 게시판 건물 아이콘 (이모지 → SVG) ──────── */
.gp-board-thumb.gp-thumb-building {
  background: #18181b !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'><path d='M4 21V7l8-4v18H4zm8 0V3l8 4v14h-8zM7 9v2h2V9H7zm0 4v2h2v-2H7zm0 4v2h2v-2H7zm8-8v2h2v-2h-2zm0 4v2h2v-2h-2zm0 4v2h2v-2h-2z'/></svg>") !important;
  background-size: 22px 22px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  color: transparent !important;
  font-size: 0 !important;
}

/* 개별 매물 썸네일 (아이콘 fallback) */
.gp-board-thumb.gp-thumb-empty {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fafafa !important;
  border: 1px dashed #d4d4d8 !important;
  font-size: 20px !important;
  color: #71717a !important;
}

/* ─── 2. 상세 모달: 여백 & 톤 정리 ──────────────── */
#detailModal .detail-modal-box {
  width: 760px !important;
  max-width: 94vw !important;
  padding: 24px 28px 22px !important;
  border-radius: 8px !important;
}

/* 상단 헤더 (타입 + 주소) */
#detailModal .detail-top-bar {
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid #e4e4e7 !important;
}
#detailModal .room-badge {
  padding: 3px 9px !important;
  border-radius: 3px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  background: #f4f4f5 !important;
  color: #3f3f46 !important;
  border: 1px solid #e4e4e7 !important;
}
#detailModal .detail-top-bar h2 {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #18181b !important;
  letter-spacing: -0.01em !important;
  margin-top: 6px !important;
  line-height: 1.4 !important;
}

/* 대표 이미지 영역 — placeholder 지원 */
#detailModal .detail-main-img-box {
  height: 280px !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
}
#detailModal .detail-main-img-box img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
#detailModal .detail-main-img-box .gp-img-placeholder {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #a1a1aa;
}
#detailModal .detail-main-img-box.gp-no-image img {
  display: none !important;
}
#detailModal .detail-main-img-box.gp-no-image .gp-img-placeholder {
  display: flex;
}
#detailModal .gp-img-placeholder svg {
  width: 56px;
  height: 56px;
  opacity: .6;
}
#detailModal .gp-img-placeholder span {
  font-size: 12px;
  color: #71717a;
  font-weight: 500;
}

/* 썸네일 스크롤 */
#detailModal .detail-thumbs-scroll {
  gap: 6px !important;
  margin-bottom: 14px !important;
  padding-bottom: 4px !important;
}
#detailModal .detail-thumb-item {
  width: 68px !important;
  height: 51px !important;
  border-radius: 3px !important;
  border: 2px solid transparent !important;
  transition: border-color .15s !important;
}
#detailModal .detail-thumb-item.active {
  border-color: #991b1b !important;
}

/* 가격 배너 */
#detailModal .detail-price-banner {
  padding: 14px 18px !important;
  border-radius: 4px !important;
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  border-left: 3px solid #991b1b !important;
  margin-bottom: 18px !important;
}
#detailModal .detail-price-big {
  font-size: 20px !important;
  font-weight: 900 !important;
  color: #991b1b !important;
  letter-spacing: -0.02em !important;
  font-variant-numeric: tabular-nums !important;
}
#detailModal .detail-price-banner [id="modalDetailFee"] {
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #71717a !important;
  margin-left: 6px !important;
}

/* 스펙 그리드 (6개) */
#detailModal .detail-spec-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
}
#detailModal .spec-grid-item {
  padding: 10px 12px !important;
  border-radius: 3px !important;
  background: #ffffff !important;
  border: 1px solid #e4e4e7 !important;
  min-height: 54px !important;
}
#detailModal .spec-grid-label {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  color: #a1a1aa !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin-bottom: 5px !important;
}
#detailModal .spec-grid-value {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #18181b !important;
  letter-spacing: -0.01em !important;
}

/* 비밀메모 박스 (사내용) */
#detailModal #modalDetailSecretWrap {
  padding: 12px 14px !important;
  border-radius: 4px !important;
  background: #fffbeb !important;
  border: 1px solid #fde68a !important;
  border-left: 3px solid #d97706 !important;
  margin-bottom: 16px !important;
}
#detailModal #modalDetailSecretWrap > div:first-child {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #92400e !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 6px !important;
  text-transform: uppercase !important;
}
#detailModal #modalDetailSecretText {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: #78350f !important;
  line-height: 1.6 !important;
  white-space: pre-wrap !important;
}

/* 건물 인맥 계통도 */
#detailModal #modalStakeholderWrap {
  padding: 14px 16px !important;
  border-radius: 4px !important;
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  margin-bottom: 16px !important;
}
#detailModal #modalStakeholderWrap > div:first-child {
  padding-bottom: 10px !important;
  margin-bottom: 12px !important;
  border-bottom: 1px solid #e4e4e7 !important;
}
#detailModal #modalStakeholderWrap > div:first-child strong {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #18181b !important;
  letter-spacing: -0.01em !important;
}
#detailModal #modalStakeholderWrap > div:first-child button {
  font-size: 11px !important;
  padding: 4px 10px !important;
  background: #991b1b !important;
  border-radius: 3px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* 계통도 카드 (좌우 2개) */
#detailModal #stakeholderCurrentCards > div {
  padding: 10px 12px !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  border: 1px solid #e4e4e7 !important;
  box-shadow: none !important;
}
#detailModal #stakeholderCurrentCards > div > div:first-child {
  margin-bottom: 6px !important;
}
#detailModal #stakeholderCurrentCards > div > div:first-child > span:first-child {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}
#detailModal #stakeholderCurrentCards > div > div:first-child > span:last-child {
  font-size: 10px !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
}
#detailModal #stakeholderCurrentCards > div > div:nth-child(2) {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #18181b !important;
  margin-bottom: 6px !important;
  font-variant-numeric: tabular-nums !important;
}
#detailModal #stakeholderCurrentCards > div > a {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  padding: 3px 8px !important;
  border-radius: 3px !important;
  display: inline-block !important;
}

/* 이력 펼치기 */
#detailModal #modalStakeholderWrap details {
  margin-top: 10px !important;
}
#detailModal #modalStakeholderWrap details summary {
  font-size: 11.5px !important;
  padding: 6px 0 !important;
  color: #52525b !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
}

/* 임대인 연락처 */
#detailModal [style*="background:#f9fafb"][style*="border-radius:8px"] {
  padding: 12px 14px !important;
  border-radius: 4px !important;
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  margin-bottom: 12px !important;
}

/* 업로드 원본 추적 */
#detailModal #modalDetailAuditBox {
  padding: 12px 14px !important;
  border-radius: 4px !important;
  background: #fafafa !important;
  border: 1px dashed #d4d4d8 !important;
  margin-bottom: 14px !important;
  font-size: 11.5px !important;
}
#detailModal #modalDetailAuditBox > div:first-child {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #52525b !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 8px !important;
  text-transform: uppercase !important;
}

/* 하단 4개 액션 버튼 */
#detailModal .detail-actions-bar {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr 1fr !important;
  gap: 6px !important;
  padding-top: 16px !important;
  margin-top: 16px !important;
  border-top: 1px solid #e4e4e7 !important;
}
#detailModal .btn-detail-action {
  height: 38px !important;
  padding: 0 8px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  border: 1px solid transparent !important;
  letter-spacing: -0.01em !important;
  transition: filter .15s !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
}
#detailModal .btn-detail-action:hover {
  filter: brightness(.94) !important;
  transform: none !important;
}

/* ─── 3. 관리자 제어 박스 (노란 dashed) ─────────── */
#detailModal #adminMasterControlBox {
  padding: 14px 16px !important;
  border-radius: 4px !important;
  background: #fffbeb !important;
  border: 1px dashed #f59e0b !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
  font-size: 12px !important;
}
#detailModal #adminMasterControlBox > div:first-child {
  padding-bottom: 10px !important;
  margin-bottom: 10px !important;
  border-bottom: 1px solid #fde68a !important;
}
#detailModal #adminMasterControlBox > div:first-child strong {
  font-size: 11.5px !important;
  font-weight: 800 !important;
  color: #92400e !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}
#detailModal #adminMasterControlBox > div:first-child > div > span {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  padding: 2px 7px !important;
  border-radius: 3px !important;
  letter-spacing: 0.02em !important;
}
#detailModal #adminMasterControlBox > div:nth-child(2) {
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #78350f !important;
  margin-bottom: 8px !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}
#detailModal #adminMasterControlBox > div:nth-child(n+3) {
  padding: 8px 10px !important;
  background: #ffffff !important;
  border: 1px solid #fde68a !important;
  border-radius: 3px !important;
  margin-top: 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  font-size: 12px !important;
}
#detailModal #adminMasterControlBox button {
  font-size: 11px !important;
  padding: 4px 10px !important;
  border-radius: 3px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* ─── 4. 모달 닫기 X 버튼 ─────────────────────── */
#detailModal .detail-top-bar > button {
  width: 32px !important;
  height: 32px !important;
  border-radius: 4px !important;
  color: #71717a !important;
  font-size: 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all .15s !important;
}
#detailModal .detail-top-bar > button:hover {
  background: #f4f4f5 !important;
  color: #18181b !important;
}

/* ─── 5. 반응형 ──────────────────────────────── */
@media (max-width: 900px) {
  #detailModal .detail-spec-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  #detailModal .detail-actions-bar {
    grid-template-columns: 1fr 1fr !important;
  }
  #detailModal #stakeholderCurrentCards {
    grid-template-columns: 1fr !important;
  }
}


/* =====================================================================
   [통합 섹션] 원본 파일명: design_visual.css
   ===================================================================== */
/* ═══════════════════════════════════════════════════════
   공실드림 시각 정리 v1
   ═══════════════════════════════════════════════════════ */

/* ─── ⑦ 헤더: 전체 간격 통일 ──────────────────── */
header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  padding: 0 24px !important;
}

/* 로고 */
header > .logo-brand,
header > a.logo-brand {
  flex-shrink: 0 !important;
  margin-right: 4px !important;
}

/* 로고 영역 안의 드롭다운 그룹 (index.html, gongsil.html 공통) */
.logo-area {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex: 1 !important;
  min-width: 0 !important;
}
.logo-area > a.logo-brand {
  margin-right: 10px !important;
}
/* 드롭다운 그룹 사이 구분선 */
.logo-area > div:not(.logo-brand) {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding-left: 14px !important;
  border-left: 1px solid #e4e4e7 !important;
  min-width: 0 !important;
}

/* 헤더 셀렉트 통일 */
.unified-header-select,
#quickCitySelect,
#quickGuSelect,
#quickDongSelect {
  height: 32px !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #3f3f46 !important;
  background: #ffffff !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 4px !important;
  letter-spacing: -0.01em !important;
  transition: border-color .15s cubic-bezier(.2,0,.2,1) !important;
}
.unified-header-select:hover,
#quickCitySelect:hover,
#quickGuSelect:hover,
#quickDongSelect:hover {
  border-color: #a1a1aa !important;
}
.unified-header-select:focus,
#quickCitySelect:focus,
#quickGuSelect:focus,
#quickDongSelect:focus {
  border-color: #991b1b !important;
  box-shadow: 0 0 0 3px #fef2f2 !important;
  outline: none !important;
}

/* 우측 액션 그룹 */
header .nav-links,
header .header-actions,
header .header-user-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}

/* 뷰 토글 - 헤더 가운데 정렬, 여백 확보 */
.gp-view-switch {
  margin: 0 12px !important;
  flex-shrink: 0 !important;
}

/* ─── ⑧ 필터 바: 검수필요 뱃지 톤 다운 ────────── */
.filter-bar {
  padding: 0 20px !important;
  gap: 8px !important;
}
.filter-bar > button[onclick*="toggleReviewFilter"],
.filter-bar > button[onclick*="toggleRecommendFilter"],
.filter-bar > button[onclick*="toggleGroupBuilding"] {
  height: 26px !important;
  padding: 0 10px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  letter-spacing: -0.01em !important;
  transition: all .15s cubic-bezier(.2,0,.2,1) !important;
}

/* 검수필요 뱃지 - 주황 → 연한 앰버 */
.filter-bar > button[onclick*="toggleReviewFilter"] {
  background: #fffbeb !important;
  color: #92400e !important;
  border: 1px solid #fde68a !important;
  box-shadow: none !important;
}
.filter-bar > button[onclick*="toggleReviewFilter"]:hover {
  background: #fef3c7 !important;
  border-color: #f59e0b !important;
}

/* ─── ⑨ N 아이콘 정리 ────────────────────────── */
.icon-n {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  padding: 0 !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  color: #991b1b !important;
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-radius: 3px !important;
  margin-right: 6px !important;
  vertical-align: middle !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
}


/* ─── ⑩ 실소유주 앰버 박스 차분하게 ─────────── */
/* 매물 카드 안의 실소유주 알림 (건물확인 실소유주) */
.property-row [style*="fef3c7"][style*="border"],
.property-row div[style*="background:#fef3c7"],
.property-row div[style*="#fef3c7"] {
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  border-left: 3px solid #d97706 !important;
  color: #52525b !important;
  border-radius: 4px !important;
  padding: 4px 8px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
}
.property-row [style*="fef3c7"] strong,
.property-row [style*="fef3c7"] b {
  color: #92400e !important;
  font-weight: 800 !important;
}
.property-row [style*="fef3c7"] a,
.property-row [style*="fef3c7"] span[style*="b91c1c"] {
  color: #92400e !important;
  font-weight: 700 !important;
}

/* 비밀메모 박스도 톤 정렬 (앰버 → 뉴트럴) */
.secret-memo-box {
  background: #fafafa !important;
  border: 1px solid #e4e4e7 !important;
  border-left: 3px solid #d97706 !important;
  color: #52525b !important;
  border-radius: 4px !important;
  font-weight: 500 !important;
}
.secret-memo-box strong {
  color: #92400e !important;
  font-weight: 800 !important;
}

/* ─── 보너스: 매물 카드 하단 액션 버튼 톤 통일 ── */
.property-row .col-actions .btn-sub-action,
.property-row .col-actions .btn-contact-blue {
  height: 24px !important;
  padding: 0 8px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  border-radius: 3px !important;
  transition: all .15s cubic-bezier(.2,0,.2,1) !important;
}
.property-row .col-actions .btn-contact-blue {
  background: #991b1b !important;
  color: #ffffff !important;
  border: 1px solid #991b1b !important;
  font-weight: 600 !important;
}
.property-row .col-actions .btn-contact-blue:hover {
  background: #7f1d1d !important;
  border-color: #7f1d1d !important;
}

/* ═══════════════════════════════════════════════════════
   사이드바 건물별 그룹 카드 — 프리미엄 리디자인
   ═══════════════════════════════════════════════════════ */

/* ─── 그룹 카드 (건물 1개) ─────────────────────── */
.property-row[data-base-addr] {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  background: #ffffff !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transition: border-color .15s cubic-bezier(.2,0,.2,1),
              box-shadow .15s cubic-bezier(.2,0,.2,1) !important;
  cursor: pointer !important;
}
.property-row[data-base-addr]:hover {
  border-color: #a1a1aa !important;
  box-shadow: 0 2px 8px rgba(9,9,11,.06) !important;
}
.property-row[data-base-addr].active {
  border-color: #18181b !important;
  box-shadow: 0 0 0 2px rgba(24,24,27,.08) !important;
  background: #ffffff !important;
}
.property-row[data-base-addr]::before { display: none !important; }

/* ─── 그룹 카드 상단 헤더 ───────────────────────── */
.property-row[data-base-addr] > div:first-child {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 12px 14px !important;
  background: #fafafa !important;
  border-bottom: 1px solid #e4e4e7 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  gap: 10px !important;
}

/* ─── "건물통합" 배지 → 딥 네이비 태그 ───────────── */
.property-row[data-base-addr] > div:first-child > div > span:first-child {
  display: inline-flex !important;
  align-items: center !important;
  height: 20px !important;
  padding: 0 8px !important;
  background: #18181b !important;
  color: #ffffff !important;
  border-radius: 3px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  border: none !important;
  box-shadow: none !important;
}

/* 건물 주소 텍스트 */
.property-row[data-base-addr] > div:first-child > div > strong {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #18181b !important;
  letter-spacing: -0.01em !important;
  line-height: 1.4 !important;
}

/* ─── "공실 N개" 배지 → 아웃라인 태그 ─────────── */
.property-row[data-base-addr] > div:first-child > span:last-child {
  display: inline-flex !important;
  align-items: center !important;
  height: 22px !important;
  padding: 0 9px !important;
  background: #ffffff !important;
  color: #18181b !important;
  border: 1px solid #d4d4d8 !important;
  border-radius: 3px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  font-variant-numeric: tabular-nums !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* ─── 연락처 박스 (점선 박스) ───────────────────── */
.property-row[data-base-addr] > div:nth-child(2) {
  padding: 10px 14px !important;
  background: #ffffff !important;
  border: none !important;
  border-bottom: 1px solid #f4f4f5 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  font-size: 11.5px !important;
  line-height: 1.55 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

/* 연락처 각 줄 */
.property-row[data-base-addr] > div:nth-child(2) > div {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
}

/* 실소유주 라인 - 앰버 도트 */
.property-row[data-base-addr] > div:nth-child(2) > div:first-child {
  color: #92400e !important;
  font-weight: 600 !important;
  padding-left: 2px !important;
}
.property-row[data-base-addr] > div:nth-child(2) > div:first-child::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #d97706;
  border-radius: 50%;
  flex-shrink: 0;
}

/* 현장안내 라인 - 슬레이트 도트 */
.property-row[data-base-addr] > div:nth-child(2) > div:nth-child(2) {
  color: #3f3f46 !important;
  font-weight: 500 !important;
  padding-left: 2px !important;
}
.property-row[data-base-addr] > div:nth-child(2) > div:nth-child(2)::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #a1a1aa;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ─── 서브 호실 행 리스트 ─────────────────────── */
.property-row[data-base-addr] > div:nth-child(3) {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  border-radius: 0 !important;
}

/* 각 호실 행 */
.property-row[data-base-addr] > div:nth-child(3) > div {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  padding: 9px 14px !important;
  background: #ffffff !important;
  border: none !important;
  border-bottom: 1px solid #f4f4f5 !important;
  border-radius: 0 !important;
  font-size: 12px !important;
  transition: background .12s cubic-bezier(.2,0,.2,1) !important;
}
.property-row[data-base-addr] > div:nth-child(3) > div:last-child {
  border-bottom: none !important;
}
.property-row[data-base-addr] > div:nth-child(3) > div:hover {
  background: #fafafa !important;
}

/* 호실 좌측 그룹 (체크박스 + 뱃지 + 이름 + 가격) */
.property-row[data-base-addr] > div:nth-child(3) > div > div:first-child {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

/* 서브 행의 체크박스 */
.property-row[data-base-addr] input.prop-check {
  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
  accent-color: #18181b !important;
}

/* 서브 행의 유형 뱃지 (원룸 등) */
.property-row[data-base-addr] > div:nth-child(3) .room-badge {
  display: inline-flex !important;
  align-items: center !important;
  height: 18px !important;
  padding: 0 6px !important;
  margin: 0 !important;
  background: #f4f4f5 !important;
  color: #52525b !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 3px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  flex-shrink: 0 !important;
}

/* 호실 이름 (402호 등) */
.property-row[data-base-addr] > div:nth-child(3) strong {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #18181b !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-variant-numeric: tabular-nums !important;
}

/* 가격 (보 100 / 월 33) */
.property-row[data-base-addr] > div:nth-child(3) span[style*="b91c1c"],
.property-row[data-base-addr] > div:nth-child(3) span[style*="#b91c1c"] {
  color: #991b1b !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: -0.02em !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* 관리비 텍스트 */
.property-row[data-base-addr] > div:nth-child(3) span[style*="64748b"] {
  color: #a1a1aa !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* ─── "상세보기" 버튼 → 미니 아웃라인 ─────────── */
.property-row[data-base-addr] > div:nth-child(3) button {
  height: 22px !important;
  padding: 0 8px !important;
  background: #ffffff !important;
  color: #3f3f46 !important;
  border: 1px solid #d4d4d8 !important;
  border-radius: 3px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer !important;
  transition: all .12s cubic-bezier(.2,0,.2,1) !important;
  flex-shrink: 0 !important;
}
.property-row[data-base-addr] > div:nth-child(3) button:hover {
  background: #18181b !important;
  color: #ffffff !important;
  border-color: #18181b !important;
}

/* ─── 완료 매물 (line-through) 유지하되 톤 정리 ── */
.property-row[data-base-addr] > div:nth-child(3) > div[style*="line-through"] {
  opacity: 0.5 !important;
}
.property-row[data-base-addr] > div:nth-child(3) > div[style*="line-through"] strong {
  color: #a1a1aa !important;
}

/* ─── 검수필요 뱃지 (⚠️) 정리 ───────────────────── */
.property-row[data-base-addr] span[style*="fee2e2"][style*="dc2626"] {
  background: #fffbeb !important;
  color: #92400e !important;
  border: 1px solid #fde68a !important;
  border-radius: 3px !important;
  padding: 1px 5px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   지도 마커 파랑 → 검정 (강제 오버라이드)
   ═══════════════════════════════════════════════════════ */

/* 그룹핑 배지 (인라인 style로 파랑 박힌 것 강제 교체) */
.leaflet-marker-icon div[style*="1e3a8a"],
.leaflet-marker-icon div[style*="#1e3a8a"],
.leaflet-marker-icon div[style*="rgb(30, 58, 138)"],
.leaflet-marker-icon div[style*="30,58,138"] {
  background: #18181b !important;
  background-color: #18181b !important;
  background-image: none !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}

/* 파랑 계열 그림자도 교체 */
.leaflet-marker-icon div[style*="1e3a8a"],
.leaflet-marker-icon div[style*="#1e3a8a"] {
  box-shadow: 0 2px 8px rgba(24,24,27,.30) !important;
}

/* 일반 모드 기본 마커 (파란 물방울) → 회색 처리 */
.leaflet-marker-icon.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
}

/* ─── 추가: 일반 마커용 커스텀 스타일이 있으면 검정으로 ─── */
.map-price-marker,
.map-price-marker.active {
  border-color: #18181b !important;
}
.map-price-marker:hover,
.map-price-marker.active {
  background: #18181b !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(24,24,27,.30) !important;
}

/* ═══════════════════════════════════════════════════════
   창 축소 시 레이아웃 보호 — 반응형 브레이크포인트
   ═══════════════════════════════════════════════════════ */

/* ─── 공통: 헤더 자식 요소 겹침 방지 ─────────────── */
header {
  flex-wrap: nowrap !important;
  overflow: visible !important;
}
header > * {
  flex-shrink: 0 !important;
}
header .logo-brand {
  flex-shrink: 0 !important;
}

/* ─── 1단계: 1400px 이하 — 헤더 여백 축소 ────────── */
@media (max-width: 1400px) {
  header {
    padding: 0 16px !important;
    gap: 10px !important;
  }
  .unified-header-select,
  #quickCitySelect,
  #quickGuSelect,
  #quickDongSelect {
    padding: 0 8px !important;
    font-size: 11.5px !important;
    min-width: auto !important;
  }
  .gp-view-switch button {
    padding: 0 9px !important;
    font-size: 11.5px !important;
  }
  .header-actions,
  .nav-links,
  .header-user-actions {
    gap: 6px !important;
  }
  .btn-register,
  .btn-membership {
    padding: 0 10px !important;
    font-size: 11.5px !important;
  }
}

/* ─── 2단계: 1150px 이하 — 드롭다운 폭 축소, 일부 숨김 ─── */
@media (max-width: 1150px) {
  /* 동네 드롭다운 숨김 (구·군까지만) */
  #quickDongSelect {
    display: none !important;
  }
  /* 로그인 세션 텍스트 생략 */
  .auth-pill-badge span:first-child {
    display: none !important;
  }
  .auth-pill-badge::before {
    content: "👤";
    font-size: 13px;
  }
  /* 뷰 토글 텍스트 축약 */
  .gp-view-switch button {
    padding: 0 8px !important;
  }
  .gp-view-switch button span:not(.gp-icon) {
    display: none !important;
  }
  /* 메인포털 링크 숨김 */
  .unified-header-btn {
    display: none !important;
  }
}

/* ─── 3단계: 950px 이하 — 헤더 2줄로 분리 ───────── */
@media (max-width: 950px) {
  header {
    flex-wrap: wrap !important;
    height: auto !important;
    min-height: 56px !important;
    padding: 8px 12px !important;
    gap: 8px !important;
  }
  header .logo-area,
  header > .logo-brand {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  header .nav-links,
  header .header-actions,
  header .header-user-actions {
    flex: 0 0 auto !important;
  }
  /* 검수필요 뱃지 텍스트 축약 */
  .filter-bar button[onclick*="toggleReviewFilter"] {
    padding: 0 8px !important;
    font-size: 11px !important;
  }
}

/* ─── 4단계: 800px 이하 — 드롭다운 폭 더 축소 ─── */
@media (max-width: 800px) {
  /* 도시 드롭다운 아이콘만 */
  #quickCitySelect,
  .unified-header-select#quickCitySelect {
    max-width: 90px !important;
  }
  #quickGuSelect,
  .unified-header-select#quickGuSelect {
    max-width: 100px !important;
  }
  /* 뷰 토글 아이콘만 */
  .gp-view-switch button {
    padding: 0 6px !important;
    min-width: 34px !important;
    justify-content: center !important;
  }
  /* 검수필요 뱃지 축약 */
  .filter-bar button[onclick*="toggleReviewFilter"] {
    padding: 0 6px !important;
  }
}

/* ═══════════════════════════════════════════════════════
   필터 바 — 좁아지면 스크롤 (2줄 wrap 대신)
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1400px) {
  .filter-bar {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    flex-wrap: nowrap !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    padding: 0 12px !important;
  }
  .filter-bar::-webkit-scrollbar {
    display: none !important;
  }
  .filter-bar > * {
    flex-shrink: 0 !important;
  }
  /* 검색창은 살짝 줄임 */
  #filterKeywordInput {
    width: 180px !important;
  }
}

/* ═══════════════════════════════════════════════════════
   사이드바 — 좁은 창에서 폭 축소
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1400px) {
  .sidebar {
    width: 480px !important;
  }
}
@media (max-width: 1150px) {
  .sidebar {
    width: 400px !important;
  }
}
@media (max-width: 950px) {
  .sidebar {
    width: 340px !important;
  }
}

/* ═══════════════════════════════════════════════════════
   게시판 뷰 — 좁은 창에서 컬럼 숨김
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1400px) {
  /* 덜 중요한 컬럼들 숨김 */
  .gp-board-table .gp-c-thumb {
    display: none !important;
  }
  .gp-board-table .gp-c-updated {
    display: none !important;
  }
}
@media (max-width: 1150px) {
  .gp-board-table .gp-c-spec {
    display: none !important;
  }
  .gp-board-table .gp-c-secret {
    max-width: 180px !important;
  }
}
@media (max-width: 950px) {
  .gp-board-table .gp-c-contact {
    display: none !important;
  }
  .gp-board-table .gp-c-type {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════════════════
   index.html 메인 페이지 — 좁은 창 대응
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
  .main-workspace {
    flex-wrap: wrap !important;
  }
  .forms-wrapper {
    width: 100% !important;
    max-width: 100% !important;
  }
  .dashboard-wrapper {
    width: 100% !important;
    min-width: 0 !important;
  }
  .forms-grid {
    grid-template-columns: 1fr 1fr !important;
    height: auto !important;
  }
  .dashboard-card-toss {
    height: 520px !important;
  }
}
@media (max-width: 800px) {
  .forms-grid {
    grid-template-columns: 1fr !important;
  }
  .page-title {
    font-size: 24px !important;
  }
  header {
    padding: 0 14px !important;
  }
}

/* ═══════════════════════════════════════════════════════
   상세 모달 — 좁은 창에서 여백 축소
   ═══════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  #detailModal .detail-modal-box {
    width: 94vw !important;
    padding: 18px 20px !important;
  }
  #detailModal .detail-spec-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  #detailModal .detail-actions-bar {
    grid-template-columns: 1fr 1fr !important;
  }
  #detailModal #stakeholderCurrentCards {
    grid-template-columns: 1fr !important;
  }
}

/* ═══════════════════════════════════════════════════════
   스크롤바 — 좁은 창에서 얇게
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1150px) {
  .property-list::-webkit-scrollbar,
  .gp-board-table-wrap::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }
}


/* =====================================================================
   [MASTER OVERRIDE] 사이드바 목록 & 건물별 묶기 카드 레이아웃 무결성 보장
   - .property-list를 block 컨테이너로 고정하여 Flexbox 0px 압축 원천 차단
   - .property-row[data-base-addr] 내부의 헤더/연락처/호실 목록 100% 정상 표시
   ===================================================================== */
#property-list,
.property-list {
  display: block !important;
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 10px 12px !important;
  background: #f8fafc !important;
}

/* 일반 매물 행 (헤어라인 카드) */
#property-list > .property-row:not([data-base-addr]),
.property-list > .property-row:not([data-base-addr]) {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  height: auto !important;
  min-height: 76px !important;
  max-height: none !important;
  overflow: visible !important;
  background: #ffffff !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  margin: 0 0 8px 0 !important;
}

/* 건물별 묶기 통합 카드 (0px 압축 해제 및 내부 호실 완전 노출) */
#property-list > .property-row[data-base-addr],
.property-list > .property-row[data-base-addr],
.property-row.building-group-card {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 110px !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
  margin: 0 0 12px 0 !important;
  background: #ffffff !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05) !important;
  cursor: pointer !important;
}

#property-list > .property-row[data-base-addr]:hover,
.property-row.building-group-card:hover {
  border-color: #18181b !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.1) !important;
}

#property-list > .property-row[data-base-addr].active,
.property-row.building-group-card.active {
  border-color: #991b1b !important;
  box-shadow: 0 0 0 2px rgba(153, 27, 27, 0.15) !important;
}

/* 건물 통합 카드 상단 헤더 */
#property-list > .property-row[data-base-addr] > div:nth-child(1) {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 11px 14px !important;
  background: #f8fafc !important;
  border-bottom: 1px solid #e2e8f0 !important;
  border-radius: 7px 7px 0 0 !important;
  margin: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

/* 건물 통합 카드 연락처 영역 */
#property-list > .property-row[data-base-addr] > div:nth-child(2) {
  display: block !important;
  padding: 9px 14px !important;
  background: #ffffff !important;
  border: none !important;
  border-bottom: 1px solid #f1f5f9 !important;
  margin: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

/* 건물 통합 카드 호실 리스트 영역 */
#property-list > .property-row[data-base-addr] > div:nth-child(3) {
  display: block !important;
  padding: 6px 10px 10px 10px !important;
  background: #ffffff !important;
  border-radius: 0 0 7px 7px !important;
  margin: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

/* 각 개별 호실 행 */
#property-list > .property-row[data-base-addr] > div:nth-child(3) > div {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 7px 10px !important;
  margin-top: 4px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  height: auto !important;
  overflow: visible !important;
}

/* [GONGSILDREAM_DESIGN_V2_MASTER_START] */
/* =====================================================================
   [공실드림 V2 디자인 리뉴얼 마스터 오버라이드]
   - 헤더 60px 통일, 6px 라운드 일원화, 3-Tone 컬러 정돈, 반응형 액션바 보호
   ===================================================================== */

/* 1. 최상단 헤더 60px 통일 및 본문 높이 정렬 */
header {
  height: 60px !important;
  min-height: 60px !important;
  padding: 0 20px !important;
  background: #ffffff !important;
  border-bottom: 1px solid #e2e8f0 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03) !important;
}
.filter-bar {
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 20px !important;
  gap: 8px !important;
  background: #ffffff !important;
  border-bottom: 1px solid #e2e8f0 !important;
}
.main-container,
body.gp-mode-board #gpBoardView {
  height: calc(100vh - 106px) !important;
}

/* 2. 필터바 모든 칩 & 특수 버튼 6px 모던 라운드 통일 */
.filter-chip {
  height: 28px !important;
  padding: 0 11px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  border: 1px solid #e2e8f0 !important;
  background: #ffffff !important;
  color: #334155 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.12s ease !important;
}
.filter-chip:hover {
  border-color: #94a3b8 !important;
  background: #f8fafc !important;
}
.filter-chip.active {
  background: #0f172a !important;
  color: #ffffff !important;
  border-color: #0f172a !important;
  font-weight: 700 !important;
}
.filter-chip.toggle-active {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
  font-weight: 700 !important;
}

/* 건물별 묶기 / 거래완료 / 추천매물 / 검수필요 버튼 6px 통일 */
#btnGroupBuilding,
#btnCompletedFilter,
#btnRecommendFilter,
.filter-action-btn {
  height: 28px !important;
  padding: 0 11px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  cursor: pointer !important;
  transition: all 0.12s ease !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

/* 검색창 및 초기화 버튼 6px 라운드 통일 */
#filterKeywordInput {
  height: 28px !important;
  width: 220px !important;
  padding: 0 26px 0 10px !important;
  font-size: 12px !important;
  border-radius: 6px !important;
  border: 1px solid #cbd5e1 !important;
  background: #ffffff !important;
}
#filterKeywordInput:focus {
  border-color: #991b1b !important;
  box-shadow: 0 0 0 2px rgba(153, 27, 27, 0.1) !important;
}
.btn-reset-filter {
  height: 28px !important;
  padding: 0 10px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  border: 1px solid #e2e8f0 !important;
  background: #ffffff !important;
  color: #475569 !important;
  display: inline-flex !important;
  align-items: center !important;
}
.btn-reset-filter:hover {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}

/* 3. 매물 카드 3-Tone 저자극 컬러 정돈 & 가독성 강화 */
#property-list > .property-row:not([data-base-addr]) {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  margin: 0 0 8px 0 !important;
  gap: 12px !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}
#property-list > .property-row:not([data-base-addr]):hover {
  border-color: #94a3b8 !important;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05) !important;
}
#property-list > .property-row:not([data-base-addr]).active {
  border-color: #991b1b !important;
  background: #fffdfd !important;
  box-shadow: 0 0 0 1.5px #991b1b !important;
}

.price-text-bold {
  font-size: 16px !important;
  font-weight: 900 !important;
  color: #0f172a !important;
  font-variant-numeric: tabular-nums !important;
}
.fee-text-sub {
  font-size: 11.5px !important;
  color: #64748b !important;
  font-weight: 500 !important;
}
.building-title-row {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  margin-top: 1px !important;
}
.address-sub-row {
  font-size: 11.5px !important;
  color: #64748b !important;
}

/* 실소유주 및 비밀메모 박스 저자극 3-Tone 정돈 */
.owner-badge-row {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #92400e !important;
  background: #fffbeb !important;
  border: 1px solid #fde68a !important;
  border-left: 3px solid #d97706 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
  margin-top: 3px !important;
}
.secret-memo-box {
  margin-top: 4px !important;
  padding: 4px 8px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 3px solid #64748b !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  color: #334155 !important;
  line-height: 1.4 !important;
}
.secret-memo-box strong {
  color: #0f172a !important;
  font-weight: 800 !important;
}

/* 4. 매물 카드 하단 액션바 (좁은 화면 줄바꿈 원천 차단) */
.card-actions-bar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 6px !important;
  padding-top: 6px !important;
  border-top: 1px dashed #e2e8f0 !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
}
.actions-left-group {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
}
.btn-act-compact {
  height: 24px !important;
  padding: 0 8px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  color: #334155 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
  transition: all 0.12s ease !important;
}
.btn-act-compact:hover {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #0f172a !important;
}
.btn-act-compact.btn-act-call-green {
  color: #15803d !important;
  background: #f0fdf4 !important;
  border-color: #bbf7d0 !important;
}
.btn-act-compact.btn-act-call-green:hover {
  background: #dcfce7 !important;
}
.btn-act-compact.btn-act-detail-text {
  color: #991b1b !important;
  background: #fef2f2 !important;
  border-color: #fecaca !important;
}
.btn-act-compact.btn-act-detail-text:hover {
  background: #fee2e2 !important;
}

/* 5. 상세 모달 하단 4대 액션 버튼 균형감 통일 */
#detailModal .detail-actions-bar {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 8px !important;
  padding-top: 16px !important;
  margin-top: 16px !important;
  border-top: 1px solid #e2e8f0 !important;
}
#detailModal .btn-detail-action {
  height: 38px !important;
  border-radius: 6px !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  text-decoration: none !important;
}
/* [GONGSILDREAM_DESIGN_V2_MASTER_END] */

/* 검수필요 버튼 비활성화 시 완전 숨김 보장 */
#btnReviewFilter[style*="none"] {
  display: none !important;
}

/* ============================================================= */
/* [A4 인쇄 모달 전용] 사내 임장용 토글 툴바 출력물 은닉 처리        */
/* ============================================================= */
@media print {
  #printModalPrivateToolbar {
    display: none !important;
  }
}

/* ===== [PRO-PHOTO] 상세 대표사진: 잘림 없이 전체 표시 + 블러 배경으로 여백 채움 ===== */
#detailModal .detail-main-img-box {
  height: auto !important;
  aspect-ratio: 16 / 10 !important;
  max-height: 48vh !important;
  background: #f4f4f5 !important;
  position: relative !important;
}
#detailModal .detail-main-img-box::before {
  content: "";
  position: absolute;
  inset: -24px;
  background-image: var(--gd-bg, none);
  background-size: cover;
  background-position: center;
  filter: blur(24px) saturate(1.1);
  opacity: .5;
}
#detailModal .detail-main-img-box img {
  position: relative;
  z-index: 1;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}
#detailModal .detail-main-img-box.gp-no-image::before { display: none; }
