/**
 * ConvertyBot Frontend Widget Accessibility Styles
 * Extracted from templates/frontend/chatbot-widget-enhanced.php for WordPress compliance
 */

/* Screen Reader Only Content */
.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;
}

.sr-only:focus {
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: inherit !important;
    margin: inherit !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

.skip-link:focus {
    position: absolute;
    left: 6px;
    top: 7px;
    z-index: 999999;
    padding: 8px 16px;
    background: #000;
    color: #fff;
    text-decoration: none;
    border-radius: 3px;
}

/* High Contrast Support */
@media (prefers-contrast: high) {
    .ai-chatbot-widget {
        --ai-border: #000000;
    }

    [data-theme="dark"] .ai-chatbot-widget {
        --ai-border: #ffffff;
    }

    .message-text,
    .product-inline,
    .product-card,
    .coupon-card {
        border: 2px solid var(--ai-border) !important;
    }
}

/* Focus Management */
.ai-chatbot-widget *:focus {
    outline: 2px solid #0073aa;
    outline-offset: 2px;
}

.ai-chatbot-widget button:focus,
.ai-chatbot-widget input:focus,
.ai-chatbot-widget textarea:focus {
    outline-color: var(--ai-primary, #2563eb);
}

/* Loading States */
.loading-spinner {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Character Counter Styling */
.character-counter {
    font-size: 0.75rem;
    color: var(--ai-text-muted, #6b7280);
    margin-top: 0.25rem;
}

.character-counter.warning {
    color: var(--ai-warning, #f59e0b);
}

.character-counter.error {
    color: var(--ai-error, #ef4444);
}

/* Connection Status */
.connection-status {
    padding: 0.5rem 1rem;
    background: var(--ai-warning-light, #fef3c7);
    border-bottom: 1px solid var(--ai-border, #e5e7eb);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--ai-warning, #f59e0b);
}

.status-message {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.status-icon {
    animation: pulse 2s ease-in-out infinite;
}
