/* ===== Splash screen ===== */
#pk-splash {
  position: fixed; inset: 0; z-index: 9999;
  background: #FDFBF6;
  display: flex; align-items: center; justify-content: center;
  transition: opacity 0.38s ease, visibility 0.38s ease;
}
#pk-splash.pk-splash--out { opacity: 0; visibility: hidden; pointer-events: none; }

/* 브랜드 초록 플래시 레이어 — 앱 시작 직후 스치듯 등장 후 페이드아웃 */
.pk-brand-flash {
  position: absolute; inset: 0;
  background: #2F9E5F;
  display: flex; align-items: center; justify-content: center;
  z-index: 2;
  /* 0.22s 유지 → 0.28s fade → 총 0.5s에 완전히 사라짐 */
  animation: pk-brand-flash-out 0.28s 0.22s ease forwards;
  pointer-events: none;
}
.pk-brand-flash-logo {
  width: 96px; height: 96px;
  border-radius: 50%;
  object-fit: cover;
  animation: pk-brand-logo-pop 0.2s ease both;
}
@keyframes pk-brand-flash-out {
  from { opacity: 1; }
  to   { opacity: 0; visibility: hidden; }
}
@keyframes pk-brand-logo-pop {
  from { opacity: 0; transform: scale(0.72); }
  to   { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .pk-brand-flash { display: none; }
}
.pk-splash-inner {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}

/* Stage: mascot image + drawing heart above + ripple hearts around */
.pk-splash-stage {
  position: relative;
  width: 180px; height: 205px;
  display: flex; align-items: flex-end; justify-content: center;
}

/* Mascot */
.pk-splash-mascot {
  width: 120px; height: 120px; border-radius: 50%; display: block;
  position: relative; z-index: 3;
  animation: pk-mascot-pop 0.4s 0.05s cubic-bezier(0.34,1.56,0.64,1) both;
}
@keyframes pk-mascot-pop {
  from { opacity: 0; transform: scale(0.78); }
  to   { opacity: 1; transform: scale(1); }
}

/* Heart SVG sits above the mascot's head */
.pk-splash-heart-wrap {
  position: absolute;
  top: 22px; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

/* Stroke draws the heart outline */
.pk-heart-stroke {
  stroke-dasharray: 280;
  stroke-dashoffset: 280;
  animation: pk-heart-draw 0.65s 0.25s cubic-bezier(0.4,0,0.2,1) forwards;
}
@keyframes pk-heart-draw { to { stroke-dashoffset: 0; } }

/* Fill fades in once draw finishes */
.pk-heart-fill {
  opacity: 0;
  animation: pk-heart-fill-in 0.3s 0.85s ease forwards;
}
@keyframes pk-heart-fill-in { to { opacity: 0.55; } }

/* Orbit hearts — fixed positions around mascot perimeter, appear one by one */
.pk-ohrt {
  position: absolute;
  opacity: 0;
  animation: pk-ohrt-pop 0.38s cubic-bezier(0.34,1.56,0.64,1) both;
  pointer-events: none; user-select: none;
}
/* Positions from mascot centre (90,145) in 180×205 stage at radius 70px */
.pk-ohrt-1 { left: 22px;  top: 104px; animation-delay: 0.50s; } /* 10 o'clock */
.pk-ohrt-2 { left: 118px; top:  78px; animation-delay: 0.62s; } /*  1 o'clock */
.pk-ohrt-3 { left: 153px; top: 139px; animation-delay: 0.74s; } /*  3 o'clock */
.pk-ohrt-4 { left: 131px; top: 187px; animation-delay: 0.86s; } /*  4:30      */
.pk-ohrt-5 { left:  12px; top: 139px; animation-delay: 0.98s; } /*  9 o'clock */
@keyframes pk-ohrt-pop {
  0%   { opacity: 0; transform: scale(0.3); }
  65%  { opacity: 1; transform: scale(1.15); }
  100% { opacity: 1; transform: scale(1); }
}

/* Brand text */
.pk-splash-brand {
  font-size: 20px; font-weight: 900; color: #21302A;
  letter-spacing: -0.3px; margin: 0;
  animation: pk-fade-up 0.4s 0.65s ease both;
}
.pk-splash-brand em {
  font-style: normal; color: #FF6B9D;
  font-weight: 600; font-size: 16px; margin-left: 6px;
}
.pk-splash-tagline {
  font-size: 13px; color: #6B7A72; margin: 0;
  animation: pk-fade-up 0.4s 0.78s ease both;
}
@keyframes pk-fade-up {
  from { opacity: 0; transform: translateY(5px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .pk-splash-mascot, .pk-splash-brand,
  .pk-splash-tagline { animation: none !important; opacity: 1; }
  .pk-heart-stroke { animation: none !important; stroke-dashoffset: 0; }
  .pk-heart-fill   { animation: none !important; opacity: 0.5; }
  .pk-ohrt         { display: none; }
}

/* ===== 팍치 디자인 토큰 =====
   coriander green + warm cream, 친근한 라운드 UI */
:root {
  --pk-green: #2F9E5F;
  --pk-green-dark: #237A49;
  --pk-green-soft: #E7F6EC;
  --pk-cream: #FDFBF6;
  --pk-ink: #21302A;
  --pk-muted: #6B7A72;
  --pk-line: #E4E9E4;
  --pk-amber: #F5A623;
  --pk-red: #E05B4E;
  --pk-radius: 16px;
  --pk-shadow: 0 4px 16px rgba(33,48,42,.10);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { height: 100%; }
body {
  margin: 0; background: var(--pk-cream); color: var(--pk-ink);
  font-family: 'Noto Sans KR', 'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 15px; line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

/* ===== Header ===== */
.pk-header {
  position: sticky; top: 0; z-index: 1100; background: #fff;
  border-bottom: 1px solid var(--pk-line);
  padding: max(10px, calc(10px + env(safe-area-inset-top, 0px)))
           max(14px, calc(14px + env(safe-area-inset-right, 0px)))
           10px
           max(14px, calc(14px + env(safe-area-inset-left, 0px)));
  display: flex; align-items: center; gap: 8px;
}
.pk-logo { flex: 0 0 auto; font-weight: 900; font-size: 20px; letter-spacing: -0.5px; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.pk-logo-mascot { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.pk-slogan { font-size: 12px; font-weight: 700; color: var(--pk-green-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pk-help {
  flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--pk-line);
  background: var(--pk-green-soft); color: var(--pk-green-dark); font-size: 14px; font-weight: 900; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.pk-spacer { flex: 1; }
.pk-header-share { opacity: 0.7; }
.pk-header-share:hover { opacity: 1; }
.pk-lang { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }
.pk-lang .pk-flag-btn[data-lang="ko"] { order: 1; }
.pk-lang .pk-flag-btn[data-lang="th"] { order: 2; }
.pk-lang .pk-flag-btn[data-lang="ja"] { order: 3; }
.pk-lang .pk-flag-btn[data-lang="en"] { order: 4; }
.pk-flag-btn {
  border: none; background: none; padding: 3px; cursor: pointer;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  opacity: 0.45; transition: opacity .18s, box-shadow .18s;
  box-shadow: 0 0 0 2px transparent;
}
.pk-flag-btn.active {
  opacity: 1;
  box-shadow: 0 0 0 2.5px #2F9E5F;
}
.pk-flag-btn:not(.active):hover { opacity: 0.72; }
.pk-flag {
  width: 13px; height: 13px; border-radius: 50%; display: block; flex-shrink: 0;
}
.pk-avatar {
  width: 32px; height: 32px; border-radius: 50%; background: var(--pk-green-soft);
  display: flex; align-items: center; justify-content: center; font-size: 16px; border: 1px solid var(--pk-line);
}
.pk-avatar-dropdown { transition: opacity .16s ease, transform .16s ease; transform-origin: top right; }
.pk-menu-icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; margin-right: 4px; }
.pk-category-sort-row { display: flex; align-items: center; gap: 8px; padding: 8px 14px; background: #fff; border-bottom: 1px solid var(--pk-line); }
.pk-category-sort-row .pk-category-picker { flex: 1; min-width: 0; padding: 0; border-bottom: 0; }
.pk-category-sort-row .pk-search-filter { flex: 0 1 auto; }
.pk-category-sort-row .pk-search-filter .pk-select { flex: 0 1 116px; width: 116px; }
.pk-category-picker { position: relative; background: #fff; z-index: 10; }
.pk-category-trigger { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 9px; padding: 7px 12px; border: 1px solid #cfe2d3; border-radius: 11px; background: #f8fcf8; color: var(--pk-ink); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; text-align: left; transition: border-color .18s, background .18s, box-shadow .18s; }
.pk-category-trigger:hover, .pk-category-trigger:focus-visible { border-color: var(--pk-green); background: #fff; box-shadow: 0 0 0 3px rgba(47,158,95,.1); outline: none; }
.pk-category-trigger svg { width: 12px; height: 8px; margin-left: auto; fill: none; stroke: var(--pk-green-dark); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pk-category-mark { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: var(--pk-green); color: #fff; font-size: 14px; }
.pk-category-layer { position: absolute; top: calc(100% - 2px); left: 14px; right: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 8px; background: #fffefb; border: 1px solid #cfe2d3; border-radius: 12px; box-shadow: 0 12px 28px rgba(33,48,42,.14); animation: pk-layer-in .16s ease both; }
.pk-category-layer[hidden] { display: none; }
.pk-category-option { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 9px 8px; border: 0; border-radius: 8px; background: transparent; color: var(--pk-ink); text-align: left; font: inherit; font-size: 12px; cursor: pointer; transition: background .15s, color .15s, transform .15s; }
.pk-category-option:hover, .pk-category-option:focus-visible { background: var(--pk-green-soft); color: var(--pk-green-dark); outline: none; transform: translateX(2px); }
.pk-category-option.active { background: var(--pk-green); color: #fff; }
@keyframes pk-layer-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ===== Filter bar ===== */
.pk-toolbar { background: #fff; border-bottom: 1px solid var(--pk-line); padding: 8px 14px; display: flex; gap: 8px; align-items: center; }
.pk-select {
  flex: 1; min-width: 0; box-sizing: border-box;
  appearance: none; border: 1px solid var(--pk-line); border-radius: 999px; background: #fff;
  padding: 8px 28px 8px 12px; font-size: 13px; font-weight: 600; min-height: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236B7A72'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pk-search { flex: 1; min-width: 0; box-sizing: border-box; display: flex; align-items: center; gap: 6px; border: 1px solid var(--pk-line); border-radius: 999px; padding: 8px 12px; background: #fff; min-height: 40px; }
.pk-search input { border: 0; outline: 0; flex: 1; font-size: 14px; background: transparent; min-width: 0; width: 0; }

.pk-chips { display: flex; flex-wrap: wrap; gap: 5px; padding: 7px 14px; background: #fff; border-bottom: 1px solid var(--pk-line); }
.pk-chip {
  flex: 0 0 auto; border: 1px solid var(--pk-line); background: #fff; border-radius: 999px;
  padding: 5px 10px; font-size: 12px; font-weight: 600; color: var(--pk-ink); cursor: pointer; min-height: 30px;
}
.pk-chip.active { background: var(--pk-green); border-color: var(--pk-green); color: #fff; }

/* ===== Radius filter bar ===== */
.pk-radius-bar {
  display: flex; align-items: center; gap: 5px;
  padding: 5px 14px; background: #f8f9f8;
  border-bottom: 1px solid var(--pk-line);
  overflow-x: auto; scrollbar-width: none;
}
.pk-radius-bar::-webkit-scrollbar { display: none; }
.pk-radius-chip {
  flex: 0 0 auto; border: 1px solid var(--pk-line); background: #fff; border-radius: 999px;
  padding: 4px 10px; font-size: 12px; font-weight: 600; color: var(--pk-ink);
  cursor: pointer; min-height: 28px; white-space: nowrap;
  transition: background .15s, color .15s, border-color .15s, opacity .15s;
}
.pk-radius-chip.active {
  background: var(--pk-green-dark); border-color: var(--pk-green-dark); color: #fff;
}
.pk-radius-chip:disabled {
  opacity: 0.4; cursor: not-allowed; pointer-events: none;
}
.pk-radius-hint {
  font-size: 11px; color: var(--pk-muted); white-space: nowrap; padding: 0 2px;
}
/* Hide-past toggle chip */
.pk-hide-past-chip {
  flex: 0 0 auto; border: 1px solid var(--pk-line); background: #fff; border-radius: 999px;
  padding: 4px 10px; font-size: 12px; font-weight: 600; color: var(--pk-muted);
  cursor: pointer; min-height: 28px; white-space: nowrap;
  transition: background .15s, color .15s, border-color .15s;
  margin-left: auto;
}
.pk-hide-past-chip.active {
  background: var(--pk-amber); border-color: var(--pk-amber); color: #fff;
}

/* ===== Ad slot ===== */
.pk-ad {
  margin: 10px 14px; border: 1.5px dashed var(--pk-line); border-radius: 12px;
  padding: 10px 14px; text-align: center; color: var(--pk-muted); font-size: 12px; background: #fff;
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px;
}
.pk-ad-links { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pk-ad-btn {
  display: inline-flex; align-items: center; gap: 4px;
  border: 1px solid var(--pk-line); border-radius: 999px;
  padding: 5px 12px; font-size: 12px; font-weight: 700;
  background: #fff; color: var(--pk-ink); white-space: nowrap;
}
.pk-ad-btn.line { background: #06C755; border-color: #06C755; color: #fff; }

/* ===== 인기 매물 ===== */
.pk-popular-section {
  padding: 13px 14px 14px; background: #fff;
  border-bottom: 1px solid var(--pk-line);
}
.pk-popular-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.pk-popular-heading h2 { margin: 0; font-size: 17px; font-weight: 900; }
.pk-popular-empty { margin: 0; padding: 8px 11px; border-radius: 10px; background: #fff8df; color: #92702b; font-size: 12px; font-weight: 700; }
.pk-popular-list {
  display: flex; gap: 8px; overflow-x: auto; padding: 1px 1px 5px;
  scrollbar-width: thin; scrollbar-color: #cfe8d5 transparent;
}
.pk-popular-card-wrap { position: relative; flex: 0 0 205px; min-width: 0; }
.pk-popular-card {
  display: flex; position: relative; min-height: 86px; gap: 8px;
  padding: 8px 8px 8px 29px; border: 1px solid #dceee1;
  border-radius: 13px; background: #f7fcf8; overflow: hidden;
}
.pk-popular-card > img { width: 70px; height: 70px; flex: 0 0 70px; border-radius: 9px; object-fit: cover; background: var(--pk-green-soft); }
.pk-popular-rank {
  position: absolute; top: 8px; left: 7px; z-index: 1;
  display: grid; place-items: center; width: 21px; height: 21px;
  border-radius: 50%; background: #ffb52e; color: #fff;
  font-size: 12px; font-weight: 900; box-shadow: 0 1px 3px rgba(160,100,0,.2);
}
.pk-popular-info { min-width: 0; padding-top: 1px; }
.pk-popular-title { margin: 0 0 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 800; }
.pk-popular-price { color: var(--pk-green-dark); font-size: 14px; font-weight: 900; }
.pk-price-approx { display: block; margin-top: 2px; color: var(--pk-muted); font-size: 10px; font-weight: 500; }
.pk-detail-price .pk-price-approx { display: inline; margin-left: 6px; font-size: 12px; font-weight: 500; }
.pk-popular-meta { margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pk-muted); font-size: 10px; }
.pk-popular-card-wrap .pk-favorite-card-btn { top: 12px; right: calc(100% - 100px); width: 28px; height: 28px; font-size: 15px; }

/* 배너 이미지 모드 */
.pk-ad.pk-ad-has-banner {
  display: block; /* .pk-ad의 flex를 override → 내부 row가 100% 너비 차지 */
  padding: 0; border: none; background: transparent; overflow: hidden;
  max-width: 532px; /* 앱 콘텐츠 최대 너비 560px − 좌우 마진 14px×2 */
  margin-left: auto; margin-right: auto; /* 데스크톱에서 중앙 정렬 */
}
/* 배너 링크가 비율을 소유, img는 그 안을 채움 */
.pk-ad-banner-link {
  display: block; width: 100%; aspect-ratio: 4/1;
  border-radius: 12px; overflow: hidden;
}
.pk-ad-banner-img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; border-radius: 12px;
}

/* ===== 홈 상단 캐러셀 ===== */
.pk-ad-carousel-wrap { display: block; }
.pk-ad-carousel { position: relative; border-radius: 12px; overflow: hidden; touch-action: pan-y; }
.pk-ad-carousel-track {
  display: flex; transition: transform .35s ease; will-change: transform;
}
@media (prefers-reduced-motion: reduce) { .pk-ad-carousel-track { transition: none; } }
.pk-ad-carousel-slide { flex: 0 0 100%; min-width: 0; }
.pk-ad-carousel-slide .pk-ad-banner-link { border-radius: 0; }
.pk-ad-carousel-slide .pk-ad-banner-img { border-radius: 0; }
.pk-ad-dots {
  position: absolute; bottom: 5px; left: 0; right: 0;
  display: flex; justify-content: center; gap: 5px; pointer-events: none;
}
.pk-ad-dot {
  width: 6px; height: 6px; border-radius: 50%; border: none; padding: 0;
  background: rgba(255,255,255,.45); transition: background .2s;
  pointer-events: auto; cursor: pointer;
}
.pk-ad-dot.active { background: #fff; }

/* ===== 홈 상단 2분할 배너 ===== */
.pk-ad2-row { display: flex; gap: 6px; }
.pk-ad2-cell {
  flex: 1; position: relative; border-radius: 10px; overflow: hidden;
  background: var(--pk-cream); display: block; text-decoration: none;
  aspect-ratio: 5/2; /* 반응형: 너비에 따라 높이 자동 계산 */
}
.pk-ad2-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pk-ad2-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 5px 7px 6px; font-size: 11px; font-weight: 700; color: #fff;
  background: linear-gradient(transparent, rgba(0,0,0,0.6));
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ===== 문의 유도 fallback 배너 ===== */
.pk-ad-fallback {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 6px 8px; color: var(--pk-muted);
  font-size: 12px; background: none; border: none; cursor: pointer; font-family: inherit;
}
.pk-ad-fallback:hover { color: var(--pk-green-dark); }
.pk-ad-fallback strong { color: var(--pk-green-dark); font-weight: 700; }

/* ===== 광고 문의 모달 ===== */
.pk-adinq-overlay {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(0,0,0,0.55); display: flex; align-items: flex-end; justify-content: center;
}
.pk-adinq-overlay[hidden] { display: none; }
.pk-adinq-modal {
  position: relative; background: #fff; border-radius: 20px 20px 0 0;
  width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto;
  padding: 24px 18px 40px;
}
.pk-adinq-close {
  position: absolute; top: 14px; right: 16px;
  border: none; background: none; font-size: 26px; line-height: 1;
  color: var(--pk-muted); cursor: pointer; padding: 0;
}
.pk-adinq-title { font-size: 18px; font-weight: 900; margin: 0 0 18px; color: var(--pk-ink); }
.pk-adinq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media(max-width: 420px) { .pk-adinq-grid { grid-template-columns: 1fr; } }
.pk-adinq-field { display: flex; flex-direction: column; gap: 5px; }
.pk-adinq-field label { font-size: 12px; font-weight: 700; color: var(--pk-muted); }
.pk-adinq-field select.pk-input { height: 44px; }
.pk-adinq-full { grid-column: 1 / -1; }
.pk-adinq-textarea { resize: vertical; min-height: 72px; font-family: inherit; }
.pk-adinq-privacy label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; font-size: 13px; color: var(--pk-ink); font-weight: 400; }
.pk-adinq-privacy input[type=checkbox] { flex: 0 0 auto; width: 18px; height: 18px; accent-color: var(--pk-green); margin-top: 2px; }
.pk-adinq-err { color: #c02020; font-size: 13px; margin: 10px 0 0; }
.pk-adinq-submit { margin-top: 16px; }
.pk-adinq-success { text-align: center; padding: 36px 0 8px; font-size: 16px; font-weight: 700; color: var(--pk-green-dark); line-height: 1.7; }

/* ===== 목록 인라인 광고 ===== */
.pk-ad-inline {
  border: 1.5px dashed var(--pk-line); border-radius: 12px;
  overflow: hidden; position: relative; background: #fff; margin-bottom: 8px;
  aspect-ratio: 4/1; /* 반응형: 컨테이너 너비에 따라 높이 자동 계산 */
}
.pk-ad-inline img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pk-ad-inline a { display: block; }
.pk-ad-inline .pk-ad-fallback { padding: 10px 14px; }
/* ===== 샘플 광고 카드 (실제 광고 없을 때 배너 자리 대체) ===== */
.pk-sample-card {
  display: flex; align-items: center; gap: 10px;
  width: 100%; height: 80px;
  border: none; border-radius: 10px; padding: 10px 12px;
  font-family: inherit; cursor: pointer; text-align: left;
  overflow: hidden; flex-shrink: 0;
  transition: opacity .15s;
}
.pk-sample-card:hover, .pk-sample-card:active { opacity: .82; }
.pk-sample-card--share    { background: var(--pk-green); color: #fff; }
.pk-sample-card--inquire  { background: var(--pk-cream); color: var(--pk-green-dark); border: 1.5px dashed var(--pk-green); }
.pk-sample-card--placeholder { background: #edf7f1; color: var(--pk-ink); border: 1px solid var(--pk-line); position: relative; }
.pk-sample-card-icon { font-size: 26px; flex-shrink: 0; line-height: 1; }
.pk-sample-card-icon--svg { font-size: 0; display: flex; align-items: center; color: var(--pk-green-dark); }
.pk-sample-card-body { flex: 1; min-width: 0; }
.pk-sample-card-title { font-size: 12px; font-weight: 800; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-sample-card-sub   { font-size: 10px; opacity: .76; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-sample-badge {
  position: absolute; top: 4px; right: 5px; font-size: 9px; font-weight: 700;
  color: var(--pk-muted); background: rgba(255,255,255,.85); border-radius: 3px; padding: 1px 5px;
}

.pk-ad-label {
  position: absolute; top: 6px; left: 6px; z-index: 1;
  background: rgba(0,0,0,.42); color: #fff;
  font-size: 10px; font-weight: 700; padding: 2px 5px; border-radius: 4px;
  letter-spacing: .04em; pointer-events: none;
}

/* ===== 상세 페이지 하단 배너 ===== */
.pk-ad-detail { margin: 20px 0; }

/* ===== Map ===== */
.pk-main { position: relative; }
#map { width: 100%; height: calc(100dvh - 246px); min-height: 340px; z-index: 1; }
body.pk-map-mode #map { height: calc(100dvh - 196px); min-height: 420px; }
/* 현재 위치 버튼 — FAB 바로 위, 구글맵 스타일 */
/* ===== FAB group (판매하기 + 내 위치) ===== */
.pk-fab-group {
  position: fixed; right: 16px; bottom: 18px; z-index: 1000;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}

.pk-locate {
  width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--pk-line);
  background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.18); font-size: 22px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: var(--pk-green-dark);
}
.pk-locate:active { transform: scale(.92); }
.pk-locate.pk-locate-loading { animation: pk-spin 1s linear infinite; opacity: .7; pointer-events: none; }
@keyframes pk-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* 이모지 마커 */
/* ===== Map legend ===== */
.pk-map-legend {
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(4px);
  border: 1px solid var(--pk-line);
  border-radius: 9px;
  padding: 5px 9px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  pointer-events: none;
  box-shadow: 0 1px 6px rgba(0,0,0,.10);
  margin-top: 8px;
  margin-left: 6px;
  line-height: 1;
}
.pk-leg-item { display: flex; align-items: center; gap: 5px; }
.pk-leg-dot {
  width: 10px; height: 10px; border-radius: 50%; flex: none;
  border: 2px solid transparent;
}
.pk-leg-dot.selling  { background: #2F9E5F; border-color: #fff; box-shadow: 0 0 0 1.5px #2F9E5F; }
.pk-leg-dot.reserved { background: #F59E0B; border-color: #fff; box-shadow: 0 0 0 1.5px #F59E0B; }
.pk-leg-dot.free     { background: #C084FC; border-color: #fff; box-shadow: 0 0 0 1.5px #C084FC; }

.pk-marker { background: none; border: none; }
.pk-marker .bubble {
  width: 40px; height: 40px; border-radius: 50% 50% 50% 8px;
  background: #fff; border: 2px solid var(--pk-green);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; box-shadow: var(--pk-shadow);
  transform-origin: bottom left;
  animation: pk-drop .35s ease-out both, pk-float 2s ease-in-out .4s infinite;
}
/* 예약중: drop 효과만, float 없음 */
.pk-marker.reserved .bubble {
  border-color: var(--pk-amber);
  animation: pk-drop .35s ease-out both;
}

/* ── 무료나눔 마커 ── */
.pk-marker.free .bubble {
  border-color: #C084FC;
  background: #FDF4FF;
  /* 부유 움직임은 판매중(pk-float)과 동일 */
  animation: pk-drop .35s ease-out both, pk-float 2s ease-in-out .4s infinite;
}
/* 무료나눔 + 예약중: drop만, float·flip 없음 */
.pk-marker.free.reserved .bubble {
  border-color: var(--pk-amber);
  background: #FDF4FF;
  animation: pk-drop .35s ease-out both;
}

/* 🎁 이모지 — 독립 레이어로 좌우 flip */
.pk-gift-icon {
  display: inline-block;
  transform-style: preserve-3d;
  animation: pk-gift-flip 2.4s ease infinite;
}
/* 예약중이면 뒤집힘 멈춤 */
.pk-marker.free.reserved .pk-gift-icon {
  animation: none;
}

@keyframes pk-drop { from { transform: translateY(-10px) scale(.6); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes pk-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
/* 🎁 flip: 살짝 쉰 뒤 rotateY 180° → 유지 → 다시 돌아옴 */
@keyframes pk-gift-flip {
  0%   { transform: perspective(120px) rotateY(0deg); }
  18%  { transform: perspective(120px) rotateY(180deg); }
  50%  { transform: perspective(120px) rotateY(180deg); }
  68%  { transform: perspective(120px) rotateY(0deg); }
  100% { transform: perspective(120px) rotateY(0deg); }
}
@media (prefers-reduced-motion: reduce) {
  .pk-marker .bubble,
  .pk-marker.reserved .bubble,
  .pk-marker.free .bubble,
  .pk-marker.free.reserved .bubble { animation: none; }
  .pk-gift-icon { animation: none; }
}

/* Popup */
.leaflet-popup-content-wrapper { border-radius: 14px; box-shadow: var(--pk-shadow); }
.leaflet-popup-content { margin: 0; width: 210px !important; }
.pk-pop img { width: 100%; height: 110px; object-fit: cover; border-radius: 14px 14px 0 0; display: block; background: var(--pk-green-soft); }
.pk-pop .body { padding: 10px 12px 12px; }
.pk-pop .title { font-weight: 700; font-size: 14px; margin: 0 0 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-pop .price { font-weight: 900; font-size: 15px; color: var(--pk-green-dark); }
.pk-pop .loc { font-size: 12px; color: var(--pk-muted); margin: 2px 0 8px; }
.pk-pop-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pk-pop .btn { display: block; min-width: 0; text-align: center; background: var(--pk-green); color: #fff; border-radius: 10px; padding: 9px 0; font-weight: 700; font-size: 13px; flex: 1 1 auto; white-space: nowrap; }
.pk-pop .btn.btn-chat { flex: 0 0 38px; width: 38px; padding: 9px 0; background: var(--pk-green-soft); color: var(--pk-green-dark); }
.pk-pop .btn.btn-dir { flex: 0 0 auto; padding: 9px 11px; display: flex; align-items: center; justify-content: center; background: var(--pk-green-soft); color: var(--pk-green-dark); }

/* ===== View toggle ===== */
.pk-viewtoggle {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; z-index: 1000;
  display: flex; background: var(--pk-ink); border-radius: 999px; box-shadow: var(--pk-shadow); overflow: hidden;
}
.pk-viewtoggle button {
  border: 0; background: transparent; color: #cfd8d2; padding: 7px 12px;
  font-size: 9.5px; font-weight: 700; cursor: pointer; min-height: 28px;
}
.pk-viewtoggle button span { font-size: 12.2px; }
.pk-viewtoggle button.active { background: var(--pk-green); color: #fff; }
@keyframes pk-tab-attention {
  0%, 100% { background: transparent; color: #cfd8d2; }
  35%, 65% { background: #ffcaca; color: #9d3d3d; }
}
.pk-viewtoggle.pk-tab-attention button { animation: pk-tab-attention .8s ease-in-out 3; }

/* ===== Sell FAB ===== */
@keyframes pk-fab-blink {
  0%, 80%, 100% { opacity: 1; transform: scale(1); }
  90% { opacity: 0.3; transform: scale(0.96); }
}
.pk-fab {
  background: var(--pk-green); color: #fff; border: 0; border-radius: 999px;
  padding: 13px 18px; font-size: 15px; font-weight: 800;
  box-shadow: 0 6px 18px rgba(47,158,95,.4), inset 0 0 0 1px rgba(255,255,255,0.65); cursor: pointer;
  animation: pk-fab-blink 3s ease-in-out infinite;
}

/* ===== List ===== */
.pk-list { padding: 10px 14px 110px; display: grid; grid-template-columns: 1fr; gap: 10px; }
.pk-card {
  display: flex; gap: 12px; background: #fff; border: 1px solid var(--pk-line);
  border-radius: var(--pk-radius); padding: 10px; align-items: center;
}
.pk-card-wrap { position: relative; }
.pk-favorite-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 3px;
  min-width: 30px; height: 30px; padding: 0 7px; border: 1px solid #dce9e1;
  border-radius: 999px; background: #fff; color: #718078; font-size: 20px;
  line-height: 1; cursor: pointer; font-family: inherit;
}
.pk-favorite-btn:hover, .pk-favorite-btn:focus-visible { border-color: #e55d81; color: #e55d81; outline: none; }
.pk-favorite-btn.is-active { border-color: #ffd2df; background: #fff5f8; color: #e64f78; }
.pk-favorite-btn:disabled { opacity: .55; cursor: wait; }
.pk-favorite-count { font-size: 11px; font-weight: 700; line-height: 1; }
.pk-favorite-card-btn { position: absolute; z-index: 3; min-width: 28px; height: 26px; padding: 0 6px; border: 1px solid rgba(255,255,255,.9); background: rgba(255,255,255,.82); box-shadow: 0 1px 4px rgba(16, 45, 28, .16); backdrop-filter: blur(2px); }
.pk-card-wrap .pk-favorite-card-btn { top: 15px; right: calc(100% - 103px); }
.pk-favorite-popup-btn { position: absolute; top: 8px; right: 8px; }
.pk-pop .body { position: relative; }
.pk-favorite-detail-btn { flex-shrink: 0; }
.pk-card img { width: 92px; height: 92px; border-radius: 12px; object-fit: cover; background: var(--pk-green-soft); flex: 0 0 auto; }
.pk-card .info { min-width: 0; flex: 1; }
.pk-card .title { font-weight: 700; font-size: 15px; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-card .price { font-weight: 900; font-size: 16px; color: var(--pk-green-dark); margin: 2px 0; }
.pk-price-free { color: #9333EA !important; }
.pk-card .meta { font-size: 12px; color: var(--pk-muted); display: flex; gap: 8px; flex-wrap: wrap; }
.pk-badge { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; }
.pk-badge.selling { background: var(--pk-green-soft); color: var(--pk-green-dark); }
.pk-badge.reserved { background: #FDF3DF; color: #A66A00; }
.pk-badge.sold { background: #EEE; color: #888; }
.pk-badge.past-dates { background: #F0F0F0; color: #888; }

/* ===== Past-dates card ===== */
.pk-card--past { opacity: 0.55; filter: grayscale(30%); }
.pk-card--past img { filter: grayscale(20%); }
.pk-empty { text-align: center; color: var(--pk-muted); padding: 60px 20px; }
.pk-empty .leaf { font-size: 40px; display: block; margin-bottom: 8px; }
.pk-empty-leaf { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; display: block; margin: 0 auto 10px; }

/* skeleton */
.pk-skel { background: linear-gradient(90deg, #eee 25%, #f7f7f7 50%, #eee 75%); background-size: 200% 100%; animation: pk-shimmer 1.1s infinite; border-radius: var(--pk-radius); height: 112px; }
@keyframes pk-shimmer { to { background-position: -200% 0; } }

/* ===== Forms ===== */
.pk-page { max-width: 560px; margin: 0 auto; padding: 16px 14px 120px; }
.pk-page h1 { font-size: 20px; margin: 8px 0 16px; }
.pk-create-heading { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; }
.pk-create-heading .pk-chat-back { flex: 0 0 38px; }
.pk-create-heading h1 { margin: 0; white-space: nowrap; }
.pk-detail-top { padding-bottom: 0; }
.pk-field { margin-bottom: 14px; }
.pk-field label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.pk-input, .pk-textarea, select.pk-input {
  width: 100%; border: 1.5px solid var(--pk-line); border-radius: 12px; padding: 12px;
  font-size: 15px; background: #fff; outline: none; font-family: inherit; min-height: 48px;
}
.pk-input:focus, .pk-textarea:focus { border-color: var(--pk-green); }
.pk-textarea { min-height: 120px; resize: vertical; }
.pk-btn {
  width: 100%; border: 0; border-radius: 14px; padding: 15px; font-size: 16px; font-weight: 800;
  background: var(--pk-green); color: #fff; cursor: pointer; min-height: 52px;
}
.pk-btn:disabled { opacity: .55; }
.pk-btn.outline { background: #fff; border: 1.5px solid var(--pk-line); color: var(--pk-ink); }
.pk-btn.line-brand { background: #06C755; }
.pk-btn.danger { background: var(--pk-red); }
.pk-hint { font-size: 12px; color: var(--pk-muted); margin-top: 4px; }
.pk-banner-warn { background: #FFF8E1; border: 1.5px solid #FFD54F; border-radius: 10px; padding: 12px 14px; font-size: 13px; color: #7a5a00; margin-bottom: 10px; }
.pk-error { color: var(--pk-red); font-size: 13px; margin: 8px 0; min-height: 18px; }

/* ===== 1:1 chat — warm green, fixed mobile workspace ===== */
.pk-chat-page { background: #f3f6f0; overflow: hidden; }
.pk-chat-shell { height: min(100dvh, var(--pk-chat-viewport-height, 100dvh)); min-height: 0; max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; background: #f8faf5; }
.pk-chat-topbar { flex: 0 0 60px; display: flex; align-items: center; gap: 12px; padding: 0 16px; background: #fff; border-bottom: 1px solid #dfe9df; }
.pk-chat-back { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: var(--pk-green-dark); transition: background .18s, transform .18s; }
.pk-chat-back:hover { background: var(--pk-green-soft); transform: translateX(-2px); }
.pk-chat-back svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pk-chat-brand { display: flex; align-items: baseline; gap: 8px; font-weight: 900; letter-spacing: -.3px; }
.pk-chat-brand small { color: var(--pk-muted); font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.pk-chat-presence { margin-left: auto; width: 9px; height: 9px; border-radius: 50%; background: #8acb9b; box-shadow: 0 0 0 4px #edf8ef; }
.pk-chat-menu-wrap { position: relative; }
.pk-chat-menu-toggle { width: 34px; height: 34px; border: 0; border-radius: 10px; background: #eff8ed; color: var(--pk-green-dark); font-size: 23px; line-height: 1; cursor: pointer; }
.pk-chat-menu-toggle:hover, .pk-chat-menu-toggle:focus-visible { background: #dff1dc; outline: none; }
.pk-chat-menu { position: absolute; z-index: 5; top: calc(100% + 7px); right: 0; min-width: 154px; overflow: hidden; border: 1px solid #dce8dd; border-radius: 12px; background: #fff; box-shadow: 0 10px 28px rgba(36,72,45,.16); }
.pk-chat-menu button { display: block; width: 100%; padding: 11px 13px; border: 0; background: #fff; color: var(--pk-ink); text-align: left; font: inherit; font-size: 13px; cursor: pointer; }
.pk-chat-menu button:hover, .pk-chat-menu button:focus-visible { background: #f1f8ef; outline: none; }
.pk-chat-menu button + button { border-top: 1px solid #edf1ed; }
.pk-chat-context { display: flex; gap: 11px; margin: 12px 14px 4px; padding: 10px; background: #fff; border: 1px solid #dfe9df; border-radius: 15px; box-shadow: 0 3px 12px rgba(45,81,53,.05); color: inherit; text-decoration: none; }
.pk-chat-context.is-link { cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s; }
.pk-chat-context.is-link:hover, .pk-chat-context.is-link:focus-visible { border-color: #9bc9a5; box-shadow: 0 5px 14px rgba(45,81,53,.1); outline: none; transform: translateY(-1px); }
.pk-chat-context[aria-disabled="true"] { cursor: default; }
.pk-chat-context[hidden], .pk-chat-partner[hidden], .pk-chat-status[hidden] { display: none; }
.pk-chat-listing-image { width: 54px; height: 54px; flex: 0 0 54px; overflow: hidden; border-radius: 10px; background: #e4f2e6; }
.pk-chat-listing-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pk-chat-listing-image.is-empty { position: relative; }
.pk-chat-listing-image.is-empty:after { content: ""; position: absolute; inset: 18px; border: 2px solid #9bc9a5; border-radius: 5px; }
.pk-chat-listing-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1px; }
.pk-chat-listing-copy span { color: var(--pk-muted); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.pk-chat-listing-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.pk-chat-listing-copy b { color: var(--pk-green-dark); font-size: 13px; }
.pk-chat-listing-meta { min-width: 0; display: flex; align-items: center; gap: 5px; height: 17px; font-size: 10px; }
.pk-chat-listing-status { flex: 0 0 auto; padding: 2px 6px; border-radius: 999px; background: #e4f5e8; color: var(--pk-green-dark); font-weight: 800; white-space: nowrap; }
.pk-chat-listing-status.reserved { background: #fff2d8; color: #976815; }
.pk-chat-listing-status.sold, .pk-chat-listing-status.deleted { background: #eeeeee; color: #7c857f; }
.pk-chat-listing-place { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pk-muted); }
.pk-chat-partner { display: flex; align-items: center; gap: 9px; padding: 8px 16px 9px; }
.pk-chat-avatar { width: 31px; height: 31px; border-radius: 50%; display: grid; place-items: center; background: #dcefe0; color: var(--pk-green-dark); font-size: 13px; font-weight: 900; }
.pk-chat-partner p { margin: 0; font-size: 13px; font-weight: 800; }
.pk-chat-partner span { color: var(--pk-muted); font-size: 10px; }
.pk-chat-status { margin: 0 14px 8px; padding: 8px 10px; border-radius: 10px; background: #fff4dd; color: #856019; font-size: 12px; }
.pk-chat-status.is-error { background: #fff0ed; color: #a53e35; }
.pk-chat-messages { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 8px 16px 18px; scroll-behavior: smooth; }
.pk-chat-message { display: flex; flex-direction: column; margin: 7px 0; animation: pk-chat-in .22s ease both; }
.pk-chat-message.is-mine { align-items: flex-end; }
.pk-chat-message.is-theirs { align-items: flex-start; }
.pk-chat-bubble { max-width: min(82%, 470px); padding: 10px 13px; border-radius: 16px 16px 16px 5px; background: #fff; border: 1px solid #e0e9df; color: var(--pk-ink); white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.45; box-shadow: 0 2px 7px rgba(37,72,45,.04); }
.is-mine .pk-chat-bubble { border: 0; border-radius: 16px 16px 5px 16px; background: var(--pk-green); color: #fff; box-shadow: 0 4px 11px rgba(47,158,95,.18); }
.pk-chat-photo-bubble, .is-mine .pk-chat-photo-bubble { padding: 4px; background: #fff; }
.pk-chat-photo-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; width: min(64vw, 280px); }
.pk-chat-photo-gallery.is-single { display: block; }
.pk-chat-photo-link { display: block; line-height: 0; overflow: hidden; border-radius: 10px; }
.pk-chat-photo { display: block; width: 100%; aspect-ratio: 1; max-height: 280px; object-fit: cover; }
.pk-chat-photo-gallery.is-single .pk-chat-photo { width: min(64vw, 280px); aspect-ratio: auto; }
.pk-chat-meta { display: flex; gap: 6px; padding: 3px 3px 0; color: #87958c; font-size: 10px; }
.is-mine .pk-chat-meta { flex-direction: row-reverse; }
.pk-translate-btn {
  border: 1px solid var(--pk-line); border-radius: 999px; background: #fff; color: var(--pk-muted);
  padding: 4px 9px; font: inherit; font-size: 11px; cursor: pointer;
}
.pk-translate-btn:hover { background: var(--pk-green-soft); color: var(--pk-green-dark); }
.pk-translate-btn:disabled { opacity: .55; cursor: wait; }
.pk-chat-message .pk-translate-btn { align-self: flex-start; margin-top: 3px; }
.pk-chat-message.is-mine .pk-translate-btn { align-self: flex-end; }
.pk-message-translation {
  max-width: min(82%, 420px); margin-top: 4px; padding: 7px 9px; border-radius: 9px;
  background: #f0f5ef; color: var(--pk-ink); font-size: 12px; line-height: 1.45; white-space: pre-wrap;
}
.pk-message-translation[hidden] { display: none; }
.pk-chat-empty { margin: auto; padding: 48px 24px; color: var(--pk-muted); text-align: center; font-size: 13px; }
.pk-chat-loading { display: flex; gap: 5px; justify-content: center; padding: 30px; }
.pk-chat-loading i { width: 7px; height: 7px; border-radius: 50%; background: #9bc9a5; animation: pk-chat-pulse 1s infinite ease-in-out; }
.pk-chat-loading i:nth-child(2) { animation-delay: .12s; }.pk-chat-loading i:nth-child(3) { animation-delay: .24s; }
.pk-quick-messages {
  flex: 0 0 auto; display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden;
  padding: 8px 14px 2px; background: #fff; scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.pk-quick-messages::-webkit-scrollbar { display: none; }
.pk-quick-messages[hidden] { display: none; }
.pk-quick-message {
  flex: 0 0 auto; padding: 8px 12px; border: 1px solid #d8e8c9;
  border-radius: 999px; background: #eaf3de; color: #3b6d11;
  font: inherit; font-size: 12px; font-weight: 700; line-height: 1.2;
  white-space: nowrap; cursor: pointer; transition: background .15s, opacity .15s;
}
.pk-quick-message:hover, .pk-quick-message:focus-visible { background: #dcecc8; outline: none; }
.pk-quick-message:disabled { opacity: .55; cursor: wait; }
.pk-chat-composer { flex: 0 0 auto; display: flex; align-items: flex-end; gap: 8px; padding: 10px max(14px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px)); background: #fff; border-top: 1px solid #dfe9df; }
.pk-chat-photo-button { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid #d3e1d4; border-radius: 13px; background: #f7faf5; font-size: 20px; cursor: pointer; }
.pk-chat-photo-button:hover, .pk-chat-photo-button:focus-visible { border-color: var(--pk-green); background: var(--pk-green-soft); outline: none; }
.pk-chat-photo-button:disabled { opacity: .55; cursor: wait; }
.pk-chat-compose-box { position: relative; flex: 1; min-width: 0; }
.pk-chat-compose-box textarea { display: block; width: 100%; min-height: 44px; max-height: 120px; resize: none; padding: 11px 54px 10px 13px; border: 1px solid #d3e1d4; border-radius: 14px; background: #f7faf5; color: var(--pk-ink); font: inherit; font-size: 14px; outline: none; }
.pk-chat-compose-box textarea:focus { border-color: var(--pk-green); box-shadow: 0 0 0 3px rgba(47,158,95,.11); }
.pk-chat-count { position: absolute; right: 10px; bottom: 7px; color: #93a198; font-size: 9px; pointer-events: none; }
.pk-chat-send { flex: 0 0 62px; height: 44px; border: 0; border-radius: 13px; background: var(--pk-green); color: #fff; font-size: 13px; font-weight: 900; cursor: pointer; transition: transform .15s, opacity .15s, background .15s; }
.pk-chat-send:hover { background: var(--pk-green-dark); transform: translateY(-1px); }.pk-chat-send:disabled { opacity: .55; cursor: wait; transform: none; }
@keyframes pk-chat-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pk-chat-pulse { 0%, 80%, 100% { opacity: .35; transform: scale(.8); } 40% { opacity: 1; transform: scale(1); } }
@media (min-width: 561px) { .pk-chat-shell { margin-top: 14px; height: min(calc(100dvh - 28px), calc(var(--pk-chat-viewport-height, 100dvh) - 28px)); border: 1px solid #dfe9df; border-radius: 20px; overflow: hidden; box-shadow: 0 12px 40px rgba(45,81,53,.09); } }
@media (prefers-reduced-motion: reduce) { .pk-chat-message, .pk-chat-loading i { animation: none; }.pk-chat-messages { scroll-behavior: auto; } }

/* ===== Password toggle ===== */
.pk-pw-wrap { position: relative; display: flex; align-items: center; }
.pk-pw-input { flex: 1; padding-right: 42px !important; }
.pk-pw-eye {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  border: none; background: none; padding: 4px; cursor: pointer;
  color: var(--pk-muted); display: flex; align-items: center; justify-content: center;
  border-radius: 4px; transition: color .15s;
}
.pk-pw-eye:hover { color: var(--pk-ink); }
.pk-capslock-warn {
  font-size: 12px; color: #B45309; background: #FFFBEB;
  border: 1px solid #FDE68A; border-radius: 6px;
  padding: 5px 9px; margin: 5px 0 0;
}
.pk-notice { background: #FFF8EC; border: 1px solid #F3E2BC; color: #7A5A16; border-radius: 12px; padding: 10px 12px; font-size: 12px; margin-bottom: 14px; }

/* 가격 스테퍼 */
.pk-stepper-row { display: flex; align-items: center; gap: 8px; }
.pk-stepper-row .pk-stepper-input { flex: 1; }
.pk-stepper-btn {
  flex: 0 0 auto; width: 56px; height: 48px; border: 1.5px solid var(--pk-line);
  border-radius: 12px; background: #fff; font-size: 14px; font-weight: 700;
  color: var(--pk-ink); cursor: pointer;
}
.pk-stepper-btn:hover { background: var(--pk-green-soft); border-color: var(--pk-green); }
.pk-stepper-btn:disabled { opacity: .4; cursor: default; }

/* 보조 버튼 (날짜 추가 등) */
.pk-btn-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--pk-green); border-radius: 12px; background: var(--pk-green-soft);
  color: var(--pk-green-dark); font-size: 14px; font-weight: 700; cursor: pointer;
  padding: 10px 16px; margin-top: 8px; min-height: 44px;
}
.pk-btn-secondary:hover { background: var(--pk-green); color: #fff; }

/* 날짜 선택 행 */
.pk-date-row {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  flex-wrap: wrap;
}
.pk-date-row .pk-date-input { flex: 0 0 160px; min-width: 0; }
.pk-time-label {
  display: flex; align-items: center; gap: 4px; font-size: 13px;
  font-weight: 600; cursor: pointer; padding: 4px 0;
}
.pk-time-label input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--pk-green); }
.pk-date-del {
  width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--pk-line);
  background: #fff; color: var(--pk-muted); font-size: 13px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

/* 제목 미리보기 힌트 */
#titlePreview { color: var(--pk-green-dark); font-weight: 700; font-size: 14px; margin-top: 4px; }

/* 사진 미리보기 */
/* 커스텀 사진 선택 버튼 */
.pk-photo-pick { display: flex; align-items: center; gap: 10px; margin: 4px 0 6px; }
.pk-photo-pick-btn {
  flex-shrink: 0; padding: 7px 14px; font-size: 13px; font-weight: 700;
  background: var(--pk-green-soft); color: var(--pk-green-dark);
  border: 1.5px solid var(--pk-green); border-radius: 8px; cursor: pointer;
  font-family: inherit; transition: background .12s;
}
.pk-photo-pick-btn:hover { background: #d3eedd; }
.pk-photo-pick-status { font-size: 13px; color: var(--pk-muted); }

.pk-thumbs { position: relative; z-index: 1; isolation: isolate; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.pk-thumb { position: relative; width: 72px; height: 72px; cursor: grab; touch-action: none; }
.pk-thumb[draggable="true"]:active { cursor: grabbing; }
.pk-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; border: 1px solid var(--pk-line); pointer-events: none; }
.pk-thumb.drag-over { outline: 2px dashed var(--pk-green); outline-offset: 2px; opacity: 0.7; }
.pk-thumb.dragging { opacity: 0.3; }
.pk-thumb .del {
  position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; border-radius: 50%;
  border: 0; background: var(--pk-ink); color: #fff; font-size: 12px; cursor: pointer; line-height: 1;
}
.pk-thumb .cover { position: absolute; left: 3px; bottom: 3px; background: var(--pk-green); color: #fff; font-size: 9px; font-weight: 700; border-radius: 6px; padding: 1px 5px; }
/* Arrow reorder buttons — shown only on touch devices */
.pk-thumb-arrows {
  display: none;
  position: absolute; bottom: -22px; left: 50%; transform: translateX(-50%);
  gap: 2px;
}
.pk-arrow {
  width: 28px; height: 20px; border: 1px solid var(--pk-line); border-radius: 6px;
  background: #fff; color: var(--pk-ink); font-size: 16px; line-height: 1;
  cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center;
}
.pk-arrow:disabled { opacity: .3; cursor: default; }
.pk-arrow:not(:disabled):active { background: var(--pk-green-soft); border-color: var(--pk-green); }
@media (hover: none) and (pointer: coarse) {
  .pk-thumb-arrows { display: flex; }
  .pk-thumbs { padding-bottom: 26px; }
}
/* 사진 추가 타일 버튼 */
.pk-photo-tile-add {
  flex-shrink: 0;
  width: 72px; height: 72px;
  border: 2px dashed var(--pk-line);
  border-radius: 10px;
  background: #fafafa;
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px;
  color: var(--pk-muted);
  font-family: inherit;
  padding: 0;
  transition: border-color .15s, background .15s, color .15s;
}
.pk-photo-tile-add:hover { border-color: var(--pk-green); background: var(--pk-green-soft); color: var(--pk-green-dark); }
.pk-tile-cam-icon { flex-shrink: 0; }
.pk-tile-add-label { font-size: 9px; font-weight: 600; line-height: 1.2; text-align: center; }
.pk-tile-count { font-size: 10px; font-weight: 700; line-height: 1; }

/* 판매글쓰기 최상단 사진 영역 */
.pk-photo-top { margin-bottom: 20px; }
.pk-thumbs--top { justify-content: center; }
.pk-thumbs--top .pk-thumb { width: 84px; height: 84px; }
.pk-thumbs--top .pk-photo-tile-add { width: 96px; height: 96px; border-width: 2.5px; gap: 5px; }
.pk-sale-date-hint { position: relative; z-index: 0; margin-bottom: 8px; }

/* 말머리 + 제목 가로 배치 */
.pk-prefix-title-row { display: flex; gap: 8px; }
.pk-cat-price-row, .pk-condition-purchase-row { display: flex; align-items: flex-start; gap: 12px; }
.pk-cat-price-row > .pk-field { flex: 1; min-width: 0; margin-bottom: 0; }
.pk-condition-purchase-row > .pk-field { flex: 1; min-width: 0; margin-bottom: 0; }
.pk-prefix-col { flex: 2.5; min-width: 0; }
.pk-title-col { flex: 7.5; min-width: 0; }
@media (max-width: 479px) {
  .pk-prefix-title-row { flex-direction: column; }
  .pk-cat-price-row, .pk-condition-purchase-row { flex-direction: column; }
  .pk-prefix-col, .pk-title-col { flex: none; width: 100%; }
}

#pickMap { height: 220px; border-radius: 12px; border: 1.5px solid var(--pk-line); }
.pk-pick-map-wrap { position: relative; margin-top: 8px; }
.pk-pick-map-wrap #pickMap { margin-top: 0; }
.pk-pick-locate { position: absolute; top: 8px; right: 8px; z-index: 999; }
.pk-locate-hint { color: var(--pk-green-dark); font-size: 12px; margin-top: 6px; }

/* ===== Detail ===== */
.pk-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: var(--pk-radius); scrollbar-width: none; }
.pk-carousel::-webkit-scrollbar { display: none; }
.pk-carousel img { width: 100%; flex: 0 0 100%; height: 280px; object-fit: cover; scroll-snap-align: center; background: var(--pk-green-soft); }
.pk-detail-titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pk-detail-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; margin-top: 14px; }
.pk-detail-title { font-size: 20px; font-weight: 800; margin: 14px 0 4px; flex: 1; }
.pk-detail-translation-controls { margin: 8px 0 0; }
.pk-detail-translated[hidden] { display: none; }
.pk-share-btn { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; background: var(--pk-green-soft); color: var(--pk-green-dark); border: none; border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 700; cursor: pointer; }
.pk-dir-btn { display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0; background: var(--pk-green-soft); color: var(--pk-green-dark); border: none; border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: none; white-space: nowrap; }
.pk-dir-btn:hover, .pk-dir-btn:active { opacity: 0.8; }
.pk-share-btn:active { opacity: 0.75; }
.pk-bump-row { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; }
.pk-bump-btn { width: auto; min-height: 40px; padding: 9px 16px; font-size: 14px; }
.pk-bump-btn:disabled { opacity: .5; cursor: not-allowed; }
.pk-bump-row .pk-hint { margin: 0; }
.pk-reltime { color: var(--pk-muted); font-size: 11px; }
.pk-detail-price { font-size: 22px; font-weight: 900; color: var(--pk-green-dark); }
.pk-detail-meta {
  color: var(--pk-muted); font-size: 13px; margin: 8px 0 14px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.pk-detail-chip {
  display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
  min-height: 26px; padding: 4px 9px; border: 1px solid #d8eee0;
  border-radius: 999px; background: #f0fbf4; color: #507060;
  line-height: 1.25; overflow-wrap: anywhere;
}
.pk-detail-status-chip { padding: 2px 5px; }
.pk-detail-status-chip.selling,
.pk-badge.selling { background: #e1f4e7; border-color: #9ed4ad; color: #247847; }
.pk-detail-status-chip.reserved,
.pk-badge.reserved { background: #fff1d6; border-color: #f3c56b; color: #a66300; }
.pk-detail-status-chip.sold,
.pk-badge.sold { background: #eceeed; border-color: #cbd1cd; color: #68736d; }
.pk-detail-chip--subtle {
  min-height: 22px; padding: 3px 7px; border-color: #e8eeea;
  background: #f8faf9; color: #94a19a; font-size: 11px;
}
.pk-detail-chip-group { flex-wrap: wrap; }
.pk-detail-chip-group .pk-same-condo-link {
  margin: 0; padding: 3px 7px; font-size: 11px; white-space: nowrap;
}
.pk-detail-desc { white-space: pre-wrap; word-break: break-word; border-top: 1px solid var(--pk-line); padding-top: 14px; }
.pk-chat-cta-wrap { margin: 14px 0; }
.pk-chat-cta { display: flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; min-height: 46px; padding: 11px 14px; font-size: 14px; }
.pk-chat-cta svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pk-chat-cta--disabled { cursor: not-allowed; background: #e7eee8; color: #809087; }
.pk-chat-actions { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 8px; }
.pk-chat-actions .pk-chat-cta { grid-column: 1 / -1; width: 100%; }
.pk-chat-actions .pk-offer-btn {
  grid-column: 1; width: 100%; min-height: 46px; padding: 11px 14px;
  background: #fff; border: 1.5px solid var(--pk-green); color: var(--pk-green-dark);
  font-size: 14px; white-space: nowrap;
}
.pk-chat-actions .pk-offer-btn:hover { background: var(--pk-green-soft); transform: none; }
.pk-chat-actions .pk-still-available-btn { grid-column: 2; width: 100%; }
.pk-chat-actions:not(.has-offer) .pk-still-available-btn { grid-column: 1 / -1; }
.pk-still-available-btn { min-height: 42px; padding: 10px 14px; background: #fff1a8; border: 1.5px solid #f0d86b; color: #664f00; font-size: 14px; font-weight: 900; }
.pk-still-available-btn:hover { background: #ffe889; border-color: #e7c94b; transform: none; }
.pk-offer-overlay { position: fixed; inset: 0; z-index: 1500; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(25, 43, 31, .42); }
.pk-offer-overlay[hidden] { display: none; }
.pk-offer-modal { width: min(100%, 360px); padding: 20px; border-radius: 18px; background: #fff; box-shadow: 0 18px 50px rgba(24, 50, 30, .2); }
.pk-offer-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.pk-offer-modal-head h2 { margin: 0; font-size: 18px; }
.pk-offer-close { border: 0; background: transparent; color: var(--pk-muted); padding: 2px 5px; font-size: 24px; line-height: 1; cursor: pointer; }
.pk-offer-label { display: block; margin-bottom: 7px; color: var(--pk-ink); font-size: 13px; font-weight: 700; }
.pk-offer-input-wrap { display: flex; align-items: center; gap: 8px; border: 1px solid var(--pk-line); border-radius: 10px; padding: 0 12px; }
.pk-offer-input-wrap input { width: 100%; min-width: 0; border: 0; outline: 0; padding: 12px 0; font: inherit; font-size: 16px; }
.pk-offer-input-wrap span { color: var(--pk-muted); font-weight: 700; }
.pk-offer-submit { width: 100%; margin-top: 14px; }
.pk-chat-list-page { background: #f4f7f1; min-height: 100dvh; }
.pk-chat-list-shell { max-width: 680px; padding-top: 26px; }
.pk-chat-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.pk-chat-list-heading h1 { margin: 2px 0 0; font-size: 25px; letter-spacing: -.7px; }
.pk-eyebrow { margin: 0; color: var(--pk-green-dark); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.pk-back-home { color: var(--pk-green-dark); font-size: 12px; font-weight: 800; border-bottom: 1px solid #b7d3bc; padding-bottom: 2px; }
.pk-conversation-list { display: flex; flex-direction: column; gap: 8px; }
.pk-conversation-item { display: flex; align-items: stretch; gap: 8px; }
.pk-conversation-row { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid #dce8dd; border-radius: 16px; background: #fff; box-shadow: 0 3px 12px rgba(45,81,53,.04); transition: transform .18s, border-color .18s, box-shadow .18s; }
.pk-conversation-item .pk-conversation-row { flex: 1; min-width: 0; }
.pk-conversation-row:hover, .pk-conversation-row:focus-visible { transform: translateY(-2px); border-color: #9bc9a5; box-shadow: 0 8px 20px rgba(45,81,53,.1); outline: none; }
.pk-conversation-thumb { width: 62px; height: 62px; flex: 0 0 62px; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: var(--pk-green-soft); color: var(--pk-green-dark); font-weight: 900; }
.pk-conversation-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pk-conversation-body { flex: 1; min-width: 0; }
.pk-conversation-top { display: flex; align-items: baseline; gap: 8px; }
.pk-conversation-top strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.pk-conversation-top time { margin-left: auto; flex: 0 0 auto; color: var(--pk-muted); font-size: 10px; }
.pk-conversation-title { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pk-green-dark); font-size: 12px; font-weight: 800; }
.pk-conversation-body p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 3px 0 0; color: var(--pk-muted); font-size: 12px; }
.pk-conversation-arrow { color: #9ab2a0; font-size: 25px; line-height: 1; }
.pk-conversation-delete { flex: 0 0 auto; align-self: center; padding: 8px 9px; border: 0; border-radius: 10px; background: #ff6658; color: #fff; font-weight: 800; font-size: 11px; cursor: pointer; box-shadow: 0 3px 8px rgba(201,61,50,.18); }
.pk-conversation-delete:hover, .pk-conversation-delete:focus-visible { background: #e84f43; outline: 3px solid #ffd4d0; outline-offset: 1px; }
.pk-conversation-delete:disabled { opacity: .55; cursor: wait; }
.pk-chat-list-status { padding: 28px 12px; text-align: center; color: var(--pk-muted); font-size: 14px; }
.pk-chat-list-status.is-error { color: var(--pk-red); }
.pk-conversation-skeleton { height: 88px; border-radius: 16px; background: linear-gradient(90deg,#e8efe9 25%,#f5f8f3 50%,#e8efe9 75%); background-size: 200% 100%; animation: pk-shimmer 1.1s infinite; }
.pk-chat-retry { max-width: 180px; margin: 8px auto; min-height: 42px; padding: 10px; font-size: 13px; }
@media (max-width: 420px) { .pk-category-layer { grid-template-columns: 1fr 1fr; } .pk-chat-list-heading h1 { font-size: 22px; } }
.pk-contactbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; background: #fff;
  border-top: 1px solid var(--pk-line); padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
  display: flex; gap: 10px; max-width: 560px; margin: 0 auto;
}
.pk-contactbar .pk-btn { flex: 1; }
.pk-statusrow { display: flex; gap: 8px; margin: 14px 0; }
.pk-statusrow button { flex: 1; border: 1.5px solid var(--pk-line); background: #fff; border-radius: 10px; padding: 10px 0; font-weight: 700; font-size: 13px; cursor: pointer; min-height: 42px; }
.pk-statusrow button.active { border-color: var(--pk-green); background: var(--pk-green-soft); color: var(--pk-green-dark); }
.pk-report { color: var(--pk-muted); font-size: 12px; text-decoration: underline; background: none; border: 0; cursor: pointer; padding: 8px 0; }

/* toast */
.pk-toast {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 90px; z-index: 2000;
  background: var(--pk-ink); color: #fff; border-radius: 999px; padding: 10px 18px;
  font-size: 13px; font-weight: 600; box-shadow: var(--pk-shadow); opacity: 0; transition: opacity .25s;
  pointer-events: none; max-width: 88vw; text-align: center;
}
.pk-toast.show { opacity: 1; }

/* legal pages */
.pk-legal h1 { font-size: 20px; }
.pk-legal h2 { font-size: 15px; margin-top: 20px; }
.pk-legal p, .pk-legal li { font-size: 13px; color: #3c4a44; }
.pk-footer { padding: 20px 14px 100px; text-align: center; font-size: 11px; color: var(--pk-muted); }
.pk-footer a { text-decoration: underline; margin: 0 5px; }

/* ===== Profile hero ===== */
.pk-profile-hero { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 16px; gap: 8px; }
.pk-profile-hero-avatar { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; border: 2.5px solid var(--pk-line); flex-shrink: 0; }
.pk-profile-hero-avatar-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pk-profile-name-row { display: flex; align-items: center; justify-content: center; gap: 6px; max-width: 100%; }
.pk-profile-hero-name { font-size: 20px; font-weight: 800; margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-profile-name-row #profileAreaVerifiedBadge { flex: 0 0 auto; }
.pk-profile-name-row .pk-area-verified-mark { display: inline-flex; align-self: center; align-items: center; justify-content: center; width: 20px; height: 20px; font-size: 18px; line-height: 1; }
.pk-profile-area-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: -4px 0 14px; align-items: start; }
.pk-area-verify-panel { display: flex; flex-direction: column; align-items: stretch; gap: 7px; margin: 0; min-width: 0; }
.pk-profile-area-actions .pk-my-condo-link,
.pk-profile-area-actions #verifyAreaBtn {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-width: 0; min-height: 38px; height: 38px; padding: 0 8px;
  border: 1.5px solid var(--pk-line); border-radius: 999px; font-family: inherit;
  font-size: 12px; font-weight: 800; line-height: 1.2; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.pk-area-verify-status { margin: 0; font-size: 12px; color: var(--pk-muted); text-align: center; }
.pk-area-verified-badge {
  display: inline-flex; align-items: center; width: fit-content; border-radius: 999px;
  padding: 4px 9px; background: linear-gradient(135deg, #FFF4B8, #E8F8D2);
  border: 1px solid #D5AF36; color: #23643F; font-size: 12px; font-weight: 800;
  box-shadow: 0 1px 0 rgba(213,175,54,.18);
}
.pk-search-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 6px 12px 8px; }
.pk-search-filter { display: inline-flex; align-items: center; gap: 5px; color: var(--pk-muted); font-size: 12px; }
.pk-search-filter .pk-select { min-width: 78px; padding: 6px 25px 6px 8px; font-size: 12px; }
.pk-status-chips {
  display: flex; flex-wrap: wrap; align-items: center; gap: 5px; width: 100%;
}
.pk-status-chip {
  flex: 0 0 auto; border: 1px solid var(--pk-line); border-radius: 999px;
  background: #f5f6f5; color: var(--pk-muted); padding: 6px 10px;
  min-height: 30px; font-size: 12px; font-weight: 700; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.pk-status-chip.active { color: #fff; }
.pk-status-chip[data-status="all"].active {
  background: var(--pk-green); border-color: var(--pk-green);
}
.pk-status-chip[data-status="selling"].active {
  background: #2F9E5F; border-color: #2F9E5F;
}
.pk-status-chip[data-status="reserved"].active {
  background: #F59E0B; border-color: #F59E0B;
}
.pk-status-chip[data-status="free"].active {
  background: #C084FC; border-color: #C084FC;
}
.pk-sort-hint { color: var(--pk-muted); font-size: 11px; }
.pk-optional-details { margin: 18px 0 20px; border: 1px solid var(--pk-line); border-radius: 14px; background: #fffdf4; overflow: hidden; }
.pk-optional-details summary { padding: 13px 15px; color: var(--pk-green-deep, #26734a); font-size: 14px; font-weight: 800; cursor: pointer; list-style: none; }
.pk-optional-details summary::-webkit-details-marker { display: none; }
.pk-optional-details summary span:last-child { float: right; color: var(--pk-muted); transition: transform .18s ease; }
.pk-optional-details[open] summary span:last-child { transform: rotate(180deg); }
.pk-optional-content { padding: 2px 14px 14px; border-top: 1px solid rgba(219, 205, 155, .5); }
.pk-optional-content .pk-field { margin-top: 14px; }
.pk-optional-contact-note { padding: 8px 0 0; }
.pk-optional-contact-note p { margin: 4px 0; }
#myList.pk-list { grid-template-columns: minmax(0, 1fr); }
#myList .pk-card-wrap { min-width: 0; }
.pk-profile-area-actions .pk-my-condo-link { margin: 0; }

/* ===== Seller trust ===== */
.pk-seller-block {
  background: var(--pk-green-soft); border-radius: 14px; padding: 12px 14px; margin: 12px 0;
}
.pk-seller-name { font-weight: 700; font-size: 14px; margin-bottom: 8px; }
.pk-trust-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-trust-badge {
  background: #fff; border: 1px solid var(--pk-line); border-radius: 999px;
  padding: 4px 10px; font-size: 12px; font-weight: 600; color: var(--pk-ink);
}
.pk-trust-badges .pk-area-verified-badge { align-self: center; }

/* ===== Trade confirmation & simple reviews ===== */
.pk-review-overlay { position: fixed; inset: 0; z-index: 3100; display: grid; place-items: center; padding: 18px; background: rgba(25, 42, 34, .52); }
.pk-review-overlay[hidden] { display: none; }
.pk-review-modal { position: relative; width: min(100%, 390px); padding: 24px 20px 20px; border-radius: 20px; background: #fff; box-shadow: 0 18px 44px rgba(0,0,0,.2); text-align: center; }
.pk-review-modal h2 { margin: 3px 28px 12px; font-size: 19px; }
.pk-review-emoji { font-size: 34px; line-height: 1; }
.pk-review-close { position: absolute; top: 10px; right: 12px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: var(--pk-cream); color: var(--pk-muted); font-size: 21px; cursor: pointer; }
.pk-trade-candidates { display: grid; gap: 7px; margin: 14px 0; text-align: left; max-height: 200px; overflow-y: auto; }
.pk-trade-candidate { width: 100%; padding: 11px 12px; border: 1px solid var(--pk-line); border-radius: 12px; background: #fff; color: var(--pk-ink); font: inherit; text-align: left; cursor: pointer; }
.pk-trade-candidate.active { border-color: var(--pk-green); background: var(--pk-green-soft); font-weight: 700; }
.pk-review-actions, .pk-review-rating-row { display: flex; gap: 8px; }
.pk-review-actions .pk-btn, .pk-review-rating { flex: 1; }
.pk-review-rating { border: 1px solid var(--pk-line); border-radius: 12px; background: #fff; padding: 11px 6px; font: inherit; cursor: pointer; }
.pk-review-rating.active { border-color: var(--pk-green); background: var(--pk-green-soft); font-weight: 800; }
.pk-review-field { position: relative; }
.pk-review-modal textarea { box-sizing: border-box; width: 100%; margin: 12px 0 4px; resize: vertical; }
.pk-review-count { display: block; color: var(--pk-muted); font-size: 11px; text-align: right; }
.pk-review-cta, .pk-review-complete { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 13px 0; padding: 12px 14px; border-radius: 14px; background: #fff8d7; font-size: 13px; }
.pk-review-cta[hidden] { display: none; }
.pk-review-cta span { color: var(--pk-muted); font-size: 12px; }
.pk-review-cta .pk-btn { width: auto; padding: 8px 11px; font-size: 12px; white-space: nowrap; }
.pk-review-cta .pk-btn:disabled { opacity: .72; cursor: default; }
.pk-review-complete { color: #31633d; justify-content: center; background: var(--pk-green-soft); }
.pk-received-reviews { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(80,140,92,.2); }
.pk-received-reviews h3 { margin: 0 0 8px; font-size: 14px; }
.pk-received-review { padding: 9px 0; border-top: 1px solid rgba(80,140,92,.14); text-align: left; }
.pk-received-review:first-child { border-top: 0; }
.pk-received-review-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; }
.pk-received-review-top time, .pk-received-review small { color: var(--pk-muted); font-size: 10px; }
.pk-received-review p { margin: 4px 0; font-size: 12px; white-space: pre-wrap; word-break: break-word; }

/* ===== Onboarding modal ===== */
.pk-ob-backdrop {
  position: fixed; inset: 0; z-index: 3000; background: rgba(33,48,42,.5);
  align-items: center; justify-content: center; padding: 20px;
  display: none;
}
.pk-ob-backdrop:not([hidden]) { display: flex; }
.pk-ob {
  position: relative; background: #fff; border-radius: 20px; padding: 24px 20px 20px;
  max-width: 380px; width: 100%; max-height: 86dvh; overflow-y: auto; box-shadow: var(--pk-shadow);
}
.pk-ob-x {
  position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 50%;
  border: 0; background: var(--pk-cream); color: var(--pk-muted); font-size: 14px; cursor: pointer;
}
.pk-ob-emoji { text-align: center; font-size: 40px; }
.pk-ob-mascot { display: block; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; margin: 0 auto 2px; }
.pk-ob h2 { text-align: center; font-size: 18px; margin: 6px 0 16px; }
.pk-ob-step { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.pk-ob-step .num {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; background: var(--pk-green);
  color: #fff; font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-top: 1px;
}
.pk-ob-step .t { margin: 0; font-weight: 800; font-size: 14px; }
.pk-ob-step .d { margin: 1px 0 0; font-size: 12.5px; color: var(--pk-muted); }
.pk-ob-en { color: var(--pk-muted); font-weight: 400; }
.pk-ob-dontshow-btn {
  display: block; width: 100%; background: none; border: none; color: var(--pk-muted);
  font-size: 13px; text-decoration: underline; cursor: pointer; padding: 10px 0 4px; text-align: center;
}
.pk-ob-dontshow-btn:hover { color: var(--pk-ink); }
.pk-ob-share { margin-top: 8px; font-size: 14px; }
.pk-ob-feats { margin: 14px 0 0; border-top: 1px solid var(--pk-line); padding-top: 12px; display: flex; flex-direction: column; gap: 7px; }
.pk-ob-feat { font-size: 12.5px; color: var(--pk-muted); padding-left: 18px; position: relative; line-height: 1.4; }
.pk-ob-feat::before { content: '✓'; position: absolute; left: 0; color: var(--pk-green); font-weight: 700; }
.pk-ob-native { font-size: 12px; color: var(--pk-muted); text-align: center; margin: 12px 0 6px; }
.pk-login-help-q {
  background: none; border: 1.5px solid var(--pk-line); padding: 4px 10px 4px 6px; cursor: pointer;
  font-size: 12px; font-weight: 600; color: var(--pk-muted);
  border-radius: 999px; display: inline-flex; align-items: center; gap: 5px; line-height: 1;
}
.pk-help-q-circle {
  width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid currentColor;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}

/* ===== Login page footer ===== */
.pk-login-footer {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 28px; padding-bottom: 8px;
}
.pk-login-footer a,
.pk-login-footer button {
  background: none; border: none; padding: 0; cursor: pointer;
  font-size: 12px; color: var(--pk-muted); text-decoration: none;
  font-family: inherit;
}
.pk-login-footer a:hover,
.pk-login-footer button:hover { color: var(--pk-ink); text-decoration: underline; }
.pk-login-footer-sep { font-size: 12px; color: var(--pk-muted); }

/* ===== Distance / list hint ===== */
.pk-dist { font-size: 11.5px; font-weight: 700; color: var(--pk-green-dark); background: var(--pk-green-soft); border-radius: 999px; padding: 2px 7px; }
.pk-loc-hint { font-size: 12px; color: var(--pk-muted); text-align: center; padding: 10px 16px 0; grid-column: 1 / -1; }

/* ===== Open Chat help modal ===== */
.pk-help-btn { display: inline-flex; align-items: center; gap: 6px; background: var(--pk-green); color: #fff; border: none; cursor: pointer; font-size: 14px; font-weight: 700; padding: 11px 16px; border-radius: 12px; box-shadow: 0 3px 12px rgba(47,158,95,.26); margin-top: 10px; }
.pk-help-btn:active { transform: scale(.97); }
.pk-help-btn--compact { font-size: 12px; padding: 8px 12px; border-radius: 9px; box-shadow: none; margin-top: 6px; }
.pk-oc-overlay { position: fixed; inset: 0; background: rgba(20,30,25,.5); display: none; align-items: flex-end; justify-content: center; z-index: 9999; }
.pk-oc-overlay.open { display: flex; }
.pk-oc-modal { background: #fff; width: 100%; max-width: 420px; max-height: 88vh; overflow-y: auto; border-radius: 20px 20px 0 0; padding: 0 0 24px; }
@media (min-width: 520px) { .pk-oc-overlay { align-items: center; } .pk-oc-modal { border-radius: 20px; } }
.pk-oc-head { position: sticky; top: 0; background: #fff; padding: 18px 18px 12px; display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--pk-line); }
.pk-oc-head strong { font-size: 17px; display: block; }
.pk-oc-head small { display: block; font-size: 12px; color: var(--pk-muted); margin-top: 3px; font-weight: 400; }
.pk-oc-x { flex: none; width: 30px; height: 30px; border: none; background: var(--pk-cream); border-radius: 50%; font-size: 16px; color: var(--pk-muted); cursor: pointer; }
.pk-oc-tabs { display: flex; gap: 8px; padding: 14px 18px 4px; }
.pk-oc-tab { flex: 1; padding: 9px; border: 1.5px solid var(--pk-line); background: #fff; border-radius: 11px; font-size: 13.5px; font-weight: 700; color: var(--pk-muted); cursor: pointer; }
.pk-oc-tab.active { border-color: var(--pk-green); color: var(--pk-green); background: var(--pk-green-soft); }
.pk-oc-steps { padding: 10px 18px 0; display: none; }
.pk-oc-steps.show { display: block; }
.pk-oc-step { display: flex; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px dashed var(--pk-line); font-size: 14px; line-height: 1.4; }
.pk-oc-step:last-child { border-bottom: none; }
.pk-oc-num { flex: none; width: 25px; height: 25px; border-radius: 50%; background: var(--pk-green); color: #fff; font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.pk-oc-tip { margin: 14px 18px 0; background: var(--pk-green-soft); border-radius: 11px; padding: 11px 13px; font-size: 12.5px; color: var(--pk-green-dark); line-height: 1.5; }
.pk-oc-guide-link { display: inline-block; margin: 12px 0 4px; font-size: 12.5px; font-weight: 700; color: var(--pk-green-dark); text-decoration: none; border-bottom: 1px dashed var(--pk-green); }
.pk-oc-guide-link:hover { opacity: .75; }
/* 광고 슬롯 — 1:1 문의 버튼 */
.pk-ad-btn-kakao { background: #FEE500; color: #191919 !important; border-color: #e6d000; }
@media (prefers-reduced-motion: no-preference) {
  .pk-oc-modal { animation: pkOcUp .2s ease; }
  @keyframes pkOcUp { from { transform: translateY(20px); opacity: .6; } to { transform: none; opacity: 1; } }
}

/* Contact ID copy button */
.pk-contact-id { font-family: monospace; font-size: 13px; }

/* ===== Home contact footer ===== */
.pk-contact-footer {
  display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap;
  padding: 14px 14px calc(84px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--pk-line);
  font-size: 11px; color: var(--pk-muted);
}
.pk-footer-link { color: var(--pk-muted); text-decoration: none; }
.pk-footer-link:hover { text-decoration: underline; color: var(--pk-ink); }
.pk-footer-sep { color: var(--pk-line); }
.pk-contact-btn {
  display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--pk-line);
  border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 700; background: #fff; color: var(--pk-ink);
}
.pk-contact-btn.line { background: #06C755; border-color: #06C755; color: #fff; }

/* ===== Edit history (listing detail) ===== */
.pk-edit-history {
  margin: 16px 0;
  border: 1px solid var(--pk-line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.pk-edit-summary {
  list-style: none;
  padding: 12px 14px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--pk-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.pk-edit-summary::-webkit-details-marker { display: none; }
.pk-edit-summary::after { content: '▸'; margin-left: auto; color: var(--pk-muted); font-size: 12px; }
details[open] .pk-edit-summary::after { content: '▾'; }
.pk-edit-count {
  background: var(--pk-green-soft);
  color: var(--pk-green-dark);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  padding: 1px 7px;
}
.pk-edit-list {
  border-top: 1px solid var(--pk-line);
  padding: 4px 0;
  max-height: 260px;
  overflow-y: auto;
}
.pk-edit-entry {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: 6px;
  padding: 8px 14px;
  font-size: 12.5px;
  border-bottom: 1px solid var(--pk-line);
}
.pk-edit-entry:last-child { border-bottom: none; }
.pk-edit-field {
  font-weight: 700;
  color: var(--pk-green-dark);
  white-space: nowrap;
}
.pk-edit-arrow {
  color: var(--pk-ink);
  word-break: break-all;
}
.pk-edit-when {
  font-size: 11px;
  color: var(--pk-muted);
  white-space: nowrap;
  text-align: right;
}

@media (min-width: 700px) {
  .pk-list { grid-template-columns: 1fr 1fr; }
  #map { height: calc(100dvh - 246px); }
}
:focus-visible { outline: 3px solid rgba(47,158,95,.5); outline-offset: 2px; border-radius: 8px; }

/* ===== PWA Install Banner ===== */
.pk-pwa-banner {
  position: fixed;
  left: 12px; right: 12px;
  bottom: 62px;          /* tab toggle(28px) + 18px gap + 16px margin */
  z-index: 998;
  background: #fff;
  border: 1.5px solid var(--pk-line);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,.13);
  padding: 12px 14px 10px;
  display: flex; flex-direction: column; gap: 6px;
  /* slide-up animation — starts hidden via transform */
  transform: translateY(16px);
  opacity: 0;
  transition: transform .35s cubic-bezier(.22,.68,0,1.2), opacity .3s ease;
  pointer-events: none;
}
.pk-pwa-banner.pk-pwa-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
@media (prefers-reduced-motion: reduce) {
  .pk-pwa-banner { transition: none; }
}

/* close button */
.pk-pwa-close {
  position: absolute; top: 8px; right: 10px;
  border: 0; background: transparent; color: var(--pk-muted);
  font-size: 14px; cursor: pointer; padding: 4px 6px; line-height: 1;
  border-radius: 50%;
}
.pk-pwa-close:hover { background: var(--pk-bg); }

/* android row */
.pk-pwa-android {
  display: flex; align-items: center; gap: 10px; padding-right: 22px;
}
.pk-pwa-text {
  flex: 1; font-size: 13px; font-weight: 600; color: var(--pk-ink); line-height: 1.35;
}
.pk-pwa-add-btn {
  flex-shrink: 0;
  border: 0; border-radius: 999px;
  background: var(--pk-green); color: #fff;
  font-size: 12.5px; font-weight: 700;
  padding: 6px 14px; cursor: pointer;
  white-space: nowrap;
}
.pk-pwa-add-btn:active { opacity: .85; }

/* ios content */
.pk-pwa-ios { padding-right: 22px; display: flex; flex-direction: column; gap: 7px; }
.pk-pwa-ios .pk-pwa-text {
  font-size: 13px; font-weight: 600; color: var(--pk-ink); margin: 0;
}
/* visual hint row */
.pk-pwa-ios-hint {
  display: flex; align-items: center; gap: 6px;
}
.pk-pwa-ios-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--pk-bg); border: 1.5px solid var(--pk-line);
  border-radius: 8px; padding: 4px 8px;
  font-size: 11.5px; font-weight: 600; color: var(--pk-green-dark);
}
.pk-pwa-ios-chip--add { border-color: var(--pk-green); color: var(--pk-green-dark); }
.pk-pwa-share-icon { width: 14px; height: 17px; color: var(--pk-green-dark); }
.pk-pwa-ios-arrow { font-size: 13px; color: var(--pk-muted); }
.pk-pwa-ios-sub {
  margin: 0; font-size: 11.5px; color: var(--pk-muted); line-height: 1.35;
}

/* dismiss link */
.pk-pwa-dismiss {
  align-self: flex-end;
  border: 0; background: transparent;
  font-size: 11px; color: var(--pk-muted);
  cursor: pointer; padding: 2px 0; text-decoration: underline;
  text-underline-offset: 2px;
}
.pk-pwa-dismiss:hover { color: var(--pk-ink); }

/* ===== 아바타 드롭다운 ===== */
.pk-avatar-wrap {
  position: relative; flex: 0 0 auto;
}
.pk-avatar {
  width: 32px; height: 32px; border-radius: 50%; background: var(--pk-green-soft);
  display: flex; align-items: center; justify-content: center; font-size: 16px;
  border: 1px solid var(--pk-line); cursor: pointer; padding: 0; overflow: hidden;
  transition: box-shadow .15s;
}
.pk-avatar:hover { box-shadow: 0 0 0 2px var(--pk-green); }
.pk-unread-badge {
  position: absolute; top: -5px; right: -5px; z-index: 1;
  min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #e5484d; color: #fff; border: 2px solid #fff;
  font-size: 10px; font-weight: 900; line-height: 1; white-space: nowrap;
  pointer-events: none;
}
.pk-unread-badge[hidden] { display: none; }
.pk-unread-badge--row {
  position: static; flex: 0 0 auto; min-width: 20px; height: 20px;
  border: 0; font-size: 10px;
}
.pk-unread-badge--menu {
  position: static; margin-left: auto; flex: 0 0 auto;
  min-width: 20px; height: 20px; border: 0; font-size: 10px;
}
.pk-avatar-img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;
}
.pk-card-wrap--changed { border-radius: 14px; box-shadow: 0 0 0 2px rgba(242, 153, 74, .28); }
.pk-favorite-change {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 12px; background: #fff8ed; color: #8a5315; font-size: 12px;
  border-top: 1px solid #f8dfb7;
}
.pk-favorite-change-info { min-width: 0; }
.pk-favorite-change-title { font-weight: 700; margin-bottom: 3px; }
.pk-favorite-change-details { display: grid; gap: 2px; line-height: 1.35; }
.pk-favorite-change-seen {
  flex: 0 0 auto; border: 0; border-radius: 999px; padding: 5px 9px;
  background: #fff; color: #8a5315; font: inherit; cursor: pointer;
}
.pk-favorite-change-seen:hover { background: #ffedcf; }
.pk-notification-setting {
  display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px;
  padding: 12px; border: 1px solid var(--pk-line); border-radius: 10px;
  cursor: pointer;
}
.pk-notification-setting input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--pk-green); }
.pk-notification-setting span { display: grid; gap: 3px; }
.pk-notification-setting small { color: var(--pk-muted); font-size: 12px; line-height: 1.4; }
.pk-avatar-dropdown {
  position: absolute; top: calc(100% + 8px); right: 0;
  background: #fff; border: 1px solid var(--pk-line); border-radius: 12px;
  box-shadow: 0 8px 24px rgba(33,48,42,.14); min-width: 168px;
  z-index: 2000; overflow: hidden;
  animation: pkDropIn .15s ease;
}
@keyframes pkDropIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pk-avd-item {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 12px 16px; font-size: 14px; font-weight: 600;
  color: var(--pk-ink); background: none; border: none; text-align: left;
  cursor: pointer; font-family: inherit; text-decoration: none;
  transition: background .12s;
}
.pk-avd-item:hover { background: var(--pk-green-soft); }
.pk-avd-item + .pk-avd-item { border-top: 1px solid var(--pk-line); }
.pk-avd-emoji {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; flex: 0 0 20px; font-size: 17px; line-height: 1;
}
.pk-avd-logout { color: var(--pk-red); }
.pk-avd-logout:hover { background: #fff0ef; }

.pk-follow-btn {
  margin: 0; padding: 4px 9px; border: 1px solid var(--pk-green);
  border-radius: 999px; color: var(--pk-green-dark); background: #fff;
  font: inherit; font-size: 11px; font-weight: 700; cursor: pointer;
}
.pk-follow-btn:hover, .pk-follow-btn.is-following {
  color: #fff; background: var(--pk-green); border-color: var(--pk-green);
}
.pk-follow-btn:disabled { opacity: .65; cursor: wait; }

.pk-same-condo-link, .pk-my-condo-link {
  display: inline-flex; align-items: center; gap: 4px; width: fit-content;
  border-radius: 999px; color: #8a5a00; background: #fff6bf;
  border: 1px solid #f4cf52; font-size: 12px; font-weight: 800;
  line-height: 1.2; text-decoration: none;
}
.pk-same-condo-link { margin-top: 2px; padding: 5px 9px; }
.pk-my-condo-link { margin: -6px auto 16px; padding: 7px 11px; }
.pk-same-condo-link:hover, .pk-my-condo-link:hover { background: #ffe982; }
.pk-same-building-badge {
  display: inline-flex; align-items: center; padding: 4px 9px;
  border: 1px solid #f4cf52; border-radius: 999px; background: #fff6bf;
  color: #8a5a00; font-size: 12px; font-weight: 800;
  animation: pk-same-building-attention 2.1s ease-in-out 1;
}
@keyframes pk-same-building-attention {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: none; }
  12% { opacity: .58; transform: scale(.98); box-shadow: 0 0 0 0 rgba(244, 207, 82, 0); }
  24% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(244, 207, 82, .18); }
  36% { opacity: .58; transform: scale(.98); box-shadow: 0 0 0 0 rgba(244, 207, 82, 0); }
  48% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 4px rgba(244, 207, 82, .18); }
  60% { opacity: .58; transform: scale(.98); box-shadow: 0 0 0 0 rgba(244, 207, 82, 0); }
  72% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 3px rgba(244, 207, 82, .14); }
}
@media (prefers-reduced-motion: reduce) {
  .pk-same-building-badge { animation: none; }
}

.pk-following-card {
  display: flex; align-items: center; gap: 12px; padding: 14px;
  border: 1px solid var(--pk-line); border-radius: var(--pk-radius);
  color: inherit; text-decoration: none; background: #fff;
}
.pk-following-card:hover { border-color: var(--pk-green); background: var(--pk-green-soft); }
.pk-following-avatar, .pk-following-avatar img {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover;
}
.pk-following-avatar { display: grid; place-items: center; flex: 0 0 44px; background: var(--pk-green-soft); font-size: 23px; }
.pk-following-info { min-width: 0; flex: 1; }
.pk-following-name { margin: 0 0 4px; font-weight: 800; }
.pk-following-stats { margin: 0; color: var(--pk-muted); font-size: 12px; }

/* ===== 판매자 아바타 (게시글 상세) ===== */
.pk-seller-heading {
  display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: nowrap;
}
.pk-seller-name-row {
  display: flex; align-items: center; gap: 10px;
  color: inherit; text-decoration: none; margin-bottom: 0; min-width: 0; flex: 1 1 auto; overflow: hidden;
}
.pk-seller-name-row:hover .pk-seller-name-text { text-decoration: underline; text-underline-offset: 2px; }
.pk-seller-avatar {
  width: 36px; height: 36px; border-radius: 50%; background: var(--pk-green-soft);
  border: 1px solid var(--pk-line); flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; overflow: hidden;
}
.pk-seller-avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.pk-seller-avatar-fallback { font-size: 18px; }
.pk-seller-name-text { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-seller-heading .pk-area-verified-badge { flex: 0 0 auto; white-space: nowrap; }
.pk-seller-block:not(#myTrustBlock) .pk-trust-badges { flex-wrap: nowrap; overflow-x: auto; }
.pk-seller-block:not(#myTrustBlock) .pk-trust-badges > * { flex: 0 0 auto; white-space: nowrap; }

/* ===== 프로필 편집 카드 ===== */
.pk-profile-edit-card {
  background: #fff; border: 1px solid var(--pk-line); border-radius: 16px;
  padding: 20px 16px 24px; margin-bottom: 12px;
}
.pk-profile-avatar-row {
  display: flex; align-items: center; gap: 16px; margin-bottom: 20px;
}
.pk-profile-avatar-preview {
  width: 72px; height: 72px; border-radius: 50%; background: var(--pk-green-soft);
  border: 2px solid var(--pk-line); display: flex; align-items: center; justify-content: center;
  font-size: 36px; flex: 0 0 auto; overflow: hidden;
}
.pk-profile-avatar-img-lg {
  width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;
}
.pk-profile-avatar-actions {
  display: flex; flex-direction: column; gap: 6px;
}
.pk-form-group { margin-bottom: 14px; }
.pk-form-label {
  display: block; font-size: 12px; font-weight: 700; color: var(--pk-muted);
  margin-bottom: 5px; text-transform: uppercase; letter-spacing: .03em;
}
.pk-form-static {
  font-size: 14px; color: var(--pk-ink); padding: 10px 12px;
  background: #f7f8f7; border-radius: 10px; border: 1px solid var(--pk-line);
}
.pk-input {
  width: 100%; border: 1px solid var(--pk-line); border-radius: 10px;
  padding: 10px 12px; font-size: 14px; font-family: inherit; outline: none;
  background: #fff; color: var(--pk-ink); transition: border-color .15s;
}
.pk-input:focus { border-color: var(--pk-green); box-shadow: 0 0 0 2px rgba(47,158,95,.12); }
.pk-btn.danger { color: #fff; }
.pk-btn.outline.danger { color: var(--pk-red); border-color: var(--pk-red); }
.pk-btn.outline.danger:hover { background: #fff0ef; }

/* 연락 버튼 인라인 (상품 설명 바로 아래) */
.pk-contact-inline { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 10px; }
.pk-contact-secondary {
  flex: 0 1 auto; width: auto; min-height: 34px; padding: 7px 11px;
  border-radius: 999px; font-size: 12px; font-weight: 700; text-align: center;
}
.pk-contact-secondary--kakao { background: #fff5b8; color: #191919; border-color: #eadc7d; }
.pk-contact-secondary--line { background: #e7f9ed; color: #11823b; border-color: #a9dcb9; }
.pk-contact-secondary:hover { filter: brightness(.98); transform: none; }

/* ===== 인앱 브라우저 안내 팝업 ===== */
.pk-iab-backdrop {
  position: fixed; inset: 0; z-index: 19000;
  background: rgba(20,30,25,.6); backdrop-filter: blur(2px);
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0 0 env(safe-area-inset-bottom, 0);
  animation: pk-iab-bg-in .22s ease;
}
@keyframes pk-iab-bg-in { from { opacity: 0; } to { opacity: 1; } }
.pk-iab-sheet {
  background: #fff; border-radius: 22px 22px 0 0;
  width: 100%; max-width: 560px; padding: 10px 20px 28px;
  box-shadow: 0 -4px 24px rgba(0,0,0,.18);
  animation: pk-iab-sheet-in .28s cubic-bezier(.22,1,.36,1);
}
@keyframes pk-iab-sheet-in {
  from { transform: translateY(100%); opacity: .6; }
  to   { transform: translateY(0);    opacity: 1;  }
}
.pk-iab-handle {
  width: 38px; height: 4px; border-radius: 99px; background: var(--pk-line);
  margin: 0 auto 14px;
}
.pk-iab-icon { font-size: 36px; text-align: center; margin-bottom: 6px; }
.pk-iab-title {
  font-size: 17px; font-weight: 900; color: var(--pk-ink);
  text-align: center; margin: 0 0 6px;
}
.pk-iab-sub {
  font-size: 13px; color: var(--pk-muted); text-align: center;
  line-height: 1.6; margin: 0 0 16px;
}
.pk-iab-steps {
  background: var(--pk-cream); border-radius: 12px;
  padding: 14px 16px; margin-bottom: 18px;
  display: flex; flex-direction: column; gap: 9px;
}
.pk-iab-step {
  display: flex; align-items: flex-start; gap: 10px; font-size: 13px;
}
.pk-iab-step-num {
  flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%;
  background: var(--pk-green); color: #fff;
  font-size: 12px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.pk-iab-step-text { line-height: 1.5; padding-top: 2px; }
.pk-iab-step-text strong { font-weight: 700; color: var(--pk-ink); }
.pk-iab-step-text span  { color: var(--pk-muted); }
.pk-iab-btns { display: flex; flex-direction: column; gap: 9px; }
.pk-iab-btn-chrome {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 14px; border-radius: 12px;
  background: var(--pk-green); color: #fff;
  font-size: 15px; font-weight: 800; border: none; cursor: pointer;
  font-family: inherit; text-decoration: none;
}
.pk-iab-btn-chrome:hover { background: var(--pk-green-dark); }
.pk-iab-btn-copy {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 13px; border-radius: 12px;
  background: #fff; color: var(--pk-green); border: 1.5px solid var(--pk-green);
  font-size: 14px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.pk-iab-btn-copy:hover { background: #f0faf4; }
.pk-iab-dismiss {
  display: block; width: 100%; background: none; border: none;
  color: var(--pk-muted); font-size: 13px; text-align: center;
  padding: 10px 0 2px; cursor: pointer; font-family: inherit;
  text-decoration: underline;
}
.pk-iab-dismiss:hover { color: var(--pk-ink); }
