/*
 * Unitax: camada de acessibilidade compartilhada (WCAG 2.2 AA).
 * Carregada por ultimo em todos os layouts do app (usuario, admin, acesso,
 * checkout e erros). Tokens semanticos com prefixo --ux-*.
 *
 * Por que existe: dashboard-style.css e outras folhas aplicavam
 * `outline: none` global e em :focus, apagando o foco visivel (2.4.7 e 2.4.11).
 * O seletor `:root :is(...)` tem especificidade (0,3,0) para vencer as regras
 * antigas `input[type=...]:focus { outline: none !important }` (0,2,1).
 */
:root {
    --ux-focus-ring-color: #0b57d0;       /* 6,3:1 sobre branco */
    --ux-focus-ring-width: 3px;
    --ux-focus-ring-offset: 2px;
}

:root :is(a, button, input, select, textarea, summary, [tabindex], [role="button"], [contenteditable="true"]):focus-visible {
    outline: var(--ux-focus-ring-width) solid var(--ux-focus-ring-color) !important;
    outline-offset: var(--ux-focus-ring-offset) !important;
}

/* Campos de texto: anel por dentro para nao ser cortado por overflow do card. */
:root :is(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]), select, textarea):focus-visible {
    outline-offset: 0 !important;
}

/* Link "pular para o conteudo" (visivel apenas ao receber foco). */
.ux-skip-link {
    position: absolute;
    left: 8px;
    top: -48px;
    z-index: 900;
    padding: 8px 16px;
    border-radius: 8px;
    background: #ffffff;
    color: #0b1220;
    font-weight: 600;
    text-decoration: none;
}
.ux-skip-link:focus {
    top: 8px;
}

/* Texto so para leitor de tela. */
.ux-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !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;
    }
}
