/* ============================================================
   촌집땅 theme-pro.css — 실무 툴(QGIS/ArcGIS) 스타일 리테마
   main.css 뒤에 로드. 무채색 + 단일 액센트(#2c6e49).
   그라데이션 / 알약 배지 / 큰 그림자 / 세리프 제거.
   ============================================================ */

:root {
  /* 기존 변수 재정의 — main.css 전체에 전파 */
  --forest:#245a3c;
  --pine:#2c6e49;
  --sage:#2c6e49;
  --mint:#c5d6cc;
  --gold:#2c6e49;
  --gold-lt:#2c6e49;
  --cream:#1c1f21;
  --sand:#dcdfe2;
  --linen:#f4f5f6;
  --stone:#6b7175;
  --charcoal:#1c1f21;
  --green:#2c6e49;
  --green-700:#245a3c;
  --green-900:#1b4630;
  --green-soft:#eef4f0;
  --yellow-soft:#f0f1f2;
  --blue-soft:#f0f1f2;
  --purple-soft:#f0f1f2;
  --h-text:#1c1f21;
  --h-muted:#5b6165;
  --h-line:#dcdfe2;
  --h-bg:#f4f5f6;
  --h-shadow:0 1px 3px rgba(0,0,0,.07);
  --h-radius:6px;
  --radius:4px;
  --radius-lg:6px;
  --shadow:0 1px 2px rgba(0,0,0,.05);
  --shadow-lg:0 4px 14px rgba(0,0,0,.10);
  /* 신규 토큰 */
  --t-ink:#1c1f21;
  --t-text:#33383b;
  --t-muted:#6b7175;
  --t-line:#dcdfe2;
  --t-line-soft:#e8eaec;
  --t-bg:#f4f5f6;
  --t-accent:#2c6e49;
  --t-accent-hover:#245a3c;
  --t-accent-soft:#eef4f0;
  --t-accent-border:#c0d4c8;
  --t-danger:#b03a2e;
  --t-font:'Pretendard Variable',Pretendard,'Noto Sans KR',-apple-system,'Segoe UI',sans-serif;
}

/* ---------- 1. 기본 / 타이포 ---------- */
body { font-family: var(--t-font) !important; background:#f4f5f6 !important; color:var(--t-text) !important; }

/* 세리프 표제 → 산세리프 */
.hd-hero-title, .comm-hero-title, .gl-hero-title,
.post-card-title, .panel-title, .post-detail-title,
.msg-modal-title, .write-modal-title, .modal-header h2,
.comments-title, .sidebar-box-title, .list-header,
.report-modal-title, .roadview-modal-title, .side-panel-title,
.hd-modal-head, .stat-val, .panel-price, .list-price,
.hd-detail-box h2, .gl-detail-title {
  font-family: var(--t-font) !important;
}

/* 과한 굵기(800/900) → 700 */
.page-tab-logo, .hd-hero-title, .comm-hero-title, .gl-hero-title,
.h-hero h1, .h-sc-text strong, .h-section-head h2, .h-legal-title,
.h-prop-price, .h-type-card, .h-empty h3, .panel-price,
.proximity-distance, .adv-filter-dropdown-title, .hot-num,
.h-region-panel-head strong, .h-region-reset, .h-region-list button,
.h-type-menu li, .h-search-btn, .h-count, .h-benefit strong,
.h-legal-item strong, .h-legal-topline, .h-prop-badge,
.gl-badge, .gl-register-btn, .gl-card-price, .hd-badge,
.activity-pill, .activity-tab, .activity-main h4, .activity-main strong,
.sigungu-section-head strong, .sigungu-section-title, .msg-badge, .activity-badge {
  font-weight: 700 !important;
}
.h-hero h1 { letter-spacing:-.02em !important; text-shadow:none !important; }
.page-tab-logo { letter-spacing:-.02em !important; color:var(--t-ink) !important; }
.page-tab-logo em { color:var(--t-accent) !important; }

/* ---------- 2. 상단 탭바 = 툴바 ---------- */
.page-tabs {
  background:#fff !important;
  border-bottom:1px solid var(--t-line) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.page-tab { color:var(--t-muted) !important; letter-spacing:0 !important; }
.page-tab:hover { color:var(--t-ink) !important; }
.page-tab.active { color:var(--t-ink) !important; border-bottom-color:var(--t-accent) !important; }

/* AI검색 탭: 그라데이션 배지 → 일반 탭 */
.page-tab--ai, .ai-tab-btn {
  background:none !important;
  color:var(--t-muted) !important;
  border-radius:0 !important;
  margin:0 !important;
  padding:0 22px !important;
  box-shadow:none !important;
  border-bottom:3px solid transparent !important;
  font-weight:600 !important;
  font-size:.96rem !important;
}
.page-tab--ai:hover, .ai-tab-btn:hover { color:var(--t-ink) !important; transform:none !important; box-shadow:none !important; }
.page-tab--ai.active, .ai-tab-btn.active { color:var(--t-ink) !important; border-bottom-color:var(--t-accent) !important; }
.page-tab--ai::after { display:none !important; }

#disclaimer-bar {
  background:#fafbfb !important;
  border-bottom:1px solid var(--t-line-soft) !important;
  color:var(--t-muted) !important;
}
#user-greeting {
  background:#f0f1f2 !important;
  border:1px solid var(--t-line) !important;
  color:var(--t-ink) !important;
  border-radius:4px !important;
}

/* 인증 버튼 */
.auth-btn { border-radius:4px !important; font-weight:600 !important; }
.auth-btn-outline { background:#fff !important; color:var(--t-text) !important; border:1px solid var(--t-line) !important; }
.auth-btn-outline:hover { background:#f4f5f6 !important; color:var(--t-ink) !important; border-color:#c4c9cd !important; }
#signup-btn, .auth-btn-filled { background:var(--t-accent) !important; border-color:var(--t-accent) !important; color:#fff !important; box-shadow:none !important; }
#signup-btn:hover, .auth-btn-filled:hover { background:var(--t-accent-hover) !important; border-color:var(--t-accent-hover) !important; }
.auth-btn-logout { background:#fff !important; color:var(--t-muted) !important; border:1px solid var(--t-line) !important; }
.auth-btn-logout:hover { background:#f4f5f6 !important; color:var(--t-ink) !important; }

/* ---------- 3. 홈: 히어로 (사진·그라데이션 제거 → 도곽 격자) ---------- */
#home-page { background:#f4f5f6 !important; }
.h-hero, #home-page .h-hero {
  background:
    linear-gradient(to right, rgba(28,31,33,.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(28,31,33,.045) 1px, transparent 1px),
    #fff !important;
  background-size:48px 48px, 48px 48px, auto !important;
  border-radius:0 !important;
  border-bottom:1px solid var(--t-line) !important;
  box-shadow:none !important;
  min-height:0 !important;
  padding:56px 64px 88px !important;
}
.h-hero h1 { color:var(--t-ink) !important; }
.h-hero h1 em { color:var(--t-accent) !important; }
.h-hero p { color:var(--t-text) !important; font-weight:500 !important; }
.h-hero p strong { color:var(--t-ink) !important; }

/* 히어로 키커(상단 라벨) */
.h-kicker {
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 10px 5px 8px;
  border:1px solid var(--t-line);
  border-left:3px solid var(--t-accent);
  background:#fff;
  margin-bottom:18px;
  font-size:12px; font-weight:700; color:var(--t-ink); letter-spacing:.02em;
}
.h-hero-points { display:flex; gap:16px; margin-top:16px; flex-wrap:wrap; }
.h-hero-point { display:flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--t-text); }
.h-hero-point::before { content:""; width:6px; height:6px; background:var(--t-accent); flex-shrink:0; }

/* 검색바 */
.h-search, #home-page .h-search {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:0 1px 3px rgba(0,0,0,.06) !important;
}
.h-region-select, .h-region-trigger { border-radius:6px 0 0 6px !important; }
.h-region-chevron, .h-type-chevron { background:#f0f1f2 !important; border-radius:3px !important; }
.h-region-chevron::before, .h-type-chevron::before { border-color:var(--t-muted) !important; }
.h-region-select.is-open .h-region-chevron, .h-type-select.is-open .h-type-chevron { background:var(--t-accent) !important; }
.h-region-select.is-open .h-region-chevron::before, .h-type-select.is-open .h-type-chevron::before { border-color:#fff !important; }
.h-region-panel, .h-type-menu {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:0 6px 20px rgba(0,0,0,.12) !important;
}
.h-region-reset { border-radius:4px !important; background:var(--t-accent-soft) !important; color:var(--t-accent) !important; }
.h-region-list button { border-radius:4px !important; font-weight:600 !important; }
.h-region-list button.is-active, .h-region-list button:hover,
.h-type-menu li:hover, .h-type-menu li[aria-selected=true] { background:var(--t-accent-soft) !important; color:var(--t-accent) !important; }
.h-type-menu li { border-radius:4px !important; font-weight:600 !important; }
.h-search-btn {
  background:var(--t-accent) !important;
  border-radius:4px !important;
  box-shadow:none !important;
  font-weight:700 !important;
}
.h-search-btn:hover { background:var(--t-accent-hover) !important; }

/* ---------- 4. 홈: 바로가기 / 유형 / 카드 ---------- */
.h-shortcuts { gap:12px !important; }
.h-shortcut {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:none !important;
  min-height:96px !important;
  padding:18px 20px !important;
}
.h-shortcut:hover { transform:none !important; box-shadow:none !important; border-color:var(--t-accent) !important; }
.h-sc-icon, .h-sc-icon.map, .h-sc-icon.list, .h-sc-icon.comm, .h-sc-icon.deal {
  background:#f0f1f2 !important;
  border:1px solid var(--t-line-soft) !important;
  border-radius:6px !important;
  color:var(--t-accent) !important;
  width:44px !important; height:44px !important; flex:0 0 44px !important;
}
.h-sc-icon svg { width:22px; height:22px; display:block; }
.h-sc-arrow { color:#b9bec2 !important; }

.h-types { gap:8px !important; }
.h-type-card {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:none !important;
  min-height:72px !important;
  gap:4px !important;
  font-size:13.5px !important;
}
.h-type-card:hover { transform:none !important; box-shadow:none !important; border-color:var(--t-accent) !important; }
.h-type-card.is-active { border-color:var(--t-accent) !important; background:var(--t-accent-soft) !important; color:var(--t-accent) !important; }
.h-count { color:var(--t-accent) !important; }

.h-section-head h2::before {
  border-radius:0 !important;
  width:3px !important;
  height:18px !important;
  background:var(--t-accent) !important;
  vertical-align:-3px !important;
}
.h-prop-card {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:none !important;
}
.h-prop-card:hover { transform:none !important; box-shadow:0 2px 8px rgba(0,0,0,.08) !important; border-color:#c4c9cd !important; }
.h-prop-badge { border-radius:3px !important; background:var(--t-accent) !important; box-shadow:none !important; padding:4px 8px !important; }
.h-prop-heart { border-radius:4px !important; border:1px solid var(--t-line) !important; background:#fff !important; color:var(--t-danger) !important; font-size:15px !important; }
.h-prop-price { color:var(--t-accent) !important; }
.h-prop-img { border-radius:0 !important; }

.h-empty {
  border:1px dashed var(--t-line) !important;
  border-radius:6px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.h-empty-icon { display:none !important; }
.h-empty h3 { color:var(--t-ink) !important; }
.h-empty-reset { border-radius:4px !important; background:var(--t-accent) !important; box-shadow:none !important; }

.h-benefits { gap:10px !important; }
.h-benefit {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  padding:14px 16px !important;
}
.h-benefit:hover { transform:none !important; box-shadow:none !important; }
.h-benefit::before { content:""; width:6px; height:6px; background:var(--t-accent); flex-shrink:0; }
.h-benefit-icon { display:none !important; }

/* 하단 소개/법적 고지 */
.h-legal {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.h-legal::before { background:var(--t-accent) !important; border-radius:0 !important; width:32px !important; height:3px !important; }
.h-legal-topline { border-radius:3px !important; background:#f0f1f2 !important; color:var(--t-text) !important; }
.h-legal-dot { border-radius:0 !important; background:var(--t-accent) !important; box-shadow:none !important; }
.h-legal-title { color:var(--t-ink) !important; }
.h-legal-item { border:1px solid var(--t-line-soft) !important; border-radius:4px !important; background:#fafbfb !important; }
.h-legal-item strong { color:var(--t-ink) !important; }
.h-footer-links a { border-radius:3px !important; }
.h-footer-links a:hover { background:#f0f1f2 !important; color:var(--t-ink) !important; }

/* ---------- 5. 페이지 히어로 (목록/꿀템/커뮤니티) ---------- */
#gallery-page, #hotdeal-page, #community-page, #ai-page, #aisearch-page { background:#f4f5f6 !important; }
.gl-hero, .hd-hero, .comm-hero {
  background:#fff !important;
  border-bottom:1px solid var(--t-line) !important;
  box-shadow:none !important;
  text-align:left !important;
  padding:22px 28px 18px !important;
}
.gl-hero-title, .hd-hero-title, .comm-hero-title { font-size:1.25rem !important; color:var(--t-ink) !important; }
.gl-hero-title em, .hd-hero-title em, .comm-hero-title em { color:var(--t-accent) !important; }
.gl-hero-sub, .hd-hero-sub, .comm-hero-sub { color:var(--t-muted) !important; }
.comm-hero-inner { padding:0 !important; width:100% !important; }
.hd-post-btn, .comm-post-btn {
  background:var(--t-accent) !important;
  color:#fff !important;
  border:none !important;
  border-radius:4px !important;
  box-shadow:none !important;
  padding:10px 20px !important;
  margin-top:12px !important;
}
.hd-post-btn:hover, .comm-post-btn:hover { background:var(--t-accent-hover) !important; transform:none !important; box-shadow:none !important; }

/* ---------- 6. 칩 / 필터 (알약 → 사각) ---------- */
.hd-chip, .sigungu-chip, .cat-chip, .gl-chip, .tag-item, .loc-btn,
.list-sort-btn, .adv-chip, .region-tab, .adv-prox-quick-btn, .unit-btn,
.calc-type-btn, .calc-seg, .hd-cat-btn, .write-tag-chip {
  border-radius:4px !important;
  border-width:1px !important;
  border-color:var(--t-line) !important;
  color:var(--t-text) !important;
  font-weight:600 !important;
  background:#fff;
}
.hd-chip:hover, .sigungu-chip:hover, .cat-chip:hover, .gl-chip:hover, .loc-btn:hover,
.adv-chip:hover, .region-tab:hover, .hd-cat-btn:hover {
  background:#f4f5f6 !important;
  border-color:#c4c9cd !important;
  color:var(--t-ink) !important;
}
.hd-chip.active, .sigungu-chip.active, .cat-chip.active, .gl-chip.active, .loc-btn.active,
.adv-chip.active, .hd-cat-btn.active, .unit-btn.active, .calc-seg.active,
.list-sort-btn.active, .view-toggle-btn.active, .calc-type-btn.active {
  background:var(--t-accent) !important;
  border-color:var(--t-accent) !important;
  color:#fff !important;
  box-shadow:none !important;
}
.region-tab.active { background:var(--t-accent-soft) !important; border-color:var(--t-accent) !important; color:var(--t-accent) !important; border-bottom-color:var(--t-accent) !important; }
.filter-main-btn, .register-btn, .map-mode-btn { border-radius:4px !important; box-shadow:none !important; border-width:1px !important; }
.filter-main-btn:hover, .map-mode-btn:hover { transform:none !important; box-shadow:none !important; }
.filter-main-btn.active, #adv-filter-btn.active, .map-mode-btn.active { background:var(--t-ink) !important; border-color:var(--t-ink) !important; box-shadow:none !important; }
.register-btn { background:var(--t-accent) !important; }
.register-btn:hover { background:var(--t-accent-hover) !important; transform:none !important; box-shadow:none !important; }
.filter-active-dot { border-radius:0 !important; background:var(--t-danger) !important; }

/* ---------- 7. 카드 / 목록 ---------- */
.gl-card, .hd-card, .post-card, .sidebar-box, .activity-card, #comm-search-wrap {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:none !important;
}
.gl-card:hover, .hd-card:hover, .post-card:hover, .activity-card:hover {
  transform:none !important;
  box-shadow:0 2px 8px rgba(0,0,0,.08) !important;
  border-color:#c4c9cd !important;
}
.hd-card { border-left:1px solid var(--t-line) !important; }
.hd-card:hover { border-left-color:var(--t-accent) !important; }
.post-card { border-left:3px solid transparent !important; }
.post-card:hover { border-left-color:var(--t-accent) !important; }
.gl-badge, .hd-badge, .post-cat-badge, .activity-pill, .gl-photo-count, .panel-tag, .post-detail-cat {
  border-radius:3px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
}
.gl-badge-deal { background:var(--t-accent) !important; }
.hd-badge-sale { background:var(--t-danger) !important; }
.gl-card-price, .list-price, .panel-price { color:var(--t-accent) !important; }
.gl-register-box {
  border:1px solid var(--t-line) !important;
  border-left:3px solid var(--t-accent) !important;
  border-radius:6px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.gl-register-btn { border-radius:4px !important; background:var(--t-accent) !important; box-shadow:none !important; }
.gl-register-btn:hover { background:var(--t-accent-hover) !important; }
.pg-btn { border-radius:4px !important; }
.pg-btn.active { background:var(--t-accent) !important; border-color:var(--t-accent) !important; }

/* 지역 선택 섹션 */
.region-tab-row, #community-page .region-tab-row {
  border:1px solid var(--t-line) !important;
  border-bottom:none !important;
  border-radius:6px 6px 0 0 !important;
  box-shadow:none !important;
}
.sigungu-bar { border:1px solid var(--t-line) !important; border-top:none !important; border-radius:0 0 6px 6px !important; background:#fafbfb !important; }
.sigungu-section {
  background:#fafbfb !important;
  border:1px solid var(--t-line) !important;
  border-left:3px solid var(--t-accent) !important;
  border-radius:0 0 6px 6px !important;
  box-shadow:none !important;
}
.sigungu-section .sigungu-chip { border-radius:4px !important; }
.sigungu-section-title::before { border-radius:0 !important; width:6px !important; height:6px !important; }

/* ---------- 8. 모달 / 패널 ---------- */
.modal, .write-modal-box, .hd-modal-box, .msg-modal-box, .report-modal-box, .roadview-modal-box {
  border:1px solid var(--t-line) !important;
  border-top:1px solid var(--t-line) !important;
  border-radius:8px !important;
  box-shadow:0 8px 30px rgba(0,0,0,.16) !important;
}
.modal-overlay, #write-modal, #hd-write-modal { background:rgba(28,31,33,.32) !important; }
.modal-header, .write-modal-head, .hd-modal-head, .msg-modal-header, .report-modal-header, .roadview-modal-head {
  background:#fff !important;
  border-bottom:1px solid var(--t-line-soft) !important;
}
.msg-modal-footer, .adv-filter-actions, .adv-filter-dropdown-header, .hd-modal-footer, .modal-footer { background:#fafbfb !important; }
.detail-panel {
  border-top:1px solid var(--t-line) !important;
  border-right:1px solid var(--t-line) !important;
  box-shadow:2px 0 12px rgba(0,0,0,.08) !important;
}
.post-detail-box, .hd-detail-box, .gl-detail-box, .comments-box {
  border:1px solid var(--t-line) !important;
  border-top:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:none !important;
}
#adv-filter-panel, #prox-filter-panel {
  border:1px solid var(--t-line) !important;
  border-radius:6px !important;
  box-shadow:0 6px 24px rgba(0,0,0,.14) !important;
}
.adv-filter-header-icon { border-radius:4px !important; background:var(--t-accent) !important; }
.adv-filter-label-dot { border-radius:0 !important; background:var(--t-accent) !important; }
.adv-range-input, .adv-prox-input { border-radius:4px !important; border-width:1px !important; }
.adv-range-input:focus { border-color:var(--t-accent) !important; box-shadow:0 0 0 2px rgba(44,110,73,.14) !important; }
.adv-apply-btn { border-radius:4px !important; background:var(--t-accent) !important; box-shadow:none !important; }
.adv-apply-btn:hover { background:var(--t-accent-hover) !important; transform:none !important; box-shadow:none !important; }
.adv-reset-btn { border-radius:4px !important; }
.adv-proximity-item, .adv-prox-all-row { border-radius:4px !important; border-width:1px !important; }
.adv-prox-all-row { background:var(--t-accent-soft) !important; border-color:var(--t-accent-border) !important; }
.adv-dual-slider::-webkit-slider-thumb, .adv-prox-slider::-webkit-slider-thumb, .adv-prox-all-slider::-webkit-slider-thumb { background:var(--t-accent) !important; }

/* 닫기 버튼 */
.modal-close, .msg-modal-close, .panel-close, .report-modal-close, .side-panel-close, .adv-filter-dropdown-close {
  border-radius:4px !important;
  background:#fff !important;
  border:1px solid var(--t-line) !important;
  box-shadow:none !important;
}
.modal-close:hover, .msg-modal-close:hover, .panel-close:hover, .report-modal-close:hover, .side-panel-close:hover, .adv-filter-dropdown-close:hover {
  background:#f4f5f6 !important;
  transform:none !important;
  box-shadow:none !important;
}

/* ---------- 9. 폼 ---------- */
.form-input, .form-select, .form-textarea, .hd-form-input, .write-input,
.comment-input, .search-wrap input, .msg-textarea, .calc-input, #comm-search-wrap input {
  border-radius:4px !important;
  border:1px solid #c9cdd1 !important;
  background:#fff !important;
}
.form-input:focus, .form-select:focus, .form-textarea:focus, .hd-form-input:focus,
.write-input:focus, .comment-input:focus, .search-wrap input:focus, .msg-textarea:focus,
.calc-input:focus, #comm-search-wrap input:focus {
  border-color:var(--t-accent) !important;
  box-shadow:0 0 0 2px rgba(44,110,73,.14) !important;
  background:#fff !important;
}
.form-label, .hd-form-label, .write-label, .calc-label { color:var(--t-ink) !important; }
.form-submit, .comment-submit, .msg-send-btn, .hd-btn-submit, .write-submit-btn {
  background:var(--t-accent) !important;
  border-radius:4px !important;
  letter-spacing:0 !important;
}
.form-submit:hover, .comment-submit:hover, .msg-send-btn:hover, .hd-btn-submit:hover { background:var(--t-accent-hover) !important; }
.hd-btn-cancel, .msg-cancel-btn, .report-cancel-btn, .comment-edit-cancel { border-radius:4px !important; border-width:1px !important; }
.rich-editor-toolbar { border-radius:4px 4px 0 0 !important; background:#fafbfb !important; border-color:var(--t-line) !important; }
.rich-editor-btn { border-radius:3px !important; }
.rich-editor-box { border-radius:0 0 4px 4px !important; border-color:var(--t-line) !important; box-shadow:none !important; }
.rich-editor-box:focus { border-color:var(--t-accent) !important; }
.write-photo-counter { border-radius:3px !important; background:#f0f1f2 !important; border-color:var(--t-line) !important; color:var(--t-muted) !important; }
.msg-to-badge { border-radius:4px !important; background:var(--t-accent-soft) !important; border-color:var(--t-accent-border) !important; color:var(--t-accent) !important; }

/* 소셜 로그인 */
.social-btn { border-radius:4px !important; }

/* ---------- 10. 지도 UI ---------- */
.top-nav { background:#fff !important; border-bottom:1px solid var(--t-line) !important; box-shadow:0 1px 3px rgba(0,0,0,.06) !important; backdrop-filter:none !important; }
.legend { border-radius:4px !important; border:1px solid var(--t-line) !important; background:#fff !important; box-shadow:0 1px 4px rgba(0,0,0,.10) !important; }
.legend-dot { border-radius:0 !important; }
.list-toggle { border-radius:4px !important; border:1px solid var(--t-line) !important; box-shadow:0 1px 3px rgba(0,0,0,.08) !important; }
.count-badge { border-radius:4px !important; background:rgba(28,31,33,.88) !important; color:#fff !important; letter-spacing:0 !important; }
.pin-tooltip { border-radius:4px !important; background:rgba(28,31,33,.94) !important; }
.pin-tooltip::after { border-top-color:rgba(28,31,33,.94) !important; }
.list-item.active { background:var(--t-accent-soft) !important; border-left-color:var(--t-accent) !important; }
.list-item:hover { border-left-color:#c4c9cd !important; }
.panel-stats { border-radius:4px !important; }
.btn-save, .btn-like, .btn-post-edit, .btn-post-delete, .btn-report, .btn-share, .btn-map-mode { border-radius:4px !important; border-width:1px !important; }
.btn-share { background:var(--t-accent-soft) !important; border-color:var(--t-accent-border) !important; color:var(--t-accent) !important; }
.btn-report { background:#fff !important; border-color:#e3c8c5 !important; color:var(--t-danger) !important; }
#ruler-tooltip, #ruler-info-bar { border-radius:4px !important; background:rgba(28,31,33,.92) !important; backdrop-filter:none !important; }
.ruler-point { background:var(--t-accent) !important; }
.ruler-line { background:var(--t-accent) !important; }
.panel-proximity { border-radius:6px !important; border:1px solid var(--t-line) !important; box-shadow:none !important; }
.panel-proximity-title { background:#fafbfb !important; border-bottom:1px solid var(--t-line-soft) !important; }
.panel-proximity-notice { border-radius:4px !important; background:#fafbfb !important; border-color:var(--t-line) !important; color:var(--t-muted) !important; }
.proximity-item { border-color:var(--t-line-soft) !important; }
.roadview-modal-note { color:var(--t-muted) !important; }

/* ---------- 11. 사이드 패널 / 쪽지 / 활동 ---------- */
.side-panel-head { background:var(--t-ink) !important; }
.activity-tab.active { color:var(--t-accent) !important; border-bottom-color:var(--t-accent) !important; }
.activity-card { border-radius:6px !important; }
.activity-thumb { border-radius:4px !important; }
.activity-actions button, .activity-primary { border-radius:4px !important; background:#fff !important; border:1px solid var(--t-line) !important; color:var(--t-text) !important; }
.activity-actions button:hover, .activity-primary:hover { background:#f4f5f6 !important; border-color:#c4c9cd !important; }
.activity-actions button.danger { border-color:#e3c8c5 !important; background:#fff !important; color:var(--t-danger) !important; }
.msg-item.unread { background:var(--t-accent-soft) !important; border-left-color:var(--t-accent) !important; }
.msg-unread-dot { background:var(--t-accent) !important; }
.msg-badge, .activity-badge { background:var(--t-danger) !important; border-radius:3px !important; }

/* ---------- 12. 모바일 하단 탭 ---------- */
.mobile-bottom-tabs {
  background:#fff !important;
  border-top:1px solid var(--t-line) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.mobile-tab { color:var(--t-muted) !important; }
.mobile-tab.active { color:var(--t-accent) !important; }
.mobile-tab .m-icon { font-size:1.05rem !important; }
.mobile-tab .m-icon svg { width:20px; height:20px; display:block; margin:0 auto; }
.mobile-tab--ai { color:var(--t-muted) !important; }
.mobile-tab--ai .m-icon { filter:none !important; }

/* ---------- 13. 광고 / 기타 ---------- */
.ad-inline { border-radius:4px !important; border:1px solid var(--t-line-soft) !important; }
.ad-map-banner { border-radius:4px 4px 0 0 !important; }
.scroll-top-btn { border-radius:4px !important; background:var(--t-ink) !important; box-shadow:0 2px 8px rgba(0,0,0,.16) !important; }
.scroll-top-btn:hover { background:#33383b !important; transform:none !important; }
.search-autocomplete { border-radius:4px !important; border:1px solid var(--t-line) !important; box-shadow:0 4px 16px rgba(0,0,0,.12) !important; }
.autocomplete-item-badge { color:var(--t-accent) !important; }
.hot-num { color:var(--t-accent) !important; }
.gl-detail-photo-wrap { border-radius:6px !important; box-shadow:none !important; border:1px solid var(--t-line) !important; }
.gl-detail-photo-wrap::after { border-radius:3px !important; }
.report-reason-btn { border-radius:4px !important; background:#fff !important; border-width:1px !important; }
.report-submit-btn { border-radius:4px !important; box-shadow:none !important; }
.report-submit-btn:hover { box-shadow:none !important; }
.village-rating-block, .village-rating-detail { background:#fafbfb !important; border:1px solid var(--t-line) !important; border-radius:6px !important; }
.village-rating-detail-title, .vrd-val, .vl-rank { color:var(--t-ink) !important; }
.vrd-bar-fill { background:var(--t-accent) !important; }
.vr-star.on { color:#d9a521 !important; }
.vl-score { color:#d9a521 !important; }
.village-score-badge { border-radius:3px !important; background:#f0f1f2 !important; color:var(--t-text) !important; }
#calc-total-monthly { background:var(--t-ink) !important; color:#cfe6d8 !important; border-radius:4px !important; }
#loan-rate-range::-webkit-slider-thumb { background:var(--t-accent) !important; }
.nav-btn { border-radius:4px !important; background:var(--t-accent) !important; box-shadow:none !important; }
.nav-btn:hover { background:var(--t-accent-hover) !important; transform:none !important; box-shadow:none !important; }

/* 애니메이션 절제 */
#adv-filter-panel.open, #prox-filter-panel.open, .report-modal-box { animation:none !important; }

/* 찜/좋아요 하트(♥/♡) 색 */
[data-save] { color:var(--t-danger); }

@media (max-width:768px) {
  .h-hero, #home-page .h-hero { padding:28px 18px 44px !important; }
  .gl-hero, .hd-hero, .comm-hero { padding:16px 14px 14px !important; }
  .detail-panel { border-top:1px solid var(--t-line) !important; border-radius:8px 8px 0 0 !important; }
}

/* ============================================================
   [v2 가독성 · 테두리 · 정렬 개선 패치]
   - 이 블록은 파일 맨 뒤에 위치해야 합니다 (뒤에 오는 규칙이 우선).
   - 목적: (1) 글자 가독성 상향 (2) 흐린 테두리 진하게
           (3) 히어로 영역(제목/버튼) 가운데 정렬 (4) 전반적 편의성
   ============================================================ */

/* ---------- V0. 색 토큰 재조정 (전역 전파) ---------- */
:root {
  --t-text:#2b3033;          /* 본문: 더 진하게 */
  --t-muted:#5a6166;         /* 보조문구: 대비 4.5:1 이상 */
  --t-line:#c9d0d5;          /* 기본 테두리: 확실히 보이게 */
  --t-line-soft:#dbe0e4;     /* 약한 구분선 */
  --t-accent-border:#a8c6b5;
  --sand:#cfd5da;            /* 인라인 style에서 쓰는 테두리 변수 */
  --h-line:#c9d0d5;
  --h-muted:#5a6166;
  --stone:#5a6166;
}

/* ---------- V1. 기본 타이포 가독성 ---------- */
body { line-height:1.7 !important; color:var(--t-text) !important; }
p, li, span, div, label, button, input, textarea, select { letter-spacing:-0.005em; }
::selection { background:#cfe6d8; color:#132a1e; }
input::placeholder, textarea::placeholder { color:#8b9298 !important; opacity:1 !important; }

/* 흐릿한 회색 텍스트 일괄 상향 */
.hd-card-desc, .post-card-preview, .comment-body, .post-detail-body,
.activity-main p, .msg-item-preview, .h-sc-text span, .h-legal-item {
  color:var(--t-text) !important;
}
.hd-card-meta, .hd-card-url, .post-card-meta, .comment-date, .activity-date,
.gl-count, .stat-lbl, .form-hint, .msg-item-date, .sigungu-section-kicker {
  color:var(--t-muted) !important;
}

/* ---------- V2. 테두리 일괄 강화 ---------- */
.hd-card, .gl-card, .post-card, .sidebar-box, .activity-card,
.hd-modal-box, .write-modal-box, .modal, .post-detail-box, .hd-detail-box,
.gl-detail-box, .comments-box, .sigungu-section, .gl-register-box,
#comm-search-wrap, .ad-inline, .region-tab-row, .sigungu-bar {
  border-color:var(--t-line) !important;
}
.hd-chip, .gl-chip, .cat-chip, .sigungu-chip, .region-tab, .adv-chip,
.hd-cat-btn, .loc-btn, .unit-btn, .list-sort-btn, .pg-btn, .tag-item,
.hd-btn-cancel, .btn-like, .filter-main-btn, .map-mode-btn, .auth-btn-outline {
  border:1px solid var(--t-line) !important;
}
.hd-form-input, .write-input, .form-input, .form-select, .form-textarea,
.comment-input, .msg-textarea, .adv-range-input, .calc-input, .search-wrap input {
  border:1px solid var(--t-line) !important;
}
.hd-form-input:focus, .write-input:focus, .form-input:focus, .form-select:focus,
.form-textarea:focus, .comment-input:focus, .msg-textarea:focus,
.adv-range-input:focus, .calc-input:focus, .search-wrap input:focus {
  border-color:var(--t-accent) !important;
  box-shadow:0 0 0 3px rgba(44,110,73,.14) !important;
}
/* 꿀템존 검색창(인라인 style) 테두리 */
#hd-search { font-size:.95rem !important; padding:12px 0 !important; color:var(--t-text) !important; }
#hd-count { font-size:.85rem !important; color:var(--t-muted) !important; font-weight:600 !important; }

/* 키보드 접근성 */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline:2px solid var(--t-accent) !important;
  outline-offset:2px !important;
}

/* ---------- V3. 히어로 = 가운데 정렬 + 상단 안내바 가림 방지 ---------- */
.gl-hero, .hd-hero, .comm-hero {
  text-align:center !important;
  padding:calc(var(--disc-h, 28px) + 22px) 24px 22px !important;
  border-bottom:1px solid var(--t-line) !important;
}
.comm-hero-inner { width:min(1080px,100%) !important; margin:0 auto !important; padding:0 !important; }
.gl-hero-title, .hd-hero-title, .comm-hero-title { font-size:1.4rem !important; line-height:1.4 !important; }
.gl-hero-sub, .hd-hero-sub, .comm-hero-sub {
  font-size:.92rem !important; color:var(--t-muted) !important;
  margin:6px auto 0 !important; max-width:640px !important;
}
/* 버튼은 inline-block → 부모의 text-align:center 로 가운데 배치 */
.hd-post-btn, .comm-post-btn {
  display:inline-block !important;
  margin:16px auto 0 !important;
  padding:12px 28px !important;
  font-size:.95rem !important;
  font-weight:700 !important;
  min-width:180px;
}

/* ---------- V4. 필터 / 칩 가독성 ---------- */
.hd-chip, .gl-chip, .cat-chip, .sigungu-chip, .region-tab, .hd-cat-btn, .loc-btn {
  font-size:.87rem !important;
  padding:8px 16px !important;
  color:var(--t-text) !important;
}
.hd-filter-bar { gap:8px !important; row-gap:8px !important; margin-bottom:18px !important; }
.hd-sort-right {
  margin-left:auto !important; gap:6px !important;
  padding-left:12px !important; border-left:1px solid var(--t-line) !important;
}

/* ---------- V5. 목록 카드 가독성 ---------- */
.hd-card-title, .gl-card-title, .post-card-title {
  font-size:1rem !important; line-height:1.55 !important; color:var(--t-ink) !important;
}
.hd-card-desc { font-size:.88rem !important; line-height:1.75 !important; }
.hd-card-meta, .hd-card-url { font-size:.8rem !important; }
.hd-card:hover, .gl-card:hover, .post-card:hover { border-color:var(--t-accent) !important; }
.hd-grid { gap:10px !important; }

/* ---------- V6. 빈 목록 안내(JS가 그리는 영역) 가독성 ---------- */
#hd-grid > div[style*="text-align:center"] { font-size:.95rem !important; color:var(--t-muted) !important; }
#hd-grid > div[style*="text-align:center"] button { font-size:.92rem !important; padding:12px 26px !important; }

/* ---------- V7. 광고 영역이 빈칸처럼 보이지 않게 ---------- */
.ad-inline { border:1px solid var(--t-line-soft) !important; background:#fafbfb !important; min-height:0 !important; }
.ad-inline-label { color:#8b9298 !important; font-size:.72rem !important; letter-spacing:.04em; }

/* ---------- V8. 상단 안내바 가독성 ---------- */
#disclaimer-bar {
  font-size:.76rem !important; color:#4f5559 !important;
  background:#f2f4f5 !important; border-bottom:1px solid var(--t-line) !important;
}

/* ---------- V9. 모바일 ---------- */
@media (max-width:768px) {
  .gl-hero, .hd-hero, .comm-hero {
    padding:calc(var(--disc-h, 28px) + 16px) 16px 18px !important;
  }
  .gl-hero-title, .hd-hero-title, .comm-hero-title { font-size:1.2rem !important; }
  .gl-hero-sub, .hd-hero-sub, .comm-hero-sub { font-size:.88rem !important; }
  .hd-post-btn, .comm-post-btn { width:100% !important; min-width:0; }
  .hd-sort-right { border-left:none !important; padding-left:0 !important; }
  .hd-chip, .gl-chip, .cat-chip, .sigungu-chip { font-size:.86rem !important; padding:8px 14px !important; }
}
