.map-a11y-root {
    position: fixed;
    
    
    z-index: 999999;
    font: normal normal 16px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
.map-a11y-button {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    box-shadow: 0 6px 20px rgba(0,0,0,.25);
    cursor: pointer;
}
.map-a11y-button:focus-visible { outline: 3px solid #4c9ffe; outline-offset: 2px; }
.map-a11y-panel {
    position: absolute;
    min-width: 260px;
    max-width: min(90vw, 340px);
    background: #fff;
    color: #111;
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
    padding: 12px;
}
/* Panel positions: open inward from the chosen corner */
.map-a11y-root.pos-br .map-a11y-panel { right: 0; bottom: 56px; }
.map-a11y-root.pos-bl .map-a11y-panel { left: 0; bottom: 56px; }
.map-a11y-root.pos-tr .map-a11y-panel { right: 0; top: 56px; }
.map-a11y-root.pos-tl .map-a11y-panel { left: 0; top: 56px; }

@media (prefers-color-scheme: dark) {
    .map-a11y-panel {
    position: absolute;
    min-width: 260px;
    max-width: min(90vw, 340px);
    background: #fff;
    color: #111;
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
    padding: 12px;
}
/* Panel positions: open inward from the chosen corner */
.map-a11y-root.pos-br .map-a11y-panel { right: 0; bottom: 56px; }
.map-a11y-root.pos-bl .map-a11y-panel { left: 0; bottom: 56px; }
.map-a11y-root.pos-tr .map-a11y-panel { right: 0; top: 56px; }
.map-a11y-root.pos-tl .map-a11y-panel { left: 0; top: 56px; }

}
.map-a11y-group { margin-bottom: 10px; }
.map-a11y-row { display: flex; gap: 8px; margin-top: 6px; }
.map-a11y-control {
    all: unset;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid #d0d0d0;
    background: #f7f7f7;
    color: inherit;
    cursor: pointer;
    text-align: center;
    min-width: 42px;
}
.map-a11y-control:focus-visible { outline: 3px solid #4c9ffe; outline-offset: 2px; }
.map-a11y-note { margin: 8px 2px 0; font-size: 12px; opacity: .8; }
.map-a11y-noscript { margin-top: 8px; padding: 6px; background: #fffbcc; border: 1px solid #ffd324; }

/* Mode classes */
html.map-a11y--hide-images img,
html.map-a11y--hide-images picture,
html.map-a11y--hide-images svg image,
html.map-a11y--hide-images video {
    visibility: hidden !important;
}
html.map-a11y--hide-images [style*="background"],
html.map-a11y--hide-images *[class*="bg-"] {
    background-image: none !important;
}
html.map-a11y--high-contrast,
html.map-a11y--high-contrast body,
html.map-a11y--high-contrast *:not(svg):not(img):not(video) {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
html.map-a11y--high-contrast a,
html.map-a11y--high-contrast a * {
    color: #0bf !important;
    text-decoration: underline !important;
}
html { --map-a11y-font-scale: 1; }
html.map-a11y--font { font-size: calc(100% * var(--map-a11y-font-scale)); }
html.map-a11y--font p,
html.map-a11y--font li,
html.map-a11y--font a,
html.map-a11y--font span,
html.map-a11y--font button,
html.map-a11y--font input,
html.map-a11y--font textarea,
html.map-a11y--font label,
html.map-a11y--font small,
html.map-a11y--font table,
html.map-a11y--font td,
html.map-a11y--font th,
html.map-a11y--font h1,
html.map-a11y--font h2,
html.map-a11y--font h3,
html.map-a11y--font h4,
html.map-a11y--font h5,
html.map-a11y--font h6 {
    font-size: max(1em, calc(1em * var(--map-a11y-font-scale))) !important;
}
html.map-a11y--high-contrast .map-a11y-panel,
html.map-a11y--high-contrast .map-a11y-button {
    background: #111 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: 0 10px 30px rgba(255,255,255,.2) !important;
}

/* Positioning helpers */
.map-a11y-root.pos-br { right: 16px; bottom: 16px; left: auto; top: auto; }
.map-a11y-root.pos-bl { left: 16px; bottom: 16px; right: auto; top: auto; }
.map-a11y-root.pos-tr { right: 16px; top: 16px; left: auto; bottom: auto; }
.map-a11y-root.pos-tl { left: 16px; top: 16px; right: auto; bottom: auto; }
