#visitor-map { width:min(calc(100% - 44px),1120px); margin:22px auto; padding:22px; box-sizing:border-box; background:#0b2231; color:#fff; border:1px solid #657986; border-radius:8px; scroll-margin-top:140px; font-family:var(--m-readable,Arial,sans-serif); }
#visitor-map * { box-sizing:border-box; }
#visitor-map h2 { color:#fff; font-size:1.65rem; line-height:1.2; letter-spacing:0; margin:0 0 .4rem; }
#visitor-map h3 { color:#fff; font-size:1.5rem; line-height:1.25; letter-spacing:0; margin:0 0 1rem; overflow-wrap:anywhere; }
#visitor-map p { color:#e2eaf0; font-size:1rem; line-height:1.5; margin:.6rem 0; }
#visitor-map a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
#visitor-map button,#visitor-map select { font:inherit; font-size:1rem; min-height:44px; padding:.55rem .8rem; border:1px solid #8fa2ae; border-radius:4px; background:#fff; color:#102637; cursor:pointer; }
#visitor-map button[aria-pressed=true] { background:#efc84a; border-color:#efc84a; color:#07131d; font-weight:800; }
#visitor-map :is(button,select,a,summary):focus-visible { outline:3px solid #efc84a; outline-offset:3px; }
#visitor-map button:disabled,#visitor-map select:disabled { cursor:wait; opacity:.6; }
#visitor-map .vm-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
#visitor-map #vm-reach { font-size:1.125rem; color:#efc84a; font-weight:800; }
.vm-views { display:flex; gap:.5rem; }
.vm-country-goal { margin-top:1rem; padding:1rem; background:#102c3e; border:1px solid #657986; border-radius:4px; scroll-margin-top:140px; }
.vm-goal-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem; }
#visitor-map .vm-goal-heading h3 { font-size:1.15rem; margin:0; }
.vm-goal-heading strong { font-size:1.65rem; color:#efc84a; }
#vm-country-progress { display:block; width:100%; height:12px; margin:.65rem 0; border:0; border-radius:6px; overflow:hidden; background:#344854; color:#efc84a; accent-color:#efc84a; }
#vm-country-progress::-webkit-progress-bar { background:#344854; }
#vm-country-progress::-webkit-progress-value { background:#efc84a; }
#vm-country-progress::-moz-progress-bar { background:#efc84a; }
.vm-country-lists { display:flex; flex-wrap:wrap; gap:.65rem; }
.vm-country-lists details { flex:1 1 240px; min-width:0; }
.vm-country-lists summary { cursor:pointer; padding:.65rem 0; font-size:1rem; font-weight:700; }
.vm-country-chips { display:flex; flex-wrap:wrap; gap:.4rem; max-height:290px; overflow-y:auto; padding:.25rem; scrollbar-color:#879ca8 #102c3e; }
#visitor-map .vm-country-chips button { font-size:.875rem; padding:.4rem .65rem; background:#173b50; border-color:#879ca8; color:#fff; }
#visitor-map #vm-countries-reached button { border-color:#efc84a; color:#ffe391; }
#visitor-map .vm-country-basis { font-size:.8rem; color:#d1e0e9; }
.vm-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; padding:1rem 0; }
.vm-toolbar label { font-size:1rem; font-weight:700; color:#fff; }
.vm-toolbar select { flex:1; max-width:420px; min-width:0; }
.vm-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,30%); border:1px solid #657986; border-radius:4px; overflow:hidden; }
.vm-canvas { min-width:0; padding:.8rem; background:#06131d; }
#vm-svg { width:100%; height:auto; display:block; min-height:180px; max-height:435px; overflow:visible; }
.vm-region { fill:#344854; stroke:#d8e2e9; stroke-width:.6; vector-effect:non-scaling-stroke; cursor:pointer; }
.vm-region.vm-reached,.vm-dot.vm-reached { fill:#efc84a; }
.vm-region.vm-red,.vm-dot.vm-red { fill:var(--ivdb-blood-red,#eb2929); }
.vm-region.vm-pink,.vm-dot.vm-pink { fill:#ff1493; }
.vm-region.vm-blue,.vm-dot.vm-blue { fill:#0055ff; }
.vm-region[aria-pressed=true],.vm-region:hover,.vm-region:focus-visible { stroke:#fff; stroke-width:2.8; filter:brightness(1.13); outline:none; }
.vm-dot { stroke:#fff; stroke-width:1; cursor:pointer; }
.vm-dot:focus-visible,.vm-dot:hover { stroke-width:3; outline:none; }
#visitor-map #vm-hover { min-height:1.5rem; text-align:center; color:#fff; font-size:.9rem; }
.vm-legend { display:flex; flex-wrap:wrap; gap:.65rem 1rem; padding:.75rem .25rem .25rem; }
.vm-legend span { display:inline-flex; align-items:center; gap:.4rem; color:#f3f6f8; font-size:.875rem; }
.vm-legend i { width:14px; height:14px; flex:0 0 14px; border:1px solid #d8e2e9; border-radius:2px; }
.vm-legend .vm-reached { background:#efc84a; }.vm-legend .vm-unreached { background:#344854; }.vm-legend .vm-red { background:var(--ivdb-blood-red,#eb2929); }.vm-legend .vm-pink { background:#ff1493; }.vm-legend .vm-blue { background:#0055ff; }
#vm-details { min-width:0; padding:1.25rem; background:#102c3e; border-left:1px solid #657986; }
#visitor-map .vm-count { margin:0; font-size:2.4rem; font-weight:800; color:#efc84a; line-height:1.1; }
#visitor-map .vm-caption { margin:.15rem 0 1rem; font-size:.9rem; }
#visitor-map .vm-last { padding-bottom:.8rem; border-bottom:1px solid #657986; font-size:.9rem; }
#visitor-map .vm-places { padding:0; margin:.8rem 0 0; list-style:none; max-height:230px; overflow-y:auto; scrollbar-color:#879ca8 #102c3e; }
#visitor-map .vm-places li { padding:.65rem 0; margin:0; border-bottom:1px solid #466172; color:#fff; font-size:1rem; line-height:1.5; overflow-wrap:anywhere; }
#visitor-map .vm-places li:before { display:none; }
#visitor-map .vm-places strong { display:block; color:#fff; font-size:1rem; }
#visitor-map .vm-places time { display:block; font-size:.875rem; color:#d1e0e9; }
#visitor-map #vm-help { font-size:.875rem; margin:1rem 0 .65rem; }
.vm-footer { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1.25rem; border-top:1px solid #466172; padding-top:.5rem; }
#visitor-map .vm-footer p,#visitor-map .vm-footer a,#visitor-map .vm-footer summary { font-size:.875rem; }
.vm-footer details { flex-basis:100%; }.vm-footer summary { cursor:pointer; width:fit-content; padding:.25rem 0; }
@media(max-width:780px) { #visitor-map { width:calc(100% - 28px); padding:16px; }.vm-layout { grid-template-columns:1fr; }#vm-details { border-left:0; border-top:1px solid #657986; }.vm-toolbar label { flex-basis:100%; }#vm-svg { min-height:0; } }
@media(max-width:420px) { #visitor-map { padding:12px; }.vm-canvas { padding:.5rem; }.vm-views { width:100%; }.vm-views button { flex:1; }.vm-toolbar select { width:100%; flex-basis:100%; max-width:100%; } }
