/**
 * accessibility-factory-grid.css
 * Sprint 003 Task 4.1: Accessibility Layer
 * 
 * ARIA attributes, screen reader support, keyboard navigation
 * WCAG 2.1 AA compliance
 */

/* ===== Screen Reader Only Content ===== */
.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;
}

/* ===== ARIA Live Regions ===== */
[aria-live="polite"] {
    /* Ensure updates don't cause layout shifts */
    contain: layout;
}

[aria-live="assertive"] {
    contain: layout;
}

/* ===== Grid ARIA Support ===== */
.factory-grid[role="grid"] {
    /* Ensure proper table semantics */
    border-collapse: separate;
}

.factory-grid__row[role="row"] {
    /* Maintain row structure */
}

.factory-grid__header-cell[role="columnheader"] {
    /* Header semantics already in place */
}

/* aria-setsize and aria-posinset for virtualized lists */
.factory-grid__row {
    /* Set via JavaScript: aria-rowindex */
}

/* ===== Focus Visibility ===== */
.factory-grid__row:focus,
.factory-grid__row:focus-visible,
.factory-grid__header-cell:focus {
    outline: 2px solid var(--color-focus, #22c55e);
    outline-offset: -2px;
    background: var(--color-focus-bg, rgba(34, 197, 94, 0.1));
}

.factory-grid__row:focus-visible {
    /* High contrast for keyboard users */
    outline-width: 3px;
}

/* ===== Keyboard Navigation ===== */
/* Skip link for grid */
.factory-grid__skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--color-bg-elevated);
    color: var(--color-text);
    padding: var(--space-2) var(--space-3);
    z-index: 1000;
    transition: top 0.3s;
    border: 1px solid var(--color-border);
}

.factory-grid__skip-link:focus {
    top: 0;
}

/* ===== Reduced Motion ===== */
@media (prefers-reduced-motion: reduce) {
    .factory-grid__row {
        transition: none !important;
    }
    
    .factory-grid__scroll-container {
        scroll-behavior: auto !important;
    }
    
    .factory-grid__row:hover {
        animation: none !important;
    }
}

/* ===== High Contrast Mode ===== */
@media (prefers-contrast: high) {
    .factory-grid {
        border: 2px solid currentColor;
    }
    
    .factory-grid__row {
        border-bottom: 1px solid currentColor;
    }
    
    .factory-grid__row--selected {
        outline: 3px solid currentColor;
        outline-offset: -3px;
    }
    
    .factory-grid__row:focus-visible,
    .factory-grid__row[aria-selected="true"] {
        outline: 3px solid currentColor;
        outline-offset: -3px;
    }
    
    .factory-grid__search-input:focus {
        outline: 3px solid currentColor;
    }
}

/* ===== Announcement Areas ===== */
.factory-grid__announcements {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* ===== Multi-Select ARIA ===== */
.factory-grid__row[aria-selected="true"] {
    /* Visual indication of selection */
    border-left: 3px solid var(--color-accent, #22c55e);
}

.factory-grid__selection-count {
    /* Screen reader-only selection count */
}

/* ===== Sort Indicators ===== */
[aria-sort="ascending"] .factory-grid__sort-icon,
[aria-sort="descending"] .factory-grid__sort-icon {
    speak: always;
}

/* ===== Filter Status ===== */
.factory-grid__filter-status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ===== Loader Announcements ===== */
.factory-grid__loading-announcement {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ===== Empty State ===== */
.factory-grid__empty {
    /* ARIA: aria-live="polite" for empty state updates */
}
