/* ============================================
   NFR-014: Advanced Accessibility Features
   ============================================ */

/* === Skip Links Enhancement === */
.skip-link:focus {
    outline: 3px solid #FF9800;
    outline-offset: 2px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

/* === ARIA Live Regions === */
[aria-live="polite"],
[aria-live="assertive"] {
    position: relative;
}

/* === Focus Within (parent highlighting) === */
.card:focus-within,
section:focus-within {
    box-shadow: 0 0 0 3px rgba(255, 152, 0, 0.3);
}

/* === Required Fields Indicator === */
[required]::after,
[aria-required="true"]::after {
    content: " *";
    color: #F44336;
    font-weight: bold;
}

/* === Error States === */
[aria-invalid="true"],
.error-field {
    border: 2px solid #F44336 !important;
    background-color: #FFEBEE;
}

[aria-invalid="true"]:focus {
    outline: 3px solid #F44336;
    outline-offset: 2px;
}

/* === Success States === */
[aria-invalid="false"],
.success-field {
    border: 2px solid #4CAF50;
}

/* === Disabled Elements === */
[disabled],
[aria-disabled="true"] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* === Loading States === */
[aria-busy="true"] {
    opacity: 0.7;
    pointer-events: none;
    position: relative;
}

[aria-busy="true"]::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* === Role-based Styling === */
[role="alert"] {
    padding: 1rem;
    border-left: 4px solid #F44336;
    background: #FFEBEE;
    margin: 1rem 0;
}

[role="status"] {
    padding: 0.5rem;
    border-left: 4px solid #4CAF50;
    background: #E8F5E9;
}

/* === Tooltip Accessibility === */
[aria-describedby] {
    position: relative;
}

/* === Expandable/Collapsible Sections === */
[aria-expanded="false"] + * {
    display: none;
}

[aria-expanded="true"] + * {
    display: block;
}

/* === Print Styles for Accessibility === */
@media print {
    /* Show link URLs for screen reader users printing */
    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        color: #666;
    }
    
    /* Hide decorative elements */
    [aria-hidden="true"],
    .skip-link {
        display: none !important;
    }
}

