/* map.css - business map page styles */
html, body { height: 100%; margin: 0; padding: 0; }
.map-page { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }

.map-topbar {
  display: flex; align-items: center; gap: 1rem;
  padding: .6rem 1rem;
  background: var(--bg, #fff);
  border-bottom: 1px solid var(--border, #e0e0e0);
  flex-shrink: 0;
  flex-wrap: wrap;
}
.map-topbar .logo-link {
  font-weight: 600; font-size: 1.05rem;
  color: var(--text, #202124); text-decoration: none; white-space: nowrap;
}
.map-topbar .logo-link span {
  background: linear-gradient(135deg, #4285f4, #34a853, #fbbc04, #ea4335);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.map-filters { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; flex: 1; }
.map-filters select {
  font-size: .82rem; padding: .3rem .6rem;
  border: 1px solid var(--border, #e0e0e0); border-radius: 6px;
  background: var(--surface, #f8f9fa); color: var(--text, #202124); cursor: pointer;
}
.map-filters select:focus { outline: 2px solid var(--accent, #4285f4); border-color: transparent; }
.map-filters .clear-link { font-size: .8rem; color: var(--muted, #5f6368); text-decoration: none; }
.map-stat { font-size: .8rem; color: var(--muted, #5f6368); white-space: nowrap; margin-left: auto; }

.map-body { display: flex; flex: 1; min-height: 0; }
#map { flex: 1; min-height: 0; }

.map-sidebar {
  width: 300px; flex-shrink: 0;
  display: flex; flex-direction: column;
  border-left: 1px solid var(--border, #e0e0e0);
  background: var(--bg, #fff);
  overflow: hidden; min-height: 0;
}
.sidebar-header {
  padding: .65rem 1rem;
  border-bottom: 1px solid var(--border, #e0e0e0);
  font-size: .82rem; color: var(--muted, #5f6368); flex-shrink: 0;
}
.sidebar-search { padding: .5rem .75rem; border-bottom: 1px solid var(--border, #e0e0e0); flex-shrink: 0; }
.sidebar-search input {
  width: 100%; font-size: .82rem; padding: .35rem .6rem;
  border: 1px solid var(--border, #e0e0e0); border-radius: 6px;
  background: var(--surface, #f8f9fa); color: var(--text, #202124);
  box-sizing: border-box;
}
.sidebar-search input:focus { outline: 2px solid var(--accent, #4285f4); border-color: transparent; }
.sidebar-list { flex: 1; overflow-y: auto; padding: .25rem 0; }
.sidebar-item {
  padding: .6rem 1rem; border-bottom: 1px solid #f0f0f0;
  cursor: pointer; transition: background .12s;
}
.sidebar-item:hover, .sidebar-item.active { background: #f0f4ff; }
.sidebar-item-name {
  font-size: .88rem; font-weight: 600; color: var(--text, #202124);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sidebar-item-meta {
  font-size: .75rem; color: var(--muted, #5f6368); margin-top: .1rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.claimed-badge {
  display: inline-block; font-size: .68rem;
  background: #d1fae5; color: #065f46;
  border-radius: 4px; padding: 0 .35rem; margin-left: .35rem;
}
.biz-popup { min-width: 200px; }
.biz-popup-name { font-weight: 700; font-size: .95rem; margin-bottom: .15rem; }
.biz-popup-cat  { font-size: .78rem; color: #5f6368; margin-bottom: .25rem; }
.biz-popup-addr { font-size: .78rem; color: #5f6368; margin-bottom: .35rem; }
.biz-popup-rating { font-size: .78rem; color: #f59e0b; margin-bottom: .35rem; }
.biz-popup-links { display: flex; gap: .4rem; flex-wrap: wrap; }
.biz-popup-links a {
  font-size: .75rem; padding: .2rem .55rem;
  border-radius: 5px; text-decoration: none;
  background: #4285f4; color: #fff;
}
.biz-popup-links a.secondary {
  background: #f8f9fa; color: #202124; border: 1px solid #e0e0e0;
}
.map-empty {
  display: flex; align-items: center; justify-content: center;
  flex: 1; flex-direction: column; gap: .75rem;
  color: var(--muted, #5f6368); font-size: .9rem; text-align: center; padding: 2rem;
}
@media (max-width: 680px) { .map-sidebar { display: none; } }
