/* Accessibility tools widget (v1). Button sits above Print and Back to top. */
.a11y-ui{position:fixed;right:16px;bottom:calc(124px + env(safe-area-inset-bottom,0px));z-index:1060;font-family:inherit;line-height:1.35}
.a11y-fab{width:48px;height:48px;border-radius:50%;border:2px solid #fff;background:#4f2f7f;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.a11y-fab:hover,.a11y-fab:focus-visible{background:#6a3fa3}
.a11y-fab:focus-visible,.a11y-ui button:focus-visible{outline:3px solid #ffbf00;outline-offset:2px}
.a11y-fab svg{width:26px;height:26px;fill:#fff}
.a11y-panel{position:absolute;right:0;bottom:58px;width:300px;max-width:calc(100vw - 32px);max-height:calc(100vh - 200px);overflow:auto;background:#fff;color:#1a1a1a;border:1px solid #bbb;border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.3);padding:14px}
.a11y-panel[hidden]{display:none}
.a11y-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.a11y-head strong{font-size:17px}
.a11y-x{border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:#1a1a1a;padding:2px 8px}
.a11y-size{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.a11y-size span{flex:1;font-size:15px}
.a11y-size button{width:44px;height:40px;border:1px solid #4f2f7f;border-radius:6px;background:#fff;color:#4f2f7f;font-weight:700;font-size:16px;cursor:pointer}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-opt{min-height:44px;padding:8px;border:1px solid #bbb;border-radius:6px;background:#f6f4fa;color:#1a1a1a;font-size:14px;font-weight:600;cursor:pointer;text-align:center}
.a11y-opt[aria-pressed=true]{background:#4f2f7f;color:#fff;border-color:#4f2f7f}
.a11y-reset{margin-top:10px;width:100%;min-height:42px;border:1px solid #1a1a1a;border-radius:6px;background:#fff;color:#1a1a1a;font-weight:600;cursor:pointer}
.a11y-note{margin:10px 0 0;font-size:12px;color:#444}
@media print{.a11y-ui{display:none!important}}
/* Effects (applied to html) */
html.a11y-links a:not(.a11y-ui *){text-decoration:underline!important;text-underline-offset:3px}
html.a11y-font body :not(.a11y-ui):not(.a11y-ui *):not(i):not(.fa):not([class*=fa-]):not([class*=icon]){font-family:Verdana,Tahoma,Arial,sans-serif!important;letter-spacing:.02em}
html.a11y-space body :not(.a11y-ui):not(.a11y-ui *){line-height:1.8!important;word-spacing:.12em}
html.a11y-gray{filter:grayscale(1)}
html.a11y-contrast body,html.a11y-contrast body *:not(.a11y-ui):not(.a11y-ui *){background-color:#000!important;background-image:none!important;color:#fff!important;border-color:#fff!important;text-shadow:none!important}
html.a11y-contrast body a:not(.a11y-ui *){color:#ffeb3b!important}
html.a11y-contrast img{filter:none}
html.a11y-pause *,html.a11y-pause *::before,html.a11y-pause *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-focus *:focus{outline:3px solid #ffbf00!important;outline-offset:2px!important}
/* Text size: scales body copy, not layout widths */
html.a11y-z1 body :is(p,li,td,th,dd,dt,label,blockquote,figcaption,input,select,textarea,.btn,.nav-link,summary):not(.a11y-ui *){font-size:calc(1em * 1.15)!important}
html.a11y-z2 body :is(p,li,td,th,dd,dt,label,blockquote,figcaption,input,select,textarea,.btn,.nav-link,summary):not(.a11y-ui *){font-size:calc(1em * 1.3)!important}
html.a11y-z3 body :is(p,li,td,th,dd,dt,label,blockquote,figcaption,input,select,textarea,.btn,.nav-link,summary):not(.a11y-ui *){font-size:calc(1em * 1.5)!important}
html.a11y-contrast .print-btn,html.a11y-contrast .to-top{background-color:#ffeb3b!important;color:#000!important;border-color:#000!important}
html.a11y-contrast .print-btn *{color:#000!important;background:none!important}
html.a11y-contrast .navbar-brand img,html.a11y-contrast img[src*=logo]{background-color:#fff!important;padding:2px}

.a11y-read{display:flex;align-items:center;gap:8px;margin-top:10px}
.a11y-read[hidden]{display:none}
.a11y-read span{flex:1;font-size:15px}
.a11y-read button{min-height:40px;padding:0 10px;border:1px solid #4f2f7f;border-radius:6px;background:#fff;color:#4f2f7f;font-weight:700;font-size:14px;cursor:pointer}
.a11y-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
