/*
 * Ajustes de acessibilidade do app do paciente (docs/PROJECT_ASSESSMENT.md, A1/A2/U1).
 * Complementa assets/scss/style.css (tema OneUIUX) sem alterá-lo. Carregado depois dele.
 */

/* Contraste AA: o mesmo ciano da marca, escurecido para que texto branco sobre ele tenha
   5:1 (antes 2,07:1); cinza secundário de 2,85:1 para 5,3:1 sobre branco. */
.theme-cyan {
  --oneuiux-theme-color: #0077a8;
}

/* Só no tema claro: o modo escuro (.dark-mode) mantém o próprio cinza claro. */
:root,
.theme-cyan:not(.dark-mode) {
  --oneuiux-theme-text-secondary: #6b6b6b;
}

/* Cores de estado escurecidas na mesma família (texto branco sobre elas, ou elas como texto
   sobre branco, passam de 4,5:1): info #00c2ff 2,1:1 -> 5:1; sucesso #21e985 1,6:1 -> 5,4:1;
   perigo #f03d4f 3,8:1 -> 5:1. Valem também para as telas que carregam o CSS do Metronic
   (cadastro e recuperação de senha), onde "text-secondary" era quase branco (1,1:1). */
:root:not([data-bs-theme="dark"]),
[data-bs-theme="light"] {
  --bs-info: #0077a8;
  --bs-info-rgb: 0, 119, 168;
  --bs-success: #0b7a37;
  --bs-success-rgb: 11, 122, 55;
  --bs-danger: #d42a3c;
  --bs-danger-rgb: 212, 42, 60;
  --bs-text-secondary: #6b6b6b;
  --bs-text-muted: #6b6b6b;
  --bs-text-gray-500: #646c82;
  --bs-gray-500: #646c82;
}

.btn-info,
.btn.btn-info {
  color: #fff;
  background-color: #0077a8;
  border-color: #0077a8;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.btn.btn-info:hover,
.btn.btn-info:focus,
.btn.btn-info:active,
.btn.btn-info.active {
  color: #fff;
  background-color: #00628b;
  border-color: #00628b;
}

/* Botões contornados: texto colorido sobre fundo claro (no modo escuro o tema decide). */
body:not(.dark-mode) .btn-outline-info {
  color: #0077a8;
  border-color: #0077a8;
}

body:not(.dark-mode) .btn-outline-info:hover,
body:not(.dark-mode) .btn-outline-info:active,
body:not(.dark-mode) .btn-outline-info.active {
  color: #fff;
  background-color: #0077a8;
  border-color: #0077a8;
}

body:not(.dark-mode) .btn-outline-warning {
  color: #8f6700;
  border-color: #8f6700;
}

body:not(.dark-mode) .btn-outline-warning:hover,
body:not(.dark-mode) .btn-outline-warning:active,
body:not(.dark-mode) .btn-outline-warning.active {
  color: #000;
  background-color: #ffc107;
  border-color: #ffc107;
}

body:not(.dark-mode) .btn-outline-danger {
  color: #d42a3c;
  border-color: #d42a3c;
}

body:not(.dark-mode) .btn-outline-danger:hover,
body:not(.dark-mode) .btn-outline-danger:active,
body:not(.dark-mode) .btn-outline-danger.active {
  color: #fff;
  background-color: #d42a3c;
  border-color: #d42a3c;
}

/* Foco visível para quem navega pelo teclado (WCAG 2.4.7): anel amarelo com contorno escuro,
   legível tanto sobre fundos claros quanto sobre a cor da marca. */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #ffc20e !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #1a1a1a !important;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #0077a8 !important;
  outline-offset: 1px !important;
}

/* Aviso de instalação do PWA não cobre mais a navegação inferior da home. */
body[data-page="index"] #toastinstall {
  margin-bottom: 96px !important;
}

/* Horários livres viraram <button> (acessíveis por teclado); mantém o visual do template. */
button.btn-hora-livre {
  color: inherit;
  font-family: inherit;
}

/* Spec 015: campos de 16 px no celular também nas telas que ainda usam o Metronic (/esqueci-a-senha, /nova-senha) —
   com menos, o Safari do iPhone amplia a página ao focar o campo. */
@media (max-width: 767.98px) {
  .form-control,
  .form-select {
    font-size: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
