/* TravellinGeo — reusable geolocation module (PB-4). Blue Travellin theme. */
.tv-geo { position: relative; display: block; margin: 4px 0; }
.tv-geo-row { display: flex; gap: 8px; align-items: stretch; }
.tv-geo-search {
    flex: 1 1 auto; min-width: 0; padding: 10px 12px;
    border: 1px solid #cbd5e1; border-radius: 8px; font-size: 15px;
}
.tv-geo-search:focus { outline: none; border-color: #1a73e8; box-shadow: 0 0 0 3px rgba(26,115,232,.15); }
.tv-geo-loc {
    flex: 0 0 auto; width: 44px; border: 1px solid #cbd5e1; border-radius: 8px;
    background: #f8fafc; cursor: pointer; font-size: 18px; line-height: 1;
}
.tv-geo-loc:hover { background: #eef2ff; border-color: #1a73e8; }
.tv-geo-loc:disabled { opacity: .5; cursor: default; }
.tv-geo-list {
    position: absolute; z-index: 40; left: 0; right: 52px; margin: 4px 0 0;
    padding: 4px 0; list-style: none; background: #fff; border: 1px solid #e2e8f0;
    border-radius: 8px; box-shadow: 0 10px 30px rgba(15,23,42,.12); max-height: 260px; overflow: auto;
}
.tv-geo-item { padding: 9px 12px; cursor: pointer; font-size: 14px; color: #0f172a; }
.tv-geo-item:hover { background: #eef2ff; }
.tv-geo-map {
    margin-top: 10px; height: 260px; width: 100%; border-radius: 10px;
    overflow: hidden; border: 1px solid #e2e8f0; background: #eef2f7;
}
.tv-geo-map--nomap {
    display: flex; align-items: center; justify-content: center;
    color: #64748b; font-size: 14px; height: 80px;
}
.tv-geo-readout { margin-top: 6px; font-size: 13px; color: #475569; }
.leaflet-container { font: inherit; }
@media (prefers-color-scheme: dark) {
    .tv-geo-search, .tv-geo-loc { background: #1e293b; color: #e2e8f0; border-color: #334155; }
    .tv-geo-list { background: #1e293b; border-color: #334155; }
    .tv-geo-item { color: #e2e8f0; }
    .tv-geo-item:hover { background: #334155; }
}
