/* Accessibility layer, loaded after the theme on every page (29 Sep 2026).
   1. Visible keyboard focus: the theme sets outline 0 on a:focus.
      Two-tone ring: a 2px white inner ring and a 2px near-black outer ring,
      so one of the two always clears 3:1 on light and dark backgrounds.
   2. Touch targets of at least 44x44 on phones and tablets. */

:where(a[href], button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 2px solid #0a0a0f !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 2px #ffffff !important;
    border-radius: 6px;
    /* The theme animates "all"; the ring must appear at once, not grow in. */
    transition-property: color, background-color, transform, opacity !important;
}
.dark-mode :where(a[href], button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline-color: #ffffff !important;
    box-shadow: 0 0 0 2px #0a0a0f !important;
}
/* Round controls keep a round ring. */
.tf-btn-icon:focus-visible,
.tf-social-icon-2 a:focus-visible,
.sidebar-tools .item-link:focus-visible {
    border-radius: 50%;
}

@media (max-width: 991.98px), (pointer: coarse) {
    .tf-btn-icon,
    .tf-social-icon-2 a {
        width: 44px;
        height: 44px;
    }
    .logo-site {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }
    .tf-btn-action .ic-wrap,
    .tf-btn-action .text {
        height: 44px;
    }
    .tf-btn-action .ic-wrap:nth-child(3) { margin-left: -52px; }
    .tf-btn-action:hover .ic-wrap:nth-child(1) { margin-right: -52px; }
    .sidebar-user .action-down {
        min-height: 44px;
    }
    /* Subpages: tab strip and breadcrumb links. */
    .sp-nav a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }
    .sp-crumb { align-items: center; }
    .sp-crumb a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }
}

/* Mobile menu toggle is a real <button> (30 Sep 2026): strip UA button chrome. */
.btn-menu-toggle {
    border: 0;
    padding: 0;
    font: inherit;
    cursor: pointer;
}
