.accessibility-widget{--a11y-w-accent:#0066cc;--a11y-w-accent-dark:#0054a7;--a11y-w-accent-text:#005ab4;--a11y-w-accent-soft:#ebf3fb;--a11y-w-accent-subtle:#deebf8;--a11y-w-accent-muted:#c7ddf4;--a11y-w-accent-border:#73a7dc;--a11y-w-accent-shadow:rgba(0,102,204,.18);--a11y-w-header-from:#0066cc;--a11y-w-header-to:#0054a7;--a11y-w-btn:56px;--a11y-w-btn-icon:28px;--a11y-w-vpos:50;--a11y-w-z:9999;position:fixed;top:max(16px,calc(var(--a11y-w-vpos) * 1vh - 40px));left:0;transform:translateY(-50%);z-index:var(--a11y-w-z);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;max-height:90vh;display:flex;align-items:center}
.accessibility-toggle-btn{position:absolute;left:0;top:0;background:var(--a11y-w-accent);color:#fff;border:none;border-radius:0 10px 10px 0;padding:16px 14px;cursor:pointer;box-shadow:2px 2px 10px #00000040;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:var(--a11y-w-btn);min-height:var(--a11y-w-btn)}
.accessibility-toggle-btn:hover{background:var(--a11y-w-accent-dark);transform:translate(3px)}
.accessibility-toggle-btn:focus{outline:3px solid #ffbf47;outline-offset:2px}
.accessibility-toggle-btn svg{width:var(--a11y-w-btn-icon);height:var(--a11y-w-btn-icon)}
.accessibility-panel{position:absolute;left:0;top:calc((50 - var(--a11y-w-vpos)) * 1vh);transform:translate(-100%,-50%);background:#f4f6fb;border-radius:0 8px 8px 0;box-shadow:4px 0 16px #00000026;width:300px;max-height:75vh;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease}
.accessibility-panel.open{transform:translateY(-50%);animation:slideInFromLeft .3s ease}
.accessibility-header{background:linear-gradient(to right,var(--a11y-w-header-from),var(--a11y-w-header-to));color:#fff;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;border-radius:0 8px 0 0;flex-shrink:0}
.accessibility-header h3{margin:0;font-size:16px;font-weight:600}
.accessibility-close-btn{background:transparent;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s;min-width:32px;min-height:32px}
.accessibility-close-btn:hover{background:#fff3}
.accessibility-close-btn:focus{outline:2px solid #ffbf47;outline-offset:2px}
.accessibility-close-btn svg{width:20px;height:20px}
.accessibility-content{padding:16px;overflow-y:auto;flex:1;min-height:0}
.a11y-category{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 1px 3px #0000000f}
.a11y-category:last-child{margin-bottom:0;background:transparent;box-shadow:none;padding:0}
.a11y-category-title{margin:0 0 14px;font-size:12px;font-weight:700;color:#4b5563;text-transform:uppercase;letter-spacing:.6px}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.a11y-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:10px;cursor:pointer;transition:all .2s ease;min-height:90px}
.a11y-card:hover{border-color:var(--a11y-w-accent-border);box-shadow:0 2px 8px var(--a11y-w-accent-shadow)}
.a11y-card:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.a11y-card.active,.a11y-card.active:hover{border-color:var(--a11y-w-accent);background:#f0f7ff;box-shadow:inset 0 0 0 1px var(--a11y-w-accent)}
.a11y-card-top{display:flex;align-items:center;justify-content:space-between;width:100%}
.a11y-card-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--a11y-w-accent-subtle);color:var(--a11y-w-accent-text);flex-shrink:0}
.a11y-card.active .a11y-card-icon{background:var(--a11y-w-accent);color:#fff}
.a11y-card-icon svg{width:20px;height:20px}
.a11y-card-label{font-size:12px;font-weight:600;color:#1f2937;line-height:1.3}
.a11y-card-desc{font-size:10px;color:#6b7280;line-height:1.35}
.a11y-switch{position:relative;width:38px;height:22px;border-radius:999px;background:#d1d5db;transition:background .2s ease;flex-shrink:0}
.a11y-switch.on{background:var(--a11y-w-accent)}
.a11y-switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .2s ease}
.a11y-switch.on .a11y-switch-knob{transform:translate(16px)}
.a11y-fontsize{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:12px;margin-bottom:12px}
.a11y-fontsize-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1f2937;margin-bottom:12px}
.a11y-fontsize-head svg{width:18px;height:18px}
.a11y-fontsize-control{display:flex;align-items:center;justify-content:space-between;gap:10px}
.a11y-fontsize-value{font-size:18px;font-weight:700;color:#1f2937}
.a11y-step-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:none;background:var(--a11y-w-accent-subtle);color:var(--a11y-w-accent-text);cursor:pointer;transition:background .2s ease}
.a11y-step-btn:hover:not(:disabled){background:var(--a11y-w-accent-muted)}
.a11y-step-btn:disabled{opacity:.4;cursor:not-allowed}
.a11y-step-btn:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.a11y-step-btn svg{width:20px;height:20px}
.a11y-tts-hint{margin-top:12px;padding:10px 12px;background:var(--a11y-w-accent-soft);border-radius:8px;font-size:12px;color:#374151;display:flex;flex-direction:column;gap:6px}
.a11y-tts-loading{color:#d97706}
.a11y-tts-rate{display:flex;flex-direction:column;gap:6px}
.a11y-tts-rate-label{font-size:12px;font-weight:600;color:#374151}
.a11y-tts-rate-options{display:flex;gap:6px}
.a11y-rate-btn{flex:1;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 0;font-size:12px;font-weight:600;color:#374151;cursor:pointer;transition:all .15s ease}
.a11y-rate-btn:hover{border-color:var(--a11y-w-accent);color:var(--a11y-w-accent-text)}
.a11y-rate-btn.active{background:var(--a11y-w-accent);border-color:var(--a11y-w-accent);color:#fff}
.a11y-rate-btn.active:hover{background:var(--a11y-w-accent-dark);border-color:var(--a11y-w-accent-dark);color:#fff}
.a11y-stop-btn{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:var(--a11y-w-accent);color:#fff;border:none;border-radius:6px;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer}
.a11y-stop-btn:hover{background:var(--a11y-w-accent-dark)}
.a11y-stop-btn:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.a11y-stop-btn svg{width:16px;height:16px}
.accessibility-reset-btn{width:100%;background:#dc3545;border:none;border-radius:10px;padding:14px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px}
.accessibility-reset-btn:hover{background:#c82333}
.accessibility-reset-btn:focus{outline:3px solid #ffbf47;outline-offset:2px}
.accessibility-reset-btn svg{width:18px;height:18px}
.accessibility-content::-webkit-scrollbar{width:6px}
.accessibility-content::-webkit-scrollbar-track{background:#f1f1f1}
.accessibility-content::-webkit-scrollbar-thumb{background:#888;border-radius:3px}
.accessibility-content::-webkit-scrollbar-thumb:hover{background:#555}
@keyframes slideInFromLeft{0%{transform:translate(-100%,-50%)}to{transform:translateY(-50%)}}
.accessibility-widget[data-position=right]{left:auto;right:0}
.accessibility-widget[data-position=right] .accessibility-toggle-btn{left:auto;right:0;border-radius:10px 0 0 10px}
.accessibility-widget[data-position=right] .accessibility-toggle-btn:hover{transform:translate(-3px)}
.accessibility-widget[data-position=right] .accessibility-panel{left:auto;right:0;transform:translate(100%,-50%);border-radius:8px 0 0 8px}
.accessibility-widget[data-position=right] .accessibility-panel.open{transform:translateY(-50%)}
@media print{.accessibility-widget{display:none!important}}
@media(max-width:480px){
.accessibility-widget{--a11y-w-btn:48px;--a11y-w-btn-icon:22px}
.accessibility-toggle-btn{padding:12px 10px}
.accessibility-panel{width:88vw;max-width:280px;max-height:70vh}
}
html.accessibility-high-contrast body{background:#000!important}
html.accessibility-high-contrast #layout-wrapper{background:#000!important;color:#fff!important}
html.accessibility-high-contrast #layout-wrapper *{background-color:transparent!important;color:#fff!important}
html.accessibility-high-contrast #layout-wrapper a{color:#ff0!important;font-weight:600!important}
html.accessibility-high-contrast #layout-wrapper a:hover{color:#ff0!important;text-decoration:underline!important;background:#333!important}
html.accessibility-high-contrast #layout-wrapper button,html.accessibility-high-contrast #layout-wrapper input,html.accessibility-high-contrast #layout-wrapper select,html.accessibility-high-contrast #layout-wrapper textarea{background:#333!important;color:#fff!important;border:2px solid #fff!important}
html.accessibility-high-contrast #layout-wrapper h1,html.accessibility-high-contrast #layout-wrapper h2,html.accessibility-high-contrast #layout-wrapper h3,html.accessibility-high-contrast #layout-wrapper h4,html.accessibility-high-contrast #layout-wrapper h5,html.accessibility-high-contrast #layout-wrapper h6{color:#ff0!important;font-weight:700!important}
html.accessibility-high-contrast #layout-wrapper img{opacity:.9}
html.accessibility-grayscale #layout-wrapper{filter:grayscale(100%)!important}
html.accessibility-negative #layout-wrapper{filter:invert(1) hue-rotate(180deg)!important}
html.accessibility-negative #layout-wrapper img,html.accessibility-negative #layout-wrapper video,html.accessibility-negative #layout-wrapper picture{filter:invert(1) hue-rotate(180deg)!important}
html.accessibility-underline-links #layout-wrapper a{text-decoration:underline!important;text-underline-offset:2px!important;font-weight:700!important;color:#000!important;background-color:#ffe100!important;box-shadow:0 0 0 2px #ffe100!important;border-radius:2px!important}
html.accessibility-underline-links #layout-wrapper a:hover{text-decoration:underline!important;background-color:#ffd000!important;box-shadow:0 0 0 2px #ffd000!important}
html.accessibility-readable-font #layout-wrapper,html.accessibility-readable-font #layout-wrapper *{font-family:Arial,Helvetica,sans-serif!important;letter-spacing:.05em!important;line-height:1.6!important}
html.accessibility-readable-font #layout-wrapper p{margin-bottom:1.2em!important}
html.accessibility-readable-font #layout-wrapper li{margin-bottom:.5em!important}
html.accessibility-light-background body{background:#fff!important;color:#1a1a1a!important}
html.accessibility-light-background #layout-wrapper{background:#fff!important;color:#1a1a1a!important}
html.accessibility-light-background #layout-wrapper a{color:#06c!important}
html.accessibility-text-to-speech #layout-wrapper *::-moz-selection{background-color:#ffeb3b!important;color:#000!important}
html.accessibility-text-to-speech #layout-wrapper *::selection{background-color:#ffeb3b!important;color:#000!important}
html.accessibility-text-to-speech #layout-wrapper p,html.accessibility-text-to-speech #layout-wrapper h1,html.accessibility-text-to-speech #layout-wrapper h2,html.accessibility-text-to-speech #layout-wrapper h3,html.accessibility-text-to-speech #layout-wrapper h4,html.accessibility-text-to-speech #layout-wrapper h5,html.accessibility-text-to-speech #layout-wrapper h6,html.accessibility-text-to-speech #layout-wrapper li,html.accessibility-text-to-speech #layout-wrapper a,html.accessibility-text-to-speech #layout-wrapper button{cursor:pointer}
html.accessibility-text-to-speech #layout-wrapper p:hover,html.accessibility-text-to-speech #layout-wrapper h1:hover,html.accessibility-text-to-speech #layout-wrapper h2:hover,html.accessibility-text-to-speech #layout-wrapper h3:hover,html.accessibility-text-to-speech #layout-wrapper h4:hover,html.accessibility-text-to-speech #layout-wrapper h5:hover,html.accessibility-text-to-speech #layout-wrapper h6:hover,html.accessibility-text-to-speech #layout-wrapper li:hover{background-color:#2196f31a!important;outline:2px dashed #2196f3;outline-offset:2px}
html.accessibility-big-cursor #layout-wrapper{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><path fill='white' stroke='black' stroke-width='2' d='M4 4 L4 28 L12 20 L16 28 L20 26 L16 18 L28 18 Z'/></svg>') 4 4,auto!important}
html.accessibility-big-cursor #layout-wrapper a,html.accessibility-big-cursor #layout-wrapper button,html.accessibility-big-cursor #layout-wrapper input,html.accessibility-big-cursor #layout-wrapper select,html.accessibility-big-cursor #layout-wrapper textarea{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><circle cx='16' cy='16' r='12' fill='white' stroke='black' stroke-width='2'/><circle cx='16' cy='16' r='6' fill='black'/></svg>') 16 16,pointer!important}
html.accessibility-highlight-headings #layout-wrapper h1,html.accessibility-highlight-headings #layout-wrapper h2,html.accessibility-highlight-headings #layout-wrapper h3,html.accessibility-highlight-headings #layout-wrapper h4,html.accessibility-highlight-headings #layout-wrapper h5,html.accessibility-highlight-headings #layout-wrapper h6{background:linear-gradient(90deg,#ffeb3b 0%,transparent 100%)!important;padding:8px 12px!important;border-left:4px solid #ff9800!important;margin:16px 0!important;box-shadow:0 2px 4px #0000001a!important}
html.accessibility-highlight-headings #layout-wrapper h1{border-left-color:#f44336!important;font-size:2em!important}
html.accessibility-highlight-headings #layout-wrapper h2{border-left-color:#ff5722!important;font-size:1.75em!important}
html.accessibility-highlight-headings #layout-wrapper h3{border-left-color:#ff9800!important;font-size:1.5em!important}
html.accessibility-highlight-headings #layout-wrapper h4{border-left-color:#ffc107!important;font-size:1.25em!important}
html.accessibility-highlight-headings #layout-wrapper h5{border-left-color:#ffeb3b!important}
html.accessibility-highlight-headings #layout-wrapper h6{border-left-color:#cddc39!important}
html.accessibility-bold-text #layout-wrapper,html.accessibility-bold-text #layout-wrapper p,html.accessibility-bold-text #layout-wrapper li,html.accessibility-bold-text #layout-wrapper a,html.accessibility-bold-text #layout-wrapper span,html.accessibility-bold-text #layout-wrapper h1,html.accessibility-bold-text #layout-wrapper h2,html.accessibility-bold-text #layout-wrapper h3,html.accessibility-bold-text #layout-wrapper h4,html.accessibility-bold-text #layout-wrapper h5,html.accessibility-bold-text #layout-wrapper h6{font-weight:700!important}
html.accessibility-line-height #layout-wrapper p,html.accessibility-line-height #layout-wrapper li,html.accessibility-line-height #layout-wrapper span,html.accessibility-line-height #layout-wrapper div,html.accessibility-line-height #layout-wrapper h1,html.accessibility-line-height #layout-wrapper h2,html.accessibility-line-height #layout-wrapper h3,html.accessibility-line-height #layout-wrapper h4,html.accessibility-line-height #layout-wrapper h5,html.accessibility-line-height #layout-wrapper h6{line-height:2!important}
html.accessibility-letter-spacing #layout-wrapper p,html.accessibility-letter-spacing #layout-wrapper li,html.accessibility-letter-spacing #layout-wrapper span,html.accessibility-letter-spacing #layout-wrapper a,html.accessibility-letter-spacing #layout-wrapper h1,html.accessibility-letter-spacing #layout-wrapper h2,html.accessibility-letter-spacing #layout-wrapper h3,html.accessibility-letter-spacing #layout-wrapper h4,html.accessibility-letter-spacing #layout-wrapper h5,html.accessibility-letter-spacing #layout-wrapper h6{letter-spacing:.12em!important;word-spacing:.16em!important}
html.accessibility-stop-animations #layout-wrapper *,html.accessibility-stop-animations #layout-wrapper *::before,html.accessibility-stop-animations #layout-wrapper *::after{animation-play-state:paused!important;animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.accessibility-stop-animations #layout-wrapper .accessibility-widget,html.accessibility-stop-animations #layout-wrapper .accessibility-widget *{transition:revert!important}
.accessibility-reading-guide-bar{position:fixed;left:0;width:100%;height:40px;transform:translateY(-50%);background:#ffeb3b47;border-top:2px solid rgba(255,152,0,.9);border-bottom:2px solid rgba(255,152,0,.9);pointer-events:none;z-index:9998;transition:top .03s linear}
.accessibility-widget,.accessibility-widget *{filter:none!important}
.accessibility-widget .accessibility-panel h1,.accessibility-widget .accessibility-panel h2,.accessibility-widget .accessibility-panel h3,.accessibility-widget .accessibility-panel h4,.accessibility-widget .accessibility-panel h5,.accessibility-widget .accessibility-panel h6{background:none!important;border-left:none!important;box-shadow:none!important}
.accessibility-widget .accessibility-header h3{color:#fff!important;margin:0!important;padding:0!important;font-size:16px!important}
.accessibility-widget .a11y-category-title{color:#4b5563!important;margin:0 0 14px!important;padding:0!important;font-size:12px!important}
.accessibility-widget .a11y-card,.accessibility-widget .a11y-card:hover{background:#fff!important;border:1.5px solid #e5e7eb!important}
.accessibility-widget .a11y-card.active,.accessibility-widget .a11y-card.active:hover{background:#f0f7ff!important;border:1.5px solid var(--a11y-w-accent,#0066cc)!important}
.accessibility-widget .a11y-card-label{color:#1f2937!important}
.accessibility-widget .a11y-card-desc{color:#6b7280!important}
.accessibility-widget .a11y-step-btn,.accessibility-widget .a11y-step-btn:hover{background:#eef2ff!important;color:var(--a11y-w-accent,#0066cc)!important;border:none!important}
.accessibility-widget .accessibility-toggle-btn,.accessibility-widget .accessibility-toggle-btn:hover{background:var(--a11y-w-accent,#0066cc)!important;color:#fff!important;border:none!important}
.accessibility-widget .accessibility-close-btn,.accessibility-widget .accessibility-close-btn:hover{background:transparent!important;color:#fff!important;border:none!important}
.accessibility-widget .accessibility-reset-btn,.accessibility-widget .accessibility-reset-btn:hover{background:#dc3545!important;color:#fff!important;border:none!important}
.accessibility-widget .a11y-stop-btn,.accessibility-widget .a11y-stop-btn:hover{background:var(--a11y-w-accent,#0066cc)!important;color:#fff!important;border:none!important}
