html.a11y-text-1 { font-size: 118.75%; }
html.a11y-text-2 { font-size: 137.5%; }
html.a11y-contrast body { background: #fff; color: #000; }
html.a11y-contrast a { text-decoration: underline; text-underline-offset: 2px; }
html.a11y-contrast * { text-shadow: none !important; }
html.a11y-contrast input,
html.a11y-contrast select,
html.a11y-contrast textarea { border-color: currentColor; }
html.a11y-contrast ::placeholder { opacity: 0.75; }
html.a11y-underline a { text-decoration: underline !important; text-underline-offset: 2px; }
html.a11y-readable body,
html.a11y-readable body *:not(pre):not(code):not(kbd):not(samp) {
font-family: Verdana, Tahoma, "Segoe UI", system-ui, sans-serif !important;
}
html.a11y-readable body { letter-spacing: 0.012em; word-spacing: 0.04em; line-height: 1.75; }
html.a11y-readable h1, html.a11y-readable h2, html.a11y-readable h3,
html.a11y-readable h4, html.a11y-readable h5, html.a11y-readable h6 { letter-spacing: 0; }
html.a11y-reduce-motion { scroll-behavior: auto; }
html.a11y-reduce-motion *, html.a11y-reduce-motion *::before, html.a11y-reduce-motion *::after {
transition-duration: 0.001ms !important;
animation-duration: 0.001ms !important;
animation-iteration-count: 1 !important;
}
html.a11y-focus :focus-visible {
outline: 4px solid var(--a11y-focus-ring, #ffbf00) !important;
outline-offset: 3px !important;
box-shadow: 0 0 0 3px #000 !important;
border-radius: 2px;
}
.a11y-fab {
position: fixed; left: 1rem; bottom: 1rem; z-index: 300;
width: 52px; height: 52px; border-radius: 50%;
background: var(--a11y-accent, #1f2a33);
color: var(--a11y-accent-ink, #fff);
border: 2px solid rgba(255,255,255,0.85);
box-shadow: 0 8px 24px rgba(0,0,0,0.28); cursor: pointer;
display: inline-flex; align-items: center; justify-content: center; padding: 0;
}
.a11y-fab:hover { background: var(--a11y-accent-strong, #0e161d); }
.a11y-fab svg { width: 28px; height: 28px; fill: currentColor; }
.a11y-panel {
position: fixed; left: 1rem; bottom: 4.6rem; z-index: 301;
width: min(20rem, calc(100vw - 2rem));
background: var(--a11y-panel-bg, #fff);
color: var(--a11y-panel-ink, #1d242b);
border-radius: 14px;
box-shadow: 0 18px 50px rgba(0,0,0,0.3);
border: 1px solid var(--a11y-panel-line, #d9dee4);
padding: 1rem 1rem 1.1rem;
font-family: system-ui, sans-serif;
}
.a11y-panel[hidden] { display: none; }
.a11y-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.7rem; }
.a11y-panel-head h2 { font-size: 1.05rem; margin: 0; color: var(--a11y-accent, #1f2a33); font-family: inherit; }
.a11y-close { background: none; border: 0; font-size: 1.5rem; line-height: 1; cursor: pointer; color: inherit; opacity: 0.65; padding: 0.2rem 0.4rem; border-radius: 6px; }
.a11y-close:hover { opacity: 1; }
.a11y-opts { display: grid; gap: 0.45rem; }
.a11y-opt {
display: flex; align-items: center; gap: 0.6rem; width: 100%;
background: color-mix(in srgb, var(--a11y-panel-line, #d9dee4) 32%, var(--a11y-panel-bg, #fff));
border: 2px solid transparent; border-radius: 10px;
padding: 0.6rem 0.75rem; font: inherit; font-weight: 600; color: inherit;
cursor: pointer; text-align: left; min-height: 44px;
}
.a11y-opt:hover { background: color-mix(in srgb, var(--a11y-panel-line, #d9dee4) 55%, var(--a11y-panel-bg, #fff)); }
.a11y-opt[aria-pressed="true"] {
background: var(--a11y-accent, #1f2a33);
color: var(--a11y-accent-ink, #fff);
border-color: var(--a11y-accent-strong, #0e161d);
}
.a11y-opt-state { margin-left: auto; font-size: 0.78rem; font-weight: 700; opacity: 0.75; }
.a11y-panel-foot { margin-top: 0.8rem; display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.a11y-reset { background: none; border: 0; color: var(--a11y-accent, #1f2a33); font: inherit; font-weight: 700; cursor: pointer; text-decoration: underline; padding: 0.3rem; }
.a11y-panel-foot a { font-size: 0.85rem; color: inherit; opacity: 0.8; }
.a11y-fab:focus-visible, .a11y-panel :focus-visible { outline: 3px solid var(--a11y-focus-ring, #ffbf00); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
.a11y-panel { animation: a11y-pop 0.16s ease; }
@keyframes a11y-pop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
@media print { .a11y-fab, .a11y-panel { display: none !important; } }