/* One shared reader, reachable at every scroll position. */
.tvj-visual-dock{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:99990;font:400 16px/1.5 Manrope,'Segoe UI',sans-serif;color:#102a42}
#tvj-visual-launcher{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 18px 10px 12px;border:2px solid #fff;border-radius:30px;background:#0753ac;color:#fff;box-shadow:0 5px 22px #06284d40;cursor:pointer;font:700 15px/1.4 Manrope,'Segoe UI',sans-serif;white-space:nowrap;text-transform:none;letter-spacing:normal}
#tvj-visual-launcher:hover{background:#063f83}
#tvj-visual-launcher svg{width:32px;height:32px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#tvj-visual-launcher .tvj-aid-head{fill:currentColor;stroke:none}
#tvj-visual-launcher:focus-visible{outline:3px solid #071e35!important;outline-offset:4px!important;box-shadow:0 0 0 7px #fff!important}
.tvj-visual-hint{position:absolute;bottom:100%;right:0;width:280px;max-width:calc(100vw - 40px);padding:18px 20px 24px;border:1px solid #c3d5e4;border-radius:14px;background:#fff;color:#102a42;box-shadow:0 8px 32px #102a4226;visibility:hidden;opacity:0;pointer-events:none;font:400 15px/1.55 Manrope,'Segoe UI',sans-serif}
.tvj-visual-hint strong,.tvj-visual-hint span,.tvj-visual-hint small{display:block;color:inherit}
.tvj-visual-hint strong{font-size:17px;margin-bottom:7px}.tvj-visual-hint small{margin-top:12px;font-size:13px}
.tvj-visual-hint kbd{border:1px solid #8ba6bc;border-radius:4px;padding:1px 5px;background:#eff6fc;color:#102a42;font:inherit}
.tvj-visual-dock:not(.tvj-hint-dismissed):not(.tvj-aid-open):focus-within .tvj-visual-hint{visibility:visible;opacity:1;pointer-events:auto}
@media(hover:hover){.tvj-visual-dock:not(.tvj-hint-dismissed):not(.tvj-aid-open):hover .tvj-visual-hint{visibility:visible;opacity:1;pointer-events:auto}}
dialog.tvj-visual-dialog{position:fixed;inset:0 20px 0 auto;margin:auto 0;width:min(560px,calc(100% - 40px));max-width:none;height:fit-content;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);padding:0;border:1px solid #b7ccde;border-radius:20px;background:#f3f6f7;color:#102a42;box-shadow:0 18px 80px #061b3b55;overflow:auto;overscroll-behavior:contain}
dialog.tvj-visual-dialog::backdrop{background:#071e3570}
.tvj-visual-dialog .tvj-accessibility{width:100%;position:static;z-index:auto}
.tvj-visual-dialog .tvj-reading-panel{padding:24px 0;border:0}
.tvj-visual-dialog .tvj-access-shell{width:calc(100% - 48px);max-width:none}
.tvj-visual-dialog .tvj-tools-grid{grid-template-columns:minmax(0,1fr);gap:28px}
.tvj-visual-dialog .tvj-tools-heading{align-items:flex-start;gap:16px;margin-bottom:24px}
.tvj-visual-dialog .tvj-tools-heading h2{font:700 24px/1.35 Manrope,'Segoe UI',sans-serif;letter-spacing:-.02em}
.tvj-visual-dialog :is(button,select){max-width:100%}
.tvj-visual-dialog .tvj-accessibility button:not(:disabled):is(:hover,:focus){background:#e8f0f5;color:#102a42}
.tvj-visual-dialog .tvj-accessibility :is(#tvj-speak,button[aria-pressed=true]):not(:disabled):is(:hover,:focus){background:#0753ac;color:#fff}
.tvj-visual-dialog .tvj-accessibility .tvj-reset{color:#234964}
.tvj-visual-dialog .tvj-accessibility .tvj-reset:is(:hover,:focus){background:#e8f0f5;color:#0753ac}
.tvj-visual-dialog .tvj-accessibility p{overflow-wrap:anywhere}
.tvj-visual-dialog .tvj-accessibility :is(label,h2,h3,p){color:#102a42}
.tvj-visual-dialog .tvj-speech-selects{grid-template-columns:minmax(0,1fr)}
.tvj-visual-dialog .tvj-tools-heading button{flex:none}
html.tvj-high-contrast #tvj-visual-launcher{background:#071826!important;color:#fff!important;border-color:#fff!important}
html.tvj-high-contrast .tvj-visual-hint{background:#071826;color:#fff;border:2px solid #fff}
@media(max-width:600px){
 .tvj-visual-dock{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
 #tvj-visual-launcher{min-height:52px;padding:8px 14px 8px 10px;font-size:14px;gap:8px}
 #tvj-visual-launcher svg{width:28px;height:28px}
 dialog.tvj-visual-dialog{inset:12px;margin:auto;width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:16px}
 .tvj-visual-dialog .tvj-access-shell{width:calc(100% - 32px)}
 .tvj-visual-dialog .tvj-tools-heading{gap:10px;flex-wrap:wrap}
 .tvj-visual-dialog .tvj-tools-heading h2{font-size:22px}
 .tvj-visual-dialog .tvj-reading-panel{padding:20px 0}
}
@media(forced-colors:active){#tvj-visual-launcher,.tvj-visual-hint,dialog.tvj-visual-dialog{border:2px solid ButtonText}#tvj-visual-launcher:focus-visible{outline:3px solid Highlight!important}}
@media print{.tvj-visual-dock,.tvj-visual-dialog{display:none!important}}
