/* ============================================================================
 * accessibility.css — режим для слабовидящих (класс html.cmyk-a11y).
 *
 * Включается флагом пользователя (users.accessibility_mode) или личным
 * переключателем в кабинете. Делает интерфейс крупнее и контрастнее, с особым
 * акцентом на ЧАТАХ. Все правила строго под html.cmyk-a11y — на остальных
 * пользователей не влияют.
 * ========================================================================== */

/* ── Индивидуальный масштаб крупного режима ──────────────────────────────
 * Почти все размеры ниже заданы в rem (относительно корня). Масштабируя
 * корневой font-size множителем --cmyk-a11y-scale (0.60–1.0), админ может
 * индивидуально (в карточке сотрудника) уменьшить крупный режим:
 *   1.0  → как было (максимум),  0.60 → ближе к обычному.
 * При scale = 1 (по умолчанию) поведение не меняется. */
html.cmyk-a11y {
    font-size: calc(100% * var(--cmyk-a11y-scale, 1));
}

/* ── Глобально: умеренно крупнее и контрастнее ──────────────────────────── */
html.cmyk-a11y body {
    font-size: 1.14rem;
    line-height: 1.6;
    color: #0b1220;
    -webkit-font-smoothing: antialiased;
}
html.cmyk-a11y .text-muted,
html.cmyk-a11y .small,
html.cmyk-a11y small {
    color: #334155 !important;   /* приглушённый текст делаем читаемее */
}
html.cmyk-a11y .small,
html.cmyk-a11y small { font-size: .98rem !important; }

/* Кнопки и поля — крупнее, удобнее попадать */
html.cmyk-a11y .btn {
    font-size: 1.05rem;
    padding: .5rem .9rem;
}
html.cmyk-a11y .btn-sm { font-size: .98rem; padding: .4rem .7rem; }
html.cmyk-a11y .form-control,
html.cmyk-a11y .form-select {
    font-size: 1.08rem;
    min-height: 2.7rem;
}
html.cmyk-a11y .form-check-input { width: 1.3em; height: 1.3em; }

/* Навигация в боковом меню — крупнее */
html.cmyk-a11y .cmykos-sidebar__link { font-size: 1.06rem; }

/* Видимый фокус для клавиатуры */
html.cmyk-a11y a:focus-visible,
html.cmyk-a11y button:focus-visible,
html.cmyk-a11y .form-control:focus,
html.cmyk-a11y .form-select:focus {
    outline: 3px solid #2563eb !important;
    outline-offset: 2px;
}

/* ── ЧАТЫ: шрифты ×4 от базовых (/chats); повторное ×2 для слабовидящих ─── */
html.cmyk-a11y body.page-chats .chat-bubble {
    font-size: 3.28rem !important;
    line-height: 1.35 !important;
    padding: 12px 18px !important;
    max-width: min(920px, 96%) !important;
}
html.cmyk-a11y body.page-chats .chat-bubble .body {
    font-size: 3.28rem !important;
    line-height: 1.35 !important;
}
html.cmyk-a11y body.page-chats .chat-bubble .sender {
    font-size: 2.72rem !important;
    line-height: 1.2 !important;
}
html.cmyk-a11y body.page-chats .chat-msg-time,
html.cmyk-a11y body.page-chats .chat-bubble .chat-msg-time {
    font-size: 2.32rem !important;
    line-height: 1.2 !important;
}
html.cmyk-a11y body.page-chats .chat-composer-input,
html.cmyk-a11y body.page-chats #msg-input {
    font-size: 3.5rem !important;
    line-height: 1.45 !important;
    min-height: 4.5rem !important;
    padding: 0.75rem 1rem !important;
}
html.cmyk-a11y body.page-chats .chat-btn-send,
html.cmyk-a11y body.page-chats .chat-composer-bar .btn {
    font-size: 3.2rem !important;
    padding: 0.65rem 1.2rem !important;
}
html.cmyk-a11y body.page-chats .chat-date-divider span,
html.cmyk-a11y body.page-chats .chat-day-sep {
    font-size: 2.8rem !important;
    padding: 8px 20px !important;
}
html.cmyk-a11y body.page-chats .room-unread-badge {
    font-size: 2.8rem !important;
    min-width: 2.4rem !important;
    height: 2.4rem !important;
    line-height: 2.4rem !important;
}
html.cmyk-a11y body.page-chats .room-item,
html.cmyk-a11y body.page-chats #rooms-list,
html.cmyk-a11y body.page-chats .chat-rooms-list,
html.cmyk-a11y body.page-chats .room-title-row {
    font-size: 3.28rem !important;
}
html.cmyk-a11y body.page-chats #chat-title {
    font-size: 3.5rem !important;
}
html.cmyk-a11y body.page-chats .chat-section-heading span,
html.cmyk-a11y body.page-chats .chat-search-heading,
html.cmyk-a11y body.page-chats .chat-section-heading .text-muted {
    font-size: 2.6rem !important;
}
html.cmyk-a11y body.page-chats .chat-section-add {
    font-size: 2.8rem !important;
}
html.cmyk-a11y body.page-chats .chat-file-name {
    font-size: 3.52rem !important;
}
html.cmyk-a11y body.page-chats .chat-file-meta {
    font-size: 2.88rem !important;
}
html.cmyk-a11y body.page-chats .chat-file-icon {
    font-size: 5.6rem !important;
    width: 72px !important;
    height: 72px !important;
}
html.cmyk-a11y body.page-chats .emoji-panel {
    font-size: 5.4rem !important;
    line-height: 1.9 !important;
    max-width: 420px !important;
}
html.cmyk-a11y body.page-chats .emoji-toolbar,
html.cmyk-a11y body.page-chats .emoji-toolbar .btn {
    font-size: 3rem !important;
    padding: 6px 14px !important;
}
html.cmyk-a11y body.page-chats .chat-edited-meta,
html.cmyk-a11y body.page-chats .msg-actions,
html.cmyk-a11y body.page-chats .chat-admin-banner {
    font-size: 2.88rem !important;
}
html.cmyk-a11y body.page-chats .mention-suggest button {
    font-size: 3.4rem !important;
    padding: 14px 18px !important;
}
html.cmyk-a11y body.page-chats .chat-search-snippet {
    font-size: 3.2rem !important;
}
html.cmyk-a11y body.page-chats .chat-avatar {
    width: 52px !important;
    height: 52px !important;
    font-size: 2.2rem !important;
}
html.cmyk-a11y body.page-chats #chat-search,
html.cmyk-a11y body.page-chats .chat-layout .form-control-sm {
    font-size: 3rem !important;
    min-height: 3.6rem !important;
}
html.cmyk-a11y body.page-chats .chat-layout .btn-sm,
html.cmyk-a11y body.page-chats .chat-layout .dropdown-item {
    font-size: 2.8rem !important;
    padding: 0.5rem 0.85rem !important;
}
html.cmyk-a11y body.page-chats .chat-quote,
html.cmyk-a11y body.page-chats #reply-bar,
html.cmyk-a11y body.page-chats #reply-bar-text {
    font-size: 2.72rem !important;
}
html.cmyk-a11y body.page-chats #reply-bar-sender {
    font-size: 2.72rem !important;
}
html.cmyk-a11y body.page-chats .chat-mention {
    font-size: inherit !important;
    padding: 2px 8px !important;
}
/* Inline-стили из chats.html / JS (галочки прочитано и т.п.) */
html.cmyk-a11y body.page-chats .chat-bubble span[style*="font-size"],
html.cmyk-a11y body.page-chats .chat-msg-row span[style*="font-size"] {
    font-size: 2.24rem !important;
}
html.cmyk-a11y body.page-chats .chat-messages-area {
    font-size: 3.28rem;
}

/* Контраст пузырей (глобально в режиме a11y) */
html.cmyk-a11y .chat-bubble.other {
    background: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #1f2937 !important;
}
html.cmyk-a11y .chat-bubble.mine {
    background: #d8e4ff !important;
    color: #07142e !important;
    border: 2px solid #1d4ed8 !important;
}
html.cmyk-a11y .chat-bubble .sender {
    color: #1d4ed8 !important;
    font-weight: 800 !important;
}
html.cmyk-a11y .chat-msg-time,
html.cmyk-a11y .chat-bubble .chat-msg-time {
    color: #334155 !important;
}

/* ── Личный кабинет: большая кнопка «ЧАТЫ» (только в крупном режиме) ─────── */
.cab-a11y-chats-btn {
    display: none;
}
html.cmyk-a11y .cab-a11y-chats-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: 100%;
    min-height: 96px;
    padding: 24px 28px;
    border-radius: 20px;
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    color: #fff !important;
    font-size: 2.35rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 12px 32px rgba(37, 99, 235, 0.42);
    border: 4px solid #1e40af;
    transition: transform 0.12s ease, opacity 0.12s ease;
    position: relative;
}
html.cmyk-a11y .cab-a11y-chats-btn:active {
    transform: scale(0.98);
    opacity: 0.92;
}
html.cmyk-a11y .cab-a11y-chats-btn .ico {
    font-size: 2.8rem;
    line-height: 1;
}
html.cmyk-a11y .cab-a11y-chats-unread {
    position: absolute;
    top: 10px;
    right: 14px;
    min-width: 2.4rem;
    height: 2.4rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 2.4rem;
    text-align: center;
    letter-spacing: 0;
    border: 3px solid #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* ── Заголовки и карточки чуть крупнее ──────────────────────────────────── */
html.cmyk-a11y h1, html.cmyk-a11y .h1 { font-size: 2rem; }
html.cmyk-a11y h2, html.cmyk-a11y .h2 { font-size: 1.7rem; }
html.cmyk-a11y h3, html.cmyk-a11y .h3 { font-size: 1.45rem; }
html.cmyk-a11y .badge { font-size: .92em; }

/* Плавающая кнопка-переключатель (в кабинете) */
html.cmyk-a11y .a11y-toggle-btn { box-shadow: 0 0 0 3px rgba(37,99,235,.25); }
