From edc459382b22001230741ff25c9c038e2b1358d2 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Thu, 8 Oct 2026 15:04:27 +0700 Subject: [PATCH] =?UTF-8?q?chore(test):=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B8=D1=82=D1=8C=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=20=D0=BD=D0=B0=20production=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ux-ui-external-acceptance.md | 10 ++ docs/ux-ui-plan.md | 4 +- docs/ux-ui-progress.md | 14 +- docs/ux-ui-stage-12.md | 12 +- docs/ux-ui-test-server.md | 10 ++ .../browser-outbox-a11y-2026-10-08.json | 146 ++++++++++++++++++ .../outbox-a11y-dark-real-320-2026-10-08.png | Bin 0 -> 27971 bytes .../outbox-a11y-light-real-320-2026-10-08.png | Bin 0 -> 27264 bytes 8 files changed, 191 insertions(+), 5 deletions(-) create mode 100644 docs/ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json create mode 100644 docs/ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png create mode 100644 docs/ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 255eba36..a97858f1 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -293,3 +293,13 @@ Reader получает очередь и видит disabled retry. Прямо [Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены. Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push. + +## 12.5.48 — доступность production очереди и диалога (2026-10-08) + +[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога. + +Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены. + +Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения. + +Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 81234a42..792cb347 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты. +Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. ## Актуальная точка продолжения — 2026-10-08 -Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; следующий12.5.48 — профильная доступность production очереди/диалога. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения. +Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; 12.5.48 подтвердил scoped axe/клавиатуру в обеих темах и320px; следующий12.5.49 — сводка Q-матрицы и открытых условий приёмки. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения. Выполненные внешние сценарии не заменяют приёмку оставшихся интеграций и условий эксплуатации. Датированные продолжения ниже — история; точный следующий шаг указан в начале [журнала](ux-ui-progress.md). diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index ebf4c312..524b3e49 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты. +Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -32,7 +32,17 @@ | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | | 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | -| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–47 и ограничения ниже. Runtime backend8782054/frontendb55588f. | +| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–48 и ограничения ниже. Runtime backend8782054/frontendb55588f. | + +## 12.5.48 — доступность production очереди и диалога (2026-10-08) + +[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога. + +Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены. + +Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения. + +Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push. ## 12.5.47 — изоляция checkpoint при смене источника во время повтора (2026-10-08) diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index 59896c0f..a671b9d7 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты. +Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -1458,3 +1458,13 @@ Reader получает очередь и видит disabled retry. Прямо [Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены. Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push. + +## 12.5.48 — доступность production очереди и диалога (2026-10-08) + +[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога. + +Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены. + +Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения. + +Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index d78b1bca..5bf7baa3 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -301,3 +301,13 @@ Reader получает очередь и видит disabled retry. Прямо [Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены. Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push. + +## 12.5.48 — доступность production очереди и диалога (2026-10-08) + +[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога. + +Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены. + +Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения. + +Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push. diff --git a/docs/ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json b/docs/ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json new file mode 100644 index 00000000..fcc8385c --- /dev/null +++ b/docs/ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json @@ -0,0 +1,146 @@ +{ + "date": "2026-10-08", + "frontendSource": "b55588f", + "backendSource": "8782054", + "axeVersion": "4.11.3", + "browserHttpMocks": false, + "cases": [ + { + "theme": "dark", + "width": 1280, + "panelAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "dialogAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "acknowledgedAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "errorAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "focusTrapSteps": 6, + "keyboardOpenAndCheckbox": true, + "escapeRestoresFocus": true, + "errorUsesAlert": true, + "statusUsesStatus": true, + "mobileFits": true, + "retryPosts": 0, + "externalSenderCalls": 0, + "pageErrors": [] + }, + { + "theme": "dark", + "width": 320, + "panelAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "dialogAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "acknowledgedAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "errorAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "focusTrapSteps": 6, + "keyboardOpenAndCheckbox": true, + "escapeRestoresFocus": true, + "errorUsesAlert": true, + "statusUsesStatus": true, + "mobileFits": true, + "retryPosts": 0, + "externalSenderCalls": 0, + "pageErrors": [] + }, + { + "theme": "light", + "width": 1280, + "panelAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "dialogAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "acknowledgedAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "errorAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "focusTrapSteps": 6, + "keyboardOpenAndCheckbox": true, + "escapeRestoresFocus": true, + "errorUsesAlert": true, + "statusUsesStatus": true, + "mobileFits": true, + "retryPosts": 0, + "externalSenderCalls": 0, + "pageErrors": [] + }, + { + "theme": "light", + "width": 320, + "panelAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "dialogAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "acknowledgedAudit": { + "violations": [], + "incomplete": [], + "passedRules": 16 + }, + "errorAudit": { + "violations": [], + "incomplete": [], + "passedRules": 14 + }, + "focusTrapSteps": 6, + "keyboardOpenAndCheckbox": true, + "escapeRestoresFocus": true, + "errorUsesAlert": true, + "statusUsesStatus": true, + "mobileFits": true, + "retryPosts": 0, + "externalSenderCalls": 0, + "pageErrors": [] + } + ], + "limits": [ + "Scoped axe audits of queue and alertdialog; not a full WCAG conformance certification", + "Synthetic PostgreSQL states; controlled backend GET error, no actual database outage", + "Auth false; no screen reader session, actual Telegram delivery or Portal login tested" + ] +} diff --git a/docs/ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png b/docs/ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png new file mode 100644 index 0000000000000000000000000000000000000000..c7532c1edb159f4332fdb65e8814d5f2787863e5 GIT binary patch literal 27971 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

~PZP$1-L5vp7x~1_WxiDa9O>fXV&-@q6lU<} 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 z%0A+TXC_HNVA9svDe(O}Y{f+6x6EG4$Hzz1FdQA8m8u;PWSgRbqHJC-HO4Minuimw z4F$q#5V~M=+*7q>LZhmz9CNOj^&Vse?$@NI1QiO?x_3&sNE|bCQ z#mGgypK9(Gu6lV{S=sAs9W>a1Q>&AyBIVqq7;PdX1Oz~O#U&-%TH2D6 z6EQF`tt?DQ=ikiyo+khXH})(Eu+mNWA3#{$yZ2pQ5QO3L`0Om zyK8joEm-0N#61)Z6crt=i?Y3QZ|+Ggt!5@9hwOAldxSgRF{D*=b)zs3>2y(C%YdB) zU?r4AxYV_^HFIZ+UrbFpuX%ZDOJAG1>~-}4rln;yb$MlVGKHO$kr9z-X2&tAqrD>{B3!jp zo5RN3oYQ&|pNZ*;PMt9xO3~PO54I2;o+fy7Y}D1t)b;7UUrf^6#4H!h09%9`aAyEX zjfRTqK)GiU%Y8y}@<9K<;lU9U1cXy5 zSZ8NvJS;5z_ymhUt|mY-9b6UpI^R`4``VUyd*MnvF!rKB|91s%aoW%c3z+UXU~$8P@T z!_SY$X)9(SktV)}etl%Pg92^-%sbI<2CQIxZGC@2F5y%tU>uxHLPyn&HDQtAy+WH6N8AcNsl=y*abqal@xSX@YHBJf2pARnejhk# z0%k%aIOO^Mu92~=C|?Xn1$~f_#nI9hy+*SEU^j(+yCA?pPfy27N5hR%Q!`l-a#>gW69{IlaIYXf zJ~nIg2=`e0?few*R|G%XXtF1Y>+VG{1&4&n6mW$l;q0U^YFh2ab#`(d8>`IKw7Wo$ zpps8Bu{M7?NMrAh!c(nciI#?KJ3~_dwLGzurWt`>%MJ`}QjP3hmPOum;+9;tX!)G$!7zB>#Mc4H2WSMrKIqBG!9S2E|H_o86o=t}0AC!)y;gr9 zX-;ujTivM{TcwJ(bzrY9I66L>SEPH2z<%UZOV(7d_(*NdfvTwFFHlyW`fh-U;I6Kzs;Q-H^^@|Ne7zOLjV!6GY{`%$1>H~txUMdbj{GjqSB8hF z&A2M)0fPf5d{oidffIeghTKpa7JI=6*Ho{8Y1jeSWlTX|MkzwoqmbyJJ-rZc)yUPp zAD)@J+T+84ZFU$E1=MX?68(_l69v8?pK*DT&&H{pb;QmojD;j_ZjI2lGu5F2%)we4 z2`xQrglC}SqeA<$Ip%4$mZqr*DZjS6h2;;ke%}M1Yb=`!#TJ6d&Zc9KtMEw_(Pvj0 zcf`i_qMwxY8ONAa_&O;qDclf`lSD;Xc}F3<3f=OEnVI=F1`Yk+?d#HXbIyN>K_~aX zk%}P_bUQq^l<0tL`z(796@@JiAqi1}W@i~ZlOfUZzK@mc7_1@b_(|#?MaGgR=^cTS z>XO8v0q*AJ6udS+jWO+x=>QxUDk$(rmH~hCs)bj@d+dGvd?8L($G7Y#kLJ=)` z5@`0Zh_US=D$x^9J$gbqWtsgXt|{>n_&@fDBIZv+ydKXjr}O$k2dMgO3JOf$Q%mJ5 z=v`u4?hf_1{B{6uKf?|abge?0!`L!m;dr?w?tGWJz@V1PnnV4xKj6%D6|EF=aS zc?(yqIRXjuD-@H>2`~Xx+T5AGw86~%=j?1Ox;^9a;#EvFxnHclIzOC`Cf-I^r~cuL zsQx}+(r#Se?1^Pkoq+26*!Bl&zBFs?WT0bOtMwQg$6>9BGM$KBg6pF$Z>qg@6E9~8 zfT43b##CsnljYi=xsT(G9m6e9TeJvD1Bw}G*p62V77aG)R;$dcX5SC*gM$N)$UB|3 z!w8ZrHhM@?=P+(F@YORz_tD`q3gqz&mc92NxTRn2SA&R@?{2+qq-2Fm@w^FRxCc9V z7*^kZ=>H(QVcyktm*ySq)^y;6uEcg<-609F!*VlQO23*xs+Q1U;?>rMABxhl@4z8b zl%t0oK!(;BC*K9(=d2{;y8i%@o+Qgnf%h@WuFnEOL{vaT^nb=b|A*rEUs+M(dw*Y8 zaUvk)8YA$jp>3`GgZ497f^he1Qv@N!$cQ>|baQiab#?Xf^0M%7uyOIKVR$FylLSgB z`#Wpf!`Xf3re3Z+IXWy^Uap9!2qYAgLN>RG{*ZvFXZn7eh~vZQ0+4?J8&&36$p0Ib z7jLYfU=PH@r06Mcf8qj4ySx7wwf}n~W~5dF6*ajAHS+D8aR5`HYef33Iv0dT+-7et zDK&L*Ztfp1;#j`Q{;Jyt>!ryI?tr^nybFoB8@3v*`m=#zRWkNb0Hy#3KbS55uSLdm z_4R3KDbVQn7#Z{6`5&u0l4^Tf(zU#nO#S)u=kwFwcqlq<_Xh3nE8;zpPM5Flmajy1 z5_VPLs|m~?y74Ml9??_=``qH<;Nak5PY;OM-rk<*eH136R?6SM(@RS+_H(SP0CYbF zY)F(n=b`j4ibuppJv}|m70oDws11I8p2ULJw>R|)t&7vs;7*KfqQ5CA8k(A6IRvS) z8Eh=1q&h75^^J``#)gSg@8Aj*{As9}EpBEDlGMtH)qp6ayt=Y7sPp$y%wbkqT3RY9 zEXWZBCe#QnmI`fg6lhpV1&Io%SIr1mBqYh*(eT@nxgr^IvwiOW7S5U6k?XE2VAHlO~b&;#OT%eQ0p7u&|KS z|3^s%zd7Tm^X0iFcB6a^iw4v8p5p-0o%Rw-OQ4GaQtHk3bLO%~VvWzUYEnd4SW|^f z|F45GlSiVPA=1EEr3TMo#ghYNRC*9DJ+T*a_6vL-aZjpDz>jXv9@v)N7a$S%Ursq{d zrlVwR%r9Op*4h?hE*%UGX6kzWldVT(lv7>V`8iu415Ja|FuAz@2Q+pWo{^21_;`87 zxZEf&xk-b*vb-2DollR?HSS(;gN#Bk%C&t(t0ImW7_}SQuazSR|CUfXiQds@D43gO`{4W+8ucbPV7+ zBccP$Ijy)8;|&NJqW&X`lan)>j#DT0_RvPIZvRDIULm&b7ycw>VMIK1Jn=IM2vDa) zg|uK}Z@_V2;^2f?ia01b2;%Pw2^J#7#wtOpRjH~&L4Xw$56EeI-6Qy&0TF~W2(a1g+LW+s4=b1aD%I37zM3s!~Qbf#1GyCHUX>fB{ z5TkXbq5EkwgcrVVloP$CGID=qc*Z058SXdaP3GohG8O!NZ|EFmFbKV3M5*$oVg z{N&`ZbCE*k;65^9X+<6bA76Pzg=+@TyBiN-yGG&T0;Mo?S9ARU15O;$fl07XAT%*yWa=xWNR zyt0!rzGg6t28>jXlvX16+n>%4o+Yzc6e^1{X+y72RX<~u+z6?0@{dTfL+^Tw6gKc0a@3K)br@HK zhX!_bi3QLxB zYPyK1sDM1QaIqBlc-p0f1t;O!hK48+?ssR7*VBS0T4?YUZtm+}2nPo$Me-Dew0V*? z@F1mCF;_!GK4SRn?L6k)JVyk>uri+7O?D(y;)c^Y{2k|cW9#Q(N(xZTx7Jrn?hmE` z-wQ-sPj(Mj%{5lYZl}LeeE$A5h!fnW?o>9hv`kG*jG{mm8?!vocsT}SsGPetZLEf- z*2!G|tYZA_!=31`uCk5@JjR$@HA0++gqfMOc6wvcteU|ra({1{qK1iBw(o$bPlHeq zdNGA1&PTUnOPiO$48+`(rn8w`Di1~~b2%z@8##^oQf_mz7%_TbL7{G!-du@Zk4U1D z+|MK>I1B!p{k>3z)SYQ{CZB^L9#*xnr^}T(_bWZtnqTkFH{?W_M#iZ0lW^EAo+uy? z|K(v~noy%<3pZ0!C>L)lp{ zPBxB9fa1>fkEE0#+ZILPaUkE|VyQ1>f1DphYNeL6m3a*<@z!rJ32V#!2TkwO;fF4i z=yyEl3K9R7`Lg=(ypVOFWwwMf0+0(A4_9P6CThvbu6V=_E8YXNBgza@{?NPgTBB_! z_tV7&r}g7GmfweUaOPqym92$QUgslXii)n3l$5kIO4q1N68%hNt)a^zoLsrC?|Q%( zLAKXvzjSTw!-o5oTqX|!TzjavYj{-66ZGzGmiMi+j=(uRpL(b(dpT7m;56#zU92@B zQ4Opn4i<32`lx5m--l6U@5`jI7-Orb?Kk5&$*o!`lWU3MGopq|7PXjW5HISYW{U8^ zyBCoV6?EpsKfWAg-(11u{7O;oy^X^7n9;3@P28$pPN}&ybLetwbh}=2U$%Iy@7G{p zEO{x$n7O1XEFX5{+)ukNk!ErK_uqeVmYM37cXNKR*=MphmYw5q6V+oD|$bsuE*E zOB8(cb|6YoAfl-+m>XhA%@Zp{4u?r!UtfQFeLXxn%1BGAeEhOPV>)j1LvSCP({3Gz zYgE|UczSwVdO!b_9{?T2J`(USXw1tm0?;ilHxJOl zB5RVVjngnYc-z@&{Nj29(DS-fg>_dzN8h_R-00XC5bk{`Q7I}dD+`;3p*ulGp59z6 z{8{q6wrMrYA=sC7nN?}`SmdW%!bbYNwyP@Uy*7pyGuGsnSfFyr`IWh!?9u5dEoxNqst^ISc|E z-Vj*O`ROSvJiKzr&tY;_*163|K)i?D6$1)%Wn~2>EKE&Jt%8AJnF%vYaiXWke+<9^ z9a>iA=0mFS`fwTiJUqAqcyVJd6hH{??iSZQ&%A`j>=U=W< z9FCeXCUS6a@GeE$DrF-Uw?aj zeSd!ktiG~RTCcZPK$m6xO%5Rpg9|=vY^*iPc2tVsv%ErrL%MT$0>&%SSe(t2o#I;N za|;i7R@0a~`?rFP!@|RjnnKWrncaKAQ+4d@?6T65f-``q@_h;8O+gWIC6iV&G!_hE zm!E-D=fpDt40RY*O&-iVKhj?dj=}k3N2lb#r@UhOxFj3l0trL%RdelOr@N zCTg%SWqW=;_?lH_Q9)8tc`n8)(FzkfjH`NGS9TeMlU}Pg&L_X~D?AU2x)X4#K)@Y& zHG4T|spvfH?V*JxVA1FSjOcbr^V|2(Jc#dgwGN>X5zb;_=#@0LM@`EA+px@I$9@2} zS{zTM{#H6J2(c6wjTlX*UfG-A>)^ml%}mWm(wUo!Y7FujQCKwp_5&HH&uO5-S+yJ7LW0D&o{0!rv@bC?@%I}lgtnK$>H(!PE&2o z7X(Xku{R^uI-fQ-63jh$$1;mZ2cU}Jw(3LcJ1k)9{;jo)Fi1?)H4PTcn=#tk-F6I1 z33ThZBzRi?t%L)=;Qf&k^YzA(=WAu}ps1#)DIBL;)e;6MCx?Ve0r88A4wUNsZ2S0|S07|M#-KU?QTOvyT*LbM=2-b?ckfSBppW49S+!3(j~mFj#3i%qSE_FR!BbDQb?+Bx)1EvXKv0_SW_Xha=GPq-1&dhlk_PzuT@KT5`g{ttxeg@Z)Ey zTJt}Dq_7GU<+kS@Y9YAC-XG-oH>xdOaG!CNfLKyz$`v7DTp1dq+I%xNs7J48{&+1N zsjegBl;v-<-zqii2t{JS69gpD`=K}v3?!_9v8}GB>QDuEpn7P-nbjG}x4S1}J0wxn zQ!R!N!3=h<=$4j*EodNRB)}y^Z)Is06&@ZeI8@F>$&&>CFH#tVK63K#6fu|&qFvjD z2k&BcKxWzZ^@IqC27OqCHun2dke6Ne>Z>R>H}{W%(z>#_-rm{S-Z;KrBUW^p8l&?Y zB1gVDF!uIDY!oxpf53jSl*X<2Zq?#hhX zm?Y4zJEeuZo8iiAR7-;7Q7Bcx{ZTT#;iAD}c5h(p#;F=-yGBhi`Eo3Mt0*ej3;=hApow-$M z_&^`Ph$Y8~x&(=)d+==gZ2{j%@BT}nb%R0z5N0Wh}X{}~i3TyHgnvqaB)>*)yyp_I=^ zNzRTLFsFY+4s!@D3J~A6H)a4igXMKQpPp3A)?o$NqaL*RB$O?7Im~nXCtp!+NW;ju zNQ2ODwAQgIXHJ~G*q8)>gzy0)^zHeu_yQ|iPh0V_++EW3yJ<~1foelB5J2M(xXG~6 zIeYz=|Mp{0$_4YAl7x{FYUjs)f?71dL`9clAEZ15m~Hd}1J?rg-J#uPGfWeP0XbCX z+vM-t$sW-Vn~RGi2JOKtnGI<3$t;{k8(dP2e8>Box|u%#0YH)EwBO7p+=y&_cJKdq zBMA}sAo1~(;(0=2$p=~KmO@wHa;3}tE`yFInd9h+=T1kYdu$EsBR3RM?wvKTtGwfp z85X5-+6rZX{te*v$L&B;O9xb*Gh&?Sa$e0*wOT$4tnsL#u4;v|?lt0+F4V!qf3pB~ zdP?#?1t1Ikxd4BA{RaF0HH!T|SRBiNJDHL!=54O+?LNVZ0d?N4FfQ|xF^|B6oE)bw zuPblUM|rr>E;s}PkVE%t^K#eo)!S+5y*rv>O;EZaMtI)t3D{?^-q}F`2G_J3?FjI( zv6bN;VlLcsRW36Crv?%Jo~nqvZm~?w?q6gylx6q&)sh3lN>M%U>WE~HA~p^I0WK=2 zjDXvD@ua&U4-XF|;6JRa{V(rt^A}B}5HdbKIv(2E=8WUxI1ZEjRq5!c-6OY{y*CYN z1OOWVjT$?45UZp#?C0QceV@wuV5Ny)@)H*w9hi}hPslJaHuiemFKK;k1x5?I|NUD{ zOJg;k{9AO&4e*=wjSZRbh>^Cg0MS1{@=AjrL2m_^4P(p@ta2olM<+y?S)CO@Wwm0U zfH$0&m@tVcC{R^a&J8J|f^~bn$GO!YE#2NfkL-1Bd3k;1=HgjjCj0O48o?iWD%zs* z=%~0qw0_e$tSpoX_w*#GslAit98@Lg9V9Eh2`Q^Q&RVb&lu2S>OGT^FqN`Ww9c0~1 zCuf<2#)pgT78e&!Mk7|TLl;-I4cT^~lv6XA6YcLW+yj$4`}})GvD9qzk@_?`M)mM{ zzQkc=(Ed6lg@u$l5Uh1;Sv(fSRaa+cd$cmEIc;raot0VHNLm0;4R5;#TuKtUGa%rT zM+yW-26+8V04m$j5V*I1%hK-Ax~vUYM>YpmXkQyb4yG1_V(Gau{h}H zp>{Kyn^{@0S#fcw1O$7hr&>yCEXIqnwhuH7h;xzG*A9`iNl8gKsV6{GyV9-_7_)_e z3A3}S1jaGmzu!GHT|55h`Du+;1_alXIaq5_MM}i5Zl3PiykEk9xSpXnXZ$~nopn@{ zQMm3Al_)ZK@gNsYUq-XmKso+p^=ahY3UY;A%~Fel4eNhW`Mgr_ny1% zTIa5_j{m{Ta^_>^+xvar=XrkHYCQFcq2ZiPi9XkWFqjS+i~0}Z1XEda>gb3aWne+Q$8%o83s-EE zgi$KH>kG|VZgZG(UteFKepZ#0LA1%Xr3KNn<*ltUfBwuiotcnGyd%2(^Vi#{Da=le zdS`xRr7%DL``-x<+LN<^P+?*IL6P^%4>Bna)`SIC@^7zw!i+QAX;_~*-98jdH8~HX zp)6RbREH|g+t}KvsH+E8lkqhW22)W{y?*zu#%@MCp5${s=A5X(r{Tx_!pE9VpFH_q znwXf_<`p0xKyVwog4KLyb7x7eEa8DsLR?%W(4b#gLoHX)&SUEy#t?BP+QSDzr+5`IreL?j|Lzp&EwFyUn?6Lo7sSQsJB1_AIn zCJ}7CHXlrwka_94nNwX=;pu*nj+{_dS3gbYOG!?#<;&h%VZZJ;lQ2c8@~Nm$WBCMm zF-(=QOyU^#(w8OH(p{89)rwt+N&U+gFxp-_A6~d1IIPC~{eOLZ7fZ~{>7N%iI5Hw@ z_@)&6U5WzP*w~_4yUZ#;AkBzaIl9ZR8cTvO9iK6Mr( z8^TPeP5(c5s3kjK8>q`bLQl&Gn?wF*u`f0t> zr(~g#Zej>rPc%Ma4*3?7a@K7w6u5~J<-&v~@@p4BGM|Ugkl24OdGt(=0*?G(Xb9|9 zT>}|i2#AlT^~LkJ$B!RZRacw73)uLQR?IBSBx)1&;cW08$rf`O%VeWPFTFs?vxX5c zNLEt%Y(!G2~ChdAjrySJKpuc`e>JeqgUje4wZH0{Ak$ zK&h`mFk|Eoc5^M423g)M}>*@<_Ir!8=PTb$mL{2gi5h6T4%H**?z88c1UD-P$vPi)-f5DcS zT8H`U(71B99L<8V*(e^O;vf>@ruDCo4cARb%ktmp#`^CS*tIdR6#$4x67~7zc6~9L z*TuXcaXWoc-`LpD*Vo%S^%V!OHiwCr^&ah&p1h;5uZ7*C<}<`p3))=?G+|4$9@Nxm zJFw1w|8BCC;{Ng|)Rmt0KQ7Aa^lwK_%O=jvuz=)Sq3zwB&AI(!(w~oTHUv?N*z}hv zOf|W`j)s4phl>hGo?&SU%(Bk{v->b9Jb1o=lCOtj+_&-DB{6BTsf8pss4h25HC@>L;xXrHm zfILLkj*~FZX#i4ii;qSKcbxA7ozgRUf2*X?`++uPYMi#uUt}t^0&=>ZaG=N9{6^ZlG=E@>;O--O=B`kDo}B;0iP*$CJ8 zW-jf5bqmiRou!;tJXxk@EV?<=@8p{wYT4B%`ETx(k&Efj`Ghj2d<_p95U6gZc?leT94btW>wDDtpDoOs+0mL4OF9ytL_m%!%6(T zDuJ9j9)d$TcLkfqsAwOwzwF6Hqmza6QbIdGEYEuvr_ByPl_DkMVks{#E^F;(_7{=R z;r!iz*?nOP)q3yM9{Ba4;NhTP4Z1l!J^iN>{0xrl>+h!ym!mr5_C9NY9v*Tn6atn~ zxQ^kqt%nECiF&e7@(fgpJMSAzQ_k%6b?(atXQ#+Hy4!hO&jVIIKP^p>BVCweqPz<-=MsQDWynC z8X9^A%1_?0u~e4*Un%J5!v6w*kgq-PD_2?!ARPnpn}sX5RTW3 zMOr#MfnQOIQOrK*@Z)l^d)XBLP;K?RbtZ!Jp7%TOGp9wq-NT_sBt`%_PgUm-Zz}Ih6JhI*ab6Vq~gT%xb&(}Wyd^l-oN0)jR z^gtQ|`$cR=_(OxHrLASz6Q#Z!+09xiVFhd)zNDTe1GnLJOm=p_$_fV&(cy<>NyYRw zq5){|5x^6Lh9Q{FH5A4oHH=EN_!1wyt-_iC8QX}6TAQ%DC*_?i*6(e0wzrquNPElx zGcF{xJS`;!64F%{#I21J_P z?tX5cp$icPEvbd@!M`u@T%E9{SgH;;R2S3t;nuz-7W^wPKobPx)&v<)ZGy$c^*IKgpnC}j+~PbnfQQr;HqXP!DC z9-Q*1P61i;qeL_sdTWvG>Ctqx(bWOnK-@DR7=kX(>2s-TX+iNzH8sox-mbQm0g&bX zdL9NZ4cuVr!29WK9sXWiT@0KTNVp%ppyMSZij+xGQe3!!A2b5TH$AmeQGuqk- zn4*INr$tkvkE_R>ECzk^QRilI9^y;}_G+ZtiaZSzo%H#Sir(F&HbKf{a(Dr-#i~>C z=&XJg=0(n?_SX`7eRmWrrOQm{dJ`)c{4=pyZzF?xf@>FK3t-Vi%FoTZ&-)U?JL`XW z9$hW!ow&!Nn`$G4C_#~5;qO6!@+%CKe*|h>mG9*l-tEUkgrV)M`&fM1{IZ@onjg0( z2`J6_zdpMe)0sc>?n}Hl;AS0yE@;-g|Krw}o4`l>K^tIz=y?Qa-vM?Gof^SVnoQ>U zx|wZ+fNytfVB$lAFhp3Cy6V+g+<-hAI~V`5a|PfV%z1Ayqm&RonA~s#hzlL0clt*UdW}R% z{D2>Ge25nvQZTa=jW@Q3f9h_5TZ+~?nsVbqe6xo}1m~aSTHNs#)o_5O)>``FN-Gx(nb=YQ&DgA zomKd5u4x?|%Ys>L?d?Th!4UiEQpb;<+Uv^oW?UbLO?^XX%#b~0#a2^j4Eg1&_^p-nho1U2|HmqjK=~zvXuoPW7EOoD-VokIAB+jIP!$uVA+k&YJ8LJyQ znOaNllw2y{X1)3A;M*sejo=Rmy5*js7507-@1mG3=w&}?*L}{*=kU|F{)6j0%;TR{ z+o4zcWPq1=c>-5d(B}`soU6mnwv4XNhK+7G{-aU8>M3-HK1!Mv87*HFyik;tU1q4x z66KA$dpJr#ebaU+g7mPo(E_pnMMtY+>>p8uYX~Dh}?oX)NRCE7 z4Fb7gjqvG~IhU_IzXCPVG&6995^oIFn$p(&Gh71lf~0rOJh_FL6q1+l550Nl3-EGZ z@tBfdJf{55dhx&YBIX)5kB^Uoy$o}fMOLbRU%$cX9;l5+B_YabF*qYvGb-?O(P}>p zDCODew5!~YAel@7vL3%h`N~S6u9Ik)^1~DZz--~=?Y5mL=4McnQz|Gg|B#xuwxWD~ zb1?xw`=NoDE(2gk;T`*u*>u_9D4P(;{f^YL%g|;`XO%4gH!CR4Z-2yy45)YWxolsK z0#3s}!>vFD6Lx4k-02#70!sPz&w>l1qadZJJYj3YXQ>uV3}@GJxq4rTQ@V7W*1N z(1Fnojw~n&q55U8xfu3NSo5rJxi023@y5p1^bjx!afsl%8M|j5USp%9o|7|IJGDp_ zvHr@uJTbOdpQWA|TaaTKA03tCNTj1phl7I0qVKDQj?SaR-=LGHWT61uk}US~f@gtF zyB-40Fo#E_U#F)VFrUQcJoDgwV|HgYSEx@CdhoeE15(--9KKVsnTgR zFn2YQrw&T&3iqgs2%7sOLWE;%7`KSD~j7#Z~Sbvt++93I8!7O6kFub!9`m&Tm( z_k>v@^jK&!7+^bBSAYIY0{+x?R0v9hI_3QCo}mD| zs`}@Lu(M;hG}fW{qQ%>-oKysmLoAXW5NFe*{KBn>FZbmp1O!Z~1WfBx=SFA0ry->T z^Tx-u1DXI|uW|qW)ZzN(m%Z=Et3RwVt=}o+YirhhM(OF*Qbbp`(&{nTGOtG}$e1MC zdFwQI$fEHEi6{cUpKei4&(+>YSX!=CjmB465|!Hr1m-&ju9X`Gt{QoVn_Cunq-lFu z0B3+|sH@bh!}H#a6oYw_G8CML#9BlY)+i@RQj}phzHCveBC5N|N8wODbR7 zjN~ONBVIB5>m*NS{E+YJEyiAGS8N{+T+h7HxdNa^;A6R7=~TY~tFfi-pGs3ZJ3IV; zrg!OK|;ux8uAApvEflAYIhMr85zqE*nF%vkSp7>5{`gP*?6C`FQzf>*68MD!Oam^L4o zlY)mVT`c6`FOH50W z&NA?Y&;tT>R5zpyh%nEeV}S`WSp4f#-Y;``sHmuX{8%TG36k2!M@Q6zftahkMJXwO z^O>6jQ92L+X&#uGon^}UtXWW0R1}cW`G$j^zjrSE%I7y|sZSR8VuxE>TLJ7anT&)4 zs4G*Glj8YwEU#k05+HZm$HxbFwlTdikV`PV_<-LpLzw##Tj| z4RWmu1Io+K+5CEd3OHD!)6FV&NeHGtOhVk+!ufN7IX?u&lcSSU>uQ6`hNg#yhqgBD zy9{ubec=;WAfV!c;Uto9MF5OKL}6fwgQaCH{Kj`%k-ND%*em0)bu0iy=;%z$HF^zk zljkqXl?{Z1g!J~RGI^~JW&-pY1oxt|cHTEUUC?&C2#rQpS`NgX3frxQLSx>edz05?+q9{8&y%xQGo*YN*omHUy6sGsAbwWNfN6K7)38ynML7o)g!OD078K}v) z{EHk|De9TH4gi56$Rk33fKez&9so+3Znaw*2;CZhh=NhdxA#h* zSPYTf(^69-ZCa&En%B0%OIxMC6n%eyOS~4;^d&kvIzB!Cje<2e%u7wOC>TXttD-w!S%p1kH6E^;0s1CY|)$~=(Ic6$cPT`RaNtk#BM{Oy5qRZp@RE0 zMwywNZT8A!k*_|pR9cU4CAsVCGYOkG+6d(+a?e$mtGs+kGVgb+6~~t?suaZ{=`bgG zq=67Jf?pkj>jJb{`s&)ys3=8(@(4A=H3>Z2q|M0qr~gfh|0J0NtC&60HWTX*zqGV8 z7^gX=Dpguu^@qUn-kmH{8t{iccKh{00 z3-Z>6m^V}%T=$+qRn15F;31of!zp7hG82*jf)&?6D?DAUZo-ePi_HehdZ}r0ewRuw!n5NKi*9by!%$W&h3*V2q}@@O<-zdfJl1kjOPanA=s(bA|Y` zG*yhnkiBDCGQ^51$VcH%dOOOBl~~yf!S&aBds2`%zKc~0wQliEa@21Z4_m~H(SW=$ z!R7U}ufF`>x14wcp}%{2qH%F^_aCtFc?XhAKDfEXKMDM!mM{Vce~<`F?)DxH4;i+G zxNg8V`&y_R$!q^M!|bZ)slq2(@$h!1U=kRyu7K0WTw|TrjHh(FJU1?!VnJ@s|9i2hf%0Nda|B;8q{<8QNJt z{h99=%5W)IC@q)0+xbvD05Le(tdE~rq)Kv5dwDs!a1b{bxvhvnQ20Z7%c4W5Z*gP4 zNlW|8aW^+GGGynD7h}y=#I!a={lm8vW*fsf*|tKP{Uox0mn`oZ&5g!@C9LHsxsH*C zS4CC0E`?U}Q}QBa#d{A&1K3(&tS(U%cuy%Q^!_C z6Bf+Xy0>oAuvo51q#T=`0&|SX@iDNTgoF*{mE#eOa?q>Z`OTfg8}kI90`S}96`1>c z&sP%>(^Z<9nm>JW)3BQH*huJZF_h#=y%I&x>FUe7L`3}*OGr&s#a64rjWnpWXYMAH z4hUrUDV2(y+n>*>*`X=RWOJ&D=)g{pNO+_A+sOH?LXee;{DW;@>F_MJc6w9(=IaZV3!w z29&d3_Wf4>7L*0JK1B!IeoGQGVi@oxUhl{0~un{iCAjjTj`LZhoIxs zQL$SjFXFEruJ&&4sMYqU6&@2Q-XX>+w;+$Wj-($TZ^py=1Pmc zZ$j~)GRes-|FAXw7ZHQ7peRIplKhj3?q>-X4nZ81t$F{SpBxx z@&1pPy>$|?Pbov&_3zV!$sGkVQHL1=@PK9}1j5w7_ahP1f}p~vsS#z%w0b3)577iw zUB_J$VZo2)0Wt;ao0~h^4O#Q15p#Zvt_J$4eZ9TFqx4cn8XVj48tCtMczA$Jk47hG z=ne9)S_p`Vo$fg%lJrc^NE{XTYVuIyTMO7n^j>FH+L_GEOoC2bt4?6pFe`X3++cp13Wc`} zOt^0h%LCbcCA+*_uu%IUn2<3sLC!2DYI%rd>AhazusE-v(H@>2qZ4B9r>nlqoFDf) z&^}0IrJ}mC1^RD5BcuqGa~#6K`TQaW`{DFB%Hravz^SgGq-hbni=}AL7^8*Mh;t#l>}X)VRd8-SbATUjqoSF>EAv zK>0=YY`H1-&UKrh38NRRR>>5^l~UuI^L3D5{PVN3lI~$ra32zRFnvVtY=}AD#lhm`>oZ=Zv=SFg~s&Z&7|$cB*^FVy)h zBO?QA3`zF#^a@&$bwsc5adYQkFa-KNb4^kzL@GY#cLT1+N)7i8k6Yp)`%h%)3kS(P zdq14*4PE^5R3|%K{Y~pE!Hr%Eyp0D&CK*C!7U-ZLg-N@)fPHCy|G+@HF7{l3)_Z~9 z0pw+Wa;Bxkx8QcCax?dc37|Wc=;*3JUoD7c6V#}^BprUulnk(antJV=5nEAVmArb z9y4(p{+EG)K?0j}Ertz_*2CG}E9ZSX4uZ-ko0GAM19rvZrZ{aLN??1!!}BUKxZ19> zL`58e1k1smqa}|iu}!mS4B7QDYqBaS4vNGWW2_FkK02ckujM}Xpl7sh68FULY+)ee zX4G^PLx<|0&vhUxA^JNjDFer4sW?b|_5+~5fUD^!XQ17(NXP+X6!gZbM^m!-+ z!9reQVs8F~F!?@M*$UYc5)`0rs+q5d*<+LxGF?rpZY?VylPA|ZBYDBX&Ck!Tu%8q? zgo|LLfp9yjdWG&wEhuf;sC&{(jE#2|U}T>e7{&@a6wYnF0HYRw5dnu8_+Hj|hcp?0wx2fh)x!EZ z4`nC=V+zQZCuAjhl;GSYQ4yO`r*O^Bdzb0loL(awY_A zP5g@Y5`P!-KX`ML_?Egy_fEK$NlY0y%ERkuA?TK{4I@i@ceW;h{R8kJnIrCz|Mm1`rljM7<{h@oveMGT@KgsMORll~Sl!H5R@TG$T*>iu16hlkAeb2-p=d?BP!P|9s3r)yOq*7bZ~xRqSW|TzzrD| o*3Hcg-?}U~3Jv#P?}CH%_0B;a@q1=L@Ea^;c{RBb8Q7=)1<6h3jsO4v literal 0 HcmV?d00001 diff --git a/docs/ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png b/docs/ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png new file mode 100644 index 0000000000000000000000000000000000000000..3aceb6f9e759becb95d3042a603eaedd7e6be8a1 GIT binary patch literal 27264 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 literal 0 HcmV?d00001