/* Modo opcional deste aparelho; identidade, conteúdo e decisões são preservados. */
:root[data-acessibilidade="idosos"] {
  --alvo-interface: max(56px, calc(56px / var(--escala-interface, 1)));
  --leitura-acessivel: max(18px, calc(18px / var(--escala-interface, 1)));
  --controle-acessivel: max(17px, calc(17px / var(--escala-interface, 1)));
}
:root[data-acessibilidade="idosos"] #tela-perfil { --alvo-perfil: var(--alvo-interface); }

/* Mínimos vencem dimensões legadas de ícones e botões, sem revelar ações ocultas. */
:root[data-acessibilidade="idosos"] :is(.topo, .tela, dialog, .rodape, .tela-login, .login-nuvem)
  :is(button, a.btn, summary, .perfil-item, a.marca, a.rodape-link) {
  min-height: var(--alvo-interface) !important;
  min-width: var(--alvo-interface) !important;
}
:root[data-acessibilidade="idosos"] :is(.tela, dialog, .tela-login, .login-nuvem)
  :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-height: var(--alvo-interface) !important;
  min-width: 0;
  max-width: 100%;
  font-size: var(--leitura-acessivel) !important;
}
:root[data-acessibilidade="idosos"] :is(.tela, dialog) label:has(> input:is([type="checkbox"], [type="radio"])) {
  min-height: var(--alvo-interface);
  min-width: 0;
  align-items: center;
}
:root[data-acessibilidade="idosos"] :is(.topo, .tela, dialog, .tela-login, .login-nuvem)
  :is(button, label, summary, .perfil-item) {
  font-size: var(--controle-acessivel) !important;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
:root[data-acessibilidade="idosos"] :is(.tela, dialog)
  :is(p, li, td, .link-nome, .turno-textos strong, .agenda-item-corpo strong, .corpo-atv, .custo-nome) {
  font-size: var(--leitura-acessivel) !important;
  line-height: 1.6;
}
:root[data-acessibilidade="idosos"] :is(.tela, dialog)
  :is(small, .campo-dica, .perfil-ajuda, .perfil-nota, .valor-lista, .turno-textos span) {
  font-size: var(--controle-acessivel) !important;
  line-height: 1.5;
}
:root[data-acessibilidade="idosos"] :is(.tela, dialog) :is(h2, h3) { line-height: 1.4; }
:root[data-acessibilidade="idosos"] :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: max(3px, calc(3px / var(--escala-interface, 1))) solid var(--tinta);
  outline-offset: 3px;
}
:root[data-acessibilidade="idosos"] .topo :is(button, a):focus-visible { outline-color: var(--ouro); }
:root[data-acessibilidade="idosos"] :is(button, input, select, textarea):disabled { opacity: .75; }

/* O espaço aumenta por quebra de linhas, sem reduzir texto ou ações. */
:root[data-acessibilidade="idosos"] .topo-acoes { flex-wrap: wrap; min-width: 0; max-width: 100%; }
:root[data-acessibilidade="idosos"] :is(.barra-ferramentas, .modal-botoes, .agenda-item-acoes) { flex-wrap: wrap; }
:root[data-acessibilidade="idosos"] :is(.tela, dialog) :is(.btn-icone, .btn-fechar-x) {
  width: var(--alvo-interface);
  height: var(--alvo-interface);
  flex-shrink: 0;
}
:root[data-acessibilidade="idosos"] #modal-gestao-competicao .gestao-competicao-cabecalho { position: static; }
:root[data-acessibilidade="idosos"] #calendario { grid-template-columns: repeat(7, minmax(calc(var(--alvo-interface) + 12px), 1fr)); }
:root[data-acessibilidade="idosos"] .fab-chat { min-height: var(--alvo-interface); min-width: var(--alvo-interface); }
/* No chat com teclado, os alvos mantêm 56 px físicos e deixam espaço de leitura. */
:root[data-acessibilidade="idosos"] #modal-chat {
  --controle-acessivel: calc(17px / var(--escala-interface, 1));
  --leitura-acessivel: calc(18px / var(--escala-interface, 1));
}
:root[data-acessibilidade="idosos"] #modal-chat :is(button, summary, input, select, textarea) {
  min-height: var(--alvo-chat, calc(56px / var(--escala-interface, 1))) !important;
}
:root[data-acessibilidade="idosos"] #modal-chat :is(button, summary) {
  min-width: var(--alvo-chat, calc(56px / var(--escala-interface, 1))) !important;
}
:root[data-acessibilidade="idosos"] .rodape-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
:root[data-acessibilidade="idosos"] .rodape-legal a { display: inline-flex; align-items: center; min-height: var(--alvo-interface); font-size: var(--controle-acessivel); }

/* A pessoa pode escolher menos movimento sem mudar a preferência do sistema. */
:root[data-acessibilidade="idosos"] *,
:root[data-acessibilidade="idosos"] *::before,
:root[data-acessibilidade="idosos"] *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}
