/* Phase 28.8.6 – component-wide DWDS/DWATS accessibility contract */
.dwds-visually-hidden,
.dwats-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;
}

:where(.dwds-button, .dwds-icon-button, .dwds-input, .dw-tabs__tab, .dw-card[data-dw-interactive="true"], .dwds-table-wrap):focus-visible {
    outline: max(2px, var(--dw-accessibility-focus-width, 2px)) solid var(--dw-accessibility-focus-color, #7dd3fc);
    outline-offset: 3px;
}

.dwds-input[aria-invalid="true"] {
    border-color: var(--dw-accessibility-danger, #fb7185);
    box-shadow: 0 0 0 1px var(--dw-accessibility-danger, #fb7185);
}

.dwds-field__message[role="alert"] { font-weight: 600; }
.dwds-table-wrap[tabindex="0"] { overflow: auto; scrollbar-gutter: stable; }
.dwds-table-wrap[tabindex="0"]:focus-visible { border-radius: var(--dw-radius-md, .5rem); }
.dw-tabs__tab[aria-selected="true"] { text-decoration-thickness: max(2px, .12em); }
[data-dw-dialog]:focus { outline: none; }

@media (forced-colors: active) {
    :where(.dwds-button, .dwds-icon-button, .dwds-input, .dw-tabs__tab, .dw-card[data-dw-interactive="true"], .dwds-table-wrap):focus-visible {
        outline: 3px solid Highlight;
    }
    .dwds-input[aria-invalid="true"] { border: 2px solid Mark; }
}

@media (prefers-reduced-motion: reduce) {
    .dwds-spinner, .dw-card, .dw-tabs__tab, .dwds-dialog { animation: none !important; transition: none !important; }
}
