:root{ --dha-primary:#0ea5e9; --dha-font-scale:1; --dha-pos-x:16px; --dha-pos-y:16px; }
.dha-skip-link{ position:absolute; top:-40px; left:10px; padding:.5rem .75rem; background:#000; color:#fff; border-radius:.5rem; z-index:2147483647; }
.dha-skip-link:focus{ top:10px; outline:3px solid #fff; }
.dha-toolbar{ position:fixed; z-index:2147483647; }
.dha-pos-bottom-right{ right:var(--dha-pos-x); bottom:var(--dha-pos-y); }
.dha-pos-bottom-left{ left:var(--dha-pos-x); bottom:var(--dha-pos-y); }
.dha-pos-top-right{ right:var(--dha-pos-x); top:var(--dha-pos-y); }
.dha-pos-top-left{ left:var(--dha-pos-x); top:var(--dha-pos-y); }
.dha-toggle{ width:56px;height:56px; min-width:56px; min-height:56px; border:none;border-radius:14px; background:var(--dha-primary); box-shadow:0 6px 18px rgba(0,0,0,.25); cursor:pointer; display:inline-flex;align-items:center;justify-content:center; }
.dha-toggle:focus{ outline:3px solid #000; outline-offset:2px; }
.dha-icon svg{ width:28px;height:28px; fill:#fff; } .dha-icon img{ width:28px;height:28px; object-fit:contain; }
.dha-panel{ display:none; position:absolute; padding:.6rem; background:#111; color:#fff; border-radius:14px; box-shadow:0 10px 24px rgba(0,0,0,.35); width:min(94vw, 360px); }
.dha-pos-bottom-right .dha-panel{ right:0; bottom:68px; } .dha-pos-bottom-left .dha-panel{ left:0; bottom:68px; } .dha-pos-top-right .dha-panel{ right:0; top:68px; } .dha-pos-top-left .dha-panel{ left:0; top:68px; }
.dha-panel.is-open{ display:block; }
.dha-btn{ display:block; width:100%; padding:.7rem .9rem; margin:.35rem 0; background:#222; color:#fff; border:1px solid #333; border-radius:12px; font-size:1rem; text-align:left; cursor:pointer; }
.dha-btn:focus{ outline:3px solid #fff; } .dha-group{ display:flex; gap:.4rem; } .dha-group .dha-btn{ flex:1; text-align:center; }
html.dha-contrast, body.dha-contrast{ background:#000 !important; color:#fff !important; } .dha-contrast img{ filter:contrast(120%) saturate(120%); } .dha-contrast a{ color:#0ff !important; }
html{ font-size:calc(100% * var(--dha-font-scale)); }
html.dha-underline a, .dha-underline a{ text-decoration:underline !important; }
html.dha-pause *, html.dha-pause *::before, html.dha-pause *::after{ animation:none !important; transition-duration:0s !important; scroll-behavior:auto !important; }
html.dha-readable{ letter-spacing:.02em; word-spacing:.05em; } html.dha-readable *{ font-family:Arial, Helvetica, system-ui, sans-serif !important; line-height:1.6 !important; }
html.dha-links a{ outline:2px dashed var(--dha-primary) !important; background:rgba(255,255,0,.25) !important; }
html.dha-headings h1, html.dha-headings h2, html.dha-headings h3, html.dha-headings h4, html.dha-headings h5, html.dha-headings h6{ background:rgba(0,255,255,.2) !important; outline:2px solid #09f !important; }
html.dha-hideimg img, html.dha-hideimg [role="img"], html.dha-hideimg svg{ visibility:hidden !important; width:0 !important; height:0 !important; overflow:hidden !important; }
html.dha-spacing-light{ letter-spacing:.02em; word-spacing:.05em; line-height:1.6; } html.dha-spacing-medium{ letter-spacing:.04em; word-spacing:.08em; line-height:1.75; } html.dha-spacing-heavy{ letter-spacing:.06em; word-spacing:.12em; line-height:1.9; }
:focus{ outline:3px solid var(--dha-primary); outline-offset:2px; } @media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }