/* QuoteVault Phase 11: accessibility and interaction safety layer. */
.qv-skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 100000;
    padding: 10px 14px;
    border: 1px solid #d7352a;
    background: #0b0b0b;
    color: #fff;
    font: 600 11px/1.2 "IBM Plex Mono", monospace;
    letter-spacing: .06em;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform .16s ease;
}
.qv-skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid #e34a3e;
    outline-offset: 3px;
}

:where(button, input, select, textarea):disabled,
[aria-disabled="true"] {
    cursor: not-allowed;
}

.qv-scroll-region:focus-visible {
    outline: 2px solid #e34a3e;
    outline-offset: -2px;
}

.qv-sr-only {
    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) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (forced-colors: active) {
    :where(a, button, input, select, textarea, [tabindex]):focus-visible {
        outline: 2px solid CanvasText;
    }
    .status-dot { forced-color-adjust: auto; }
}
