#a11y-toggle { position: fixed; right: 22px; bottom: 22px; z-index: 1000; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #302b2b; color: #fff; box-shadow: 0 6px 22px rgba(0,0,0,.28); cursor: pointer; }
#a11y-toggle svg { width: 29px; height: 29px; }
#a11y-toggle:focus-visible { outline: 3px solid #f5b889; outline-offset: 3px; }
#a11y-panel { position: fixed; inset: 0 0 0 auto; z-index: 1001; width: min(340px, 100vw); overflow-y: auto; padding: 28px 22px; background: #fff; color: #1f1c1b; box-shadow: -10px 0 35px rgba(0,0,0,.25); transform: translateX(100%); transition: transform .25s ease; }
#a11y-panel.open { transform: translateX(0); }
#a11y-panel h2 { margin: 0 0 18px; color: #302b2b; }
.a11y-close { position: absolute; top: 13px; left: 13px; border: 0; background: transparent; color: #111; font-size: 2rem; cursor: pointer; }
.a11y-btn { width: 100%; margin: 0 0 9px; padding: 11px 13px; border: 1px solid #cfc7bf; border-radius: 9px; background: #f7f3ed; color: #1f1c1b; font: inherit; text-align: right; cursor: pointer; }
.a11y-btn:focus-visible, .a11y-close:focus-visible { outline: 3px solid #8d431d; outline-offset: 2px; }
.a11y-report { margin-top: 22px; padding-top: 18px; border-top: 1px solid #ddd; }
html.a11y-readable body, html.a11y-readable body * { font-family: Arial, sans-serif !important; letter-spacing: .03em; }
html.a11y-contrast { filter: contrast(1.35); }
html.a11y-invert { filter: invert(1) hue-rotate(180deg); }
html.a11y-grayscale img { filter: grayscale(1); }
html.a11y-underline a { text-decoration: underline !important; }
html.a11y-no-anim *, html.a11y-no-anim *::before, html.a11y-no-anim *::after { animation-duration: 0ms !important; transition-duration: 0ms !important; scroll-behavior: auto !important; }
@media print { #a11y-toggle, #a11y-panel { display: none !important; } }

