/* Real Natural Earth geometry. Focus highlights shapes without SVG bounding boxes. */
.geography-panel { color-scheme:dark; min-width:0; color:#d9e6f2; background:#101c31; border:1px solid #6e8eaf38; border-radius:20px; overflow:hidden; box-shadow:0 28px 80px #0003; }
.map-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px 19px; }
.map-heading .eyebrow { color:#8caac2; font-size:8px; letter-spacing:.13em; margin-bottom:6px; }
.map-heading h2 { font-size:25px; letter-spacing:-.04em; margin:0; color:#e0ebf5; }
.map-live { display:flex; align-items:center; gap:8px; font-size:8px; letter-spacing:.09em; color:#95c5b3; white-space:nowrap; }
.geo-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); background:#132239; border-block:1px solid #a0bada15; }
.geo-tabs button { padding:11px 4px; font-size:10px; font-weight:600; border:0; background:transparent; color:#a5b9ce; }
.geo-tabs button.active { background:#6c99b91a; color:#cae6df; box-shadow:inset 0 -2px 0 #82c5a3; }
.geo-tabs button:hover { color:#e0edf6; background:#9dc1df12; }
.geo-stage { position:relative; aspect-ratio:1.37; overflow:hidden; background:radial-gradient(ellipse at 40% 40%,#243e57,#162b47); }
.geo-map { display:block; width:100%; height:100%; overflow:hidden; }
.geo-graticule path { fill:none; stroke:#8caac2; stroke-width:.5px; opacity:.13; vector-effect:non-scaling-stroke; pointer-events:none; }
.geo-country { fill:#627c90; stroke:#21384f; stroke-width:.55px; stroke-linejoin:round; vector-effect:non-scaling-stroke; cursor:pointer; transition:fill .18s,stroke .18s; }
.geo-country.region-north { fill:#637e98; }
.geo-country.region-central { fill:#789e9d; }
.geo-country.region-south { fill:#6d839d; }
.geo-country.region-caribbean { fill:#9492a6; }
.geo-country.active { fill:#90b4ce; stroke:#bdd4e6; stroke-width:1.1px; }
.geo-country-link:hover .geo-country,.geo-country-link:focus-visible .geo-country { fill:#a8c9dc; stroke:#e2edf7; stroke-width:1.6px; }
.geo-country-link:focus,.geo-country-link:focus-visible { outline:none!important; box-shadow:none!important; }
.geo-country[data-country="GTM"] { fill:#82c5a3!important; stroke:#bedecb!important; stroke-width:1.4px; }
.geo-country-link:focus-visible .geo-country[data-country="GTM"] { stroke:#f1fff8!important; stroke-width:3px; }
.geo-label { font:600 12px "Segoe UI",Arial,sans-serif; fill:#e2edf6; paint-order:stroke; stroke:#243e57; stroke-width:3px; stroke-linejoin:round; pointer-events:none; visibility:hidden; }
.geo-label[data-country="CAN"],.geo-label[data-country="USA"],.geo-label[data-country="MEX"],.geo-label[data-country="BRA"],.geo-label[data-country="ARG"],.geo-label[data-country="GRL"] { visibility:visible; }
.geo-ocean-labels { pointer-events:none; }
.geo-ocean-labels text { font:500 9px "Segoe UI",Arial,sans-serif; letter-spacing:1px; fill:#8daac1; }
.geo-connections { pointer-events:none; }
.geo-connections path { fill:none; stroke:#a3c7d5; stroke-width:.8px; vector-effect:non-scaling-stroke; stroke-dasharray:3 7; opacity:.2; animation:map-dash 22s linear infinite; }
.geo-controls { position:absolute; top:12px; right:12px; display:grid; gap:5px; z-index:4; }
.geo-controls button { width:32px; height:32px; background:#14283fed; border:1px solid #8aadc44a; border-radius:8px; font-size:19px; color:#c9ddea; display:grid; place-items:center; padding:0; box-shadow:0 3px 10px #0001; }
.geo-controls button:hover { background:#2a4159; }
.geo-controls button:disabled { opacity:.4; cursor:default; }
.map-hq-pin { position:absolute; width:14px; height:14px; border:3px solid #e1f5e9; border-radius:50%; background:#82c5a3; box-shadow:0 0 0 6px #82c5a324; transform:translate(-50%,-50%); pointer-events:none; z-index:2; }
.map-hq-pin span { position:absolute; inset:-8px; border:1px solid #82c5a3; border-radius:50%; animation:map-pulse 3.5s ease-out infinite; }
.map-country-cloud { position:absolute; width:221px; border:1px solid #9dc5bd55; border-radius:16px; padding:17px; color:#e4f0f3; background:#192e43f5; box-shadow:0 8px 30px #07132260; z-index:3; left:43%; top:20%; }
.map-country-cloud::after { content:""; position:absolute; width:9px; height:9px; background:#192e43; border-left:1px solid #9dc5bd55; border-bottom:1px solid #9dc5bd55; transform:rotate(45deg); left:-5px; top:50%; }
.cloud-close { position:absolute; right:7px; top:5px; width:25px; height:25px; background:none; border:0; color:#a9c5cf; font-size:21px; padding:0; }
.cloud-eyebrow { display:block; color:#a6d7bd; font-size:7px; font-weight:700; letter-spacing:.13em; margin-bottom:5px; }
.map-country-cloud strong { display:block; font-size:20px; letter-spacing:-.035em; line-height:1.2; padding-right:7px; }
.map-country-cloud p { font-size:9px; color:#b2c7d5; line-height:1.65; margin:8px 0 12px; }
.cloud-primary { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:10px; font-weight:650; color:#122c25; padding:9px 11px; border-radius:7px; background:#a0cfb6; }
.cloud-primary > span { font-size:15px; }
.cloud-primary:hover { background:#bae1cb; }
.cloud-secondary { display:block; font-size:9px; color:#b6d5c9; margin-top:10px; }
.map-country-cloud.is-country .cloud-primary { background:#aecbdd; }
.map-country-cloud.is-country .cloud-eyebrow { color:#aecbdd; }
.map-hover-label { position:absolute; left:14px; bottom:9px; max-width:calc(100% - 62px); padding:6px 9px; margin:0; font-size:9px; line-height:1.4; color:#b7cddf; background:#162b47de; border:1px solid #aac5df26; border-radius:6px; pointer-events:none; z-index:1; }
.map-picker { display:flex; align-items:center; gap:14px; padding:16px 23px 12px; border-top:1px solid #a0bada1c; }
.map-picker label { font-size:9px; white-space:nowrap; color:#a5bdd1; }
.map-picker select { min-width:0; width:100%; border:1px solid #9eb7cf33; background:#192e43; color:#d7e6f3; border-radius:7px; font-size:10px; padding:9px 10px; height:35px; }
.map-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:0 23px 16px; font-size:8px; color:#9bb1c8; }
.map-footer > span:first-child { display:flex; align-items:center; gap:7px; color:#a8ccba; }
.map-footer .status-dot { width:5px; height:5px; flex-basis:5px; }
.geo-tabs button:focus-visible,.geo-controls button:focus-visible,.map-picker select:focus-visible,.map-country-cloud a:focus-visible,.cloud-close:focus-visible { outline:2px solid #b4ddc9; outline-offset:2px; }
.geography-panel:not(.map-enhanced) .geo-controls,.geography-panel:not(.map-enhanced) .geo-tabs,.geography-panel:not(.map-enhanced) .map-picker,.geography-panel:not(.map-enhanced) .cloud-close,.geography-panel:not(.map-enhanced) .map-hq-pin { display:none; }
@keyframes map-dash { to { stroke-dashoffset:-100; } }
@keyframes map-pulse { 0% { transform:scale(.7); opacity:.65; } 80%,100% { transform:scale(1.8); opacity:0; } }
@media(max-width:980px) and (min-width:721px) { .geo-stage { aspect-ratio:1.5; } }
@media(max-width:720px) { .geography-panel { border-radius:16px; } .map-heading { padding:19px 18px 15px; } .map-heading h2 { font-size:22px; } .map-heading .eyebrow { font-size:7px; } .map-live { font-size:7px; } .geo-stage { aspect-ratio:1.04; } .geo-tabs button { font-size:9px; padding:11px 2px; } .map-picker { padding:13px 17px 11px; gap:7px; flex-direction:column; align-items:flex-start; } .map-picker select { font-size:11px; height:38px; } .map-footer { padding-inline:17px; font-size:7px; } .map-country-cloud { width:199px; padding:15px; border-radius:14px; } .map-country-cloud strong { font-size:19px; } .cloud-primary { font-size:9px; } .cloud-secondary { font-size:8px; } .map-hover-label { left:10px; bottom:9px; font-size:8px; } .geo-controls { top:10px; right:10px; gap:4px; } .geo-controls button { width:30px; height:30px; } }
@media(prefers-reduced-motion:reduce) { .geo-country { transition:none; } .geo-connections path,.map-hq-pin span { animation:none; } }
.map-country-cloud[data-side="left"]::after { left:auto; right:-5px; border-left:0; border-bottom:0; border-right:1px solid #9dc5bd55; border-top:1px solid #9dc5bd55; }

.map-country-cloud[data-side="floating"]::after { display:none; }
@media(max-width:720px) { .map-country-cloud { width:178px; padding:12px; } .map-country-cloud strong { font-size:17px; } .map-country-cloud p { font-size:8px; margin:6px 0 8px; } .cloud-primary { padding:8px 9px; font-size:8px; } .cloud-eyebrow { font-size:6px; } .cloud-secondary { font-size:7px; margin-top:7px; } }
@media(max-width:720px) {
    .map-country-cloud { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:9px; width:calc(100% - 24px); padding:12px 30px 12px 13px; }
    .cloud-eyebrow { grid-column:1; grid-row:1; margin-bottom:4px; font-size:6px; }
    .map-country-cloud strong { grid-column:1; grid-row:2; font-size:16px; }
    .map-country-cloud p { display:none; }
    .cloud-primary { grid-column:2; grid-row:1 / span 2; align-self:center; font-size:8px; padding:8px 9px; }
    .cloud-secondary { grid-column:1 / -1; grid-row:3; margin-top:7px; font-size:7px; }
}

/* Soft light and glass accents follow the portal palette. */
.geography-panel .status-dot { background:#82c5a3; box-shadow:0 0 10px #82c5a32e; }
.map-country-cloud { backdrop-filter:blur(12px); }
.geo-controls button { backdrop-filter:blur(8px); }
.map-country-cloud.is-country .cloud-primary { color:#142c40; }
.map-country-cloud.is-country .cloud-primary:hover { background:#c7deeb; }
.map-country-cloud.is-country .cloud-eyebrow { color:#b9d5e8; }
