.a11y-widget { --a11y-safe-left:env(safe-area-inset-left,0px); --a11y-safe-right:env(safe-area-inset-right,0px); --a11y-safe-top:env(safe-area-inset-top,0px); --a11y-safe-bottom:env(safe-area-inset-bottom,0px); position:fixed; z-index:10020; left:max(18px, env(safe-area-inset-left)); bottom:max(26px, env(safe-area-inset-bottom)); font-family:Arial,Helvetica,sans-serif; color:var(--mapka-snow); }
.a11y-widget--positioned { left:0; top:0; right:auto; bottom:auto; }
.a11y-widget--dragging { z-index:10021; }
.a11y-widget--dragging .a11y-launcher { cursor:grabbing; box-shadow:0 4px 18px #0009; }
.a11y-launcher { display:grid; place-items:center; width:58px; height:58px; padding:0; border:3px solid var(--mapka-snow); border-radius:50%; background:var(--mapka-glacier-teal); box-shadow:0 2px 12px var(--mapka-shadow); cursor:grab; touch-action:none; user-select:none; }
.a11y-launcher svg { display:block; width:48px; height:48px; fill:var(--mapka-midnight); }
.a11y-launcher svg circle:first-child { fill:var(--mapka-glacier-teal); stroke:var(--mapka-snow); stroke-width:2; }
.a11y-launcher svg circle:nth-child(2) { fill:var(--mapka-midnight); stroke:none; }
.a11y-launcher svg path { fill:var(--mapka-midnight); }
.a11y-toolbar { position:fixed; left:12px; bottom:84px; width:min(390px,calc(100vw - 24px)); max-height:min(76dvh,680px); overflow-y:auto; overscroll-behavior:contain; border:1px solid var(--mapka-border-strong); border-radius:12px; background:var(--mapka-midnight); color:var(--mapka-snow); box-shadow:0 16px 48px var(--mapka-shadow); }
.a11y-toolbar[hidden] { display:none; }
.a11y-toolbar header { display:flex; align-items:center; justify-content:space-between; min-height:60px; padding:10px 16px 10px 20px; background:var(--mapka-slate); color:var(--mapka-snow); border-bottom:1px solid var(--mapka-border); }
.a11y-toolbar header h2 { margin:0; font-size:clamp(20px,5vw,26px); font-weight:500; line-height:1.2; }
.a11y-toolbar .a11y-close { width:42px; height:42px; border:0; background:transparent; color:var(--mapka-snow); font-size:34px; line-height:1; cursor:pointer; }
.a11y-tool-list { display:grid; }
.a11y-tool-list button { display:flex; align-items:center; width:100%; min-height:62px; gap:14px; padding:10px 16px 10px 20px; border:0; border-bottom:1px solid var(--mapka-border); background:var(--mapka-midnight); color:var(--mapka-snow); text-align:left; font:inherit; font-size:17px; cursor:pointer; }
.a11y-tool-list button:hover { background:var(--mapka-slate); }
.a11y-tool-list button > span:first-child { flex:0 0 28px; width:28px; font-size:23px; font-weight:700; text-align:center; }
.a11y-tool-list button > span:nth-child(2) { flex:1; }
.a11y-tool-list .a11y-switch i { position:relative; flex:0 0 58px; height:30px; border-radius:20px; background:#52636A; transition:background .15s ease; }
.a11y-tool-list .a11y-switch i::after { content:""; position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%; background:var(--mapka-snow); box-shadow:0 1px 3px var(--mapka-shadow); transition:transform .15s ease; }
.a11y-tool-list .a11y-switch[aria-checked="true"] i { background:var(--mapka-glacier-teal); }
.a11y-tool-list .a11y-switch[aria-checked="true"] i::after { background:var(--mapka-midnight); }
.a11y-tool-list .a11y-switch[aria-checked="true"] i::after { transform:translateX(28px); }
.a11y-move-hint { margin:0; padding:10px 20px; border-top:1px solid var(--mapka-border); color:var(--mapka-cool-gray); font-size:13px; line-height:1.4; }
.a11y-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.a11y-feedback { display:block; padding:14px 20px; border-top:1px solid var(--mapka-border); color:var(--mapka-glacier-teal); font-size:16px; text-decoration:none; }
.a11y-feedback:hover { text-decoration:underline; }
.a11y-scale-status { min-height:0; margin:0; padding:0 20px; color:var(--mapka-cool-gray); font-size:13px; }
.a11y-scale-status:not(:empty) { padding-bottom:10px; }
.a11y-widget :focus-visible { outline:3px solid var(--mapka-glacier-teal); outline-offset:2px; }
html.a11y-keyboard :focus { outline:3px solid var(--mapka-glacier-teal)!important; outline-offset:3px!important; }
html.a11y-no-motion *, html.a11y-no-motion *::before, html.a11y-no-motion *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
html.a11y-high-contrast { filter:contrast(1.5); }
html.a11y-readable-font body, html.a11y-readable-font button, html.a11y-readable-font input, html.a11y-readable-font select, html.a11y-readable-font textarea { font-family:Verdana,Arial,sans-serif!important; letter-spacing:.015em; }
html.a11y-mark-headings :is(h1,h2,h3,h4,h5,h6) { outline:3px solid var(--mapka-glacier-teal)!important; outline-offset:3px; }
html.a11y-highlight-controls :is(a,button,[role="button"],[role="switch"]) { outline:3px solid var(--mapka-glacier-teal)!important; outline-offset:2px; text-decoration:underline!important; }
html.a11y-text-scaled :is(p,li,label,button,input,select,textarea,summary,small,a,h1,h2,h3,h4,h5,h6,legend,.network-summary,.data-note,.map-tools,.gps-panel,.ride-dialog,.account-dialog,.analysis-panel) { font-size:calc(1rem * var(--a11y-text-scale,1))!important; }
@media(max-width:600px) { .a11y-widget { left:max(12px,env(safe-area-inset-left)); bottom:max(18px,env(safe-area-inset-bottom)); } .a11y-widget--positioned { left:0; top:0; right:auto; bottom:auto; } .a11y-toolbar { max-height:min(74dvh,650px); } .a11y-tool-list button { min-height:56px; font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .a11y-tool-list .a11y-switch i,.a11y-tool-list .a11y-switch i::after { transition:none; } }
