{"version":3,"sources":["../../src/components/AccessibilityWidget/accessibility.css"],"sourcesContent":["/*\n * Estilos do widget de acessibilidade. As classes são aplicadas no\n * `<html>` (documentElement) pelo hook `useA11yPreferences` e usam\n * `!important` quando precisam vencer estilos do app consumidor —\n * acessibilidade é uma camada que sempre deve prevalecer.\n *\n * O próprio widget (botão flutuante e painel) NUNCA é afetado por\n * essas classes. Tudo que ele renderiza fica dentro de\n * `.a11y-widget-root`, que neutraliza filtros e overrides.\n */\n\n/* ---------- Contraste ---------- */\n\nhtml.a11y-contrast-high {\n  filter: contrast(1.6) brightness(1.05);\n}\n\nhtml.a11y-contrast-inverted {\n  filter: invert(1) hue-rotate(180deg);\n}\n\n/* Imagens, vídeos e iframes ficam estranhos quando invertidos —\n * desfaz para esses elementos. */\nhtml.a11y-contrast-inverted img,\nhtml.a11y-contrast-inverted video,\nhtml.a11y-contrast-inverted iframe,\nhtml.a11y-contrast-inverted svg image,\nhtml.a11y-contrast-inverted [data-a11y-preserve-color] {\n  filter: invert(1) hue-rotate(180deg);\n}\n\n/* ---------- Daltonismo ----------\n *\n * Aplica filtros SVG (definidos pelo componente ColorBlindFilters)\n * para remapear cores e ajudar usuários com cada tipo de\n * discromatopsia. Quando combinado com contraste invertido ou\n * saturação, o estilo mais específico (na seção \"Saturação\" abaixo)\n * sobrescreve este — comportamento esperado, daltonismo é mutuamente\n * exclusivo na prática.\n */\n\nhtml.a11y-cb-protanopia {\n  filter: url('#a11y-cb-protanopia');\n}\n\nhtml.a11y-cb-deuteranopia {\n  filter: url('#a11y-cb-deuteranopia');\n}\n\nhtml.a11y-cb-tritanopia {\n  filter: url('#a11y-cb-tritanopia');\n}\n\n/* ---------- Saturação ---------- */\n\nhtml.a11y-saturation-grayscale {\n  filter: grayscale(1);\n}\n\nhtml.a11y-saturation-low {\n  filter: saturate(0.5);\n}\n\n/* Quando o usuário combina contraste e saturação, aplicamos os dois\n * filtros — o `filter` aceita múltiplas funções. */\nhtml.a11y-contrast-high.a11y-saturation-grayscale {\n  filter: contrast(1.6) brightness(1.05) grayscale(1);\n}\nhtml.a11y-contrast-high.a11y-saturation-low {\n  filter: contrast(1.6) brightness(1.05) saturate(0.5);\n}\nhtml.a11y-contrast-inverted.a11y-saturation-grayscale {\n  filter: invert(1) hue-rotate(180deg) grayscale(1);\n}\nhtml.a11y-contrast-inverted.a11y-saturation-low {\n  filter: invert(1) hue-rotate(180deg) saturate(0.5);\n}\n\n/* ---------- Tamanho de fonte ----------\n *\n * Em vez de mexer no font-size de cada elemento (frágil), aumentamos\n * o `font-size` raiz. Componentes que usam `rem` escalam junto. Para\n * elementos que ainda usam `px`, aplicamos um `zoom` leve como reforço\n * — webkit/blink suportam, e em Firefox o efeito é parcial mas\n * aceitável (o usuário ainda enxerga o texto maior pelo rem).\n */\n\nhtml.a11y-font-1 {\n  font-size: 112.5% !important; /* 18px se base = 16px */\n}\nhtml.a11y-font-2 {\n  font-size: 125% !important; /* 20px */\n}\nhtml.a11y-font-3 {\n  font-size: 137.5% !important; /* 22px */\n}\n\n/* ---------- Espaçamento de letras ---------- */\n\nhtml.a11y-letter-spacing-1 body {\n  letter-spacing: 0.05em !important;\n}\nhtml.a11y-letter-spacing-2 body {\n  letter-spacing: 0.1em !important;\n}\nhtml.a11y-letter-spacing-3 body {\n  letter-spacing: 0.15em !important;\n}\n\n/* ---------- Espaçamento entre linhas ---------- */\n\nhtml.a11y-line-spacing-1 body,\nhtml.a11y-line-spacing-1 body * {\n  line-height: 1.6 !important;\n}\nhtml.a11y-line-spacing-2 body,\nhtml.a11y-line-spacing-2 body * {\n  line-height: 1.8 !important;\n}\nhtml.a11y-line-spacing-3 body,\nhtml.a11y-line-spacing-3 body * {\n  line-height: 2.1 !important;\n}\n\n/* ---------- Destaque de links e botões ----------\n *\n * Adiciona contorno e sublinhado em todos os elementos interativos\n * para facilitar identificação. Usa amarelo de alta visibilidade.\n */\n\nhtml.a11y-highlight-links a,\nhtml.a11y-highlight-links button,\nhtml.a11y-highlight-links [role='button'],\nhtml.a11y-highlight-links [role='link'] {\n  outline: 2px solid #ffeb3b !important;\n  outline-offset: 2px !important;\n}\n\nhtml.a11y-highlight-links a {\n  text-decoration: underline !important;\n  text-decoration-thickness: 2px !important;\n  text-underline-offset: 2px !important;\n}\n\n/* ---------- Pausar animações ---------- */\n\nhtml.a11y-no-animations *,\nhtml.a11y-no-animations *::before,\nhtml.a11y-no-animations *::after {\n  animation-duration: 0.001ms !important;\n  animation-iteration-count: 1 !important;\n  transition-duration: 0.001ms !important;\n  scroll-behavior: auto !important;\n}\n\n/* ---------- Fonte para dislexia ----------\n *\n * Aplica uma stack de fontes com OpenDyslexic primeiro (caso o app\n * consumidor a tenha carregado), com Comic Sans MS como fallback —\n * disponível em quase todos os SOs e recomendada por orgãos como a\n * British Dyslexia Association como fonte de leitura acessível.\n */\n\nhtml.a11y-dyslexia-font,\nhtml.a11y-dyslexia-font body,\nhtml.a11y-dyslexia-font body * {\n  font-family:\n    'OpenDyslexic', 'Comic Sans MS', 'Atkinson Hyperlegible', Verdana,\n    sans-serif !important;\n}\n\n/* ---------- Integração com VLibras ----------\n *\n * Esconde o botão de acesso nativo do widget VLibras (gov.br) — quem\n * controla o toggle do painel é o nosso `LibrasFab`, que delega o\n * click. Sem isso, dois ícones flutuantes ficam empilhados na lateral\n * direita causando confusão visual. O botão segue no DOM (precisamos\n * disparar click programático nele para abrir/fechar), apenas\n * invisível para o usuário.\n */\n\n#a11y-vlibras-wrapper [vw-access-button] {\n  display: none !important;\n}\n\n/* ---------- Destaque do elemento sendo lido (TTS) ----------\n *\n * Aplicado pelo TTSController enquanto o texto do elemento está sendo\n * falado pelo leitor. Outline em amarelo para alta visibilidade,\n * combinando com o destaque de links já usado pelo widget.\n */\n\n.a11y-tts-target {\n  outline: 3px solid #facc15 !important;\n  outline-offset: 2px !important;\n  background-color: rgba(255, 235, 59, 0.18) !important;\n  transition: outline-color 100ms ease;\n}\n\n/* ---------- Cursor aumentado ----------\n *\n * Cursor SVG inline (32x32) com seta + contorno preto para alto contraste.\n * Inline data URI para evitar dependência de asset externo.\n */\n\nhtml.a11y-big-cursor,\nhtml.a11y-big-cursor * {\n  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 d='M2 2 L2 26 L9 19 L13 28 L17 26 L13 17 L22 17 Z' fill='white' stroke='black' stroke-width='2' stroke-linejoin='round'/></svg>\") 2 2, auto !important;\n}\n\nhtml.a11y-big-cursor a,\nhtml.a11y-big-cursor button,\nhtml.a11y-big-cursor [role='button'],\nhtml.a11y-big-cursor input,\nhtml.a11y-big-cursor select,\nhtml.a11y-big-cursor textarea {\n  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 d='M12 2 L12 18 L8 14 L8 22 L16 30 L24 22 L24 14 L20 18 L20 2 Z' fill='white' stroke='black' stroke-width='2' stroke-linejoin='round'/></svg>\") 16 4, pointer !important;\n}\n\n/* ---------- Proteção do próprio widget ----------\n *\n * Reverte os filtros aplicados no `<html>` para que o widget permaneça\n * legível mesmo com inversão/escala de cinza ativos. Aplicado direto\n * nos elementos do widget (FAB e painel) — NUNCA num wrapper, porque\n * `filter` em ancestral muda o containing block dos descendentes\n * `position: fixed` e desloca o painel da viewport.\n */\n\nhtml.a11y-contrast-inverted .a11y-widget-shield {\n  filter: invert(1) hue-rotate(180deg) !important;\n}\n\n/*\n * Não há shield para saturação/escala de cinza: filtros descendentes não\n * conseguem desfazer filtros do ancestral em CSS (`grayscale(0)` / `saturate(1)`\n * no widget seriam aplicados ANTES do filtro do `<html>`, que ainda dessatura\n * tudo no compositing). O widget deliberadamente acompanha esses modos —\n * mesmo comportamento do widget oficial do HandTalk.\n */\n"],"mappings":";AAaA,IAAI,CAAC;AACH,UAAQ,SAAS,KAAK,WAAW;AACnC;AAEA,IAAI,CAAC;AACH,UAAQ,OAAO,GAAG,WAAW;AAC/B;AAIA,IAAI,CANC,uBAMuB;AAC5B,IAAI,CAPC,uBAOuB;AAC5B,IAAI,CARC,uBAQuB;AAC5B,IAAI,CATC,uBASuB,IAAI;AAChC,IAAI,CAVC,uBAUuB,CAAC;AAC3B,UAAQ,OAAO,GAAG,WAAW;AAC/B;AAYA,IAAI,CAAC;AACH,UAAQ;AACV;AAEA,IAAI,CAAC;AACH,UAAQ;AACV;AAEA,IAAI,CAAC;AACH,UAAQ;AACV;AAIA,IAAI,CAAC;AACH,UAAQ,UAAU;AACpB;AAEA,IAAI,CAAC;AACH,UAAQ,SAAS;AACnB;AAIA,IAAI,CApDC,kBAoDkB,CAVlB;AAWH,UAAQ,SAAS,KAAK,WAAW,MAAM,UAAU;AACnD;AACA,IAAI,CAvDC,kBAuDkB,CATlB;AAUH,UAAQ,SAAS,KAAK,WAAW,MAAM,SAAS;AAClD;AACA,IAAI,CAtDC,sBAsDsB,CAhBtB;AAiBH,UAAQ,OAAO,GAAG,WAAW,QAAQ,UAAU;AACjD;AACA,IAAI,CAzDC,sBAyDsB,CAftB;AAgBH,UAAQ,OAAO,GAAG,WAAW,QAAQ,SAAS;AAChD;AAWA,IAAI,CAAC;AACH,aAAW;AACb;AACA,IAAI,CAAC;AACH,aAAW;AACb;AACA,IAAI,CAAC;AACH,aAAW;AACb;AAIA,IAAI,CAAC,sBAAsB;AACzB,kBAAgB;AAClB;AACA,IAAI,CAAC,sBAAsB;AACzB,kBAAgB;AAClB;AACA,IAAI,CAAC,sBAAsB;AACzB,kBAAgB;AAClB;AAIA,IAAI,CAAC,oBAAoB;AACzB,IAAI,CADC,oBACoB,KAAK;AAC5B,eAAa;AACf;AACA,IAAI,CAAC,oBAAoB;AACzB,IAAI,CADC,oBACoB,KAAK;AAC5B,eAAa;AACf;AACA,IAAI,CAAC,oBAAoB;AACzB,IAAI,CADC,oBACoB,KAAK;AAC5B,eAAa;AACf;AAQA,IAAI,CAAC,qBAAqB;AAC1B,IAAI,CADC,qBACqB;AAC1B,IAAI,CAFC,qBAEqB,CAAC;AAC3B,IAAI,CAHC,qBAGqB,CAAC;AACzB,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAClB;AAEA,IAAI,CARC,qBAQqB;AACxB,mBAAiB;AACjB,6BAA2B;AAC3B,yBAAuB;AACzB;AAIA,IAAI,CAAC,mBAAmB;AACxB,IAAI,CADC,mBACmB,CAAC;AACzB,IAAI,CAFC,mBAEmB,CAAC;AACvB,sBAAoB;AACpB,6BAA2B;AAC3B,uBAAqB;AACrB,mBAAiB;AACnB;AAUA,IAAI,CAAC;AACL,IAAI,CADC,mBACmB;AACxB,IAAI,CAFC,mBAEmB,KAAK;AAC3B;AAAA,IACE,cAAc;AAAA,IAAE,eAAe;AAAA,IAAE,uBAAuB;AAAA,IAAE,OAAO;AAAA,IACjE;AACJ;AAYA,CAAC,qBAAqB,CAAC;AACrB,WAAS;AACX;AASA,CAAC;AACC,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAChB,oBAAkB,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;AACrC,cAAY,cAAc,MAAM;AAClC;AAQA,IAAI,CAAC;AACL,IAAI,CADC,gBACgB;AACnB,UAAQ,wPAAwP,EAAE,CAAC,EAAE;AACvQ;AAEA,IAAI,CALC,gBAKgB;AACrB,IAAI,CANC,gBAMgB;AACrB,IAAI,CAPC,gBAOgB,CAAC;AACtB,IAAI,CARC,gBAQgB;AACrB,IAAI,CATC,gBASgB;AACrB,IAAI,CAVC,gBAUgB;AACnB,UAAQ,sQAAsQ,GAAG,CAAC,EAAE;AACtR;AAWA,IAAI,CAnNC,uBAmNuB,CAAC;AAC3B,UAAQ,OAAO,GAAG,WAAW;AAC/B;","names":[]}