/* „Unde să locuim?” (views/utile/unde-sa-locuim.ejs, public/js/utile-unde-sa-locuim.js) */
.uc-wrap { padding: 32px 0 8px; }
.uc-form { margin-top: 14px; display: grid; gap: 12px; padding: 16px; border: 1px solid var(--ut-line); border-radius: 16px; background: #fff; box-shadow: var(--ut-shadow); }
@media (min-width: 900px) { .uc-form { grid-template-columns: 1fr 1fr; } .uc-opts, .uc-hint { grid-column: 1 / -1; } }
.uc-addr label { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ut-ink); font-size: .95rem; margin-bottom: 6px; }
.uc-dot { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; font-size: .8rem; font-weight: 800; flex: none; }
.uc-dot--a { background: #2a78d6; }
.uc-dot--b { background: #eb6834; }
.uc-search { position: relative; }
.uc-search input { width: 100%; padding: 11px 12px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; background: #fff; }
.uc-search input:focus { outline: 2px solid #93c5fd; border-color: #2563eb; }
.uc-search input.is-set { border-color: #16a34a; background: #f0fdf4; }
.uc-sugg { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--ut-line); border-radius: 10px; box-shadow: var(--ut-shadow-lg); max-height: 260px; overflow-y: auto; }
.uc-sugg[hidden] { display: none; }
.uc-sugg li { padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: .88rem; line-height: 1.35; color: var(--ut-text); }
.uc-sugg li:hover, .uc-sugg li[aria-selected="true"] { background: var(--ut-primary-50); }
.uc-opts { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; }
.uc-opts label { display: grid; gap: 4px; font-size: .85rem; font-weight: 600; color: var(--ut-muted); }
.uc-opts select { padding: 9px 10px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; background: #fff; color: var(--ut-ink); }
.uc-hint { font-size: .82rem; color: var(--ut-muted); }
.uc-msg { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: #fffbeb; border: 1px solid #fde68a; color: #78350f; font-size: .92rem; }
.uc-msg.is-busy { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.uc-msg[hidden] { display: none; }
.uc-map { position: relative; z-index: 0; margin-top: 14px; height: 62vh; min-height: 380px; max-height: 640px; border: 1px solid #d1d5db; border-radius: 14px; overflow: hidden; background: #e5e7eb; }
.uc-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 10px; font-size: .85rem; color: var(--ut-muted); }
.uc-legend[hidden] { display: none; }
.uc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.uc-sw { display: inline-block; width: 16px; height: 12px; border-radius: 3px; }
.uc-sw--1 { background: rgba(22, 163, 74, .55); border: 1px solid #15803d; }
.uc-sw--2 { background: rgba(250, 204, 21, .45); border: 1px solid #ca8a04; }
.uc-sw--l { background: #7c3aed; border-radius: 50%; width: 12px; }
.uc-result { margin-top: 18px; }
.uc-result[hidden] { display: none; }
.uc-summary { padding: 14px 16px; border-radius: 14px; background: #f0fdf4; border: 1px solid #bbf7d0; color: #14532d; line-height: 1.55; }
.uc-cols { display: grid; gap: 16px; margin-top: 8px; }
@media (min-width: 900px) { .uc-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.uc-places { display: grid; gap: 6px; list-style: none; margin: 0; padding: 0; }
.uc-places a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--ut-line); border-radius: 10px; background: #fff; color: var(--ut-ink); font-weight: 600; font-size: .92rem; }
.uc-places a:hover { border-color: #93c5fd; background: var(--ut-primary-50); }
.uc-places small { color: var(--ut-muted); font-weight: 500; white-space: nowrap; }
.uc-small { margin-top: 10px; font-size: .85rem; color: var(--ut-muted); line-height: 1.5; }
.uc-listings { display: grid; gap: 8px; }
.uc-listing { display: flex; gap: 10px; align-items: center; padding: 8px; border: 1px solid var(--ut-line); border-radius: 10px; background: #fff; color: var(--ut-ink); }
.uc-listing img, .uc-listing .uc-noimg { width: 64px; height: 48px; flex: none; border-radius: 8px; object-fit: cover; background: #e5e7eb; }
.uc-listing div { display: grid; min-width: 0; }
.uc-listing strong { font-size: .88rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-listing span { font-size: .82rem; color: #1d4ed8; font-weight: 700; }
.uc-empty { font-size: .9rem; color: var(--ut-muted); padding: 10px 12px; border: 1px dashed #cbd5e1; border-radius: 10px; }
.uc-content { padding-top: 8px; }
.uc-pin { width: 26px; height: 26px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: .75rem; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
.uc-pin span { transform: rotate(45deg); }
.uc-pin--a { background: #2a78d6; }
.uc-pin--b { background: #eb6834; }
/* „Arată zona”, după ce sunt puse ambele puncte */
.uc-pulse { animation: uc-pulse 1.2s ease-out 2; }
@keyframes uc-pulse { 0% { box-shadow: 0 0 0 0 rgba(37, 99, 235, .55); } 100% { box-shadow: 0 0 0 14px rgba(37, 99, 235, 0); } }
@media (prefers-reduced-motion: reduce) { .uc-pulse { animation: none; outline: 3px solid #93c5fd; } }
