/* Вынесено из site.css (Important C, фаза C / PLAN_css_refactor_v2.md):
   глобальные Bootstrap 5 переопределения через var(--vd-*), которые применяются
   на ВСЕХ страницах: typography .main-wrapper, .card, .form-control, .table,
   .modal-content, кнопки .btn-*, hero, footer badges, toast, ticket-details-meta. */
/* ============================================================
   Palette-agnostic overrides: карточки, формы, таблицы, чат, комментарии
   Используем только CSS-переменные --vd-*, чтобы light/blue/dark/vibe
   переключались одним атрибутом data-color-palette.
   ============================================================ */
body.zen-body .main-wrapper { color: var(--vd-text); }

body.zen-body .main-wrapper h1,
body.zen-body .main-wrapper h2,
body.zen-body .main-wrapper h3,
body.zen-body .main-wrapper h4,
body.zen-body .main-wrapper h5,
body.zen-body .main-wrapper h6,
body.zen-body .main-wrapper .h1,
body.zen-body .main-wrapper .h2,
body.zen-body .main-wrapper .h3,
body.zen-body .main-wrapper .h4,
body.zen-body .main-wrapper .h5,
body.zen-body .main-wrapper .h6 {
    color: var(--vd-text-strong);
}

body.zen-body .main-wrapper .text-muted,
body.zen-body .main-wrapper .text-secondary,
body.zen-body .main-wrapper .form-text { color: var(--vd-text-muted) !important; }

/* Bootstrap card */
body.zen-body .main-wrapper .card:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info):not(.bg-dark):not(.vd-glass-card):not(.zen-auth-card) {
    background: var(--vd-panel) !important;
    border: 1px solid var(--vd-border) !important;
    color: var(--vd-text);
    box-shadow: var(--vd-shadow-sm);
}

body.zen-body .main-wrapper .card-header:not(.zen-chat-panel-head):not(.vd-chrome-surface):not(.vd-kb-root-head):not(.zen-messenger-sidebar-head):not(.zen-messenger-thread-header--light),
body.zen-body .main-wrapper .card-footer:not(.zen-messenger-composer) {
    background: var(--vd-panel-soft) !important;
    border-color: var(--vd-border) !important;
    color: var(--vd-text);
}

body.zen-body .main-wrapper .card-header.bg-primary,
body.zen-body .main-wrapper .card-header.bg-dark,
body.zen-body .main-wrapper .card-header.bg-info,
body.zen-body .main-wrapper .card-header.bg-success,
body.zen-body .main-wrapper .card-header.bg-warning,
body.zen-body .main-wrapper .card-header.bg-danger { color: #fff !important; }

body.zen-body .tw-surface-card {
    background: var(--vd-panel) !important;
    border: 1px solid var(--vd-border) !important;
    color: var(--vd-text);
    box-shadow: var(--vd-shadow-sm);
}

body.zen-body .tw-table-toolbar {
    background: var(--vd-panel-soft) !important;
    border: 1px solid var(--vd-border) !important;
    color: var(--vd-text);
}

body.zen-body .tw-chip-btn,
body.zen-body .tw-filter-btn,
body.zen-body .tw-action-btn {
    background: var(--vd-panel);
    border: 1px solid var(--vd-border);
    color: var(--vd-text);
}
body.zen-body .tw-chip-btn:hover,
body.zen-body .tw-filter-btn:hover,
body.zen-body .tw-action-btn:hover {
    background: var(--vd-accent-soft);
    border-color: var(--vd-accent);
    color: var(--vd-text-strong);
}
body.zen-body .tw-chip-btn.active,
body.zen-body .tw-filter-btn.active {
    background: var(--vd-accent);
    border-color: var(--vd-accent-strong);
    color: #fff;
}

/* Формы */
body.zen-body .form-control,
body.zen-body .form-select,
body.zen-body textarea,
body.zen-body input[type="text"],
body.zen-body input[type="email"],
body.zen-body input[type="password"],
body.zen-body input[type="search"],
body.zen-body input[type="number"],
body.zen-body input[type="url"],
body.zen-body input[type="tel"],
body.zen-body input[type="date"],
body.zen-body input[type="datetime-local"],
body.zen-body input[type="time"] {
    background-color: var(--vd-panel);
    border: 1px solid var(--vd-border);
    color: var(--vd-text);
}
body.zen-body .form-control::placeholder,
body.zen-body textarea::placeholder,
body.zen-body input::placeholder { color: var(--vd-text-faint); }

body.zen-body .form-control:focus,
body.zen-body .form-select:focus,
body.zen-body textarea:focus,
body.zen-body input:focus {
    background-color: var(--vd-panel);
    border-color: var(--vd-accent);
    box-shadow: 0 0 0 3px var(--vd-accent-soft);
    color: var(--vd-text);
}

body.zen-body .input-group-text {
    background: var(--vd-panel-soft);
    border: 1px solid var(--vd-border);
    color: var(--vd-text-muted);
}

body.zen-body .form-label,
body.zen-body .form-check-label { color: var(--vd-text); }

/* File input — контрастная кнопка выбора файла */
body.zen-body .form-control[type="file"] {
    color: var(--vd-text-muted);
}

body.zen-body .form-control[type="file"]::file-selector-button {
    background: linear-gradient(135deg, var(--vd-accent) 0%, var(--vd-accent-strong) 100%);
    color: #ffffff;
    border: none;
    border-radius: 0.45rem;
    margin-right: 0.65rem;
    padding: 0.35rem 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

body.zen-body .form-control[type="file"]::file-selector-button:hover {
    filter: brightness(1.06);
}

/* Таблицы */
body.zen-body .table,
body.zen-body .zen-data-table {
    color: var(--vd-text);
    --bs-table-bg: transparent;
    --bs-table-color: var(--vd-text);
    --bs-table-border-color: var(--vd-border);
    --bs-table-striped-bg: var(--vd-panel-soft);
    --bs-table-striped-color: var(--vd-text);
    --bs-table-hover-bg: var(--vd-accent-soft);
    --bs-table-hover-color: var(--vd-text-strong);
}

body.zen-body .zen-data-table thead th,
body.zen-body .zen-admin-users-table thead th,
body.zen-body .table thead th {
    background: var(--vd-panel-soft);
    color: var(--vd-text-muted);
    border-bottom: 1px solid var(--vd-border);
    border-color: var(--vd-border) !important;
}

body.zen-body .zen-data-table tbody tr:hover,
body.zen-body .zen-admin-users-table tbody tr:hover,
body.zen-body .table tbody tr:hover { background-color: var(--vd-accent-soft); }

body.zen-body .table-light,
body.zen-body .table-striped > tbody > tr:nth-of-type(odd) > * { color: var(--vd-text); }

/* Модалки: fallback без body.zen-body; Zen — токены палитры, без Aero glass */
.modal-content {
    background-color: var(--vd-modal-content-fallback-bg);
    background-clip: padding-box;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: var(--vd-modal-content-fallback-shadow);
}

.modal-content .modal-header.bg-primary,
.modal-content .modal-header.bg-dark {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.zen-body .modal-content {
    background: var(--vd-modal-content-bg);
    color: var(--vd-modal-content-color);
    border: 1px solid var(--vd-modal-content-border);
    box-shadow: var(--vd-modal-content-shadow);
    background-clip: padding-box;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
body.zen-body .modal-header,
body.zen-body .modal-footer { border-color: var(--vd-border); }

/* Ticket details и комментарии */
body.zen-body .zen-ticket-history-head {
    background: var(--vd-panel-soft) !important;
    border-bottom: 1px solid var(--vd-border) !important;
    color: var(--vd-text);
}

body.zen-body .zen-ticket-details-meta {
    background: var(--vd-chrome-flat) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #fff !important;
}
body.zen-body .zen-ticket-details-meta a { color: #fff; }
body.zen-body .zen-ticket-details-meta .text-muted { color: rgba(255, 255, 255, 0.75) !important; }

body.zen-body .zen-ticket-details-meta--urgent {
    background: linear-gradient(90deg, #7f1d1d 0%, #b91c1c 50%, #dc2626 100%) !important;
    color: #fff !important;
    border-bottom-color: rgba(0, 0, 0, 0.2) !important;
}

body.zen-body .zen-ticket-desk-actions-head {
    background: linear-gradient(118deg, var(--vd-chrome-bg) 0%, var(--vd-chrome-bg-soft) 60%, var(--vd-accent) 100%) !important;
    border-bottom: 1px solid var(--vd-border) !important;
    color: #fff;
}

body.zen-body .zen-ticket-comments-card .list-group-item,
body.zen-body .list-group-item {
    background: var(--vd-panel);
    border-color: var(--vd-border);
    color: var(--vd-text);
}

body.zen-body .zen-ticket-comment-block {
    background: var(--vd-panel-soft) !important;
    border: 1px solid var(--vd-border) !important;
    color: var(--vd-text);
}

body.zen-body .zen-ticket-comment-block.border-primary { border-left-color: var(--vd-accent) !important; }
body.zen-body .zen-ticket-comment-block.border-info { border-left-color: #38bdf8 !important; }

body.zen-body .zen-ticket-comments h6 { color: var(--vd-text-muted); }

/* Toast */
body.zen-body .toast {
    background: var(--vd-panel);
    color: var(--vd-text);
    border: 1px solid var(--vd-border);
}

/* Hero секции — плоский цвет сайдбара (corporate), без градиента */
body.zen-body .zen-ticket-hero,
body.zen-body .tw-hero,
body.zen-body .zen-desk-hero,
body.zen-body .zen-admin-users-hero {
    background: var(--vd-chrome-bg);
    border: 1px solid var(--vd-chrome-border);
    border-radius: var(--vd-radius-lg);
    color: var(--vd-chrome-text);
}
body.zen-body .zen-admin-users-hero--bare {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: clamp(1rem, 2vw, 1.5rem) !important;
}

/* Badges */
body.zen-body .main-wrapper .badge.bg-light,
body.zen-body .main-wrapper .badge.bg-secondary-subtle {
    background: var(--vd-accent-soft) !important;
    color: var(--vd-accent-strong) !important;
}

body.zen-body .main-wrapper .btn-outline-secondary {
    color: var(--vd-text);
    border-color: var(--vd-border);
    background: transparent;
}
body.zen-body .main-wrapper .btn-outline-secondary:hover {
    background: var(--vd-accent-soft);
    border-color: var(--vd-accent);
    color: var(--vd-text-strong);
}
body.zen-body .main-wrapper .btn-outline-primary {
    color: var(--vd-accent-strong);
    border-color: var(--vd-accent);
    background: transparent;
}
body.zen-body .main-wrapper .btn-outline-primary:hover {
    background: var(--vd-accent);
    color: #fff;
    border-color: var(--vd-accent);
}
body.zen-body .main-wrapper .btn-outline-light {
    color: var(--vd-text);
    border-color: var(--vd-border);
}
body.zen-body .main-wrapper .btn-outline-light:hover {
    background: var(--vd-accent-soft);
    border-color: var(--vd-accent);
    color: var(--vd-text-strong);
}
/* Кнопки outline-light на тёмных hero (деск, тикеты): глобальное правило выше даёт тёмный текст */
body.zen-body .main-wrapper .zen-desk-hero .btn-outline-light,
body.zen-body .main-wrapper .zen-ticket-hero .btn-outline-light,
body.zen-body .main-wrapper .tw-hero .btn-outline-light,
body.zen-body .main-wrapper .zen-admin-users-hero .btn-outline-light {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
    background: rgba(255, 255, 255, 0.06) !important;
}
body.zen-body .main-wrapper .zen-desk-hero .btn-outline-light:hover,
body.zen-body .main-wrapper .zen-ticket-hero .btn-outline-light:hover,
body.zen-body .main-wrapper .tw-hero .btn-outline-light:hover,
body.zen-body .main-wrapper .zen-admin-users-hero .btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: #fff !important;
    color: #fff !important;
}
body.zen-body .main-wrapper .zen-desk-hero .tw-btn-ghost-soft {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
    background: rgba(255, 255, 255, 0.1) !important;
}
body.zen-body .main-wrapper .zen-desk-hero .tw-btn-ghost-soft:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: #fff !important;
    color: #fff !important;
}
body.zen-body .main-wrapper .btn-primary {
    background: var(--vd-accent);
    border: 1px solid var(--vd-accent-strong);
    color: #fff;
}
body.zen-body .main-wrapper .btn-primary:hover {
    background: var(--vd-accent-strong);
    color: #fff;
}

/* Footer badges */
body.zen-body .zen-brand-footer .bg-dark,
body.zen-body .zen-brand-footer .bg-opacity-25 {
    background: var(--vd-panel-soft) !important;
    border-color: var(--vd-border) !important;
    color: var(--vd-text-muted) !important;
}
