:root {
  color-scheme: light;
  --ink: #17211d;
  --muted: #68736d;
  --line: #dfe7e2;
  --paper: #ffffff;
  --green: #147a50;
  --green-dark: #0d5d3c;
  --green-soft: #e8f5ee;
  --orange: #ef7a3d;
  --shadow: 0 -18px 50px rgba(26, 52, 40, .18);
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  color: var(--ink);
  background: #e9efeb;
  font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.app-shell { position: relative; height: 100vh; height: 100dvh; overflow: hidden; }
.map-stage {
  position: absolute; inset: 0; overflow: hidden;
  background: #e8eee9;
}
/* 네이버 지도 SDK는 초기화 시 컨테이너에 인라인 position:relative 를 강제로
   넣는다. 그러면 inset:0 만으로 준 높이가 무너져 지도가 0px 로 안 보이므로,
   명시적 width/height:100% 로 부모(.map-stage) 크기를 그대로 채우게 한다. */
.naver-map { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; visibility: hidden; }
.map-stage.map-ready .naver-map { visibility: visible; }

.topbar {
  position: absolute; top: 0; left: 0; right: 0; z-index: 4;
  display: flex; align-items: center; gap: 8px;
  padding: calc(8px + env(safe-area-inset-top)) 12px 6px;
}
.brand-mark {
  flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px;
  color: #fff; background: var(--green); font-size: 16px; box-shadow: 0 4px 12px rgba(20,122,80,.28);
}
.search-stack { position: relative; min-width: 0; flex: 1 1 auto; }
.top-actions { flex: none; display: flex; align-items: center; gap: 6px; }
.round-button, .address-search, .map-caption {
  border: 1px solid rgba(29,58,44,.1); background: rgba(255,255,255,.94); box-shadow: 0 5px 18px rgba(22,40,32,.12);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.round-button { min-height: 30px; padding: 0 10px; border-radius: 10px; color: var(--ink); font-size: 12.5px; font-weight: 700; }
.login-button { min-height: 30px; padding: 0 10px; border: 1px solid rgba(0,0,0,.08); border-radius: 10px; color: #251f12; background: #fee500; font-size: 12px; font-weight: 800; box-shadow: 0 5px 18px rgba(22,40,32,.1); }
.login-button.authenticated { color: var(--green-dark); background: rgba(255,255,255,.94); }
.address-search {
  width: 100%; min-width: 0;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 6px;
  min-height: 32px; padding: 2px 4px 2px 11px; border-radius: 11px;
}
.address-search > span { color: var(--green); font-size: 17px; }
.address-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 14px; }
.address-search button { min-height: 28px; border: 0; border-radius: 9px; padding: 0 12px; color: #fff; background: var(--ink); font-size: 12.5px; font-weight: 700; }
.address-search.locked { opacity: .78; }
.address-search button:disabled { color: #8b948f; background: #e5e9e7; }
.map-hint {
  position: absolute; z-index: 3; top: calc(100% + 7px); left: 0; right: 0;
  margin: 0; padding: 7px 12px; overflow: hidden; border: 1px solid rgba(20,122,80,.18); border-radius: 12px;
  color: #176845; background: rgba(232,245,238,.94); box-shadow: 0 4px 14px rgba(22,70,48,.10);
  font-size: 12.5px; font-weight: 750; line-height: 1.3; text-align: center; word-break: keep-all;
}
.map-hint b { font-size: 14px; font-weight: 800; color: var(--green-dark); }
.map-hint .rp-label { color: #0e7d86; font-weight: 800; }
.map-hint .rp-sel { color: #5c7a6d; font-weight: 700; }
/* 주소 밑 안내와 겹쳐서 지도 좌하단 캡션은 숨긴다. */
.map-caption { display: none; }
/* 첫 화면 중앙 히어로 타이틀 (선택/이동/줌 시 CI 배지와 함께 사라짐) */
.first-title { position: absolute; z-index: 3; top: calc(160px + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); max-width: calc(100% - 32px); text-align: center; pointer-events: none; padding: 15px 26px; border-radius: 20px; background: rgba(255,255,255,.64); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); border: 1px solid rgba(31,55,43,.06); box-shadow: 0 10px 30px rgba(16,40,28,.14); }
.first-title[hidden] { display: none; }
.first-title span { display: block; color: #0d5d3c; font-size: clamp(22px, 5.6vw, 40px); font-weight: 900; letter-spacing: .1em; line-height: 1; white-space: nowrap; }
.first-title small { display: block; margin-top: 9px; color: #3a5d4d; font-size: clamp(12px, 2.5vw, 14px); font-weight: 700; letter-spacing: .01em; }
.map-credit { position: absolute; z-index: 3; right: 14px; bottom: 156px; text-align: right; white-space: nowrap; color: #5f6f66; font-size: 11px; font-weight: 600; letter-spacing: .01em; line-height: 1.4; pointer-events: none; text-shadow: 0 1px 2px rgba(255,255,255,.65); }
.map-credit b { font-weight: 800; color: #405147; letter-spacing: .03em; }
.map-credit .cl-a, .map-credit .cl-b { display: block; }
/* 내 위치 마커(빨간 점) */
.my-location-dot { width: 16px; height: 16px; border-radius: 50%; background: #e5484d; border: 3px solid #fff; box-shadow: 0 0 0 2px rgba(229,72,77,.35), 0 2px 6px rgba(16,24,20,.35); }
/* 첫 화면 회사 CI 배지(신사동 666-11) */
.ci-marker-img { display: block; width: 52px; height: 52px; pointer-events: none; }
/* 주변 사례를 찾는 동안 지도 가운데에서 브랜드가 깃발처럼 펄럭이는 로딩 표시 */
.search-loader { position: absolute; inset: 0; z-index: 7; display: grid; place-items: center; pointer-events: none; }
.search-loader[hidden] { display: none; }
.loader-flag { display: inline-flex; margin-bottom: 24vh; padding: 6px 15px; border-radius: 999px; background: rgba(255,255,255,.68); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(31,55,43,.08); box-shadow: 0 6px 20px rgba(22,40,32,.14); color: #16342a; font-size: 15px; font-weight: 800; letter-spacing: .015em; white-space: nowrap; }
.loader-flag i { display: inline-block; font-style: normal; animation: flag-wave 1.15s ease-in-out infinite; }
@keyframes flag-wave { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-3deg); } 75% { transform: translateY(3px) rotate(3deg); } }
@media (prefers-reduced-motion: reduce) { .loader-flag i { animation: none; } }
.map-tools { position: absolute; z-index: 6; top: calc(60px + env(safe-area-inset-top)); right: 12px; display: flex; flex-direction: column; width: 40px; overflow: hidden; border: 1px solid rgba(29,58,44,.1); border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 5px 18px rgba(22,40,32,.14); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.map-tool { width: 40px; height: 40px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; color: #39463f; cursor: pointer; }
.map-tool + .map-tool { border-top: 1px solid rgba(29,58,44,.1); }
.map-tool svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.map-tool svg .fill { fill: currentColor; stroke: none; }
.map-tool.active { color: #fff; background: var(--green); }
.map-tool:disabled { opacity: .45; cursor: not-allowed; }
.map-stage:not(.map-ready) .map-tools { visibility: hidden; }
.roadview-panel { position: fixed; z-index: 20; inset: calc(54px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom)); display: none; flex-direction: column; overflow: hidden; border: 1px solid rgba(29,58,44,.13); border-radius: 18px; background: #dce5e1; box-shadow: 0 12px 34px rgba(16,38,28,.22); }
.roadview-panel.show { display: flex; }
.roadview-head { display: flex; align-items: center; justify-content: space-between; min-height: 36px; padding: 0 8px 0 12px; color: #315044; background: rgba(255,255,255,.94); font-size: 12px; font-weight: 800; }
.roadview-head button { width: 28px; height: 28px; border: 0; border-radius: 9px; color: #315044; background: #eef4f0; font-size: 20px; line-height: 1; }
.roadview-panorama { min-height: 0; flex: 1; background: #cbd7d1; }
.roadview-mini-wrap { position: absolute; z-index: 2; right: 10px; bottom: 10px; width: min(calc(100% - 20px), clamp(237px, 54vw, 408px)); aspect-ratio: 3 / 2; overflow: hidden; padding-top: 18px; border: 2px solid #fff; border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(19,41,31,.25); }
.roadview-mini-label { position: absolute; z-index: 3; top: 0; left: 0; right: 0; height: 18px; padding: 2px 6px; color: #fff; background: rgba(20,122,80,.92); font-size: 9px; font-weight: 800; line-height: 14px; }
.roadview-mini-map { width: 100%; height: 100%; }
.roadview-mini-marker { display: grid; place-items: center; width: 27px; height: 27px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #747d79; box-shadow: 0 2px 7px rgba(14,30,23,.32); font-size: 10px; font-weight: 900; }
.roadview-mini-marker.case.selected { border-color: #fff; background: var(--green); transform: scale(1.08); }
.roadview-mini-marker.case.focused { border-color: #ffbf3f; box-shadow: 0 0 0 2px rgba(255,255,255,.92), 0 2px 8px rgba(10,92,59,.42); }
.roadview-mini-marker.target { width: 29px; height: 29px; color: #fff; background: var(--orange); }
.roadview-mini-marker.position { border: 0; color: var(--green-dark); background: #fff; box-shadow: 0 2px 9px rgba(10,92,59,.34); font-size: 19px; transform: rotate(var(--heading)); transform-origin: center; cursor: grab; }
.roadview-mini-marker.position:active { cursor: grabbing; }
.map-stage.roadview-mode #naverMap { cursor: crosshair !important; }

.bottom-sheet {
  position: fixed; z-index: 10; left: 50%; bottom: 0; width: min(100%, 700px); height: 150px;
  border: 1px solid rgba(31,55,43,.09); border-bottom: 0; border-radius: 26px 26px 0 0;
  background: var(--paper); box-shadow: var(--shadow); transform: translateX(-50%);
  transition: height .3s cubic-bezier(.2,.75,.2,1);
}
.bottom-sheet.sheet-half { height: min(46dvh, 520px); }
.bottom-sheet.sheet-focus { height: min(43dvh, 390px); }
.bottom-sheet.sheet-full { height: calc(100dvh - 64px - env(safe-area-inset-top)); }
.bottom-sheet.dragging { transition: none; }
.sheet-handle { display: grid; place-items: center; width: 100%; height: 42px; border: 0; background: transparent; touch-action: none; }
.sheet-handle span { width: 44px; height: 5px; border-radius: 9px; background: #ccd5d0; }
.sheet-scroll { height: calc(100% - 34px); overflow: auto; overscroll-behavior: contain; scroll-padding-top: 92px; padding: 2px 20px calc(24px + env(safe-area-inset-bottom)); }
.eyebrow { margin: 0 0 3px; color: var(--green); font-size: 11.5px; font-weight: 800; letter-spacing: .05em; }
h1, h2, h3, p { word-break: keep-all; }
h1, h2 { margin: 0; letter-spacing: -.045em; line-height: 1.25; }
h1 { font-size: clamp(18px, 4.3vw, 21px); }
h2 { font-size: 18px; }
h3 { margin: 0 0 11px; font-size: 16px; }
.product-question { margin: 0 -2px 12px; padding: 12px 14px 11px; border-radius: 15px; color: #fff; background: linear-gradient(135deg, #163e30, #116d49); }
.product-question .eyebrow { color: #9de1bf; margin-bottom: 3px; }
.product-question > p:last-child { margin: 6px 0 0; color: rgba(255,255,255,.78); font-size: 12.5px; line-height: 1.45; }
.selected-heading, .view-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.verified, .data-state { flex: none; padding: 6px 9px; border-radius: 20px; color: var(--green-dark); background: var(--green-soft); font-size: 11px; font-weight: 800; white-space: nowrap; }
.parcel-summary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; overflow: hidden; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.parcel-summary div { min-width: 0; padding: 9px 10px; background: #f8faf9; }
.parcel-summary span, .field > span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; }
.parcel-summary b { display: block; font-size: 13px; line-height: 1.35; }
.zone-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.zone-chips span { padding: 5px 9px; border-radius: 8px; font-size: 12px; font-weight: 700; line-height: 1.2; }
.zone-chips span.zone { color: #1c5bd0; background: #eef4ff; }
.zone-chips span.limit { color: #b4451f; background: #fdeee7; }
.parcel-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.parcel-facts > div { min-width: 0; padding: 7px 10px 8px; background: #f8faf9; }
.parcel-facts > div > span { display: block; margin-bottom: 2px; color: var(--muted); font-size: 11px; }
.parcel-facts > div > b { display: block; min-width: 0; font-size: 13px; font-weight: 750; line-height: 1.3; word-break: keep-all; }
.field-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 9px; }
.field div { position: relative; }
.field input, .field select { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 11px; outline: none; background: #fff; color: var(--ink); font-weight: 750; }
.field input { padding: 0 44px 0 12px; font-size: 18px; }
.field input::placeholder { color: #9aa39e; opacity: 1; font-size: 14px; font-weight: 650; }
.field select { padding: 0 10px; font-size: 14px; }
.field input:focus, .field select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(20,122,80,.1); }
.field em { position: absolute; right: 12px; top: 12px; color: var(--muted); font-size: 13px; font-style: normal; }
.fixed-field strong { display: flex; align-items: center; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8faf9; font-size: 14px; }
.primary, .secondary { width: 100%; min-height: 48px; border-radius: 13px; font-weight: 800; }
.primary { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding: 0 16px; border: 0; color: #fff; background: var(--green); }
.primary > span, .primary > b { position: relative; z-index: 1; }
.primary:hover { background: var(--green-dark); }
.primary:disabled { color: #7f9b8c; background: #e0eee7; cursor: not-allowed; }
.primary.loading:disabled {
  overflow: hidden;
  color: #fff;
  background: linear-gradient(105deg, #0f6847 0%, #168058 34%, #43a67f 50%, #168058 66%, #0f6847 100%);
  background-size: 230% 100%;
  animation: search-wave 2.2s ease-in-out infinite alternate;
}
.primary.loading .search-icon { width: 17px; color: transparent; }
.primary.loading span.message-enter { animation: search-message .28s ease-out; }
@keyframes search-wave { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@keyframes search-message { from { opacity: .25; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .primary.loading:disabled, .primary.loading span.message-enter { animation: none; }
}
.secondary { margin-top: 18px; border: 1px solid var(--line); color: var(--ink); background: #fff; }
.search-state { margin-top: 11px; padding: 13px 14px; border-radius: 14px; color: var(--muted); background: #f2f5f3; font-size: 13px; line-height: 1.5; }
.search-state.loading { color: var(--green-dark); background: var(--green-soft); }
.search-state.error { color: #783d23; background: #fff1e9; }
.search-state b { display: block; margin-bottom: 3px; color: inherit; }
.search-state button { margin-top: 9px; padding: 8px 11px; border: 1px solid currentColor; border-radius: 10px; color: inherit; background: rgba(255,255,255,.7); font-size: 12px; font-weight: 800; }
.back-button { flex: none; width: 38px; height: 38px; margin-right: -2px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; }
.view-heading { justify-content: flex-start; align-items: center; }
.view-heading > div { flex: 1; }
.view-heading > .valuation-actions { flex: none; display: flex; gap: 6px; }
.icon-button { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 12px; color: var(--green-dark); background: #fff; }
.icon-button:active { background: var(--green-soft); }
.memo-button svg,
.share-button svg,
.pdf-button svg { display: block; }
.memo-button.has-memo { color: #fff; border-color: var(--green); background: var(--green); box-shadow: 0 4px 12px rgba(8,118,83,.2); }
.share-button.copied { color: #fff; background: var(--green); border-color: var(--green); }
.pdf-button.loading { color: #fff; border-color: var(--green); background: var(--green); cursor: progress; }
.view-heading h2 { font-size: 15.5px; line-height: 1.3; }
.new-target-btn { flex: none; height: 32px; margin-right: 2px; padding: 0 11px; border: 1px solid var(--line); border-radius: 16px; color: var(--green-dark); background: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; cursor: pointer; }
.new-target-btn:hover { background: var(--green-soft); }
.view-guide { position: relative; margin: 12px 0 0; padding: 11px 13px 11px 34px; border-radius: 12px; color: #3f5047; background: #eff7f2; font-size: 13.5px; line-height: 1.5; }
.view-guide::before { content: "💡"; position: absolute; left: 12px; top: 10px; font-size: 14px; }
.view-guide.guide-warn { padding: 11px 13px 11px 34px; border: 1px solid #ecccac; border-radius: 12px; color: #8a4b1e; background: #fff5ec; font-size: 13px; }
.view-guide.guide-warn::before { content: "⚠️"; }
.view-guide.guide-warn b { color: #7a3f18; }
.view-guide .inline-expand { display: inline-block; margin-top: 8px; padding: 7px 11px; border: 1px solid #e0b48c; border-radius: 9px; color: #8a4b1e; background: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.results-peek-prompt { display: none; align-items: center; gap: 11px; padding: 5px 2px 0; color: var(--ink); }
.bottom-sheet.sheet-peek #resultsView .results-peek-prompt { display: flex; }
.bottom-sheet.sheet-peek #resultsView .results-expanded { display: none; }
.peek-marker { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: #747d79; box-shadow: 0 2px 8px rgba(14,30,23,.22); font-size: 13px; font-weight: 900; }
.results-peek-prompt > div { min-width: 0; flex: 1; }
.results-peek-prompt p, .results-peek-prompt strong, .results-peek-prompt small { display: block; margin: 0; }
.results-peek-prompt p { margin-bottom: 2px; color: var(--green); font-size: 11px; font-weight: 800; }
.results-peek-prompt strong { overflow: hidden; font-size: 16px; line-height: 1.35; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.results-peek-prompt small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.peek-up { flex: none; padding: 0 5px; color: #93a09a; font-size: 20px; }
/* 배지가 오른쪽으로 더 있음을 오른쪽 끝 페이드로 암시(가로 스크롤 힌트). */
.target-context { display: flex; gap: 7px; margin-top: 12px; overflow-x: auto; padding-bottom: 2px; -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
.target-context span { flex: none; padding: 7px 9px; border: 1px solid #dce7e1; border-radius: 10px; color: #3f5047; background: #f7fbf9; font-size: 12px; }
.result-summary { display: flex; gap: 8px; margin: 17px 0 10px; overflow: auto; }
.result-summary span { flex: none; padding: 8px 10px; border-radius: 10px; color: var(--muted); background: #f2f5f3; font-size: 12px; }
.result-summary b { color: var(--green-dark); font-weight: 800; }
.source-warnings { margin: 0 0 10px; padding: 11px 12px; border-radius: 12px; color: #774125; background: #fff3eb; font-size: 12px; line-height: 1.5; }
.selection-bar { display: flex; align-items: center; justify-content: space-between; min-height: 42px; margin-bottom: 8px; font-size: 14px; }
.selection-bar button { border: 0; color: var(--green); background: transparent; font-size: 13px; font-weight: 800; }
.cards { display: grid; gap: 9px; padding-bottom: 56px; }
.empty-cases { padding: 28px 18px; border: 1px dashed #cbd5cf; border-radius: 16px; color: var(--muted); background: #fafcfb; text-align: center; }
.empty-cases b { display: block; margin-bottom: 6px; color: var(--ink); font-size: 15px; }
.empty-cases span { display: block; line-height: 1.55; }
.empty-cases button { margin-top: 16px; padding: 11px 15px; border: 0; border-radius: 12px; color: white; background: var(--green); font-weight: 800; }
.case-card { position: relative; scroll-margin-top: 92px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 16px; background: #fff; transition: .15s ease; }
.case-card.selected { border-color: #6eb696; background: #eaf7f0; box-shadow: 0 0 0 2px rgba(20,122,80,.11); }
.case-card-head { display: grid; grid-template-columns: 20px 25px minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.case-number { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #fff; background: #747d79; font-size: 12px; font-weight: 900; }
/* 결과 상세(비교·계산)의 사례 번호 배지. 지도의 초록 선택 마커와 같은 번호를
   같은 초록 원으로 보여줘 어떤 필지인지 지도에서 바로 찾을 수 있게 한다. */
.case-badge { display: inline-grid; place-items: center; width: 21px; height: 21px; margin-right: 7px; border-radius: 50%; color: #fff; background: var(--green); font-size: 11px; font-weight: 900; vertical-align: middle; }
.case-card.selected .case-number { background: var(--green); }
.case-card input { width: 20px; height: 20px; accent-color: var(--green); }
.case-card label { min-width: 0; cursor: pointer; }
.case-card h3 { margin: 0; overflow: visible; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
.recommendation-badge { display: inline-block; margin-left: 7px; padding: 3px 7px; border-radius: 999px; color: #0f6b47; background: #dff3e9; font-size: 10px; font-weight: 850; line-height: 1.2; vertical-align: 2px; white-space: nowrap; }
.case-distance { color: var(--muted); font-size: 11px; white-space: nowrap; }
.case-card-body { display: block; margin: 8px 0 0 59px; }
.case-deal { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin-bottom: 6px; }
.case-deal b { color: var(--green-dark); font-size: 17px; letter-spacing: -.03em; }
.case-deal span, .case-deal small { color: var(--muted); font-size: 11px; }
.case-building-change { padding: 3px 7px; border-radius: 6px; color: #a64d24; background: #fff0e6; font-size: 10px; font-style: normal; font-weight: 850; line-height: 1.25; white-space: nowrap; }
.case-deal small { margin-left: auto; }
.case-kv { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 3px 7px; color: #53625a; font-size: 11px; line-height: 1.45; }
.case-kv > b { color: #68776f; font-size: 11px; }
.case-kv > span { min-width: 0; overflow-wrap: anywhere; }
.case-tag { display: inline-block; margin-right: 5px; padding: 2px 5px; border-radius: 5px; font-size: 10px; font-style: normal; line-height: 1.25; white-space: nowrap; }
.case-tag.category { color: #28705a; background: #e3f4ec; }
.case-tag.dealing { color: #386baa; background: #e7f0ff; }
.case-map-marker { display: grid; place-items: center; width: 30px; height: 30px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: #747d79; box-shadow: 0 2px 8px rgba(14,30,23,.28); font-size: 12px; font-weight: 900; cursor: pointer; }
.case-map-marker.selected { border-color: #fff; background: var(--green); box-shadow: 0 2px 9px rgba(10,92,59,.38); transform: scale(1.12); }
.case-map-marker.focused { border-color: #ffbf3f; box-shadow: 0 0 0 2px rgba(255,255,255,.92), 0 2px 10px rgba(10,92,59,.45); }
/* 비선택 사례 마커는 더 흐리게, 선택/포커스는 또렷하게 */
.case-map-marker { opacity: .42; }
.case-map-marker.selected, .case-map-marker.focused { opacity: 1; }
.sticky-action { position: absolute; left: 0; right: 0; bottom: 0; padding: 8px 20px calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(transparent, #fff 22%); pointer-events: none; }
/* 저장 버튼 납작하게: 높이·글씨 줄여 선택 사례 카드 한 개가 온전히 보이게 한다. */
.sticky-action .primary { min-height: 42px; margin-top: 0; padding: 0 15px; font-size: 13.5px; }
.sticky-action .primary > b { font-size: 15px; }
.sticky-action .primary { pointer-events: auto; }
.value-card { margin: 20px 0 14px; padding: 21px 20px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #174d39, #0b7c50); }
.value-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.value-card-head p { margin: 0; color: rgba(255,255,255,.78); font-size: 14px; font-weight: 800; }
.value-amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin-top: 8px; }
.value-card strong { font-size: 44px; letter-spacing: -.06em; }
.value-amount span { font-size: 17px; font-weight: 700; }
.value-amount small { align-self: flex-end; margin: 0 0 7px 3px; color: rgba(255,255,255,.78); font-size: 11px; font-weight: 700; line-height: 1.35; white-space: nowrap; }
.comparison { margin: 11px 0 0; padding-top: 11px; border-top: 1px solid rgba(255,255,255,.2); font-size: 13px; }
.subject-basics { margin: 0 0 14px; padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.subject-basics h3 { margin-bottom: 10px; }
.subject-basics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.subject-basics-grid > div { min-width: 0; padding: 9px 10px; background: #f8faf9; }
.subject-basics-grid span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 11px; }
.subject-basics-grid b { display: block; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
.valuation-state { margin: 0 0 14px; padding: 12px 13px; border-radius: 13px; color: #315343; background: #eef8f2; font-size: 13px; line-height: 1.5; }
.valuation-state.warning { color: #774125; background: #fff3eb; }
.valuation-state.error { color: #774125; background: #fff3eb; }
.why { padding: 17px; border: 1px solid var(--line); border-radius: 17px; }
.reason { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; color: var(--muted); font-size: 13px; }
.reason + .reason { border-top: 1px solid #edf1ee; }
.reason b { color: var(--ink); text-align: right; }
.case-calculations { margin-top: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 17px; }
.case-calculation { margin: 0 -8px; padding: 12px 8px; border-radius: 12px; cursor: pointer; transition: background .16s ease, box-shadow .16s ease; }
.case-calculation + .case-calculation { border-top: 1px solid #edf1ee; }
.case-calculation:hover, .case-calculation:focus-visible { outline: 0; background: #f3f8f5; box-shadow: inset 0 0 0 1px #d6e5dd; }
.case-calculation.focused { background: #eaf7f0; box-shadow: inset 0 0 0 2px #75b99b; }
.case-calculation > div { display: flex; justify-content: space-between; gap: 10px; }
.case-calculation > div b { font-size: 14px; }
/* 직계 자식 칩(가중치 등)만 대상으로 한다. > div span 이면 <b> 안에 중첩된
   .case-badge 까지 잡아 배지 글자색이 덮여 숫자가 안 보였다. */
.case-calculation > div > span { color: var(--green-dark); font-size: 12px; font-weight: 800; }
.case-calculation p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.case-adjusted-price { display: inline-block; padding: 2px 6px; border-radius: 7px; color: #fff; background: var(--green); font-size: 12px; line-height: 1.45; white-space: nowrap; }
.case-assessment { margin-top: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 17px; }
.explanation-state { margin: 0 0 12px; padding: 11px 12px; border-radius: 12px; color: var(--muted); background: #f2f5f3; font-size: 13px; line-height: 1.5; }
.explanation-state.error { color: #774125; background: #fff3eb; }
#missingFactors { margin: 0 0 12px; padding: 11px 12px; border: 1px solid #e5ddd6; border-radius: 12px; color: #6f4b36; background: #fffaf6; font-size: 12px; line-height: 1.5; }
#missingFactors p { margin: 0; }
#missingFactors p + p { margin-top: 3px; }
.assessment-item { padding: 13px 0 13px 13px; border-left: 3px solid #aeb9b3; }
.assessment-item + .assessment-item { margin-top: 7px; border-top: 1px solid #edf1ee; }
.assessment-item.similar { border-left-color: var(--green); }
.assessment-item.caution { border-left-color: var(--orange); }
.assessment-item.different { border-left-color: #78857e; }
.assessment-head { display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; align-items: center; width: 100%; gap: 8px; padding: 0; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.assessment-head b { display: flex; align-items: center; min-width: 0; font-size: 14px; line-height: 1.4; white-space: nowrap; }
.assessment-head .case-badge { flex: 0 0 auto; }
.assessment-address { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assessment-address-mobile { display: none; }
.assessment-head > span { justify-self: end; padding: 4px 7px; border-radius: 10px; color: var(--muted); background: #f0f4f2; font-size: 11px; font-weight: 800; line-height: 1.35; text-align: right; white-space: nowrap; }
.assessment-head > i { color: #7d8a83; font-size: 17px; font-style: normal; line-height: 1; text-align: center; transition: transform .16s ease; }
.assessment-item.expanded .assessment-head > i { transform: rotate(180deg); }
.assessment-head > .comparison-badge.good { color: #0f6b47; background: #e7f5ee; }
.assessment-head > .comparison-badge.adjusted { color: #356b54; background: #edf6f1; }
.assessment-head > .comparison-badge.replace { color: #a04431; background: #ffebe5; }
.assessment-head.static { grid-template-columns: minmax(0, 1fr) auto; cursor: default; }
.assessment-item.excluded { opacity: .78; }
.assessment-item.excluded .excluded-reason { margin: 6px 0 2px; color: #a04431; font-size: 13px; line-height: 1.5; }
.assessment-item p { margin: 7px 0 5px; color: #3e4943; font-size: 14px; line-height: 1.55; }
.assessment-item small { color: #7b8580; font-size: 12px; line-height: 1.4; }
.finding-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; width: 100%; margin-top: 10px; }
.finding { min-width: 0; padding: 9px 10px; border-radius: 10px; background: #f6f8f7; }
.finding b { display: block; margin-bottom: 3px; color: var(--ink); font-size: 12px; }
.finding p { margin: 0; font-size: 13px; }
.finding.similar { background: #eef8f2; }
.finding.caution, .finding.superior, .finding.inferior, .finding.different { background: #fff7f1; }
.limit-note { margin-top: 14px; padding: 16px; border-radius: 16px; color: #6f3b22; background: #fff4ed; }
.limit-note b { display: block; margin-bottom: 6px; font-size: 14px; }
.limit-note p { margin: 0; font-size: 13px; line-height: 1.55; }
#valuationView { padding-bottom: 74px; }
.valuation-sticky-action { position: absolute; z-index: 5; left: 0; right: 0; bottom: 0; padding: 8px 20px calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(transparent, #fff 22%); }
.valuation-sticky-action .secondary { margin-top: 0; border-color: #b9ddca; color: #0f6b47; background: #e7f5ee; box-shadow: 0 3px 10px rgba(20,122,80,.10); }
.valuation-sticky-action .secondary:hover, .valuation-sticky-action .secondary:focus-visible { border-color: #82c2a4; background: #d9f0e4; outline: 0; }

.history { position: fixed; z-index: 30; inset: 0; overflow: auto; padding: calc(22px + env(safe-area-inset-top)) 20px calc(94px + env(safe-area-inset-bottom)); background: #f7faf8; }
html.my-entry .app-shell { visibility: hidden; }
html.my-entry .history[hidden] { display: block; }
.history-head { display: flex; align-items: center; justify-content: space-between; max-width: 680px; margin: 0 auto 22px; }
.account-state { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 680px; margin: 0 auto 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.account-state div { min-width: 0; }
.account-state b, .account-state span { display: block; }
.account-state b { margin-bottom: 3px; font-size: 14px; }
.account-state span { color: var(--muted); font-size: 12px; }
.account-state button { flex: none; min-height: 38px; padding: 0 12px; border: 0; border-radius: 11px; color: #251f12; background: #fee500; font-size: 12px; font-weight: 800; }
.account-state button.logout { color: var(--muted); background: #e9eeeb; }
.account-state button.logout.admin-logout { min-height: 30px; padding: 0 9px; border-radius: 9px; font-size: 10.5px; }
.history-list { display: grid; gap: 10px; max-width: 680px; margin: auto; }
.history-item { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.history-item h3 { margin: 0 0 5px; font-size: 15px; }
.history-item p { margin: 0; color: var(--muted); font-size: 12px; }
.history-review { display: block; width: 100%; color: var(--ink); text-align: left; cursor: pointer; }
.history-review:hover, .history-review:focus-visible { border-color: #82c2a4; outline: 0; box-shadow: 0 0 0 3px rgba(20,122,80,.10); }
.history-review small { display: block; margin-bottom: 7px; color: var(--green); font-weight: 800; }
.history-review strong { display: block; margin: 8px 0 4px; color: var(--green-dark); font-size: 21px; }
.history-review span { display: block; margin-top: 12px; color: var(--green); font-size: 12px; font-weight: 800; }
.history-review .history-memo-presence { display: inline-block; width: auto; margin-top: 8px; padding: 4px 8px; border-radius: 999px; color: var(--green-dark); background: #e8f5ef; font-size: 11px; font-weight: 800; line-height: 1.2; }
.history-guide { border-color: #f0d5c7; background: #fff7f2; }
.history-guide .privacy-note { margin: 9px 0 0; padding-top: 8px; border-top: 1px solid rgba(122,63,24,.14); color: #9a7050; font-size: 12px; line-height: 1.5; }
/* 관리자 이력 탭(내 검토 내역 / 사용자 로그) */
.history-tabs { display: flex; gap: 8px; max-width: 680px; margin: 4px auto 12px; }
.history-tab { flex: 1 1 0; min-width: 0; box-sizing: border-box; padding: 9px 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: #fff; font-size: 13px; font-weight: 800; text-align: center; cursor: pointer; }
.history-tab.active { color: #fff; border-color: var(--green); background: var(--green); }
.memo-open { overflow: hidden; }
.memo-modal { position: fixed; z-index: 250; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(13, 28, 21, .48); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.memo-modal[hidden] { display: none; }
.memo-dialog { width: min(100%, 520px); padding: 19px; border-radius: 20px; background: #fff; box-shadow: 0 22px 60px rgba(15, 38, 27, .24); }
.memo-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.memo-dialog-head h2 { font-size: 20px; }
.memo-dialog-head > button { width: 36px; height: 36px; border: 0; border-radius: 11px; color: var(--muted); background: #f0f4f2; font-size: 24px; line-height: 1; }
.memo-dialog > label { display: block; margin: 15px 0 7px; color: #46554e; font-size: 12px; font-weight: 750; }
.memo-dialog textarea { display: block; width: 100%; min-height: 190px; resize: vertical; padding: 12px 13px; border: 1px solid #ccd9d2; border-radius: 13px; outline: 0; color: var(--ink); background: #fbfdfc; font: inherit; font-size: 14px; line-height: 1.55; }
.memo-dialog textarea:focus { border-color: #5eaa87; box-shadow: 0 0 0 3px rgba(8, 118, 83, .1); }
.memo-dialog-meta { display: flex; justify-content: space-between; gap: 12px; min-height: 20px; margin-top: 6px; color: var(--muted); font-size: 11px; }
#memoStatus { color: #9a4a31; text-align: right; }
.memo-dialog-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; margin-top: 10px; }
.memo-dialog-actions button { height: 43px; border: 0; border-radius: 12px; font-size: 13px; font-weight: 850; }
#memoCancelBtn { color: var(--muted); background: #edf2ef; }
#memoSaveBtn { color: #fff; background: var(--green); }
#memoSaveBtn:disabled { opacity: .55; }
.usage-summary { margin: 0 0 10px; color: var(--muted); font-size: 12.5px; }
.usage-summary b { color: var(--green-dark); font-weight: 800; }

@media (max-width: 520px) {
  /* 오른쪽 지도 도구 열을 상단부터 사용한다. 주소와 안내문은 같은 우측선에 맞춘다. */
  .topbar { right: 58px; }
  .map-hint {
    left: 0; right: 0; width: auto; max-width: none;
    padding: 6px 10px;
    white-space: nowrap; text-overflow: ellipsis; word-break: normal;
    text-align: center;
  }
  .sheet-scroll { padding-left: 16px; padding-right: 16px; }
  .field-grid { grid-template-columns: 1.2fr 1fr; }
  .bottom-sheet.sheet-half { height: min(44dvh, 470px); }
  .bottom-sheet.sheet-focus { height: min(43dvh, 380px); }
  .parcel-summary div { padding-left: 8px; padding-right: 8px; }
  .sticky-action { padding-left: 16px; padding-right: 16px; }
  .valuation-sticky-action { padding-left: 16px; padding-right: 16px; }
  .map-tools { top: calc(8px + env(safe-area-inset-top)); right: -48px; }
  .roadview-panel { inset: calc(54px + env(safe-area-inset-top)) 6px calc(6px + env(safe-area-inset-bottom)); }
  .assessment-address-desktop { display: none; }
  .assessment-address-mobile { display: inline; }
}
@media (min-width: 900px) {
  /* 우측 440px 바텀시트와 간격을 예약해 검색·이력·지도 도구가
     시트 뒤로 들어가지 않게 한다. */
  .topbar { right: 474px; }
  /* 로딩 마커(@Boodong_Shin)는 전체 화면 중앙이 아니라, 우측 바텀시트를 제외한
     '보이는 지도 영역'의 중앙에 오도록 우측을 시트 폭만큼 비운다. 데스크톱은
     화면이 넓어 마커도 살짝 키운다(모바일은 그대로). */
  .search-loader { right: 462px; }
  .loader-flag { font-size: 17px; padding: 8px 18px; }
  .search-stack { max-width: 620px; }
  .map-tools { position: static; flex-direction: row; width: auto; height: 36px; border-radius: 11px; }
  .map-tool { width: 36px; height: 36px; }
  .map-tool + .map-tool { border-top: 0; border-left: 1px solid rgba(29,58,44,.1); }
  .map-tool svg { width: 18px; height: 18px; }
  .bottom-sheet { left: auto; right: 22px; bottom: 0; width: 440px; border-bottom: 0; border-radius: 26px 26px 0 0; transform: none; }
  .bottom-sheet.sheet-half { height: min(34dvh, 360px); }
  .bottom-sheet.sheet-focus { height: min(34dvh, 360px); }
  .bottom-sheet.sheet-full { height: calc(100dvh - 44px); }
  .map-caption { bottom: 20px; }
  /* 데스크톱: 안내문 폭을 주소칸(search-stack)에 맞춰 같이 줄이되, 한 줄 텍스트 폭을 최저값으로 두어
     검색칸이 좁아져도 찌그러지지 않게 한다. (right:0=주소칸 추종, min-width:max-content=한 줄 floor) */
  .map-hint { left: 0; right: 0; width: auto; min-width: max-content; max-width: calc(100vw - 500px); }
  /* 데스크톱: 시트가 우측 440px 패널이라 히어로 타이틀을 좌측 '지도 영역' 중앙에 맞춘다(정중앙 아님). */
  .first-title { left: calc(50% - 231px); }
  /* 데스크톱: 시트가 우측 패널이라 크레딧을 좌측 하단으로, 네이버 표기 바로 위에 한 줄로 둔다. */
  .map-credit { left: 22px; right: auto; bottom: 22px; text-align: left; }
  .map-credit .cl-a, .map-credit .cl-b { display: inline; }
  .map-credit .cl-b::before { content: " · "; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.admin-body { min-height: 100%; background: #f1f6f3; }
.admin-shell { width: min(100% - 32px, 860px); margin: 0 auto; padding: 7vh 0 60px; }
.admin-login { width: min(100%, 430px); margin: 0 auto; padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: 0 20px 55px rgba(26,52,40,.14); }
.admin-login .brand-mark { margin-bottom: 18px; }
.admin-login h1, .admin-dashboard h1 { margin: 0 0 8px; font-size: 28px; }
.admin-login > p:not(.eyebrow) { margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.admin-login label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 800; }
.admin-login input { width: 100%; height: 48px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; outline: 0; }
.admin-login input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(20,122,80,.1); }
.admin-state { margin-top: 14px; padding: 11px 12px; border-radius: 11px; color: var(--green-dark); background: var(--green-soft); font-size: 13px; }
.admin-state.error { color: #783d23; background: #fff1e9; }
.admin-dashboard > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.admin-dashboard > header > div:last-child { display: flex; gap: 8px; }
.admin-dashboard header a, .admin-dashboard header button { padding: 10px 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.admin-summary { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.admin-summary b { color: var(--green-dark); font-weight: 800; }
/* 압축 사용 로그: 큰 카드 나열 대신 한 줄 테이블 */
.admin-log-table { width: 100%; border-collapse: collapse; font-size: 13px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }
.admin-log-table td { padding: 8px 12px; border-bottom: 1px solid #eef2f0; vertical-align: middle; }
.admin-log-table tr:last-child td { border-bottom: 0; }
.admin-log-table tr:hover td { background: #f6f9f7; }
.admin-log-table .c-when { width: 104px; white-space: nowrap; color: #6b7a72; font-variant-numeric: tabular-nums; }
.admin-log-table .c-addr { color: var(--ink); font-weight: 650; }
.admin-log-table .c-who { white-space: nowrap; color: #7a8a80; }
.admin-log-table .c-mode { width: 46px; text-align: right; white-space: nowrap; color: #a2ada4; font-weight: 800; }
.admin-log-table .c-mode.live { color: var(--green); }
.admin-log-list { display: grid; gap: 9px; }
.admin-log-list article { padding: 15px 16px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.admin-log-list article > div { display: flex; justify-content: space-between; gap: 12px; }
.admin-log-list b { color: var(--green-dark); font-size: 12px; }
.admin-log-list small, .admin-log-list p { color: var(--muted); font-size: 11px; }
.admin-log-list h2 { margin: 8px 0 5px; font-size: 15px; }
.admin-log-list p { margin: 0; }
.admin-empty { padding: 24px; border: 1px dashed #cbd5cf; border-radius: 15px; color: var(--muted); background: #fff; text-align: center; }
@media (max-width: 520px) {
  .admin-shell { padding-top: 24px; }
  .admin-login { padding: 23px 20px; }
  .admin-dashboard > header { align-items: flex-start; flex-direction: column; }
  .admin-log-table { table-layout: fixed; font-size: 11.5px; }
  .admin-log-table td { padding: 8px 6px; }
  .admin-log-table .c-when { width: 78px; }
  .admin-log-table .c-addr { width: auto; padding-left: 9px; padding-right: 9px; font-size: 12.5px; line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; }
  .admin-log-table .c-who { width: 94px; overflow: hidden; text-overflow: ellipsis; }
  .admin-log-table .c-mode { width: 34px; }
}

/* 결과 화면 라이브 비준가격 카드 (레벨2: 결과 우선 UI) */
/* 비준가격은 지도 위 칩(map-hint)으로 올렸다. 시트 안 가격카드는 숨겨 리스트만 남긴다(스티키 겹침 제거). */
.live-value { display: none; }
.live-eyebrow { margin: 0 0 2px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.live-badge { background: rgba(255,255,255,.18); border-radius: 20px; padding: 1px 7px; font-size: 9.5px; font-weight: 700; letter-spacing: 0; }
.live-amount { display: flex; align-items: baseline; gap: 5px; }
.live-amount strong { font-size: 23px; font-weight: 800; letter-spacing: -.01em; }
.live-amount span { font-size: 12px; opacity: .9; }
/* 가격카드 최소화: 가격 + 아래 안내만 남기고 건물·토지·평당 분해는 숨긴다(상세는 저장 화면에서). */
.live-breakdown { display: none; }
.live-hint { margin: 5px 0 0; padding-top: 5px; border-top: 1px solid rgba(255,255,255,.16); font-size: 11.5px; font-weight: 600; opacity: .95; }
.live-hint b { opacity: 1; font-weight: 800; }

/* 옵션4: 주변 거래 평당가 분포 위 대상지 위치 */
.value-distribution { margin: 14px 0 4px; padding: 14px 14px 12px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.value-distribution h3 { margin: 0 0 10px; font-size: 13px; font-weight: 800; color: var(--ink); }
.value-dist-chart { width: 100%; }
.value-dist-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.value-dist-reading { margin: 10px 2px 0; font-size: 13px; line-height: 1.5; color: var(--ink); }
.value-dist-reading b { color: var(--green-dark); }
.value-dist-note { margin: 6px 2px 0; font-size: 12px; line-height: 1.5; color: var(--muted); }

/* 관리자 실시간 동접 표시 */
.admin-active { display: block; margin-top: 4px; font-size: 12px; font-weight: 800; color: var(--green-dark); }
.admin-active .dot { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: #22c55e; vertical-align: middle; box-shadow: 0 0 0 3px rgba(34,197,94,.18); }
.admin-today { display: block; margin-top: 3px; font-size: 12px; font-weight: 700; color: var(--muted); }
#adminVisitors { margin-top: 7px; color: var(--green-dark); font-weight: 800; }

/* 통계 화면 진입: 기존 지도·비준가격 UI에는 영향 없이 상단 동작만 추가한다. */
.stats-button { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 34px; padding: 0 10px; border: 1px solid rgba(18,74,51,.13); border-radius: 11px; color: var(--green-dark); background: rgba(255,255,255,.92); box-shadow: 0 3px 10px rgba(16,48,34,.08); font-size: 12px; font-weight: 800; text-decoration: none; }
