.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-to-content {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 2000;
    padding: 8px 12px;
    color: #fff;
    background: var(--color-accent);
    border-radius: var(--radius-md);
    transform: translateY(-160%);
    transition: transform var(--transition-fast);
}

.skip-to-content:focus {
    transform: translateY(0);
}

:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

[hidden] {
    display: none !important;
}

@supports not (height: 100dvh) {
    body,
    .container,
    .content,
    .nav-sidebar,
    .toc-sidebar {
        height: 100vh;
    }
}

@supports not (scrollbar-gutter: stable) {
    .nav-sidebar,
    .content,
    .toc-sidebar {
        scrollbar-gutter: auto;
    }
}

@media (prefers-contrast: more) {
    :root {
        --color-border: color-mix(in srgb, var(--color-text) 45%, transparent);
        --color-border-soft: color-mix(in srgb, var(--color-text) 32%, transparent);
    }
}

@media print {
    a[href^="http"]::after {
        content: " (" attr(href) ")";
        color: #555;
        font-size: 0.85em;
    }
}
