:root { --text-scale: 1; }
#accessibility-root { font-family: "Heebo", "Rubik", "Noto Sans Hebrew", "Segoe UI", Arial, sans-serif; font-size: calc(14px * var(--text-scale)); line-height: 1.7; color: #10233f; }
#accessibility-root * { box-sizing: border-box; }
#accessibility-root .accessibility-tools { position: fixed; z-index: 1000; inset: auto auto 16px 16px; }
#accessibility-root .accessibility-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 10px 16px; border: 2px solid #10233f; border-radius: 10px; background: #fff; color: #10233f; font: inherit; font-weight: 700; cursor: pointer; box-shadow: 0 3px 16px #10233f20; }
#accessibility-root .accessibility-panel { position: absolute; inset: auto auto calc(100% + 12px) 0; width: min(340px, calc(100vw - 32px)); max-height: calc(100dvh - 140px); overflow-y: auto; overscroll-behavior: contain; padding: 20px; border: 2px solid #10233f; border-radius: 12px; background: #fff; color: #10233f; box-shadow: 0 8px 24px #10233f30; }
#accessibility-root [hidden] { display: none !important; }
#accessibility-root .accessibility-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
#accessibility-root .accessibility-panel-head strong { overflow-wrap: anywhere; font: inherit; font-weight: 700; }
#accessibility-root .accessibility-panel-head button { width: 44px; flex-shrink: 0; padding: 0; font-size: calc(24px * var(--text-scale)); }
#accessibility-root :is(button,select,a) { font: inherit; min-height: 44px; min-width: 44px; color: #10233f; line-height: 1.6; }
#accessibility-root .accessibility-panel :is(button,select,a) { border: 1px solid #64748b; border-radius: 6px; background: #fff; padding: 8px 12px; }
#accessibility-root .accessibility-panel > :is(button,a) { display: flex; align-items: center; width: 100%; text-align: right; margin-top: 10px; text-decoration: none; cursor: pointer; }
#accessibility-root .accessibility-panel .active { background: #10233f; color: #fff; border-color: #10233f; }
#accessibility-root .text-scale-control { display: flex; flex-direction: column; gap: 8px; font-weight: 700; }
#accessibility-root select { width: 100%; }
#accessibility-root p { margin: 16px 0 0; font: inherit; line-height: 1.8; }
#accessibility-root .accessibility-storage-note { font-weight: 700; }
#accessibility-root :is(button,select,a):focus-visible { outline: 3px solid #10233f; outline-offset: 3px; box-shadow: 0 0 0 6px white; }
body { padding-bottom: 88px; }
html.a11y-underline a { text-decoration: underline !important; text-underline-offset: 3px; }
html.a11y-gray :is(main,header,footer,.independent-bar) { filter: grayscale(1); }
html.a11y-contrast { --ink: #000; --muted: #000; --blue: #000; --border: #000; }
html.a11y-contrast :is(.bill,.filter-section,.reading-guide,.notice,.pill,.profile-card,.candidate-banner,.site-header) { background: #fff; color: #000; border-color: #000; }
html.a11y-contrast :is(.bill,.filter-section,.reading-guide,.notice,.profile-card,.candidate-banner,.site-header) :is(p,span,a,small,strong,h1,h2,h3,dt,dd,label,summary) { color: #000 !important; }
html.a11y-contrast .legislation-hero { background: #10233f; }
html.reduce-motion, html.reduce-motion * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
@media (forced-colors: active) { #accessibility-root :is(button,select,a) { forced-color-adjust: auto; } #accessibility-root :is(button,select,a):focus-visible { outline-color: Highlight; } }
@media (prefers-reduced-motion: reduce) { html,html * { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
@media print { #accessibility-root { display: none; } body { padding-bottom: 0; } }
