/* Visitor count line in the footer + the Visitors page (Fix 8) */
.visit-line { margin: 0 0 1rem; font-size: .95rem; color: var(--smoke); grid-column: 1 / -1; }
.visit-line a { color: var(--cream); }
.vis-stats { display: flex; flex-wrap: wrap; gap: clamp(1.5rem, 5vw, 3.5rem); margin: 1.6rem 0 0; }
.vis-stats div { min-width: 0; }
.vis-stats b { display: block; font: 600 clamp(2.4rem, 6vw, 3.6rem)/1 var(--display); color: var(--cream); font-variant-numeric: tabular-nums; }
.vis-stats span { font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--smoke); }
.vis-map { position: relative; width: 100%; max-width: 100%; aspect-ratio: 2 / 1; background: var(--basalt-2); border: 1px solid var(--ash); border-radius: 2px; overflow: hidden; }
.vis-map svg { display: block; width: 100%; height: 100%; }
.vis-map .land { fill: #34302b; stroke: #1a1a1a; stroke-width: .5; }
.vis-map .dot { fill: var(--ember-lit); fill-opacity: .75; stroke: #1a1a1a; stroke-width: .6; }
.vis-map .home { fill: none; stroke: var(--cream); stroke-width: 1.4; }
.vis-map .home-label { fill: var(--cream); font: 600 11px var(--body); }
.vis-map .loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--smoke); }
.vis-note { color: var(--smoke); font-size: .9rem; margin-top: .8rem; max-width: var(--measure, 66ch); }
.vis-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.vis-cols > div { min-width: 0; }
.vis-countries { list-style: none; margin: 0; padding: 0; }
.vis-countries li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--ash); }
.vis-countries li span:last-child { color: var(--smoke); font-variant-numeric: tabular-nums; }
.gb-form { display: grid; gap: .9rem; max-width: 40rem; }
.gb-form .two { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .9rem; }
.gb-form label { display: grid; gap: .35rem; color: var(--smoke); font-size: .92rem; }
.gb-form input, .gb-form textarea { font: inherit; color: var(--cream); background: var(--basalt); border: 1px solid var(--ash); border-radius: 2px; padding: .7rem; width: 100%; }
.gb-form input:focus-visible, .gb-form textarea:focus-visible { outline: 2px solid var(--ember-lit); outline-offset: 1px; }
.gb-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gb-form .btn { justify-self: start; }
.gb-msg { padding: .8rem 1rem; border: 1px solid var(--ohia); background: rgba(61, 107, 74, .25); max-width: 40rem; }
.gb-msg.err { border-color: var(--ember); background: rgba(192, 57, 43, .18); }
.gb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.gb-list li { padding: 1.1rem 0; border-top: 1px solid var(--ash); }
.gb-list p { margin: 0 0 .35rem; white-space: pre-line; overflow-wrap: anywhere; }
.gb-list .who { color: var(--smoke); font-size: .9rem; margin: 0; }
.gb-list .who b { color: var(--cream); font-weight: 600; }
