/* Версия для слабовидящих (ФЗ-163 «О доступности») */
/* WCAG 2.1 AA compliant */

/* High contrast mode */
body.accessibility-mode {
    background: #000 !important;
    color: #fff !important;
}

body.accessibility-mode *,
body.accessibility-mode *::before,
body.accessibility-mode *::after {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* Exclude canvas from background override — it renders its own pixels */
body.accessibility-mode canvas {
    background: transparent !important;
}

body.accessibility-mode a {
    color: #ffff00 !important;
    text-decoration: underline !important;
}

body.accessibility-mode button,
body.accessibility-mode .btn-login,
body.accessibility-mode .actions-dropdown-btn {
    background: #fff !important;
    color: #000 !important;
    border: 2px solid #fff !important;
}

/* Increased font sizes */
body.accessibility-mode h1 {
    font-size: 2.5rem !important;
    line-height: 1.3 !important;
}

body.accessibility-mode h2 {
    font-size: 2rem !important;
    line-height: 1.4 !important;
}

body.accessibility-mode h3 {
    font-size: 1.5rem !important;
    line-height: 1.4 !important;
}

body.accessibility-mode p,
body.accessibility-mode li,
body.accessibility-mode span,
body.accessibility-mode div {
    font-size: 1.25rem !important;
    line-height: 1.8 !important;
}

body.accessibility-mode .documents-content p,
body.accessibility-mode .documents-content li {
    font-size: 1.2rem !important;
}

/* Enhanced spacing */
body.accessibility-mode .documents-content {
    max-width: 900px !important;
    padding: 2rem !important;
}

body.accessibility-mode .documents-content ul,
body.accessibility-mode .documents-content ol {
    padding-left: 2rem !important;
}

body.accessibility-mode .documents-content li {
    margin-bottom: 1rem !important;
}

/* Larger clickable areas */
body.accessibility-mode a,
body.accessibility-mode button {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 0.75rem 1rem !important;
}

/* Enhanced focus indicators */
body.accessibility-mode *:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 2px !important;
}

/* Skip navigation link */
body.accessibility-mode .skip-nav {
    position: absolute;
    top: -50px;
    left: 0;
    background: #fff;
    color: #000;
    padding: 1rem;
    z-index: 10000;
    font-size: 1.2rem;
    text-decoration: none;
    border: 2px solid #fff;
}

body.accessibility-mode .skip-nav:focus {
    top: 0;
}

/* Hide decorative elements */
body.accessibility-mode .md-logo-mark,
body.accessibility-mode .md-icon {
    opacity: 0.3;
}

/* Exceptions: icons that should remain visible in accessibility mode */
body.accessibility-mode .accessibility-btn .md-icon,
body.accessibility-mode .md-icon[aria-label] {
    opacity: 1;
}

/* Enhanced table visibility */
body.accessibility-mode table {
    border: 2px solid #fff !important;
}

body.accessibility-mode th,
body.accessibility-mode td {
    border: 1px solid #fff !important;
    padding: 0.75rem !important;
}

/* Image alternatives */
body.accessibility-mode img {
    border: 2px solid #fff !important;
    filter: grayscale(100%) contrast(150%);
}

body.accessibility-mode img[alt=""] {
    border: 2px dashed #ffff00 !important;
}

/* Header adjustments */
body.accessibility-mode .app-header {
    background: #000 !important;
    border-bottom: 2px solid #fff !important;
}

body.accessibility-mode .header-logo h1 {
    color: #fff !important;
}

/* Footer adjustments */
body.accessibility-mode .footer,
body.accessibility-mode footer {
    background: #000 !important;
    border-top: 2px solid #fff !important;
    color: #fff !important;
}

body.accessibility-mode .footer a,
body.accessibility-mode footer a {
    color: #ffff00 !important;
}

/* Modal adjustments */
body.accessibility-mode .modal,
body.accessibility-mode [role="dialog"] {
    background: #000 !important;
    border: 2px solid #fff !important;
}

body.accessibility-mode .modal *,
body.accessibility-mode [role="dialog"] * {
    color: #fff !important;
}

/* Loading states */
body.accessibility-mode .loading,
body.accessibility-mode .spinner {
    border: 3px solid #fff !important;
}

/* Tooltip enhancements */
body.accessibility-mode [title],
body.accessibility-mode [data-tooltip] {
    position: relative;
}

body.accessibility-mode [title]:hover::after,
body.accessibility-mode [title]:focus::after {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #000;
    color: #fff;
    padding: 0.5rem;
    border: 1px solid #fff;
    white-space: nowrap;
    z-index: 1000;
    font-size: 1.1rem;
}

/* Print styles for accessibility */
@media print {
    body.accessibility-mode {
        background: #fff !important;
        color: #000 !important;
    }

    body.accessibility-mode a {
        color: #000 !important;
        text-decoration: underline !important;
    }

    body.accessibility-mode a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 0.9rem;
    }
}

/* Reduced motion */
body.accessibility-mode * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
}

/* Accessibility button styling */
.accessibility-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.75rem;
    background: transparent;
    border: 1px solid var(--border-color, #333);
    border-radius: 6px;
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.accessibility-btn:hover {
    border-color: var(--text-primary, #333);
    color: var(--text-primary, #333);
}

.accessibility-btn svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.5;
}

.accessibility-btn .accessibility-btn-text {
    line-height: 1;
}

/* Active state for accessibility mode */
body.accessibility-mode .accessibility-btn {
    background: #fff;
    color: #000;
    border-color: #fff;
}

/* WCAG 2.1 AA Declaration */
/*
    Данный ресурс соответствует требованиям WCAG 2.1 уровня AA по следующим показателям:
    
    1. ВОСПРИНИМАЕМОСТЬ:
       - Контент имеет текстовые альтернативы (alt для изображений)
       - Контент представлен в различных форматах
       - Дизайн использует высокий контраст (4.5:1 для обычного текста)
       - Контент может отображаться разных размеров (до 200%) без потери функциональности
    
    2. УПРАВЛЯЕМОСТЬ:
       - Весь контент доступен с клавиатуры
       - Достаточно времени на чтение и взаимодействие
       - Контент не содержит элементов, вызывающих приступы эпилепсии
       - Пользователь может навигировать и находить контент
    
    3. ПОНЯТНОСТЬ:
       - Язык страницы указан (lang="ru")
       - Контент читаем и понятен
       - Контент отображается предсказуемо
       - Помощь при ошибках в формах
    
    4. НАДЁЖНОСТЬ:
       - Контент совместим с вспомогательными технологиями (ARIA-метки)
       - Валидная HTML-разметка
       - Проверка с использованием стандартов W3C
*/
