/* ==========================================
   Единый стиль для Маркетинг Агента
   Поддержка светлой и тёмной темы
   ========================================== */

/* ---------- СВЕТЛАЯ ТЕМА (по умолчанию) ---------- */
:root {
    --bg-primary: #f5f6fa;
    --bg-secondary: #ffffff;
    --bg-card: #ffffff;
    --bg-card-header: #f8f9fa;
    --bg-input: #ffffff;
    --bg-hover: #e9ecef;
    --border-color: #dee2e6;
    --text-primary: #212529;
    --text-secondary: #6c757d;
    --text-muted: #adb5bd;
    --accent: #0d6efd;
    --accent-hover: #0b5ed7;
    --success: #198754;
    --danger: #dc3545;
    --warning: #ffc107;
    --info: #0dcaf0;
    --gradient: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
    --shadow: 0 2px 10px rgba(0,0,0,0.08);
    --shadow-hover: 0 5px 20px rgba(0,0,0,0.12);
    --sidebar-bg: #1a4b8c;
    --sidebar-text: rgba(255,255,255,0.9);
    --table-hover: rgba(13,110,253,0.04);
    --message-bg: #ffffff;
    --scrollbar-track: #f1f1f1;
    --scrollbar-thumb: #c1c1c1;
}

/* ---------- ТЁМНАЯ ТЕМА ---------- */
[data-theme="dark"] {
    --bg-primary: #1a1d23;
    --bg-secondary: #212529;
    --bg-card: #2a2d35;
    --bg-card-header: #32353d;
    --bg-input: #1e2028;
    --bg-hover: #343a40;
    --border-color: #3a3d45;
    --text-primary: #e0e0e0;
    --text-secondary: #adb5bd;
    --text-muted: #8a929f;
    --accent: #0d6efd;
    --accent-hover: #0b5ed7;
    --success: #198754;
    --danger: #dc3545;
    --warning: #ffc107;
    --info: #0dcaf0;
    --gradient: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
    --shadow: 0 4px 12px rgba(0,0,0,0.3);
    --shadow-hover: 0 6px 24px rgba(0,0,0,0.4);
    --sidebar-bg: #0d0d0d;
    --sidebar-text: #adb5bd;
    --table-hover: rgba(13,110,253,0.08);
    --message-bg: #2a2d35;
    --scrollbar-track: #1a1d23;
    --scrollbar-thumb: #3a3d45;

    /* Переопределение Bootstrap CSS-переменных для тёмной темы */
    --bs-body-color: #e0e0e0;
    --bs-body-bg: #1a1d23;
    --bs-card-color: #e0e0e0;
    --bs-card-cap-color: #e0e0e0;
    --bs-card-bg: #2a2d35;
    --bs-card-cap-bg: #32353d;
    --bs-card-border-color: #3a3d45;
    --bs-emphasis-color: #e0e0e0;
    --bs-secondary-color: #adb5bd;
    --bs-tertiary-color: #8a929f;
    --bs-tertiary-bg: #32353d;
    --bs-emphasis-color-rgb: 224, 224, 224;
    --bs-table-color: #e0e0e0;
    --bs-table-bg: transparent;
    --bs-table-border-color: #3a3d45;
    --bs-table-hover-bg: rgba(13,110,253,0.08);
    --bs-table-striped-bg: rgba(0,0,0,0.15);
    --bs-form-control-bg: #1e2028;
    --bs-form-control-color: #e0e0e0;
    --bs-form-control-border-color: #3a3d45;
    --bs-form-select-bg: #1e2028;
    --bs-form-select-color: #e0e0e0;
    --bs-input-group-addon-bg: #32353d;
    --bs-input-placeholder-color: #6c757d;
    --bs-form-label-color: #e0e0e0;
    --bs-border-color: #3a3d45;
    --bs-border-color-translucent: rgba(255,255,255,0.1);
    --bs-info-bg-subtle: #1a3a4a;
    --bs-info-text-emphasis: #7ec8e3;
    --bs-success-bg-subtle: #0a3622;
    --bs-success-text-emphasis: #75b798;
    --bs-danger-bg-subtle: #3d0f14;
    --bs-danger-text-emphasis: #ea868f;
    --bs-warning-bg-subtle: #3d2e00;
    --bs-warning-text-emphasis: #ffda6a;
    --bs-primary-bg-subtle: #0a1e3d;
    --bs-primary-text-emphasis: #8bb9fe;
    --bs-secondary-bg-subtle: #1e2028;
    --bs-secondary-text-emphasis: #adb5bd;
    --bs-dropdown-color: #e0e0e0;
    --bs-dropdown-bg: #2a2d35;
    --bs-dropdown-border-color: #3a3d45;
    --bs-dropdown-link-color: #e0e0e0;
    --bs-dropdown-link-hover-color: #e0e0e0;
    --bs-dropdown-link-hover-bg: #343a40;
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-link-active-bg: #0d6efd;
    --bs-nav-tabs-border-color: #3a3d45;
    --bs-nav-tabs-link-active-color: #0d6efd;
    --bs-nav-tabs-link-hover-border-color: #3a3d45;
    --bs-modal-color: #e0e0e0;
    --bs-modal-bg: #2a2d35;
    --bs-modal-border-color: #3a3d45;
    --bs-modal-header-border-color: #3a3d45;
    --bs-modal-footer-border-color: #3a3d45;
    --bs-list-group-color: #e0e0e0;
    --bs-list-group-bg: #2a2d35;
    --bs-list-group-border-color: #3a3d45;
    --bs-list-group-hover-bg: #343a40;
    --bs-list-group-action-color: #e0e0e0;
    --bs-pagination-color: #e0e0e0;
    --bs-pagination-bg: #2a2d35;
    --bs-pagination-border-color: #3a3d45;
    --bs-pagination-hover-color: #e0e0e0;
    --bs-pagination-hover-bg: #343a40;
    --bs-pagination-hover-border-color: #3a3d45;
    --bs-accordion-color: #e0e0e0;
    --bs-accordion-bg: #2a2d35;
    --bs-accordion-border-color: #3a3d45;
    --bs-accordion-btn-color: #e0e0e0;
    --bs-accordion-btn-bg: #2a2d35;
    --bs-accordion-active-color: #0d6efd;
    --bs-accordion-active-bg: rgba(13,110,253,0.1);
    --bs-progress-bg: #1e2028;
    --bs-tooltip-color: #e0e0e0;
    --bs-tooltip-bg: #212529;
    --bs-popover-body-color: #e0e0e0;
    --bs-popover-bg: #2a2d35;
    --bs-popover-border-color: #3a3d45;
    --bs-popover-header-color: #e0e0e0;
    --bs-popover-header-bg: #32353d;
    --bs-offcanvas-color: #e0e0e0;
    --bs-offcanvas-bg: #2a2d35;
    --bs-offcanvas-border-color: #3a3d45;
    --bs-code-color: #e0e0e0;
    --bs-breadcrumb-item-active-color: #adb5bd;
}

/* ---------- Базовые стили ---------- */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    overflow-x: hidden;
    transition: background 0.3s, color 0.3s;
}

a { color: var(--accent); }
a:hover { color: var(--accent-hover); }

/* ---------- Исправление контраста в тёмной теме ---------- */
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-light {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .list-group,
[data-theme="dark"] .list-group-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item:hover {
    background-color: var(--bg-hover);
}

[data-theme="dark"] .list-group-item-action {
    color: var(--text-primary);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
    background-color: rgba(0,0,0,0.15);
}

[data-theme="dark"] code,
[data-theme="dark"] pre {
    color: var(--text-primary);
}

[data-theme="dark"] blockquote {
    color: var(--text-secondary);
}

[data-theme="dark"] .text-bg-light {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .btn-light {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .btn-light:hover {
    background-color: var(--bg-hover);
    color: #fff;
}

[data-theme="dark"] .alert-light {
    background-color: var(--bg-card);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] p, [data-theme="dark"] h1, [data-theme="dark"] h2,
[data-theme="dark"] h3, [data-theme="dark"] h4, [data-theme="dark"] h5,
[data-theme="dark"] h6, [data-theme="dark"] small, [data-theme="dark"] li,
[data-theme="dark"] label, [data-theme="dark"] th, [data-theme="dark"] td {
    color: var(--text-primary);
}

[data-theme="dark"] .bg-dark {
    background-color: var(--bg-secondary) !important;
}

/* ---------- Bootstrap text colors fix for dark theme ---------- */
[data-theme="dark"] .text-secondary { color: #adb5bd !important; }
[data-theme="dark"] .text-muted { color: #8a929f !important; }
[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .badge.text-dark {
    /* Исключение: бейджи с bg-warning должны сохранять тёмный текст для читаемости */
    color: #212529 !important;
}
[data-theme="dark"] .text-body { color: var(--text-primary) !important; }
[data-theme="dark"] .text-black-50 { color: rgba(222, 226, 230, 0.7) !important; }
[data-theme="dark"] .text-white-50 { color: rgba(255, 255, 255, 0.6) !important; }
[data-theme="dark"] .text-reset { color: inherit !important; }

[data-theme="dark"] .text-bg-secondary {
    background-color: #495057 !important;
    color: #e0e0e0 !important;
}

[data-theme="dark"] .text-bg-dark {
    background-color: #343a40 !important;
    color: #e0e0e0 !important;
}

[data-theme="dark"] .bg-secondary {
    background-color: #495057 !important;
}

/* ---------- Bootstrap cards, tables, lists ---------- */
[data-theme="dark"] .card-title,
[data-theme="dark"] .card-text,
[data-theme="dark"] .card-body {
    color: var(--text-primary);
}

[data-theme="dark"] .table {
    color: var(--text-primary);
}

[data-theme="dark"] .table > :not(caption) > * > * {
    color: var(--text-primary);
}

[data-theme="dark"] td, [data-theme="dark"] th {
    color: var(--text-primary);
}

/* ---------- Bootstrap elements that set color ---------- */
[data-theme="dark"] strong, [data-theme="dark"] b {
    color: var(--text-primary);
}

[data-theme="dark"] span:not([class*="badge-"]):not([class*="status-"]) {
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item {
    color: var(--text-primary);
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-primary);
}

[data-theme="dark"] .form-label,
[data-theme="dark"] .col-form-label {
    color: var(--text-primary);
}

/* ---------- Input groups ---------- */
[data-theme="dark"] .input-group-text {
    background-color: var(--bg-input);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* ---------- Breadcrumb ---------- */
[data-theme="dark"] .breadcrumb-item {
    color: var(--text-secondary);
}

[data-theme="dark"] .breadcrumb-item.active {
    color: var(--text-primary);
}

/* ---------- Accordion ---------- */
[data-theme="dark"] .accordion-button {
    background-color: var(--bg-card);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--bg-card-header);
    color: var(--text-primary);
}

[data-theme="dark"] .accordion-body {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

[data-theme="dark"] .accordion-item {
    border-color: var(--border-color);
}

/* ---------- Badge ---------- */
[data-theme="dark"] .badge.bg-secondary {
    background-color: #495057 !important;
}

/* ---------- Offcanvas ---------- */
[data-theme="dark"] .offcanvas {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

/* ---------- Close button ---------- */
[data-theme="dark"] .btn-close {
    filter: invert(1) brightness(200%);
}

/* ---------- Sidebar ---------- */
.sidebar {
    background: var(--sidebar-bg);
    height: 100vh;
    position: sticky;
    top: 0;
    transition: background 0.3s;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Внутренний контейнер для прокрутки */
.sidebar .sidebar-content {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Скрываем скроллбар, но оставляем прокрутку */
.sidebar .sidebar-content::-webkit-scrollbar { width: 4px; }
.sidebar .sidebar-content::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; }
[data-theme="dark"] .sidebar .sidebar-content::-webkit-scrollbar-thumb { background: var(--border-color); }

/* Нижняя часть сайдбара (выход) фиксирована внизу */
.sidebar .sidebar-bottom {
    flex-shrink: 0;
}

/* Декоративные круги на сайдбаре */
.sidebar::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    /* Светлая тема: голубой, белый, розовый на синем */
    background:
        radial-gradient(circle at 20% 25%, rgba(0, 220, 255, 0.30) 0%, transparent 50%),
        radial-gradient(circle at 75% 55%, rgba(255, 255, 255, 0.20) 0%, transparent 45%),
        radial-gradient(circle at 40% 80%, rgba(255, 130, 200, 0.25) 0%, transparent 45%);
}

/* Тёмная тема: фиолетовый, серый, оранжевый на чёрном */
[data-theme="dark"] .sidebar::before {
    background:
        radial-gradient(circle at 20% 25%, rgba(130, 60, 220, 0.40) 0%, transparent 50%),
        radial-gradient(circle at 75% 55%, rgba(160, 160, 160, 0.20) 0%, transparent 45%),
        radial-gradient(circle at 40% 80%, rgba(255, 150, 60, 0.30) 0%, transparent 45%);
}

/* Контент сайдбара поверх кругов */
.sidebar > div,
.sidebar > nav,
.sidebar .theme-toggle,
.sidebar a {
    position: relative;
    z-index: 1;
}

[data-theme="dark"] .sidebar {
    border-right: 1px solid var(--border-color);
}

.sidebar .nav-link {
    color: var(--sidebar-text);
    padding: 8px 16px;
    border-radius: 6px;
    margin: 2px 0;
    transition: all 0.2s;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    background: rgba(255,255,255,0.15);
    color: #fff;
}

[data-theme="dark"] .sidebar .nav-link:hover,
[data-theme="dark"] .sidebar .nav-link.active {
    background: var(--bg-hover);
    color: #fff;
}

.sidebar .nav-link i { margin-right: 8px; }
.sidebar h4 { color: #fff; }
.sidebar hr { border-color: rgba(255,255,255,0.15); }

[data-theme="dark"] .sidebar hr { border-color: var(--border-color); }

/* Переключатель темы (компактный, в хедере сайдбара) */
.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 50%;
    background: rgba(255,255,255,0.12);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid rgba(255,255,255,0.15);
    color: var(--sidebar-text);
    backdrop-filter: blur(4px);
    font-size: 1rem;
    flex-shrink: 0;
}

.theme-toggle:hover {
    background: rgba(255,255,255,0.22);
    color: #fff;
    border-color: rgba(255,255,255,0.3);
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(255,255,255,0.15);
}

.theme-toggle:active {
    transform: translateY(0) scale(0.92);
}

.theme-toggle i {
    font-size: 1.1rem;
    transition: transform 0.5s ease;
}

.theme-toggle:hover i {
    transform: rotate(30deg) scale(1.15);
}

[data-theme="dark"] .theme-toggle {
    background: rgba(255,255,255,0.05);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

[data-theme="dark"] .theme-toggle:hover {
    background: rgba(255,255,255,0.1);
    color: var(--text-primary);
    border-color: rgba(255,255,255,0.2);
    box-shadow: 0 4px 15px rgba(100, 100, 255, 0.1);
}

[data-theme="dark"] .theme-toggle:hover i {
    transform: rotate(-30deg) scale(1.15);
}

/* ---------- Кнопка выхода ---------- */
.logout-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 18px !important;
    border-radius: 50px !important;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.1);
    transition: all 0.3s ease;
    font-size: 0.9rem;
    backdrop-filter: blur(4px);
}

.logout-btn:hover {
    background: rgba(220, 53, 69, 0.2) !important;
    border-color: rgba(220, 53, 69, 0.3) !important;
    color: #ff8a95 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);
}

.logout-btn:active {
    transform: translateY(0) scale(0.97);
}

.logout-btn i {
    font-size: 1rem;
    transition: transform 0.3s ease;
}

.logout-btn:hover i {
    transform: translateX(3px);
}

[data-theme="dark"] .logout-btn {
    background: rgba(255,255,255,0.04);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

[data-theme="dark"] .logout-btn:hover {
    background: rgba(220, 53, 69, 0.15) !important;
    border-color: rgba(220, 53, 69, 0.25) !important;
    color: #ff6b7a !important;
}

/* ---------- Основной контент ---------- */
.content { padding: 24px; }

/* ---------- Карточки ---------- */
.card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    margin-bottom: 20px;
    transition: box-shadow 0.2s, background 0.3s;
}

.card:hover { box-shadow: var(--shadow-hover); }

.card-header {
    background: var(--bg-card-header);
    border-bottom: 1px solid var(--border-color);
    border-radius: 12px 12px 0 0 !important;
    padding: 12px 20px;
    font-weight: 600;
    transition: background 0.3s;
}

.card-header i { margin-right: 8px; color: var(--accent); }

/* ---------- Таблицы ---------- */
.table { color: var(--text-primary); margin-bottom: 0; }
.table > :not(caption) > * > * {
    border-bottom-color: var(--border-color);
    background: transparent;
}
.table-hover tbody tr:hover { background: var(--table-hover); }
.table th { font-weight: 600; color: var(--text-primary); border-top: none; }

.table-dark {
    --bs-table-bg: transparent;
    --bs-table-color: var(--text-primary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-bg: var(--table-hover);
    --bs-table-striped-bg: rgba(0,0,0,0.02);
}

/* ---------- Формы ---------- */
.form-control, .form-select {
    background: var(--bg-input);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-radius: 8px;
    transition: all 0.2s, background 0.3s, color 0.3s;
}

.form-control:focus, .form-select:focus {
    background: var(--bg-input);
    border-color: var(--accent);
    color: var(--text-primary);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.form-control::placeholder { color: var(--text-muted); }
.form-label { font-weight: 500; margin-bottom: 8px; color: var(--text-primary); }
.form-text { color: var(--text-muted); }

.form-check-input {
    background-color: var(--bg-input);
    border-color: var(--border-color);
}

.form-check-input:checked {
    background-color: var(--accent);
    border-color: var(--accent);
}

/* ---------- Кнопки ---------- */
.btn-primary {
    background: var(--accent);
    border: none;
    transition: all 0.2s;
    color: #fff;
}

.btn-primary:hover {
    background: var(--accent-hover);
    color: #fff;
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.4);
}

.btn-outline-primary {
    border-color: var(--accent);
    color: var(--accent);
}

.btn-outline-primary:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.btn-outline-danger:hover { background: var(--danger); color: #fff; }
.btn-outline-info:hover { background: var(--info); color: #000; }

/* ---------- Модальные окна ---------- */
.modal-content {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
}

.modal-header { border-color: var(--border-color); border-radius: 12px 12px 0 0; }
.modal-footer { border-color: var(--border-color); }
.modal-header .btn-close { filter: none; }

[data-theme="dark"] .modal-header .btn-close {
    filter: invert(1) brightness(200%);
}

/* ---------- Бейджи ---------- */
.badge { padding: 5px 10px; border-radius: 6px; font-weight: 500; }

/* ---------- Навигационные вкладки ---------- */
.nav-tabs { border-bottom: 1px solid var(--border-color); }

.nav-tabs .nav-link {
    border: none;
    color: var(--text-secondary);
    font-weight: 500;
    padding: 10px 20px;
}

.nav-tabs .nav-link:hover { color: var(--accent); }
.nav-tabs .nav-link.active {
    color: var(--accent);
    border-bottom: 2px solid var(--accent);
    background: transparent;
}

/* ---------- Dropdown ---------- */
.dropdown-menu {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    box-shadow: var(--shadow-hover);
}

.dropdown-item { color: var(--text-primary); }
.dropdown-item:hover { background: var(--bg-hover); color: var(--text-primary); }
.dropdown-divider { border-color: var(--border-color); }

/* ---------- Pagination ---------- */
.page-link {
    background: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
    border-radius: 8px;
    margin: 0 2px;
}

.page-link:hover { background: var(--bg-hover); color: var(--text-primary); }
.page-item.active .page-link { background: var(--accent); border-color: var(--accent); color: #fff; }
.page-item.disabled .page-link { background: var(--bg-input); color: var(--text-muted); }

/* ---------- Скролл ---------- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track); border-radius: 10px; }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ---------- Прогресс-бары ---------- */
.progress { border-radius: 10px; background: var(--bg-input); }
.progress-bar { background: var(--gradient); border-radius: 10px; }

/* ---------- Анимации ---------- */
.fade-in { animation: fadeIn 0.5s ease-in; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ---------- Специфичные компоненты ---------- */

/* Статус бота */
.status-badge { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 8px; }
.status-online { background-color: var(--success); box-shadow: 0 0 5px var(--success); }
.status-offline { background-color: var(--danger); }

.pulse-animation { animation: pulse 2s infinite; }

@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.7); }
    70% { box-shadow: 0 0 0 6px rgba(25, 135, 84, 0); }
    100% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0); }
}

/* Посты (drag and drop) */
.posts-container { min-height: 200px; }

.post-item {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 12px;
    cursor: grab;
    transition: all 0.2s;
}

.post-item:active { cursor: grabbing; }

.post-item:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-2px);
    border-color: var(--accent);
}

.drag-handle { cursor: grab; color: var(--text-muted); margin-right: 10px; }
.drag-handle:active { cursor: grabbing; }

.post-number {
    display: inline-block;
    width: 30px;
    height: 30px;
    background: var(--gradient);
    color: #fff;
    border-radius: 50%;
    text-align: center;
    line-height: 30px;
    font-weight: bold;
    margin-right: 12px;
}

/* Инструкции */
.instruction-item {
    padding: 12px;
    background: var(--bg-input);
    border-radius: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.2s;
}

.instruction-item:hover { background: var(--bg-hover); border-color: var(--border-color); }
.instruction-item.selected { background: var(--gradient); color: #fff; }
.instruction-checkbox { margin-right: 10px; }

/* Предпросмотр поста */
.post-preview {
    background: var(--bg-input);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1rem;
    min-height: 150px;
    font-family: monospace;
    font-size: 0.9rem;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Графики */
.chart-container { position: relative; height: 300px; margin: 1rem 0; }

/* Тэги */
.tag-badge {
    display: inline-block;
    background: var(--accent);
    color: #fff;
    padding: 4px 10px;
    border-radius: 20px;
    margin: 3px;
    font-size: 0.85rem;
}

/* Чат */
.chat-container {
    height: 55vh;
    overflow-y: auto;
    background: var(--bg-input);
    border-radius: 12px;
    padding: 1rem;
}

.message-user {
    background: var(--gradient);
    color: #fff;
    border-radius: 12px 12px 4px 12px;
    padding: 10px 14px;
    margin: 6px 0;
    max-width: 80%;
    margin-left: auto;
}

.message-assistant {
    background: var(--message-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px 12px 12px 4px;
    padding: 10px 14px;
    margin: 6px 0;
    max-width: 80%;
}

/* Ke90-совместимость: bootstrap table-dark в светлой теме */
.table-dark.table > :not(caption) > * > * {
    background: transparent;
}

/* ---------- Адаптивность ---------- */
@media (max-width: 768px) {
    .sidebar { min-height: auto; }
    .content { padding: 16px; }
}
