.geo-picker { display: grid; gap: .85rem; }
.geo-picker__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.geo-picker__map-wrap {
  border: 1px solid var(--rewa-line,#d5e4ea);
  border-radius: 16px;
  overflow: hidden;
  background: var(--rewa-bg-soft,#eef4f6);
}
.geo-picker__map { height: 280px; width: 100%; }
.geo-picker__hint { font-size: .8rem; color: var(--rewa-ink,#5a7380); margin: 0; }
.geo-picker__coords { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.geo-picker .leaflet-container { font-family: inherit; }
@media (max-width: 760px) {
  .geo-picker__grid, .geo-picker__coords { grid-template-columns: 1fr; }
}

/* Map tools: address search, my location, clear */
.geo-picker__map-wrap { position: relative; }
.geo-picker__tools { position: absolute; z-index: 500; top: 10px; inset-inline: 10px; display: flex; gap: 6px; pointer-events: none; }
.geo-picker__tools > * { pointer-events: auto; }
.geo-picker__search { position: relative; flex: 1; min-width: 0; max-width: 420px; display: flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border-radius: 12px; background: #fff; border: 1px solid var(--rewa-line,#d5e4ea); box-shadow: 0 10px 24px -14px rgba(8,42,51,.5); }
.geo-picker__search i { color: #64748b; font-size: 1.05rem; }
.geo-picker__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: .86rem; }
.geo-picker__results { position: absolute; top: calc(100% + 6px); inset-inline: 0; margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--rewa-line,#d5e4ea); border-radius: 12px; box-shadow: 0 18px 36px -18px rgba(8,42,51,.5); max-height: 240px; overflow-y: auto; }
.geo-picker__results button { width: 100%; text-align: start; border: 0; background: transparent; padding: 8px 10px; border-radius: 8px; font: inherit; font-size: .8rem; line-height: 1.5; cursor: pointer; color: #0f172a; }
.geo-picker__results button:hover { background: #f0fdfa; }
.geo-picker__results .is-empty { padding: 8px 10px; font-size: .8rem; color: #64748b; }
.geo-picker__btn { height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--rewa-line,#d5e4ea); background: #fff; font: inherit; font-size: .8rem; font-weight: 800; color: #0f766e; cursor: pointer; box-shadow: 0 10px 24px -14px rgba(8,42,51,.5); }
.geo-picker__btn i { font-size: 1.05rem; }
.geo-picker__btn:hover { background: #f0fdfa; }
.geo-picker__btn.is-busy i { animation: geo-spin 1s linear infinite; }
.geo-picker__btn.is-error { color: #dc2626; border-color: #fecaca; }
.geo-picker__btn[hidden] { display: none; }
@keyframes geo-spin { to { transform: rotate(360deg); } }
.geo-picker__map { height: 340px; }
.geo-pin { background: none; border: 0; filter: drop-shadow(0 4px 4px rgba(0,0,0,.28)); }
.geo-pin--main { animation: geo-drop .35s ease-out; }
@keyframes geo-drop { from { transform: translateY(-14px); opacity: 0; } }
.geo-picker__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 8px 12px; background: #fff; border-top: 1px solid var(--rewa-line,#d5e4ea); font-size: .76rem; font-weight: 700; color: #475569; }
.geo-picker__legend span { display: inline-flex; align-items: center; gap: 6px; }
.geo-picker__legend label { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.geo-pin-dot { width: 10px; height: 10px; border-radius: 50%; background: #94a3b8; display: inline-block; }
.geo-pin-dot.is-main { background: #0f766e; box-shadow: 0 0 0 3px rgba(15,118,110,.2); }
@media (max-width: 560px) { .geo-picker__btn span { display: none; } .geo-picker__map { height: 300px; } }
@media (prefers-reduced-motion: reduce) { .geo-pin--main, .geo-picker__btn.is-busy i { animation: none; } }
