#worldmap-container{
    width:100%;
    margin:auto;
    background:white;
    position:relative;
}

#worldmap-container > svg{
    width:100%;
    height:auto;
    cursor:crosshair;
}

/* countries */

.country{
    fill:#d9d9d9;
    stroke:#99b3cd;
    stroke-width:.5;
    /* keep borders a constant, crisp width at every zoom level (so they stay
       visible zoomed out, but don't get thick zoomed in) */
    vector-effect:non-scaling-stroke;
    transition:fill .3s ease;
}

.highlight{
    fill:#33669a;
}

.highlight-hover{
    fill:#8b5cf6;
}

/* non-list country hover — a touch darker than the default grey */

.country-hover{
    fill:#cfcfcf;
}

/* click-to-zoom selection — targeted country stays orange */

.country-selected{
    fill:orange;
}

/* flags */

.flag{
    pointer-events:none;
    transition:opacity .2s;
}

/* tooltip */

#tooltip{
    position:absolute;
    background:white;
    border:0px solid rgba(0,0,0,.15);
    padding: 8px 14px;
    font-size:16px;
    display:none;
    pointer-events:none;
    box-shadow:0 6px 16px rgba(0,0,0,.18);
    border-radius:4px;
    white-space:nowrap;
    align-items:center;
    gap:10px;
    z-index:2;
}

#tooltip img{
    width:24px;
    height:16px;
    object-fit:cover;
    display:inline-block;
    box-shadow:0 0 1px rgba(0,0,0,.4);
    border-radius:1px;
    margin-right:5px;
    position:relative;
    top:-2px;
}

/* map controls — zoom in / out / reset */

.map-controls{
    position:absolute;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    display:flex;
    gap:8px;
    z-index:3;
}

.map-ctrl{
    -webkit-appearance:none;
    appearance:none;
    box-sizing:border-box;
    width:34px;
    height:34px;
    min-width:34px;
    max-width:34px;
    margin:0;
    padding:0;
    border:1px solid #d0d7e2;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:#33669a;
    font-size:22px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 6px rgba(0,0,0,.18);
    transition:background .2s ease, color .2s ease, transform .15s ease;
}

.map-ctrl svg{
    width:15px;
    height:15px;
    display:block;
}

.map-ctrl:hover{
    background:#33669a;
    color:#fff;
    transform:translateY(-1px);
}

.map-ctrl:active{
    transform:translateY(0);
}
