:root { --access-bg: #fff; --access-fg: #243247; --access-border: #64748b; --access-accent: #5140b8; --access-muted: #45546b; --access-error:#b42336; --access-overlay: rgb(0 0 0 / .55); --access-shadow: 0 8px 30px rgb(0 0 0 / .2); --access-high-bg:#000; --access-high-fg:#fff; --access-high-link:#ffe052; }
:focus-visible { outline: 3px solid var(--access-accent) !important; outline-offset: 4px !important; }
.site-skip { position:fixed; inset-inline-start:12px; top:-200px; z-index:2000; padding:12px; color:var(--access-fg); background:var(--access-bg); border:2px solid var(--access-accent); }
.site-skip:focus { top:10px; }
.site-tools-button { position:fixed; inset-inline-start:20px; bottom:20px; width:52px; height:52px; border-radius:50%; border:2px solid var(--access-bg); background:var(--access-accent); color:var(--access-bg); z-index:150; font-size:26px; box-shadow:var(--access-shadow); cursor:pointer; }
.site-dialog { color:var(--access-fg); background:var(--access-bg); margin:auto; border:2px solid var(--access-border); border-radius:8px; width:min(94vw,440px); max-height:88dvh; overflow:auto; padding:24px; font:1rem/1.7 Rubik,Arial,sans-serif; }
.site-dialog::backdrop { background:var(--access-overlay); }
.site-dialog h2 { font-size:1.35rem; margin:0 0 16px; }
.site-dialog button, .site-cookie button { border:1px solid var(--access-accent); border-radius:6px; color:var(--access-accent); background:var(--access-bg); padding:10px 14px; min-height:44px; font:inherit; cursor:pointer; }
.site-dialog button[aria-pressed=true] { color:var(--access-bg); background:var(--access-accent); }
.site-tool-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }
.site-tool-grid button { min-width:0; white-space:normal; }
.site-dialog a, .site-cookie a { color:var(--access-accent); text-decoration:underline; }
.site-cookie { position:fixed; inset-inline-end:16px; bottom:16px; z-index:140; width:min(530px,calc(100vw - 90px)); padding:16px; background:var(--access-bg); color:var(--access-fg); border:1px solid var(--access-border); border-radius:8px; font:1rem/1.6 Rubik,Arial,sans-serif; box-shadow:var(--access-shadow); max-height:45dvh; overflow:auto; }
.site-cookie h2 { font-size:1.1rem; margin:0; }
.site-cookie-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.site-cookie-actions button { flex:1; }
.site-dialog label { display:block; margin:14px 0; }
.site-dialog input { width:22px; height:22px; vertical-align:middle; margin-inline-end:8px; }
.site-live { position:fixed; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
html.access-links a { text-decoration:underline !important; text-decoration-thickness:2px !important; }
html.access-readable * { font-family:Arial,sans-serif !important; }
html.access-spacing p, html.access-spacing label, html.access-spacing li, html.access-spacing span { line-height:2 !important; }
html.access-monochrome body { filter:grayscale(1); }
html.access-contrast body, html.access-contrast body *:not(svg):not(path):not(img):not(video) { background-color:var(--access-high-bg) !important; color:var(--access-high-fg) !important; border-color:var(--access-high-fg) !important; box-shadow:none !important; }
html.access-contrast a { color:var(--access-high-link) !important; }
html.access-stop *, html.access-stop *::before, html.access-stop *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
html.access-cursor *, html.access-cursor { cursor:url('/vendor/large-cursor.svg') 1 1,auto !important; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media(max-width:600px) { .site-cookie { inset-inline-end:8px; bottom:8px; font-size:.875rem; } .site-tool-grid { gap:6px; } }
