#a11y-btn{ position:fixed; left:0; top:calc(50% + 32px); z-index:99998; width:56px; height:54px; border-radius:0 999px 999px 0; padding-inline-start:5px; border:none; background:#1560a2; color:#fff; font-size:1.55rem; cursor:pointer; box-shadow:3px 5px 16px rgba(0,0,0,.22); display:flex; align-items:center; justify-content:center; transition:transform .15s; }
#a11y-btn:hover{ background:#0e4a7e; transform:translateX(3px); } #a11y-btn:focus-visible{ outline:3px solid #ffb627; outline-offset:2px; }
@media(max-width:600px){ #a11y-btn{ width:50px; height:48px; top:calc(50% + 30px); } }
#a11y-panel{ position:fixed; bottom:5rem; inset-inline-end:auto; right:1.1rem; z-index:99999; width:300px; max-width:calc(100vw - 2.2rem); max-height:80vh; overflow-y:auto; background:#fff; color:#1a1310; border:1px solid #ddd; border-radius:14px; box-shadow:0 16px 50px rgba(0,0,0,.28); font-family:'Inter',Arial,sans-serif; }
#a11y-panel[hidden],#a11y-guide[hidden],#a11y-toc[hidden]{ display:none; }
.a11y-head{ display:flex; justify-content:space-between; align-items:center; background:#1560a2; color:#fff; padding:.7rem 1rem; font-weight:800; font-size:.95rem; position:sticky; top:0; }
.a11y-head button{ background:none; border:none; color:#fff; font-size:1rem; cursor:pointer; }
.a11y-body{ padding:.7rem; display:flex; flex-direction:column; gap:.5rem; }
.a11y-sec{ font-size:.75rem; font-weight:800; color:#1560a2; text-transform:uppercase; letter-spacing:.03em; margin:.4rem .2rem -.1rem; }
.a11y-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
.a11y-opt{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; text-align:center; padding:.6rem .3rem; border:1.5px solid #e2dcd8; border-radius:.6rem; background:#f6f4f3; cursor:pointer; font-size:.76rem; font-weight:600; color:#1a1310; min-height:62px; }
.a11y-opt .ai{ font-size:1.15rem; line-height:1; font-weight:800; }
.a11y-opt:hover{ border-color:#1560a2; }
.a11y-opt:focus-visible{ outline:3px solid #ffb627; outline-offset:1px; }
.a11y-opt.on{ background:#1560a2; color:#fff; border-color:#1560a2; }
.a11y-reset{ flex-direction:row; min-height:0; background:#faeceb; color:#861913; border-color:#f3c9c5; padding:.55rem; }
.a11y-statement{ text-align:center; font-size:.82rem; color:#1560a2; text-decoration:none; margin-top:.3rem; font-weight:700; }
#a11y-guide{ position:fixed; inset-inline:0; height:34px; background:rgba(21,96,162,.18); border-top:2px solid #1560a2; border-bottom:2px solid #1560a2; z-index:99990; pointer-events:none; }
#a11y-toc{ position:fixed; bottom:5rem; inset-inline-end:auto; right:1.1rem; z-index:99999; width:300px; max-width:calc(100vw - 2.2rem); max-height:70vh; overflow:auto; background:#fff; border:1px solid #ddd; border-radius:14px; box-shadow:0 16px 50px rgba(0,0,0,.28); font-family:'Inter',Arial,sans-serif; }
.a11y-toc-head{ display:flex; justify-content:space-between; background:#1560a2; color:#fff; padding:.6rem 1rem; font-weight:800; position:sticky; top:0; }
.a11y-toc-head button{ background:none;border:none;color:#fff;cursor:pointer; }
#a11y-toc-list a{ display:block; padding:.5rem .9rem; border-bottom:1px solid #eee; color:#1a1310; text-decoration:none; font-size:.85rem; }
#a11y-toc-list a:hover{ background:#f0f4f8; }
#a11y-toc-list a.h3{ padding-inline-start:1.8rem; color:#555; font-size:.8rem; }
@media print{ #a11y-btn,#a11y-panel,#a11y-guide,#a11y-toc{ display:none !important; } }

/* ── effects ── */
html.a11y-c-contrast{ --bg:#000;--surface:#000;--surface-low:#0b0b0b;--surface-mid:#141414;--surface-high:#1d1d1d;--surface-dim:#222;--text:#fff;--text-mid:#fff;--text-muted:#ffe;--primary:#ffe000;--primary-dark:#ffd000;--primary-lt:#222;--on-primary:#000;--ink:#000;--border:#fff;--border-light:#888;--accent:#33d6ff;--gold:#ffe000;background:#000; }
html.a11y-c-contrast body{ background:#000; }
html.a11y-c-invert{ filter:invert(1) hue-rotate(180deg); } html.a11y-c-invert #a11y-btn,html.a11y-c-invert #a11y-panel,html.a11y-c-invert #a11y-toc{ filter:invert(1) hue-rotate(180deg); }
html.a11y-c-mono{ filter:grayscale(1); }
html.a11y-c-sepia{ filter:sepia(.65); }
html.a11y-links a{ background:#ffe000 !important; color:#000 !important; box-shadow:0 0 0 2px #000; }
html.a11y-underline a{ text-decoration:underline !important; text-underline-offset:2px; }
html.a11y-readable *{ font-family:Arial,'Segoe UI',sans-serif !important; }
html.a11y-noanim *,html.a11y-noanim *::before,html.a11y-noanim *::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
html.a11y-hideimg img,html.a11y-hideimg svg,html.a11y-hideimg picture{ visibility:hidden !important; }
html.a11y-bigcursor, html.a11y-bigcursor *{ cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M5 2l14 9-6 1 4 8-3 1-4-8-5 4z' fill='black' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") 4 2, auto !important; }
html.a11y-kbd a:focus,html.a11y-kbd button:focus,html.a11y-kbd input:focus,html.a11y-kbd select:focus,html.a11y-kbd textarea:focus,html.a11y-kbd [tabindex]:focus{ outline:3px solid #ff6a00 !important; outline-offset:2px !important; }
html.a11y-cognitive *{ font-family:Arial,sans-serif !important; line-height:2 !important; letter-spacing:.5px; }
html.a11y-letter-1 *{letter-spacing:.5px} html.a11y-letter-2 *{letter-spacing:1.5px} html.a11y-letter-3 *{letter-spacing:3px}
html.a11y-word-1 *{word-spacing:4px} html.a11y-word-2 *{word-spacing:8px} html.a11y-word-3 *{word-spacing:14px}
html.a11y-line-1 *{line-height:1.8 !important} html.a11y-line-2 *{line-height:2.2 !important} html.a11y-line-3 *{line-height:2.8 !important}
html.a11y-align-right body{ text-align:right } html.a11y-align-center body{ text-align:center } html.a11y-align-left body{ text-align:left }
