/* GhostStat Geo Analytics — scoped under .gs-geo. Green accent to match the app. */
.gs-geo{
  --g-accent:#1FA463; --g-accent-2:#178A52; --g-accent-soft:#E7F5EC; --g-ocean:#EEF3F8;
  --g-ink:#1A1D24; --g-ink-2:#3C4350; --g-muted:#8C95A1; --g-muted-2:#AAB2BD;
  --g-line:#E9EDF3; --g-line-2:#DFE4EB; --g-r-lg:16px; --g-sh-1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.05);
  color:var(--g-ink);
}
.gs-geo .num{font-variant-numeric:tabular-nums}
.gs-geo .head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.gs-geo .crumb{font-size:12.5px;color:var(--g-muted);display:flex;align-items:center;gap:7px;margin-bottom:3px}
.gs-geo h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}
.gs-geo .head-actions{display:flex;align-items:center;gap:8px}
.gs-geo .btn.text{background:none;border:1px solid transparent;color:var(--g-ink-2);height:32px;border-radius:6px;padding:0 12px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.gs-geo .btn.text:hover{color:var(--g-accent)}
.gs-geo .mb-pill{position:relative;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--g-line-2);border-radius:6px;background:#fff;font-size:12.5px;font-weight:600;color:var(--g-ink-2);cursor:pointer;white-space:nowrap}
.gs-geo .mb-pill .car{font-size:11px;color:var(--g-muted-2)}

.gs-geo .g-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.gs-geo .kpi{background:#fff;border:1px solid var(--g-line);border-radius:12px;box-shadow:var(--g-sh-1);padding:14px 16px}
.gs-geo .kpi .l{font-size:11px;color:var(--g-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.gs-geo .kpi .v{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:3px;display:flex;align-items:center;gap:8px}
.gs-geo .kpi .v small{font-size:12px;color:var(--g-muted);font-weight:700}
@media(max-width:820px){.gs-geo .g-kpis{grid-template-columns:repeat(2,1fr)}}

.gs-geo .g-grid{display:grid;grid-template-columns:1.9fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:900px){.gs-geo .g-grid{grid-template-columns:1fr}}
.gs-geo .chartcard{background:#fff;border:1px solid var(--g-line);border-radius:var(--g-r-lg);box-shadow:var(--g-sh-1);overflow:hidden;margin-bottom:14px}
.gs-geo .cc-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--g-line)}
.gs-geo .cc-head h5{margin:0;font-size:13px}
.gs-geo .vt-scroll{overflow-x:auto}

/* map */
.gs-geo .map-wrap{padding:10px 12px}
.gs-geo .map-wrap svg{width:100%;height:auto;display:block}
.gs-geo .geo-ocean{fill:var(--g-ocean)}
.gs-geo .grat{stroke:#DCE4EC;stroke-width:.5;fill:none}
.gs-geo .bub{fill:var(--g-accent);fill-opacity:.55;stroke:var(--g-accent-2);stroke-width:1;cursor:pointer;transition:fill-opacity .12s}
.gs-geo .bub:hover{fill-opacity:.85}

/* leaderboard */
.gs-geo .board{padding:10px 14px}
.gs-geo .brow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--g-line);font-size:13px}
.gs-geo .brow:last-child{border-bottom:0}
.gs-geo .bflag{font-size:18px;line-height:1;flex:none;width:24px;text-align:center}
.gs-geo .bname{width:96px;font-weight:600;color:var(--g-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-geo .btrack{flex:1;height:9px;background:#EEF2F7;border-radius:5px;overflow:hidden}
.gs-geo .btrack i{display:block;height:100%;background:var(--g-accent);border-radius:5px}
.gs-geo .bval{width:74px;text-align:right;font-weight:700;color:var(--g-ink);font-variant-numeric:tabular-nums}

/* table */
.gs-geo table.gt{width:100%;border-collapse:collapse;font-size:12.5px}
.gs-geo table.gt th{font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--g-muted);padding:9px 14px;border-bottom:1px solid var(--g-line);white-space:nowrap;font-weight:700;text-align:right}
.gs-geo table.gt th.l{text-align:left}
.gs-geo table.gt td{padding:9px 14px;border-bottom:1px solid var(--g-line);white-space:nowrap;color:var(--g-ink-2);text-align:right;font-variant-numeric:tabular-nums}
.gs-geo table.gt td.l{text-align:left;font-weight:600;color:var(--g-ink)}
.gs-geo table.gt td.l .bflag{margin-right:8px}
.gs-geo table.gt tr:last-child td{border-bottom:0}
.gs-geo table.gt tbody tr:hover td{background:#FAFBFC}

.gs-geo .g-note{border-radius:12px;padding:11px 14px;font-size:12.5px;background:var(--g-accent-soft);border:1px solid #BFE6CD;color:#1B6B41;margin-bottom:14px}
.gs-geo .g-tip{position:fixed;z-index:60;pointer-events:none;background:#1A1D24;color:#fff;border-radius:9px;padding:8px 11px;font-size:12px;box-shadow:0 8px 26px rgba(16,24,40,.28);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s}
.gs-geo .g-tip.show{opacity:1;transform:translateY(0)}
.gs-geo .g-tip b{font-weight:700}

/* range picker (scoped) */
.gs-geo .rangepick{background:#fff;border:1px solid #E9EDF3;border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.16);min-width:236px;padding:6px}
.gs-geo .rp-presets{display:flex;flex-direction:column}
.gs-geo .rangepick .rm{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:6px;font-weight:600;font-size:13px;color:#3C4350;border:0;background:none;cursor:pointer}
.gs-geo .rangepick .rm:hover{background:#F5F7FA}
.gs-geo .rangepick .rm.on{background:var(--g-accent-soft);color:var(--g-accent-2)}
.gs-geo .rp-custom{border-top:1px solid #EEF1F6;margin-top:6px;padding:10px 10px 8px}
.gs-geo .rp-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:#8C95A1;margin-bottom:8px}
.gs-geo .rp-dates{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.gs-geo .rp-dates input[type=date]{flex:1;min-width:0;height:32px;border:1px solid #D0D4DA;border-radius:6px;padding:0 8px;font-size:12.5px;color:#3C4350;background:#fff}
.gs-geo .rp-dates input[type=date]:focus{outline:none;border-color:var(--g-accent);box-shadow:0 0 0 3px rgba(31,164,99,.14)}
.gs-geo .rp-arrow{color:#AAB2BD;font-weight:700}
.gs-geo .rp-apply{width:100%;height:34px;border:0;border-radius:6px;background:var(--g-accent);color:#fff;font-weight:700;font-size:13px;cursor:pointer}
.gs-geo .rp-apply:hover{background:var(--g-accent-2)}

/* drill-down breadcrumb + clickable rows */
.gs-geo .g-crumbs{display:flex;align-items:center;gap:6px;font-size:13px;flex-wrap:wrap}
.gs-geo .g-crumbs .cr{color:var(--g-accent-2);font-weight:600;cursor:pointer}
.gs-geo .g-crumbs .cr:hover{text-decoration:underline}
.gs-geo .g-crumbs .cr.on{color:var(--g-ink);font-weight:700;cursor:default}
.gs-geo .g-crumbs .cr.on:hover{text-decoration:none}
.gs-geo .g-crumbs .sep{color:var(--g-muted-2);font-size:11px}
.gs-geo table.gt tr.drill{cursor:pointer}
.gs-geo table.gt tr.drill:hover td{background:var(--g-accent-soft)}
.gs-geo table.gt td.l .chev{color:var(--g-muted-2);font-size:11px;margin-left:6px}

/* ===== Zoomable drill map (jsVectorMap) ===== */
.gs-geo .gm-grid{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
.gs-geo .gm-mapcard{padding:0;overflow:hidden}
.gs-geo .gm-mapcard .cc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line,#E9EDF3)}
.gs-geo .gm-crumbs{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#5A6472;flex-wrap:wrap}
.gs-geo .gm-cr{cursor:pointer;color:#3E7BD6}.gs-geo .gm-cr.on{color:#1A1D24;cursor:default}.gs-geo .gm-cr:not(.on):hover{text-decoration:underline}
.gs-geo .gm-sep{color:#C1C8D2;font-style:normal}
.gs-geo .gm-head-r{display:flex;align-items:center;gap:10px}
.gs-geo .gm-count{font-size:12.5px;font-weight:700;color:#5A6472}
.gs-geo .gm-up{border:1px solid #E2E4E8;background:#fff;border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:600;color:#3C4350;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.gs-geo .gm-up:hover{background:#F4F7FA}
.gs-geo .gm-metric{appearance:none;-webkit-appearance:none;border:1px solid #E2E4E8;border-radius:8px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238C95A1' stroke-width='1.6'/></svg>") no-repeat right 10px center;padding:6px 26px 6px 10px;font-size:12.5px;font-weight:600;color:#3C4350;cursor:pointer}
.gs-geo .gm-stage{position:relative;height:480px;background:#fff}
.gs-geo .gm-stage svg{background:transparent}
.gs-geo .gm-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9AA3AE;font-size:13px}
.gs-geo .gm-hint{padding:9px 16px;border-top:1px solid var(--line,#E9EDF3);font-size:11.5px;color:#9AA3AE;display:flex;align-items:center;gap:6px}
.gs-geo .gm-listcard{padding:14px}
.gs-geo .gm-lh{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#8C95A1;font-weight:700;margin-bottom:8px}
.gs-geo .gm-side{display:flex;flex-direction:column;gap:2px}
.gs-geo .gm-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nm v" "bar bar";column-gap:8px;row-gap:4px;align-items:center;padding:7px 8px;border-radius:7px;cursor:pointer;transition:background .1s}
.gs-geo .gm-row:hover,.gs-geo .gm-row.on{background:#F4F7FA}
.gs-geo .gm-nm{grid-area:nm;font-size:12.5px;font-weight:600;color:#3C4350;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-geo .gm-v{grid-area:v;font-size:12.5px;font-weight:700;color:#1A1D24;font-variant-numeric:tabular-nums}
.gs-geo .gm-bar{grid-area:bar;height:4px;background:#EDF0F4;border-radius:3px;overflow:hidden}
.gs-geo .gm-bar i{display:block;height:100%;background:#5E79B4;border-radius:3px}
.gs-geo .gm-empty{color:#9AA3AE;font-size:12.5px;padding:8px 4px}
.gs-geo .jvm-tooltip{background:#0B0B0C;border-radius:6px;font-size:12px;padding:7px 10px;box-shadow:0 4px 14px rgba(0,0,0,.25)}
@media(max-width:820px){.gs-geo .gm-grid{grid-template-columns:1fr}.gs-geo .gm-stage{height:360px}}

/* vector map fills the existing map card */
.gs-geo .map-wrap{min-height:480px;padding:0;overflow:hidden}
.gs-geo .map-wrap .gm-stage{height:480px}
.gs-geo .map-wrap .jvm-container{height:100%}
@media(max-width:820px){.gs-geo .map-wrap,.gs-geo .map-wrap .gm-stage{min-height:360px;height:360px}}

/* ===== Visitor map: responsive + blue + metric menu + insights popover ===== */
.gs-geo .gm-caphead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.gs-geo .gm-captools{display:flex;align-items:center;gap:10px}
.gs-geo .gm-hint{white-space:nowrap}
.gs-geo .gm-metric{appearance:none;-webkit-appearance:none;border:1px solid #E2E4E8;border-radius:8px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238C95A1' stroke-width='1.6'/></svg>") no-repeat right 10px center;padding:6px 26px 6px 10px;font-size:12.5px;font-weight:600;color:#3C4350;cursor:pointer}
/* map fills the card and scales with the viewport (fixes small / non-responsive) */
.gs-geo .map-wrap{min-height:0;padding:0;overflow:hidden}
.gs-geo .gm-stage{position:relative;width:100%;height:clamp(360px,44vw,580px);background:#fff}
.gs-geo .gm-stage .jvm-container{width:100%!important;height:100%!important}
.gs-geo .gm-stage svg{width:100%;height:100%;display:block;background:transparent}
/* jsVectorMap zoom buttons + tooltip, on-brand */
.gs-geo .jvm-zoom-btn{background:#1F5FD0;border-radius:6px}
.gs-geo .jvm-tooltip{background:#0B0B0C;border-radius:6px;font-size:12px;padding:7px 10px;box-shadow:0 4px 14px rgba(0,0,0,.25);border:0}
@media(max-width:820px){.gs-geo .gm-stage{height:clamp(300px,70vw,420px)}}

/* card-insights affordance (self-contained so it works on the plugin page) */
.gs-geo .cc-head{position:relative}
.gs-geo .ci-btn{opacity:0;transition:opacity .12s,background .12s;background:none;border:0;color:#8C95A1;cursor:pointer;padding:4px;border-radius:6px;line-height:0;margin-left:6px}
.gs-geo .cc-head:hover .ci-btn,.gs-geo .ci-btn.on{opacity:1}
.gs-geo .ci-btn:hover,.gs-geo .ci-btn.on{background:#EEF2F6;color:#3C4350}
.ci-pop{position:absolute;z-index:1000;width:270px;max-width:90vw;background:#fff;border:1px solid #E6E8EC;border-radius:12px;box-shadow:0 12px 34px rgba(16,24,40,.16);overflow:hidden;font-family:'Open Sans',system-ui,sans-serif}
.ci-pop .ci-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#5A6472;padding:11px 14px;border-bottom:1px solid #EEF1F5}
.ci-pop .ci-b{padding:12px 14px;font-size:13px;color:#3C4350;line-height:1.5}
.ci-pop .ci-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:6px}
.ci-pop .ci-muted{color:#9AA3AE;margin:0}

/* ===== map centering (aspect-locked so no letterbox/offset) + focused-city pulse ===== */
.gs-geo .map-wrap{display:block}
.gs-geo .gm-stage{position:relative;width:100%;height:auto;aspect-ratio:2/1;max-height:62vh;background:#fff;margin:0 auto}
.gs-geo .gm-stage .jvm-container{position:absolute!important;inset:0;width:100%!important;height:100%!important}
.gs-geo .gm-stage .jvm-container svg{display:block;margin:0 auto}
@media(max-width:820px){.gs-geo .gm-stage{aspect-ratio:3/2;max-height:70vh}}
/* clicked / focused city marker: green with a pulsing halo */
@keyframes gmpulse{0%{stroke:#1FA463;stroke-width:1;stroke-opacity:.85}70%{stroke-width:12;stroke-opacity:0}100%{stroke-width:12;stroke-opacity:0}}
.gs-geo .gm-stage circle.gm-pulse{fill:#1FA463!important;animation:gmpulse 1.4s ease-out infinite}

/* ===== city → visitors drill-through panel ===== */
.gs-geo .gm-visitors{margin-top:16px;padding:0;overflow:hidden}
.gs-geo .gm-vh{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line,#E9EDF3);font-size:14px;font-weight:700;color:#1A1D24}
.gs-geo .gm-vsub{font-size:11.5px;font-weight:600;color:#9AA3AE}
.gs-geo .gm-vclose{background:none;border:0;font-size:20px;line-height:1;color:#9AA3AE;cursor:pointer;padding:0 4px}
.gs-geo .gm-vclose:hover{color:#3C4350}
.gs-geo .gm-vbody{padding:6px}
.gs-geo .gm-vload,.gs-geo .gm-vempty{padding:18px;text-align:center;color:#9AA3AE;font-size:13px}
.gs-geo .gm-vlist{display:flex;flex-direction:column}
.gs-geo .gm-vrow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:10px 12px;border-radius:9px}
.gs-geo .gm-vrow:hover{background:#F4F7FA}
.gs-geo .gm-vleft{display:flex;align-items:center;gap:10px;min-width:0}
.gs-geo .gm-vavatar{width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:#E7EEFB;color:#1F5FD0;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.gs-geo .gm-vtext{display:flex;flex-direction:column;min-width:0}
.gs-geo .gm-vid{font-size:13px;font-weight:700;color:#1A1D24;font-family:ui-monospace,Menlo,monospace}
.gs-geo .gm-vmeta{font-size:12px;color:#6A7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-geo .gm-vstats{font-size:12.5px;font-weight:600;color:#5A6472;white-space:nowrap;font-variant-numeric:tabular-nums}
.gs-geo .gm-vopen{font-size:12.5px;font-weight:700;color:#1F5FD0;text-decoration:none;white-space:nowrap}
.gs-geo .gm-vopen:hover{text-decoration:underline}
@media(max-width:640px){.gs-geo .gm-vrow{grid-template-columns:1fr;gap:6px}.gs-geo .gm-vstats,.gs-geo .gm-vopen{padding-left:40px}}

/* state pull-down (easy switching) */
.gs-geo .gm-statesel{appearance:none;-webkit-appearance:none;border:1px solid #E2E4E8;border-radius:8px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238C95A1' stroke-width='1.6'/></svg>") no-repeat right 10px center;padding:6px 26px 6px 10px;font-size:12.5px;font-weight:600;color:#3C4350;cursor:pointer;max-width:190px}

/* ---- "Not on the map": visitors we could not place, and why. Same card, muted, never hidden. */
.gs-geo .g-unres{border-top:1px solid var(--g-line);padding:10px 16px 14px;background:#FBFCFD}
.gs-geo .ur-h{font-size:11px;color:var(--g-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin:2px 0 8px}
.gs-geo .ur-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid var(--g-line);font-size:13px}
.gs-geo .ur-row:last-child{border-bottom:0}
.gs-geo .ur-ic{width:18px;flex:none;text-align:center;line-height:1.5;font-size:13px}
.gs-geo .ur-t{flex:1;min-width:0;color:var(--g-ink-2);display:flex;flex-direction:column;gap:2px}
.gs-geo .ur-t b{color:var(--g-ink);font-variant-numeric:tabular-nums}
.gs-geo .ur-w{font-size:11.5px;color:var(--g-muted);line-height:1.45}
.gs-geo .ur-v{flex:none;color:var(--g-muted);font-variant-numeric:tabular-nums;font-size:12px;padding-top:1px}
@media(max-width:640px){.gs-geo .ur-v{display:none}}

/* sub-label inside a table cell ("3 countries", "registry region · not drillable") */
.gs-geo .g-sub{font-size:11px;color:var(--g-muted);font-weight:600;margin-left:6px;white-space:nowrap}
.gs-geo .g-note code{background:var(--g-line);border-radius:4px;padding:1px 5px;font-size:11.5px}

/* ---- city pins overlay ("Cities" toggle). Green = a place we have real coordinates for; amber =
   the pin whose visitor panel is open. Sizes come from the metric, not from the zoom level. */
.gs-geo .gm-dots{display:inline-flex;align-items:center;gap:6px;border:1px solid #E2E4E8;border-radius:8px;background:#fff;padding:6px 10px;font-size:12.5px;font-weight:600;color:#3C4350;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.gs-geo .gm-dots:hover{border-color:#C9D2DC;background:#F7F9FC}
.gs-geo .gm-dots.on{background:#EAF6F0;border-color:#1FA463;color:#14804A}
.gs-geo .gm-dots[hidden]{display:none}
.gs-geo .gm-dotmark{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#1FA463;box-shadow:0 0 0 2px #fff inset}
.gs-geo .gm-dots.on .gm-dotmark{background:#1FA463;box-shadow:0 0 0 2px #EAF6F0 inset}
.gs-geo .gm-dotnote{padding:8px 16px 12px;font-size:11.5px;color:#8C95A1;font-variant-numeric:tabular-nums}
.gs-geo .gm-dotnote[hidden]{display:none}
@media(max-width:520px){.gs-geo .gm-dotlabel{display:none}.gs-geo .gm-dots{padding:6px 9px}}

/* --- City-dot Wikipedia town modal (mirrors the VI avatar modal, geo-namespaced) --- */
.gs-geo .gm-vh .gm-town-link,.gm-vh .gm-town-link{color:inherit;text-decoration:none;border-bottom:1px dashed rgba(31,95,208,.5);cursor:pointer;font-weight:700}
.gm-vh .gm-town-link:hover{color:#1f5fd0;border-bottom-style:solid}
.gm-vh .gm-town-link .bi{font-size:.8em;opacity:.65}
.gm-town-ov{position:fixed;inset:0;background:rgba(10,14,22,.62);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1080;padding:20px}
.gm-town{background:var(--card,#fff);color:var(--ink,#1a1f2b);max-width:420px;width:100%;max-height:82vh;overflow:auto;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.42);position:relative;padding:22px 22px 18px;animation:gm-town-in .16s ease}
@keyframes gm-town-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.gm-town-x{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:26px;line-height:1;color:var(--muted,#7a8598);cursor:pointer}
.gm-town-x:hover{color:var(--ink,#1a1f2b)}
.gm-town-h{font-size:19px;font-weight:700;margin:0 26px 10px 0;color:var(--ink,#1a1f2b)}
.gm-town-img{width:100%;max-height:190px;object-fit:cover;border-radius:10px;margin-bottom:12px;background:#0d1119}
.gm-town-p{font-size:14px;line-height:1.55;margin:0 0 14px;color:var(--ink,#2a3140)}
.gm-town-f{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.gm-town-f a{font-size:13px;font-weight:600;text-decoration:none;color:var(--brand,#2f6fed)}
.gm-town-f a:hover{text-decoration:underline}
.gm-town-attr{font-size:11px;color:var(--muted,#8a93a3)}
.gm-town-load,.gm-town-none{font-size:14px;color:var(--muted,#7a8598);padding:8px 0}
.gs-geo .gm-info-i,.gm-info-i{border:0;background:transparent;color:var(--muted,#8a93a3);cursor:pointer;padding:0 2px;font-size:.9em;line-height:1;vertical-align:baseline}
.gm-info-i:hover,.gm-info-i:focus-visible{color:#1f5fd0;outline:none}
