/* PORTAL CNI v2.8.2 — infraestrutura transversal de acessibilidade */

.cni-screen-reader-text {
    border: 0 !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    word-wrap: normal !important;
}

.cni-screen-reader-text:focus,
.cni-screen-reader-text:focus-visible {
    background: #fff !important;
    clip: auto !important;
    clip-path: none !important;
    color: #15314c !important;
    display: block !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    height: auto !important;
    left: 8px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    top: 8px !important;
    width: auto !important;
    z-index: 100000 !important;
}

:is(
    .cni-admin,
    .cni-wrap,
    .cni-student-area,
    .cni-internal-area,
    .cni-area-manutencao,
    .cni-smart-access-page,
    .cni-password-change-page,
    .cni-login-page
) :is(a[href], button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #005fcc !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 1px #fff, 0 0 0 5px rgba(0, 95, 204, .22) !important;
}

:is(
    .cni-admin,
    .cni-wrap,
    .cni-student-area,
    .cni-internal-area,
    .cni-area-manutencao,
    .cni-smart-access-page,
    .cni-password-change-page,
    .cni-login-page
) :is(a[href], button, input, select, textarea, summary, [tabindex]) {
    scroll-margin-block: 96px;
}

/* Alvos de interação não-textuais e controles recorrentes mantêm ao menos 24 px. */
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area, .cni-area-manutencao)
:is(button, input[type="button"], input[type="submit"], input[type="reset"], select, .button, .page-title-action, .nav-tab, .cni-button, summary) {
    min-block-size: 24px;
}

:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area, .cni-area-manutencao)
:is(.button-small, .tablenav-pages a, .pagination-links a, .cni-modal-close, [data-cni-modal-close]) {
    min-block-size: 24px;
    min-inline-size: 24px;
}

/* Impede que foco em âncoras ou títulos fique encoberto por barras fixas. */
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area) :is(h1, h2, h3, h4, [tabindex="-1"]) {
    scroll-margin-block-start: 96px;
}

/* Tabelas extensas continuam navegáveis com zoom sem forçar corte horizontal da página. */
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area) .cni-table-wrap,
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area) .wp-list-table,
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area) .widefat {
    max-inline-size: 100%;
}

/* Região compartilhada para anúncios de leitores de tela. */
.cni-a11y-live-region {
    pointer-events: none;
}

/* Links ativos nunca dependem somente de cor. */
:is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area)
:is([aria-current="page"], .nav-tab-active, .is-active) {
    text-decoration-thickness: max(2px, .12em);
    text-underline-offset: .18em;
}

@media (prefers-reduced-motion: reduce) {
    :is(
        .cni-admin,
        .cni-student-area,
        .cni-internal-area,
        .cni-area-manutencao,
        .cni-smart-access-page,
        .cni-password-change-page,
        .cni-login-page
    ),
    :is(
        .cni-admin,
        .cni-student-area,
        .cni-internal-area,
        .cni-area-manutencao,
        .cni-smart-access-page,
        .cni-password-change-page,
        .cni-login-page
    ) *,
    :is(
        .cni-admin,
        .cni-student-area,
        .cni-internal-area,
        .cni-area-manutencao,
        .cni-smart-access-page,
        .cni-password-change-page,
        .cni-login-page
    ) *::before,
    :is(
        .cni-admin,
        .cni-student-area,
        .cni-internal-area,
        .cni-area-manutencao,
        .cni-smart-access-page,
        .cni-password-change-page,
        .cni-login-page
    ) *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        transition-delay: 0ms !important;
    }

    :is(.cni-admin, .cni-wrap, .cni-student-area, .cni-internal-area)
    :is(.cni-dashboard-summary-card, .cni-dashboard-shortcut, .cni-smart-area-card):hover {
        transform: none !important;
    }
}

@media (forced-colors: active) {
    :is(
        .cni-admin,
        .cni-student-area,
        .cni-internal-area,
        .cni-area-manutencao,
        .cni-smart-access-page,
        .cni-password-change-page,
        .cni-login-page
    ) :is(a[href], button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 3px solid CanvasText !important;
        box-shadow: none !important;
    }
}
