.blc-community {
  --blc-ink: #201f1b;
  --blc-muted: #716f66;
  --blc-line: #e8e4d9;
  --blc-paper: #fffdf7;
  --blc-yellow: #ffd747;
  --blc-yellow-soft: #fff5c5;
  --blc-green: #2a9876;
  --blc-coral: #ef7d63;
  width: 100%;
  max-width: 1180px;
  margin: 36px auto 88px;
  color: var(--blc-ink);
  font-family: inherit;
}

.blc-community *, .blc-community *::before, .blc-community *::after { box-sizing: border-box; }
.blc-community button, .blc-community input, .blc-community select { font: inherit; }
.blc-community button { color: inherit; }
.blc-community svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.blc-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  padding: 34px 38px;
  border: 1px solid #f0df8d;
  border-radius: 24px;
  background: linear-gradient(115deg, #fff9df 0%, #fff4bd 72%, #ffe789 100%);
}

.blc-kicker, .blc-place-panel header span, .blc-chat-head span {
  margin: 0 0 8px;
  color: #9d7200;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
}

.blc-intro h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); line-height: 1.16; letter-spacing: -.045em; }
.blc-intro > div > p:last-child { max-width: 680px; margin: 18px 0 0; color: #5d594c; font-size: 16px; line-height: 1.75; }
.blc-privacy-note { flex: 0 0 260px; padding: 18px 20px; border: 1px solid rgba(125, 96, 7, .18); border-radius: 16px; background: rgba(255, 255, 255, .72); }
.blc-privacy-note strong, .blc-privacy-note span { display: block; }
.blc-privacy-note strong { margin-bottom: 5px; font-size: 14px; }
.blc-privacy-note span { color: var(--blc-muted); font-size: 12px; line-height: 1.55; }

.blc-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 18px; }
.blc-place-search { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; min-height: 58px; padding-left: 18px; border: 1px solid var(--blc-line); border-radius: 16px; background: #fff; }
.blc-place-search svg, .blc-location-button svg { width: 22px; height: 22px; }
.blc-place-search input { min-width: 0; height: 56px; border: 0; outline: 0; background: transparent; color: var(--blc-ink); font-size: 15px; }
.blc-place-search input::placeholder { color: #9d9a90; }
.blc-place-search button, .blc-location-button { min-height: 48px; border: 0; border-radius: 12px; font-weight: 800; cursor: pointer; }
.blc-place-search button { margin-right: 5px; padding: 0 24px; background: var(--blc-ink); color: #fff; }
.blc-location-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 20px; border: 1px solid #d9d5c9; background: #fff; }
.blc-place-search button:hover, .blc-location-button:hover { transform: translateY(-1px); }

.blc-categories { display: flex; gap: 8px; margin: 14px 0 16px; padding: 2px 0; overflow-x: auto; scrollbar-width: none; }
.blc-categories::-webkit-scrollbar { display: none; }
.blc-categories button { flex: 0 0 auto; min-height: 38px; padding: 0 16px; border: 1px solid var(--blc-line); border-radius: 999px; background: #fff; color: #605e56; font-size: 13px; font-weight: 700; cursor: pointer; }
.blc-categories button.is-active { border-color: var(--blc-ink); background: var(--blc-ink); color: #fff; }

.blc-workspace { position: relative; display: grid; grid-template-columns: 300px minmax(320px, 1fr) 320px; grid-template-rows: minmax(0, 1fr); min-height: 680px; overflow: hidden; border: 1px solid var(--blc-line); border-radius: 22px; background: #fff; box-shadow: 0 18px 48px rgba(48, 43, 26, .08); }
.blc-place-panel, .blc-chat-panel { position: relative; z-index: 2; display: flex; min-width: 0; min-height: 0; overflow: hidden; flex-direction: column; background: #fff; }
.blc-place-panel { border-right: 1px solid var(--blc-line); }
.blc-chat-panel { border-left: 1px solid var(--blc-line); }
.blc-place-panel > header, .blc-chat-head { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--blc-line); }
.blc-place-panel h2, .blc-chat-head h2 { margin: 0; font-size: 19px; letter-spacing: -.025em; }
.blc-place-panel header span, .blc-chat-head span { display: block; margin-bottom: 3px; font-size: 10px; }
[data-blc-close-panel] { display: none; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f4f2ec; font-size: 24px; line-height: 1; cursor: pointer; }
.blc-panel-status { min-height: 42px; margin: 0; padding: 12px 18px; border-bottom: 1px solid #f0eee8; color: var(--blc-muted); font-size: 12px; line-height: 1.45; }
.blc-place-list { flex: 1; min-height: 0; overflow-y: auto; }
.blc-place-card { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 13px; width: 100%; padding: 16px 17px; border: 0; border-bottom: 1px solid #f0eee8; background: #fff; text-align: left; cursor: pointer; }
.blc-place-card:hover, .blc-place-card.is-active { background: #fffaf0; }
.blc-place-thumb { display: grid; width: 64px; height: 64px; place-items: center; overflow: hidden; border-radius: 14px; background: var(--blc-yellow-soft); color: #9a7204; font-size: 23px; font-weight: 800; }
.blc-place-thumb img { width: 100%; height: 100%; object-fit: cover; }
.blc-place-copy { min-width: 0; }
.blc-place-copy h3 { margin: 0 0 5px; overflow: hidden; font-size: 14px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.blc-place-copy p { margin: 0; overflow: hidden; color: var(--blc-muted); font-size: 12px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.blc-place-meta { display: flex; align-items: center; gap: 7px; margin-top: 9px; color: #77746a; font-size: 11px; }
.blc-place-meta b { padding: 3px 6px; border-radius: 6px; background: #f3f8f5; color: var(--blc-green); font-weight: 700; }
.blc-empty { display: grid; min-height: 250px; place-items: center; padding: 36px 22px; color: var(--blc-muted); text-align: center; font-size: 13px; line-height: 1.7; }

.blc-map-panel { position: relative; z-index: 1; width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: hidden; background: #eef2ed; }
.blc-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.blc-map-status { position: absolute; top: 14px; left: 50%; z-index: 600; max-width: calc(100% - 30px); padding: 9px 13px; border: 1px solid rgba(32,31,27,.12); border-radius: 999px; background: rgba(255,255,255,.94); box-shadow: 0 5px 18px rgba(31,34,27,.1); font-size: 12px; transform: translateX(-50%); transition: opacity .2s; }
.blc-map-status:empty { opacity: 0; pointer-events: none; }
.blc-popup strong, .blc-popup span { display: block; }
.blc-popup strong { margin-bottom: 4px; font-size: 13px; }
.blc-popup span { color: var(--blc-muted); font-size: 11px; }
.blc-mobile-switcher { display: none; }
.blc-map-controls { position: absolute; z-index: 710; top: 16px; right: 16px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.blc-map-zoom-controls { display: grid; overflow: hidden; border: 1px solid rgba(32,31,27,.12); border-radius: 13px; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(31,34,27,.14); backdrop-filter: blur(10px); }
.blc-map-controls button { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; border: 0; background: rgba(255,255,255,.96); color: var(--blc-ink); cursor: pointer; transition: background-color .16s ease, color .16s ease, transform .16s ease; }
.blc-map-controls button:hover { background: var(--blc-yellow-soft); color: #765800; }
.blc-map-controls button:focus-visible { position: relative; z-index: 2; outline: 3px solid rgba(255,215,71,.55); outline-offset: -3px; }
.blc-map-zoom-controls button + button { border-top: 1px solid var(--blc-line); }
.blc-map-controls svg { width: 20px; height: 20px; }
.blc-map-location-button { border: 1px solid rgba(32,31,27,.12) !important; border-radius: 12px; box-shadow: 0 8px 24px rgba(31,34,27,.14); backdrop-filter: blur(10px); }
.blc-map-location-button:disabled { opacity: .58; cursor: wait; }
.blc-map-fullscreen-button { gap: 7px; padding: 0 12px; border: 1px solid rgba(32,31,27,.12) !important; border-radius: 12px; box-shadow: 0 8px 24px rgba(31,34,27,.14); backdrop-filter: blur(10px); }
.blc-map-fullscreen-button span { font-size: 11px; font-weight: 800; white-space: nowrap; }
.blc-map-collapse-icon { display: none; }
.blc-map-fullscreen-button[aria-pressed="true"] .blc-map-expand-icon { display: none; }
.blc-map-fullscreen-button[aria-pressed="true"] .blc-map-collapse-icon { display: block; }
.blc-map-panel.is-map-fullscreen, .blc-map-panel.is-fallback-fullscreen { position: fixed !important; z-index: 100050 !important; inset: 0 !important; width: 100vw !important; height: 100dvh !important; min-height: 100dvh !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: #eef2ed; }
body.blc-map-fullscreen-active { overflow: hidden !important; }
.blc-map-panel.is-map-fullscreen .blc-map-controls, .blc-map-panel.is-fallback-fullscreen .blc-map-controls { top: 20px; right: 20px; }

.blc-chat-head i { width: 9px; height: 9px; margin-left: auto; border-radius: 50%; background: #35b37d; box-shadow: 0 0 0 5px #e5f6ef; }
.blc-chat-channels { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 12px 14px 0; padding: 4px; border-radius: 12px; background: #f4f2ec; }
.blc-chat-channels button { min-height: 36px; border: 0; border-radius: 9px; background: transparent; color: #747168; font-size: 12px; font-weight: 800; cursor: pointer; }
.blc-chat-channels button.is-active { background: #fff; color: var(--blc-ink); box-shadow: 0 2px 8px rgba(38,35,25,.07); }
.blc-region-select { display: none; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 14px 0; color: var(--blc-muted); font-size: 11px; }
.blc-chat-panel.is-region .blc-region-select { display: flex; }
.blc-region-select select { max-width: 130px; min-height: 34px; padding: 0 28px 0 10px; border: 1px solid var(--blc-line); border-radius: 9px; background: #fff; color: var(--blc-ink); }
.blc-chat-messages { flex: 1; min-height: 0; padding: 16px 14px; overflow-y: auto; background: #fffdf8; }
.blc-message { display: flex; align-items: flex-end; gap: 8px; margin: 0 0 14px; }
.blc-message-avatar { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--blc-yellow-soft); color: #876500; font-size: 12px; font-weight: 900; }
.blc-message-body { max-width: calc(100% - 40px); }
.blc-message-info { display: flex; align-items: center; gap: 6px; margin: 0 0 4px 2px; color: #8b887e; font-size: 10px; }
.blc-message-info strong { color: #5f5c53; font-size: 11px; }
.blc-message-bubble { display: inline-block; padding: 9px 11px; border: 1px solid #ebe7db; border-radius: 4px 13px 13px 13px; background: #fff; color: #403e37; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.blc-message.is-mine { flex-direction: row-reverse; }
.blc-message.is-mine .blc-message-avatar { background: #ddf3eb; color: var(--blc-green); }
.blc-message.is-mine .blc-message-body { text-align: right; }
.blc-message.is-mine .blc-message-info { justify-content: flex-end; }
.blc-message.is-mine .blc-message-bubble { border-color: #f1d35d; border-radius: 13px 4px 13px 13px; background: #fff2aa; text-align: left; }
.blc-chat-empty { padding: 60px 12px; color: #88857b; text-align: center; font-size: 12px; line-height: 1.7; }
.blc-chat-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; padding: 12px; border-top: 1px solid var(--blc-line); background: #fff; }
.blc-chat-form textarea { min-height: 44px; max-height: 94px; padding: 11px 12px; resize: none; border: 1px solid var(--blc-line); border-radius: 11px; outline: none; color: var(--blc-ink); font-size: 12px; line-height: 1.5; }
.blc-chat-form textarea:focus { border-color: #d7b629; box-shadow: 0 0 0 3px rgba(255,215,71,.2); }
.blc-chat-form button { align-self: end; min-width: 58px; height: 44px; border: 0; border-radius: 11px; background: var(--blc-ink); color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.blc-chat-form button:disabled { opacity: .55; cursor: wait; }
.blc-chat-login { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; border-top: 1px solid var(--blc-line); background: #fff; color: var(--blc-muted); font-size: 11px; line-height: 1.5; }
.blc-chat-login a { flex: 0 0 auto; color: var(--blc-ink); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.blc-chat-rule { margin: 0; padding: 8px 14px 11px; background: #fff; color: #99958a; font-size: 10px; line-height: 1.5; }
.blc-mobile-backdrop { display: none; }

@media (max-width: 1120px) {
  .blc-community { padding: 0 18px; }
  .blc-workspace { grid-template-columns: 280px minmax(330px, 1fr); }
  .blc-chat-panel { grid-column: 1 / -1; min-height: 480px; border-top: 1px solid var(--blc-line); border-left: 0; }
}

@media (max-width: 820px) {
  .blc-community { width: 100%; margin-top: 22px; padding: 0 14px; }
  .blc-intro { display: block; padding: 26px 22px; border-radius: 20px; }
  .blc-intro h1 { font-size: 32px; }
  .blc-intro > div > p:last-child { margin-top: 12px; font-size: 14px; }
  .blc-privacy-note { margin-top: 18px; padding: 13px 15px; }
  .blc-toolbar { grid-template-columns: 1fr 52px; }
  .blc-location-button { width: 52px; padding: 0; }
  .blc-location-button span { display: none; }
  .blc-place-search { grid-template-columns: 25px minmax(0, 1fr) auto; min-height: 54px; padding-left: 13px; }
  .blc-place-search input { height: 52px; font-size: 14px; }
  .blc-place-search button { padding: 0 17px; }
  .blc-categories { margin-bottom: 12px; }
  .blc-workspace { display: block; min-height: 640px; border-radius: 18px; }
  .blc-map-panel { position: absolute; inset: 0; }
  .blc-place-panel, .blc-chat-panel { position: absolute; z-index: 800; top: 10px; right: 10px; bottom: 10px; left: 10px; display: none; overflow: hidden; border: 1px solid var(--blc-line); border-radius: 16px; box-shadow: 0 18px 48px rgba(29,27,20,.2); }
  .blc-community[data-panel="places"] .blc-place-panel, .blc-community[data-panel="chat"] .blc-chat-panel { display: flex; }
  [data-blc-close-panel] { display: grid; place-items: center; }
  .blc-chat-panel { min-height: 0; border-top: 1px solid var(--blc-line); }
  .blc-mobile-switcher { position: absolute; right: 12px; bottom: 18px; left: 12px; z-index: 700; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 7px; border: 1px solid rgba(32,31,27,.12); border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: 0 10px 30px rgba(28,26,20,.16); backdrop-filter: blur(10px); }
  .blc-mobile-switcher button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; border: 0; border-radius: 11px; background: var(--blc-ink); color: #fff; font-size: 12px; font-weight: 800; }
  .blc-mobile-switcher button:last-child { background: var(--blc-yellow); color: var(--blc-ink); }
  .blc-mobile-switcher svg { width: 18px; height: 18px; }
  .blc-map-controls { top: 12px; right: 12px; gap: 7px; }
  .blc-map-controls button { min-width: 40px; height: 40px; }
  .blc-map-fullscreen-button { padding: 0 10px; }
  .blc-map-fullscreen-button span { font-size: 10px; }
}

@media (max-width: 480px) {
  .blc-community { margin-bottom: 56px; padding: 0 10px; }
  .blc-intro { padding: 23px 18px; }
  .blc-intro h1 { font-size: 28px; }
  .blc-kicker { font-size: 10px; }
  .blc-workspace { min-height: 600px; }
  .blc-place-search button { padding: 0 13px; font-size: 13px; }
  .blc-categories button { min-height: 36px; padding: 0 14px; font-size: 12px; }
}

/* 1.1.0 · 화면을 채우는 지도 작업공간과 접이식 사이드 패널 */
.blc-community {
  position: relative;
  left: 50%;
  width: calc(100vw - 32px);
  max-width: none;
  margin: 18px 0 42px;
  transform: translateX(-50%);
}

.blc-intro {
  align-items: center;
  gap: 28px;
  padding: 19px 24px;
  border-radius: 18px;
}
.blc-intro h1 { font-size: 29px; line-height: 1.18; }
.blc-intro > div > p:last-child { max-width: 760px; margin-top: 8px; font-size: 13px; line-height: 1.55; }
.blc-kicker { margin-bottom: 5px; font-size: 10px; }
.blc-privacy-note { flex-basis: 290px; padding: 13px 15px; border-radius: 13px; }
.blc-privacy-note strong { font-size: 12px; }
.blc-privacy-note span { font-size: 10px; }

.blc-toolbar { grid-template-columns: minmax(0, 1fr) auto auto; margin-top: 12px; }
.blc-panel-controls { display: flex; gap: 6px; padding: 4px; border: 1px solid var(--blc-line); border-radius: 14px; background: #fff; }
.blc-panel-controls button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 14px; border: 0; border-radius: 10px; background: #f4f2ec; color: #6c6960; font-size: 12px; font-weight: 800; cursor: pointer; }
.blc-panel-controls button.is-active { background: var(--blc-ink); color: #fff; }
.blc-panel-controls svg { width: 18px; height: 18px; }

.blc-categories { margin: 10px 0 12px; }
.blc-workspace {
  height: calc(100dvh - 305px);
  min-height: 620px;
  max-height: 920px;
  grid-template-columns: 320px minmax(0, 1fr) 340px;
  border-radius: 18px;
}
.blc-community[data-places-open="false"] .blc-place-panel,
.blc-community[data-chat-open="false"] .blc-chat-panel { display: none; }
.blc-community[data-places-open="false"][data-chat-open="true"] .blc-workspace { grid-template-columns: minmax(0, 1fr) 340px; }
.blc-community[data-places-open="true"][data-chat-open="false"] .blc-workspace { grid-template-columns: 320px minmax(0, 1fr); }
.blc-community[data-places-open="false"][data-chat-open="false"] .blc-workspace { grid-template-columns: minmax(0, 1fr); }
.blc-place-panel > header, .blc-chat-head { min-height: 72px; padding: 13px 16px; }
.blc-place-panel h2, .blc-chat-head h2 { font-size: 17px; }
[data-blc-close-panel] { display: grid; flex: 0 0 auto; place-items: center; }

@media (max-width: 1120px) and (min-width: 821px) {
  .blc-community { padding: 0; }
  .blc-workspace { grid-template-columns: 260px minmax(0, 1fr) 290px; }
  .blc-chat-panel { grid-column: auto; min-height: 0; border-top: 0; border-left: 1px solid var(--blc-line); }
  .blc-community[data-places-open="false"][data-chat-open="true"] .blc-workspace { grid-template-columns: minmax(0, 1fr) 290px; }
  .blc-community[data-places-open="true"][data-chat-open="false"] .blc-workspace { grid-template-columns: 260px minmax(0, 1fr); }
  .blc-community[data-places-open="false"][data-chat-open="false"] .blc-workspace { grid-template-columns: minmax(0, 1fr); }
  .blc-panel-controls button span { display: none; }
  .blc-panel-controls button { width: 46px; padding: 0; }
}

@media (max-width: 820px) {
  .blc-community {
    left: 50%;
    width: 100vw;
    margin-top: 8px;
    padding: 0 9px;
    transform: translateX(-50%);
  }
  .blc-intro { padding: 18px; border-radius: 16px; }
  .blc-intro h1 { font-size: 25px; }
  .blc-intro > div > p:last-child { font-size: 12px; }
  .blc-panel-controls { display: none; }
  .blc-toolbar { grid-template-columns: minmax(0, 1fr) 52px; }
  .blc-workspace { height: calc(100dvh - 150px); min-height: 600px; max-height: none; grid-template-columns: 1fr; }
  .blc-community[data-panel="places"] .blc-place-panel,
  .blc-community[data-panel="chat"] .blc-chat-panel { display: flex !important; }
}

@media (max-width: 480px) {
  .blc-community { margin-bottom: 34px; padding: 0 7px; }
  .blc-intro { padding: 16px; }
  .blc-intro h1 { font-size: 23px; }
  .blc-privacy-note { margin-top: 12px; }
  .blc-workspace { min-height: 620px; border-radius: 15px; }
}

/* 1.2.0: global floating chat + map focused workspace */
.blc-community[data-chat-open="false"] .blc-workspace { grid-template-columns: 320px minmax(0, 1fr); }
.blc-community[data-places-open="false"][data-chat-open="false"] .blc-workspace { grid-template-columns: minmax(0, 1fr); }
.blc-floating-chat { --blc-float-ink:#211f19; --blc-float-yellow:#ffd447; --blc-float-line:#e9e4d8; --blc-float-muted:#777267; position:fixed; z-index:99990; right:24px; bottom:24px; font-family:inherit; }
.blc-floating-chat *, .blc-floating-chat *::before, .blc-floating-chat *::after { box-sizing:border-box; }
.blc-floating-chat button, .blc-floating-chat textarea, .blc-floating-chat select { font:inherit; }
.blc-floating-chat svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.blc-float-panel { position:absolute; right:0; bottom:76px; display:flex; width:min(380px,calc(100vw - 32px)); height:min(620px,calc(100dvh - 128px)); min-height:470px; flex-direction:column; overflow:hidden; border:1px solid rgba(28,26,20,.1); border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(35,31,20,.22),0 4px 16px rgba(35,31,20,.08); opacity:0; visibility:hidden; transform:translateY(18px) scale(.96); transform-origin:right bottom; transition:opacity .2s ease,transform .24s cubic-bezier(.22,.8,.25,1),visibility .2s; }
.blc-floating-chat[data-open="true"] .blc-float-panel { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.blc-float-head { display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border-bottom:1px solid var(--blc-float-line); background:#fff9df; }
.blc-float-title { display:flex; min-width:0; align-items:center; gap:11px; }
.blc-live-dot { flex:0 0 auto; width:10px; height:10px; border-radius:50%; background:#2fb578; box-shadow:0 0 0 5px rgba(47,181,120,.13); }
.blc-float-title small { display:block; margin-bottom:2px; color:#a87c00; font-size:10px; font-weight:900; letter-spacing:.12em; }
.blc-float-title h2 { margin:0; color:var(--blc-float-ink); font-size:18px; line-height:1.25; letter-spacing:-.03em; }
.blc-float-close { display:grid; width:36px; height:36px; flex:0 0 auto; place-items:center; border:1px solid rgba(33,31,25,.08); border-radius:50%; background:#fff; color:var(--blc-float-ink); cursor:pointer; }
.blc-float-close span { margin-top:-4px; font-size:25px; line-height:1; }
.blc-float-channels { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin:12px 14px 0; padding:4px; border-radius:13px; background:#f3f1eb; }
.blc-float-channels button { min-height:38px; border:0; border-radius:10px; background:transparent; color:var(--blc-float-muted); font-size:12px; font-weight:800; cursor:pointer; }
.blc-float-channels button.is-active { background:#fff; color:var(--blc-float-ink); box-shadow:0 2px 10px rgba(38,35,25,.08); }
.blc-float-region { display:none; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px 0; color:var(--blc-float-muted); font-size:11px; font-weight:800; }
.blc-float-region select { min-width:122px; height:34px; padding:0 30px 0 10px; border:1px solid var(--blc-float-line); border-radius:9px; background:#fff; color:var(--blc-float-ink); }
.blc-floating-chat[data-mode="region"] .blc-float-region { display:flex; }
.blc-float-messages { flex:1; min-height:0; padding:16px 14px; overflow-y:auto; overscroll-behavior:contain; background:#fffdf8; }
.blc-float-empty { margin:0; padding:76px 16px; color:#918d83; text-align:center; font-size:12px; line-height:1.7; }
.blc-float-message { display:flex; gap:8px; margin-bottom:14px; }
.blc-float-message.is-mine { flex-direction:row-reverse; }
.blc-float-avatar { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:50%; background:#fff0a8; color:#8a6700; font-size:11px; font-weight:900; }
.blc-float-avatar img { display:block; width:100%; height:100%; border-radius:inherit; object-fit:cover; }
.blc-float-body { max-width:calc(100% - 44px); }
.blc-float-info { display:flex; gap:7px; align-items:center; margin:0 0 4px; color:#9b978d; font-size:10px; }
.blc-float-message.is-mine .blc-float-info { justify-content:flex-end; }
.blc-float-info strong { color:#625e55; font-size:11px; }
.blc-float-bubble { padding:9px 11px; border-radius:4px 13px 13px 13px; background:#f1eee7; color:var(--blc-float-ink); font-size:12px; line-height:1.55; word-break:break-word; }
.blc-float-message.is-mine .blc-float-bubble { border-radius:13px 4px 13px 13px; background:#ffe073; }
.blc-float-form { display:grid; grid-template-columns:minmax(0,1fr) 48px; gap:8px; padding:12px; border-top:1px solid var(--blc-float-line); background:#fff; }
.blc-float-form textarea { min-height:46px; max-height:92px; padding:11px 12px; resize:none; border:1px solid var(--blc-float-line); border-radius:12px; outline:none; color:var(--blc-float-ink); font-size:12px; line-height:1.5; }
.blc-float-form textarea:focus { border-color:#e3bd24; box-shadow:0 0 0 3px rgba(255,212,71,.22); }
.blc-float-form button { display:grid; width:48px; height:46px; place-items:center; border:0; border-radius:12px; background:var(--blc-float-yellow); color:var(--blc-float-ink); cursor:pointer; }
.blc-float-form button svg { width:20px; height:20px; }
.blc-float-form button:disabled { opacity:.55; cursor:wait; }
.blc-float-login { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px; border-top:1px solid var(--blc-float-line); background:#fff; color:var(--blc-float-muted); font-size:11px; line-height:1.45; }
.blc-float-login a { flex:0 0 auto; color:var(--blc-float-ink); font-weight:900; text-underline-offset:3px; }
.blc-float-rule { margin:0; padding:8px 14px 11px; background:#fff; color:#9c988f; font-size:10px; line-height:1.45; }
.blc-float-launcher { position:relative; display:flex; min-width:68px; height:60px; align-items:center; justify-content:center; gap:7px; padding:0 17px; border:0; border-radius:20px; background:var(--blc-float-yellow); color:var(--blc-float-ink); box-shadow:0 14px 34px rgba(150,112,0,.25); font-weight:900; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
.blc-float-launcher:hover { transform:translateY(-2px); box-shadow:0 17px 40px rgba(150,112,0,.3); }
.blc-float-launcher svg { width:25px; height:25px; }
.blc-float-launcher span { font-size:13px; }
.blc-float-launcher b { position:absolute; top:-6px; right:-5px; display:grid; min-width:22px; height:22px; place-items:center; padding:0 6px; border:2px solid #fff; border-radius:12px; background:#ff6c58; color:#fff; font-size:10px; }
.blc-float-launcher b[hidden] { display:none !important; }
.blc-floating-chat[data-open="true"] .blc-float-launcher { opacity:0; pointer-events:none; transform:scale(.86); }
@media (max-width:1120px) and (min-width:821px) { .blc-community[data-chat-open="false"] .blc-workspace { grid-template-columns:260px minmax(0,1fr); } }
@media (max-width:820px) {
  .blc-community[data-chat-open="false"] .blc-workspace { grid-template-columns:minmax(0,1fr); }
  .blc-mobile-switcher { grid-template-columns:1fr; }
  .blc-floating-chat { right:14px; bottom:16px; }
  .blc-float-panel { position:fixed; right:10px; bottom:10px; width:calc(100vw - 20px); height:min(680px,calc(100dvh - 20px)); min-height:0; border-radius:22px; }
  .blc-float-launcher { width:58px; min-width:58px; height:58px; padding:0; border-radius:50%; }
  .blc-float-launcher span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
}
@media (prefers-reduced-motion:reduce) { .blc-float-panel,.blc-float-launcher { transition:none; } }

/* 1.5.0 · full-height place explorer with dedicated detail panel */
body .blc-community {
  left:50%;
  width:100vw;
  max-width:none;
  height:calc(100dvh - 96px);
  min-height:700px;
  margin:0;
  padding:0;
  transform:translateX(-50%);
  background:#fff;
}
body .blc-workspace,
body .blc-community[data-chat-open="false"] .blc-workspace,
body .blc-community[data-places-open="true"][data-chat-open="false"] .blc-workspace {
  display:grid;
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
  grid-template-columns:380px 0 minmax(0,1fr) !important;
  overflow:hidden;
  border:0;
  border-top:1px solid var(--blc-line);
  border-radius:0;
  box-shadow:none;
  transition:grid-template-columns .24s ease;
}
body .blc-community[data-detail-open="true"] .blc-workspace,
body .blc-community[data-detail-open="true"][data-chat-open="false"] .blc-workspace {
  grid-template-columns:380px 430px minmax(320px,1fr) !important;
}
body .blc-place-panel {
  position:relative;
  z-index:4;
  display:flex !important;
  min-width:0;
  min-height:0;
  margin:0;
  overflow:hidden;
  border:0;
  border-right:1px solid var(--blc-line);
  border-radius:0;
  background:#fff;
  box-shadow:8px 0 28px rgba(35,32,22,.04);
}
.blc-sidebar-tools { flex:0 0 auto; padding:22px 18px 14px; border-bottom:1px solid var(--blc-line); background:#fff; }
.blc-place-title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:15px; }
.blc-place-title .blc-kicker { margin:0 0 3px; color:#b27e00; font-size:9px; letter-spacing:.13em; }
.blc-place-title h1 { margin:0; color:var(--blc-ink); font-size:27px; line-height:1.12; letter-spacing:-.045em; }
.blc-place-title .blc-location-button { width:44px; height:44px; min-height:44px; padding:0; border-radius:13px; background:#fff8dc; color:#9a6d00; }
.blc-place-title .blc-location-button svg { width:19px; height:19px; }
body .blc-place-search { display:grid; min-height:50px; grid-template-columns:minmax(0,1fr) 48px; padding:0; overflow:hidden; border:1px solid #dedbd2; border-radius:13px; background:#f8f7f3; }
body .blc-place-search input { width:100%; height:48px; min-height:0; padding:0 14px; border:0; background:transparent; color:var(--blc-ink); font-size:14px; }
body .blc-place-search button { display:grid; width:48px; height:48px; min-height:48px; margin:0; padding:0; place-items:center; border:0; border-radius:0; background:var(--blc-yellow); color:#2b2411; }
body .blc-place-search button svg { width:21px; height:21px; }
body .blc-categories { display:flex; gap:7px; margin:13px -2px 0; padding:2px; overflow-x:auto; }
body .blc-categories button { min-height:34px; padding:0 12px; border:1px solid #ece8df; border-radius:999px; background:#fff; color:#68655d; font-size:11px; font-weight:800; white-space:nowrap; }
body .blc-categories button.is-active { border-color:#f2c12c; background:#ffdc55; color:#4c3900; }
body .blc-place-panel > header { min-height:58px; padding:11px 18px 9px; border-bottom:0; }
body .blc-place-panel > header h2 { font-size:17px; }
body .blc-place-panel > header span { margin-bottom:2px; color:#b5b0a5; font-size:8px; }
body .blc-place-panel > header [data-blc-close-panel] { display:none; }
body .blc-panel-status { min-height:36px; padding:4px 18px 10px; border-bottom:1px solid #f0eee8; color:#747169; font-size:11px; }
body .blc-place-list { display:block; flex:1; min-height:0; padding:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#ddd8cb transparent; }
body .blc-place-card { display:grid !important; min-height:112px; grid-template-columns:92px minmax(0,1fr); gap:14px; margin:0; padding:14px 16px; border:0; border-bottom:1px solid #eeeae1; border-radius:0; background:#fff; box-shadow:none; }
body .blc-place-card:hover { background:#fffcf2; }
body .blc-place-card.is-active { background:#fff7d8; box-shadow:inset 4px 0 0 #f0bd16; }
body .blc-place-thumb { width:92px; height:84px; border-radius:12px; background:linear-gradient(145deg,#fff5c7,#f3efe3); color:#b17d00; font-size:26px; }
body .blc-place-copy { align-self:center; }
body .blc-place-copy h3 { margin-bottom:5px; color:#27251f; font-size:15px; font-weight:900; }
body .blc-place-copy p { margin:0 0 3px; color:#706d65; font-size:11px; }
body .blc-place-copy .blc-place-phone { color:#4f4c45; font-weight:700; }
body .blc-place-meta { margin-top:7px; font-size:10px; }
body .blc-place-meta b { background:#fff1b4; color:#8a6500; }

.blc-place-detail { position:relative; z-index:3; display:flex; width:0; min-width:0; min-height:0; flex-direction:column; overflow:hidden; border-right:1px solid var(--blc-line); background:#fff; opacity:0; visibility:hidden; transform:translateX(-10px); transition:opacity .2s ease,transform .24s ease,visibility .2s; }
.blc-community[data-detail-open="true"] .blc-place-detail { width:auto; opacity:1; visibility:visible; transform:translateX(0); }
.blc-place-detail > header { display:flex; min-height:74px; align-items:center; justify-content:space-between; gap:12px; padding:14px 20px; border-bottom:1px solid var(--blc-line); background:rgba(255,255,255,.96); }
.blc-place-detail > header span { display:block; margin-bottom:3px; color:#b5b0a5; font-size:8px; font-weight:900; letter-spacing:.13em; }
.blc-place-detail > header strong { font-size:14px; }
.blc-place-detail > header button { display:grid; width:38px; height:38px; place-items:center; border:1px solid #e9e5dc; border-radius:50%; background:#fff; color:#4d4a43; font-size:25px; line-height:1; cursor:pointer; }
.blc-place-detail-body { flex:1; min-height:0; padding:20px; overflow-y:auto; overscroll-behavior:contain; }
.blc-detail-hero { position:relative; display:grid; width:100%; aspect-ratio:4/3; place-items:center; overflow:hidden; border-radius:18px; background:#f5f2e9; }
.blc-detail-hero img { width:100%; height:100%; object-fit:cover; }
.blc-detail-hero.is-placeholder { align-content:center; gap:12px; padding:25px; background:radial-gradient(circle at 70% 20%,#fff 0 12%,transparent 13%),linear-gradient(145deg,#fff8d5,#f7f2e4); color:#8b826d; text-align:center; }
.blc-detail-placeholder-icon { display:grid; width:70px; height:70px; place-items:center; border-radius:24px; background:#fff; color:#b17c00; box-shadow:0 10px 30px rgba(120,87,0,.12); font-size:30px; }
.blc-detail-hero.is-placeholder p { margin:0; font-size:12px; }
.blc-detail-gallery-count { position:absolute; right:12px; bottom:12px; padding:6px 10px; border-radius:999px; background:rgba(20,19,16,.78); color:#fff; font-size:11px; font-weight:900; }
.blc-detail-summary { padding:22px 2px 18px; }
.blc-detail-eyebrow { display:flex; gap:6px; margin:0 0 9px; }
.blc-detail-eyebrow span { padding:5px 8px; border-radius:7px; background:#fff0ad; color:#8b6500; font-size:10px; font-weight:900; }
.blc-detail-eyebrow .is-source { background:#eaf6f1; color:#24765d; }
.blc-detail-summary h2 { margin:0; color:#201f1b; font-size:25px; line-height:1.3; letter-spacing:-.045em; word-break:keep-all; }
.blc-detail-description { margin:12px 0 0; color:#656159; font-size:13px; line-height:1.7; white-space:pre-line; }
.blc-detail-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:16px; }
.blc-detail-actions a { display:flex; min-height:46px; align-items:center; justify-content:center; border:1px solid #e2ded4; border-radius:12px; background:#fff; color:#333029; font-size:12px; font-weight:900; text-decoration:none; }
.blc-detail-actions a.is-primary { border-color:#f2c42c; background:#ffda4c; color:#362800; }
.blc-detail-info { overflow:hidden; border:1px solid #e8e4da; border-radius:15px; }
.blc-detail-row { display:grid; gap:4px; padding:14px 15px; border-bottom:1px solid #eeeae1; color:#282620; text-decoration:none; }
.blc-detail-row:last-child { border-bottom:0; }
.blc-detail-row-label { color:#9b978d; font-size:9px; font-weight:800; letter-spacing:.04em; }
.blc-detail-row-value { font-size:13px; line-height:1.55; overflow-wrap:anywhere; white-space:pre-line; }
a.blc-detail-row:hover { background:#fffcf1; }
.blc-detail-notice { margin-top:16px; padding:15px 16px; border-radius:14px; background:#f7f5ef; color:#716d63; }
.blc-detail-notice strong { display:block; margin-bottom:5px; color:#46433c; font-size:12px; }
.blc-detail-notice p { margin:0; font-size:11px; line-height:1.65; }
body .blc-map-panel { position:relative; z-index:1; display:block !important; width:100%; height:100%; min-height:0; border:0; border-radius:0; }
body .blc-mobile-switcher { display:none; }

@media (max-width:1180px) and (min-width:821px) {
  body .blc-workspace,
  body .blc-community[data-chat-open="false"] .blc-workspace { grid-template-columns:330px 0 minmax(0,1fr) !important; }
  body .blc-community[data-detail-open="true"] .blc-workspace,
  body .blc-community[data-detail-open="true"][data-chat-open="false"] .blc-workspace { grid-template-columns:330px 380px minmax(280px,1fr) !important; }
}

@media (max-width:820px) {
  body .blc-community { left:50%; width:100vw; height:calc(100dvh - 116px); min-height:620px; margin:0 0 74px; padding:0; transform:translateX(-50%); }
  body .blc-workspace,
  body .blc-community[data-chat-open="false"] .blc-workspace,
  body .blc-community[data-places-open="true"][data-chat-open="false"] .blc-workspace { position:relative; display:block; height:100%; min-height:0; overflow:hidden; border-radius:0; }
  body .blc-map-panel { position:absolute; inset:0; width:100%; height:100%; min-height:0; }
  body .blc-place-panel,
  body .blc-community[data-panel="places"] .blc-place-panel { position:absolute; z-index:820; top:10px; right:10px; bottom:10px; left:10px; display:none !important; max-height:none; margin:0; overflow:hidden; border:1px solid var(--blc-line); border-radius:20px; background:#fff; box-shadow:0 20px 60px rgba(28,25,18,.24); }
  body .blc-community[data-panel="places"] .blc-place-panel { display:flex !important; }
  .blc-sidebar-tools { padding:16px 14px 12px; }
  .blc-place-title { margin-bottom:12px; }
  .blc-place-title h1 { font-size:23px; }
  body .blc-categories { margin-top:11px; }
  body .blc-place-panel > header { min-height:50px; padding:8px 14px 5px; }
  body .blc-place-panel > header [data-blc-close-panel] { display:grid; place-items:center; }
  body .blc-panel-status { padding:3px 14px 9px; }
  body .blc-place-card { min-height:104px; grid-template-columns:84px minmax(0,1fr); padding:12px 14px; }
  body .blc-place-thumb { width:84px; height:78px; }
  .blc-place-detail { position:absolute; z-index:850; inset:10px; display:none; width:auto; min-width:0; overflow:hidden; border:1px solid var(--blc-line); border-radius:20px; opacity:1; visibility:visible; transform:none; box-shadow:0 20px 60px rgba(28,25,18,.27); }
  .blc-community[data-detail-open="true"] .blc-place-detail { display:flex; width:auto; }
  .blc-place-detail > header { min-height:64px; padding:11px 15px; }
  .blc-place-detail-body { padding:15px; }
  .blc-detail-hero { aspect-ratio:16/10; }
  .blc-detail-summary { padding:17px 2px 14px; }
  .blc-detail-summary h2 { font-size:22px; }
  body .blc-mobile-switcher { right:12px; bottom:16px; left:12px; z-index:700; display:grid; grid-template-columns:1fr; }
  body .blc-mobile-switcher button { min-height:46px; }
}

@media (max-width:430px) {
  body .blc-community { min-height:590px; }
  body .blc-place-panel, body .blc-community[data-panel="places"] .blc-place-panel, .blc-place-detail { inset:7px; border-radius:17px; }
  body .blc-categories button { min-height:32px; padding:0 11px; font-size:10px; }
  .blc-detail-actions { grid-template-columns:1fr 1fr; }
}

/* 1.5.1 · mobile place density */
@media (max-width:820px) {
  .blc-sidebar-tools { padding:12px 11px 9px; }
  .blc-place-title { margin-bottom:9px; }
  .blc-place-title h1 { font-size:20px; }
  .blc-place-title .blc-location-button { width:38px; height:38px; min-height:38px; border-radius:11px; }
  body .blc-place-search { min-height:43px; grid-template-columns:minmax(0,1fr) 42px; border-radius:10px; }
  body .blc-place-search input { height:41px; padding:0 11px; font-size:12px; }
  body .blc-place-search button { width:42px; height:41px; min-height:41px; }
  body .blc-categories { gap:5px; margin-top:8px; }
  body .blc-categories button { min-height:29px; padding:0 9px; font-size:9px; }
  body .blc-place-panel > header { min-height:44px; padding:7px 11px 4px; }
  body .blc-place-panel > header h2 { font-size:14px; }
  body .blc-panel-status { min-height:27px; padding:2px 11px 6px; font-size:9px; }
  body .blc-place-card { min-height:84px; grid-template-columns:66px minmax(0,1fr); gap:10px; padding:9px 11px; }
  body .blc-place-thumb { width:66px; height:62px; border-radius:9px; font-size:21px; }
  body .blc-place-copy h3 { margin-bottom:3px; font-size:12.5px; line-height:1.35; }
  body .blc-place-copy p { margin-bottom:2px; font-size:9.5px; line-height:1.35; }
  body .blc-place-meta { margin-top:4px; font-size:8.5px; }

  .blc-place-detail { inset:7px; border-radius:16px; }
  .blc-place-detail > header { min-height:52px; padding:8px 11px; }
  .blc-place-detail > header strong { font-size:12px; }
  .blc-place-detail > header button { width:32px; height:32px; font-size:21px; }
  .blc-place-detail-body { padding:11px; }
  .blc-detail-hero { aspect-ratio:16/9; border-radius:12px; }
  .blc-detail-placeholder-icon { width:52px; height:52px; border-radius:18px; font-size:24px; }
  .blc-detail-hero.is-placeholder { gap:8px; padding:16px; }
  .blc-detail-hero.is-placeholder p { font-size:10px; }
  .blc-detail-gallery-count { right:8px; bottom:8px; padding:4px 8px; font-size:9px; }
  .blc-detail-summary { padding:12px 1px 10px; }
  .blc-detail-eyebrow { margin-bottom:6px; }
  .blc-detail-eyebrow span { padding:4px 6px; font-size:8px; }
  .blc-detail-summary h2 { font-size:18px; line-height:1.3; }
  .blc-detail-description { margin-top:7px; font-size:10.5px; line-height:1.55; }
  .blc-detail-actions { gap:6px; margin-bottom:10px; }
  .blc-detail-actions a { min-height:39px; border-radius:9px; font-size:10px; }
  .blc-detail-info { border-radius:11px; }
  .blc-detail-row { gap:2px; padding:9px 10px; }
  .blc-detail-row-label { font-size:7.5px; }
  .blc-detail-row-value { font-size:10.5px; line-height:1.45; }
  .blc-detail-notice { margin-top:10px; padding:10px 11px; border-radius:10px; }
  .blc-detail-notice strong { margin-bottom:3px; font-size:10px; }
  .blc-detail-notice p { font-size:9px; line-height:1.5; }
}

/* 1.5.2 · reference-sized place explorer */
body .blc-community {
  height:clamp(640px,74vh,760px);
  min-height:640px;
}
@media (max-width:820px) {
  body .blc-community {
    height:clamp(520px,calc(100dvh - 180px),650px);
    min-height:520px;
  }
}
@media (max-width:430px) {
  body .blc-community { min-height:520px; }
}

/* 1.5.6 · GPS is a blue dot; businesses are category-specific pins.
   Keep map selectors independent of .blc-community for fullscreen fallback. */
.blc-community, .blc-map-panel {
  --blc-map-control-size:13px;
  --blc-map-caption-size:12px;
}
:where(.blc-place-marker, .blc-place-thumb[data-category], .blc-detail-placeholder-icon[data-category]) {
  --blc-marker-color:#596778;
  --blc-marker-tint:#eef1f5;
}
[data-category="hospital"] { --blc-marker-color:#c64055; --blc-marker-tint:#fff0f2; }
[data-category="grooming"] { --blc-marker-color:#8650af; --blc-marker-tint:#f6effc; }
[data-category="hotel"] { --blc-marker-color:#5460b6; --blc-marker-tint:#eff0ff; }
[data-category="cafe"] { --blc-marker-color:#a0642f; --blc-marker-tint:#fff3e6; }
[data-category="supplies"] { --blc-marker-color:#bd6a06; --blc-marker-tint:#fff5dd; }
[data-category="park"] { --blc-marker-color:#24764e; --blc-marker-tint:#eaf7ee; }
button.blc-place-marker {
  position:relative; display:block; width:44px; min-width:44px; height:48px;
  min-height:48px; margin:0; padding:0; border:0; border-radius:0;
  background:transparent; color:#fff; box-shadow:none; cursor:pointer;
  appearance:none; touch-action:manipulation; overflow:visible;
}
.blc-place-marker-pin {
  position:absolute; top:2px; left:4px; display:flex; width:36px; height:36px;
  align-items:center; justify-content:center; box-sizing:border-box;
  border:2px solid #fff; border-radius:50% 50% 5px 50%;
  background:var(--blc-marker-color); color:#fff; transform:rotate(45deg);
  box-shadow:0 2px 5px #192c3c55;
}
.blc-place-marker svg, .blc-place-thumb[data-category] svg, .blc-detail-placeholder-icon svg {
  display:block; width:22px; height:22px; fill:none; stroke:currentColor;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.blc-place-marker svg { transform:rotate(-45deg); pointer-events:none; }
.blc-place-marker:hover .blc-place-marker-pin,
.blc-place-marker:focus-visible .blc-place-marker-pin,
.blc-place-marker.is-active .blc-place-marker-pin {
  box-shadow:0 0 0 3px #24241f,0 3px 9px #192c3c55;
}
button.blc-place-marker:focus-visible { outline:none; }
.blc-place-thumb[data-category], .blc-detail-placeholder-icon[data-category] {
  color:var(--blc-marker-color); background:var(--blc-marker-tint);
}
.blc-place-thumb[data-category] svg, .blc-detail-placeholder-icon svg { width:30px; height:30px; }
.blc-user-marker {
  position:relative; width:42px; height:42px; pointer-events:none;
  border-radius:50%; background:#2674ec26; border:1px solid #2674ec44;
  box-sizing:border-box;
}
.blc-user-marker-dot {
  position:absolute; top:11px; left:11px; width:18px; height:18px;
  border:3px solid #fff; border-radius:50%; background:#2674ec;
  box-shadow:0 1px 5px #123c7e66; box-sizing:border-box;
}
.blc-user-marker-label {
  position:absolute; top:43px; left:50%; transform:translateX(-50%);
  padding:4px 9px; border:1px solid #b7d0fb; border-radius:999px;
  background:#fff; color:#1752ae; white-space:nowrap;
  font-size:var(--blc-map-caption-size,12px); font-weight:800; line-height:1.4;
  box-shadow:0 2px 5px #192c3c22;
}
.blc-map-controls .blc-map-location-button,
.blc-place-title .blc-location-button {
  display:inline-flex; width:auto; min-width:94px; height:44px; min-height:44px;
  flex:none; gap:7px; padding:0 12px; border:1px solid #abc8f6 !important;
  border-radius:12px; background:#fff; color:#1752ae !important;
  font-size:var(--blc-map-control-size,13px); font-weight:800; line-height:1.3;
}
.blc-map-controls .blc-map-location-button { order:-1; }
.blc-map-controls .blc-map-location-button:hover,
.blc-place-title .blc-location-button:hover { background:#edf4ff; }
.blc-map-location-button span, .blc-place-title .blc-location-button span { display:inline; white-space:nowrap; }
.blc-place-title .blc-location-button svg { width:20px; height:20px; flex:none; }
.blc-map-status { max-width:calc(100% - 144px); }
@media (max-width:820px) {
  .blc-map-status {
    top:12px; left:12px; max-width:calc(100% - 128px);
    transform:none; border-radius:12px; line-height:1.4;
  }
}
