/* Near u accessibility layer (IS 5568 / WCAG 2.0 AA) - self-written, no external services. 2026-10-29 */
:focus-visible{outline:3px solid #ffbf00!important;outline-offset:2px!important;box-shadow:0 0 0 5px #000!important}
.nu-skip{position:fixed;top:-100px;right:8px;z-index:2147483647;background:#000;color:#fff;padding:10px 16px;border-radius:8px;font:700 16px/1.2 Arial,sans-serif;text-decoration:none;border:2px solid #ffbf00}
.nu-skip:focus{top:8px}
.nu-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#nu-a11y-btn{position:fixed;left:0;top:42%;z-index:2147483600;width:44px;height:44px;border:0;border-radius:0 10px 10px 0;background:#1d4ed8;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.35);padding:0}
#nu-a11y-btn svg{width:28px;height:28px;fill:currentColor}
#nu-a11y-panel{position:fixed;left:8px;top:calc(42% + 50px);z-index:2147483601;width:250px;max-width:calc(100vw - 16px);max-height:calc(100vh - 42% - 60px);overflow:auto;background:#fff;color:#111;border:2px solid #1d4ed8;border-radius:12px;padding:12px;font:15px/1.4 Arial,Helvetica,sans-serif;direction:rtl;text-align:right;box-shadow:0 6px 24px rgba(0,0,0,.4)}
#nu-a11y-panel[hidden]{display:none}
#nu-a11y-panel h2{font-size:17px;margin:0 0 8px;color:#111}
#nu-a11y-panel .nu-row{display:flex;gap:6px;margin-bottom:6px}
#nu-a11y-panel button{flex:1;font:inherit;font-size:14px;padding:8px 6px;border:1px solid #1d4ed8;background:#fff;color:#111;border-radius:8px;cursor:pointer;text-align:center}
#nu-a11y-panel button[aria-pressed=true]{background:#1d4ed8;color:#fff}
#nu-a11y-panel .nu-full{display:block;width:100%;margin-bottom:6px}
#nu-a11y-panel a{color:#1d4ed8;text-decoration:underline;display:block;margin-top:6px}
#nu-a11y-panel .nu-x{position:absolute;top:6px;left:6px;flex:none;width:30px;height:30px;padding:0;font-size:18px;line-height:1}
.nu-a11y-foot{text-align:center;margin:12px 0;font-size:14px}
.nu-a11y-foot a{color:inherit;text-decoration:underline}
/* text size: rem-based pages scale via the root size; the app's px screens via zoom (map view excluded) */
html.nu-fs body.nu-page>*:not(#nu-a11y-btn):not(#nu-a11y-panel){zoom:var(--nu-fs,1)}
html.nu-fs #onboard,html.nu-fs #gate,html.nu-fs .view.page,html.nu-fs #sheet,html.nu-fs #card{zoom:var(--nu-fs,1)}
/* high contrast */
html.nu-hc body,html.nu-hc body *:not(#nu-a11y-panel):not(#nu-a11y-panel *):not(svg):not(svg *):not(img):not(video):not(#map):not(#map *):not(.leaflet-container *){background-color:#000!important;background-image:none!important;color:#fff!important;border-color:#fff!important;text-shadow:none!important}
html.nu-hc a:not(#nu-a11y-panel a){color:#ffff00!important}
html.nu-hc button:not(#nu-a11y-panel button),html.nu-hc .btn{border:1px solid #fff!important}
/* highlight links */
html.nu-links a:not(#nu-a11y-panel a){text-decoration:underline!important;outline:2px dashed #ffbf00!important;outline-offset:1px}
/* readable font */
html.nu-font body,html.nu-font body *:not(svg):not(svg *){font-family:Arial,Helvetica,"Segoe UI",sans-serif!important;letter-spacing:.03em!important;word-spacing:.08em!important}
html.nu-font p,html.nu-font li{line-height:1.7!important}
/* stop animations */
html.nu-noanim *,html.nu-noanim *::before,html.nu-noanim *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
