/* ============================================================================
   theme.css — ГЛОБАЛЬНЫЙ ПЕРЕКЛЮЧАТЕЛЬ ТЕМЫ (тёмная / светлая)
   ----------------------------------------------------------------------------
   • Все правила ниже scoped на ЯВНОЕ значение атрибута:
     html[data-theme="light"] … / html[data-theme="dark"] …
     (фикс «темы»: при отсутствии атрибута правила не срабатывали —
     «протекали» fallback-стили; поэтому layouts всегда дают атрибут явно).
   • Дефолты (без сохранения выбора юзером): ЛЕНДИНГ (_LandingLayout) —
     тёмный (атрибута нет, хардкод landing.css/site.css не трогаем);
     Account/Админка (_Layout, _AuthLayout) — СВЕТЛЫЕ (data-theme="light"
     явно в теге <html>). Явный выбор (theme.js → localStorage) переопределяет
     дефолт всех страниц синхронно.
   • СВЕТЛАЯ тема — override в светлую палитру (согласована со страницей
     инструментов, account-light.css) для лендинга, чата и общих блоков.
   • ТЁМНАЯ тема — override в тёмную палитру (html[data-theme="dark"])
     для лендинга и общих блоков, когда юзер выбрал тёмную явно.
   • Переключатель + сохранение (localStorage "tarsychat:theme") — в theme.js.
   • Кодовые блоки (.code-container / prism / katex) остаются «тёмной консолью»
     в обеих темах (как в IDE) — осознанное решение.
   Подключается ПОСЛЕ landing.css (лендинг) и ПОСЛЕ account-light.css (Account).
   ========================================================================== */

:root {
    /* Светлая палитра (light theme) */
    --l-bg: #f5f7fa;
    --l-surface: #ffffff;
    --l-surface-2: #eef1f6;
    --l-text: #1f2430;
    --l-text-2: #4b5563;
    --l-muted: #6b7280;
    --l-border: #d8dee7;
    --l-accent: #0d6efd;
    --l-accent-2: #6610f2;
    --l-accent-soft: rgba(13, 110, 253, 0.12);
    /* Тёмная палитра (dark theme — значения, совпадающие с текущим лендингом) */
    --t-bg: #0f0f23;
    --t-surface: #1a1a2e;
    --t-surface-2: #2d2d4a;
    --t-text: #e0e0e0;
    --t-text-2: #adb5bd;
    --t-muted: #9ca3af;
    --t-border: #2d2d4a;
    --t-accent: #0d6efd;
    --t-accent-soft: rgba(13, 110, 253, 0.15);
}

/* ============================================================================
   СВЕТЛАЯ ТЕМА — ЛЕНДИНГ (главная)
   ========================================================================== */
html[data-theme="light"] body {
    background-color: var(--l-bg) !important;
    color: var(--l-text) !important;
}

/* Герой */
html[data-theme="light"] .landing-hero {
    background: linear-gradient(135deg, #eef4ff 0%, #f0ecff 45%, #fdeeff 100%) !important;
    color: var(--l-text) !important;
}
html[data-theme="light"] .hero-badge {
    background: var(--l-accent-soft) !important;
    border-color: rgba(13, 110, 253, 0.35) !important;
    color: #0b5ed7 !important;
}
html[data-theme="light"] .hero-title {
    background: linear-gradient(90deg, #0d6efd, #6610f2, #db2777) !important;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; text-fill-color: transparent;
    color: transparent;
}
html[data-theme="light"] .hero-subtitle { color: var(--l-text-2) !important; }
html[data-theme="light"] .btn-hero-outline { color: var(--l-text) !important; border-color: #c3cad6 !important; }
html[data-theme="light"] .btn-hero-outline:hover { background: #eef2f7 !important; border-color: #94a3b8 !important; color: var(--l-text) !important; }
html[data-theme="light"] .hero-particles { opacity: 0.5; }

/* Основа: 3 колонки */
html[data-theme="light"] .landing-body { background: var(--l-bg) !important; }
html[data-theme="light"] .landing-sidebar,
html[data-theme="light"] .landing-features {
    background: var(--l-surface) !important;
    border-color: var(--l-border) !important;
}
html[data-theme="light"] .sidebar-title,
html[data-theme="light"] .features-title {
    color: var(--l-text) !important;
    border-bottom-color: var(--l-border) !important;
}

/* 2026-10-07: мобильные drawer-шторки (landing.css «АДАПТИВНОСТЬ») в светлой
   теме — тень мягче, чем в тёмной (плотный чёрный дым на светлом фоне «режет»).
   Фоны панелей уже получают --l-surface (блок выше); бэкдроп общий, не тронут. */
html[data-theme="light"] body.sidebar-open .landing-sidebar,
html[data-theme="light"] body.features-open .landing-features {
    box-shadow: 0 0 30px rgba(15, 23, 42, 0.18);
}

/* 2026-10-08: sticky-шапка с тумблерами шторок — в светлой теме
   полупрозрачный тёмный фон инвертируется в «стекло» — добавляем
   мягкую нижнюю тень для читаемости границы (как у шторок выше). */
html[data-theme="light"] .mobile-topbar {
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.10);
}

/* Агенты в сайдбаре */
html[data-theme="light"] .agent-item-name { color: var(--l-text) !important; }
html[data-theme="light"] .agent-item-desc { color: var(--l-muted) !important; }
html[data-theme="light"] .agent-item:hover { background: var(--l-accent-soft) !important; border-color: rgba(13, 110, 253, 0.3) !important; }
html[data-theme="light"] .agent-item.active { background: rgba(13, 110, 253, 0.14) !important; border-color: var(--l-accent) !important; }

/* Возможности */
html[data-theme="light"] .feature-card {
    background: var(--l-accent-soft) !important;
    border-color: rgba(13, 110, 253, 0.18) !important;
    color: var(--l-text) !important;
}
html[data-theme="light"] .feature-card:hover { background: rgba(13, 110, 253, 0.10) !important; border-color: rgba(13, 110, 253, 0.35) !important; }

/* Визуализация пайплайна */
html[data-theme="light"] .pipeline-visualization-section { background: var(--l-surface) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-viz-header { background: #f8fafc !important; border-bottom-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-viz-header h4 { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-placeholder { color: var(--l-muted) !important; }
html[data-theme="light"] .pipeline-placeholder-icon { color: #c3cad6 !important; }

/* Аноним-вьюер (read-only, .pipeline-viewer) — холст и карточки нод: светлая
   тема (были всегда тёмными: #141414 / #444). Scoped ТОЛЬКО на .pipeline-viewer —
   authed-редактор (.pipeline-visualization-section) и fullscreen (.pipeline-editor-overlay)
   не затрагиваются. Правила дублируют §3 (fullscreen), адаптированные под read-only. */
html[data-theme="light"] .pipeline-viewer .nodes-canvas { background-color: #f7f9fc !important; background-image: radial-gradient(#c9d3e0 1px, transparent 1px) !important; scrollbar-color: #adb5bd #eef1f6; }
html[data-theme="light"] .pipeline-viewer .nodes-canvas::-webkit-scrollbar-track { background: #eef1f6; }
html[data-theme="light"] .pipeline-viewer .nodes-canvas::-webkit-scrollbar-thumb { background: #adb5bd; border-radius: 5px; }
html[data-theme="light"] .pipeline-viewer .nodes-canvas::-webkit-scrollbar-thumb:hover { background: #8b95a3; }
html[data-theme="light"] .pipeline-viewer .agent-node-card { background: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-viewer .agent-node-card .node-title { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-viewer .agent-node-card .text-muted { color: var(--l-muted) !important; }
html[data-theme="light"] .pipeline-viewer .node-port { border-color: #f7f9fc !important; }

/* Названия пайплайнов в сайдбаре — читаемые в светлой теме (как имена агентов) */
html[data-theme="light"] .pipeline-item-name { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-item-desc { color: var(--l-muted) !important; }
html[data-theme="light"] .pipeline-empty { color: var(--l-muted) !important; }

/* ---- СЕКЦИЯ ЧАТА (светлая тема) — раньше всегда оставалась тёмной ---- */
html[data-theme="light"] .chat-demo-section { background: var(--l-surface) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .chat-demo-header { background: var(--l-surface-2) !important; border-bottom-color: var(--l-border) !important; }
html[data-theme="light"] .chat-demo-title { color: var(--l-text) !important; }
html[data-theme="light"] .welcome-message { color: var(--l-muted) !important; }
html[data-theme="light"] .welcome-message h4 { color: var(--l-text) !important; }
html[data-theme="light"] .landing-msg-ai { background: var(--l-surface-2) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-typing-indicator { background: var(--l-surface-2) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-typing-dot { background-color: var(--l-muted) !important; }
html[data-theme="light"] .landing-chat-input { background: var(--l-surface) !important; border-top-color: var(--l-border) !important; }
html[data-theme="light"] .current-agent-info { color: var(--l-muted) !important; }
html[data-theme="light"] .landing-service-msg { background: var(--l-surface-2) !important; color: var(--l-muted) !important; border-left-color: var(--l-border) !important; }

/* Чат-демо на лендинге */
html[data-theme="light"] .landing-chat-history { color: var(--l-text) !important; }
html[data-theme="light"] .welcome-message { color: var(--l-muted) !important; }
html[data-theme="light"] .welcome-message h4 { color: var(--l-text) !important; }
html[data-theme="light"] .landing-msg-ai { background: #eef1f6 !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-typing-indicator { background: #eef1f6 !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-chat-input { background: #f8fafc !important; border-top-color: var(--l-border) !important; }
html[data-theme="light"] .current-agent-info { color: var(--l-muted) !important; }

/* Инспектор агента */
html[data-theme="light"] .landing-inspector { background: var(--l-accent-soft) !important; border-color: rgba(13, 110, 253, 0.2) !important; color: var(--l-text) !important; }
html[data-theme="light"] .landing-inspector h5 { color: #0b5ed7 !important; }
html[data-theme="light"] .landing-inspector hr { border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-inspector label.form-label { color: var(--l-muted) !important; }
html[data-theme="light"] .landing-inspector textarea,
html[data-theme="light"] .landing-inspector input[type="number"] { background: var(--l-surface) !important; border-color: var(--l-border) !important; color: var(--l-text) !important; }

/* Чаты пайплайна */
html[data-theme="light"] .pipeline-chats-panel { background: var(--l-surface) !important; border-color: var(--l-border) !important; color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-chats-header { border-bottom-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-chats-title { color: #0b5ed7 !important; }
html[data-theme="light"] .pipeline-chats-row { background: var(--l-accent-soft) !important; border-color: rgba(13, 110, 253, 0.18) !important; }
html[data-theme="light"] .pipeline-chats-row-label { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-chats-row-count { color: #0b5ed7 !important; background: var(--l-accent-soft) !important; }
html[data-theme="light"] .pipeline-chats-row-meta,
html[data-theme="light"] .pipeline-chats-row-delete,
html[data-theme="light"] .pipeline-chats-empty { color: var(--l-muted) !important; }

/* ---- РЕДАКТОР ПАЙПЛАЙНОВ (#pipelineEditorModal) — светлая тема (был всегда тёмным) ---- */
html[data-theme="light"] .pipeline-editor-overlay { background: var(--l-surface) !important; color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-editor-overlay .editor-header { background: var(--l-surface-2) !important; color: var(--l-text) !important; border-bottom-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .editor-header .btn-outline-light { color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .nodes-canvas { background-color: #f7f9fc !important; background-image: radial-gradient(#c9d3e0 1px, transparent 1px) !important; scrollbar-color: #adb5bd #eef1f6; }
html[data-theme="light"] .pipeline-editor-overlay .nodes-canvas::-webkit-scrollbar-track { background: #eef1f6; }
html[data-theme="light"] .pipeline-editor-overlay .nodes-canvas::-webkit-scrollbar-thumb { background: #adb5bd; border-radius: 5px; }
html[data-theme="light"] .pipeline-editor-overlay .nodes-canvas::-webkit-scrollbar-thumb:hover { background: #8b95a3; }
html[data-theme="light"] .pipeline-editor-overlay .agent-node-card { background: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .agent-node-card .node-title { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-editor-overlay .agent-role-select { background: var(--l-surface-2) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .edge-inspector,
html[data-theme="light"] .pipeline-editor-overlay .node-inspector { background: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .edge-inspector .text-light,
html[data-theme="light"] .pipeline-editor-overlay .node-inspector .text-light { color: var(--l-text) !important; }
html[data-theme="light"] .pipeline-editor-overlay .form-control,
html[data-theme="light"] .pipeline-editor-overlay .form-select { background: #fff !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .pipeline-editor-overlay .btn-outline-secondary { color: var(--l-text) !important; border-color: var(--l-border) !important; }

/* Пустые состояния / CTA-демо */
html[data-theme="light"] .pipeline-empty { color: var(--l-muted) !important; }
html[data-theme="light"] .demo-cta-title { color: #b45309 !important; }
html[data-theme="light"] .demo-cta-text { color: var(--l-text-2) !important; }

/* Меню профиля */
html[data-theme="light"] .user-fab-menu { background: var(--l-surface) !important; color: var(--l-text) !important; }
html[data-theme="light"] .user-fab-menu .dropdown-item { color: var(--l-text) !important; }
html[data-theme="light"] .user-fab-menu .dropdown-item:hover,
html[data-theme="light"] .user-fab-menu .dropdown-item.active { background: #f1f5f9 !important; color: var(--l-text) !important; }
html[data-theme="light"] .user-fab-menu .dropdown-item.text-danger { color: #dc3545 !important; }
html[data-theme="light"] .user-fab-menu .dropdown-divider { border-color: var(--l-border) !important; }
html[data-theme="light"] .user-fab-menu .text-secondary { color: var(--l-muted) !important; }

/* Меню профиля/темы — тёмное в тёмной теме (по умолчанию и явной).
   Ранее оставалось белым из Bootstrap в тёмной теме. Меню есть только на лендинге. */
html:not([data-theme="light"]) .user-fab-menu { background: var(--t-surface) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) .user-fab-menu .dropdown-item { color: var(--t-text) !important; }
html:not([data-theme="light"]) .user-fab-menu .dropdown-item:hover,
html:not([data-theme="light"]) .user-fab-menu .dropdown-item.active { background: var(--t-surface-2) !important; color: var(--t-text) !important; }
html:not([data-theme="light"]) .user-fab-menu .dropdown-item.text-danger { color: #ff7b7b !important; }
html:not([data-theme="light"]) .user-fab-menu .dropdown-divider { border-color: var(--t-border) !important; }
html:not([data-theme="light"]) .user-fab-menu .text-secondary { color: var(--t-muted) !important; }

/* Формы/селекты на лендинге (в т.ч. utility bg-dark/text-light) */
html[data-theme="light"] .landing-body .form-select,
html[data-theme="light"] .landing-body .form-control { background-color: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .landing-body .form-select option,
html[data-theme="light"] .landing-body .form-control option { background-color: var(--l-surface) !important; color: var(--l-text) !important; }

/* Ссылки / приглушённый текст / инлайн-код */
html[data-theme="light"] .landing-body a { color: var(--l-accent) !important; }
html[data-theme="light"] .landing-body .text-muted { color: var(--l-muted) !important; }
html[data-theme="light"] code { color: #b91c1c !important; background-color: var(--l-surface-2) !important; text-shadow: none !important; }

/* Скроллбары */
html[data-theme="light"] ::-webkit-scrollbar-thumb { background: #c3cad6 !important; }
html[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: #a6afbe !important; }

/* ============================================================================
   СВЕТЛАЯ ТЕМА — РАБОЧАЯ КОНСОЛЬ / ЧАТ (site.css)
   ========================================================================== */
html[data-theme="light"] .sidebar { background: var(--l-surface) !important; border-right-color: var(--l-border) !important; }
html[data-theme="light"] .inspector { background: var(--l-surface) !important; color: var(--l-text) !important; }
html[data-theme="light"] .chat-area { background-color: #fcfcfc !important; }
html[data-theme="light"] .chat-sidebar-item { color: var(--l-text-2) !important; }
html[data-theme="light"] .chat-sidebar-item:hover { background: #eef1f6 !important; color: var(--l-text) !important; }
html[data-theme="light"] .chat-sidebar-item.active { background: var(--l-accent) !important; color: #fff !important; }
html[data-theme="light"] .chat-title { color: var(--l-text) !important; }
html[data-theme="light"] .typing-indicator { background: #f1f5f9 !important; border-color: var(--l-border) !important; }

/* ============================================================================
   ТЁМНАЯ ТЕМА — СТРАНИЦЫ ACCOUNT (Tools/LocalAgents/Tokens/Privacy)
   По умолчанию они светлые (account-light.css). Когда выбрана ТЁМНАЯ тема
   (data-theme="dark" или атрибут отсутствует) — переопределяем в тёмную
   палитру для согласованности по всему приложению.
   ========================================================================== */
html[data-theme="dark"] body { background-color: var(--t-bg) !important; color: var(--t-text) !important; }

/* Шапка _Layout (сейчас navbar-light bg-white) */
html[data-theme="dark"] .navbar { background-color: var(--t-surface) !important; border-bottom: 1px solid var(--t-border) !important; box-shadow: none !important; }
html[data-theme="dark"] .navbar .navbar-brand,
html[data-theme="dark"] .navbar .nav-link { color: var(--t-text) !important; }
html[data-theme="dark"] .navbar .nav-link:hover,
html[data-theme="dark"] .navbar .nav-link:focus { color: #9ec9ff !important; }
html[data-theme="dark"] .navbar .navbar-toggler { border-color: var(--t-border) !important; }
html[data-theme="dark"] .navbar .navbar-toggler-icon { filter: invert(0.85) brightness(1.2); }
html[data-theme="dark"] .navbar .text-dark { color: var(--t-text) !important; }
html[data-theme="dark"] .navbar .btn-light { color: #fff !important; background-color: var(--t-surface-2) !important; border-color: var(--t-border) !important; }
html[data-theme="dark"] .navbar .btn-light:hover { background-color: var(--t-accent-soft) !important; }

/* Карточки */
html[data-theme="dark"] .card { background-color: var(--t-surface) !important; border-color: var(--t-border) !important; box-shadow: none !important; }
html[data-theme="dark"] .card-header { background-color: var(--t-surface-2) !important; border-bottom-color: var(--t-border) !important; color: var(--t-text) !important; }
html[data-theme="dark"] .card-title,
html[data-theme="dark"] .card-subtitle { color: var(--t-text) !important; }

/* Заголовки / текст / ссылки */
html[data-theme="dark"] .page-title { color: var(--t-text) !important; }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3,
html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6 { color: var(--t-text) !important; }
html[data-theme="dark"] .text-muted, html[data-theme="dark"] .text-secondary { color: var(--t-muted) !important; }
html[data-theme="dark"] .text-dark { color: var(--t-text) !important; }
html[data-theme="dark"] a { color: var(--t-accent) !important; }

/* Формы */
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select {
    background-color: var(--t-surface) !important;
    color: var(--t-text) !important;
    border-color: var(--t-border) !important;
}
/* Варианты <select> (список моделей «Ручной ввод цен»): нативный дропдаун
   Chrome/Firefox рисует опции тёмным текстом — на тёмном фоне темы они «тонут».
   Явный тёмный фон + светлый текст (тот же паттерн, что #pipelineSelector в site.css). */
html[data-theme="dark"] .form-select option {
    background-color: var(--t-surface) !important;
    color: var(--t-text) !important;
}
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
    background-color: var(--t-surface) !important;
    color: var(--t-text) !important;
    border-color: #6ea8fe !important;
    box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, 0.25) !important;
}
html[data-theme="dark"] .form-label,
html[data-theme="dark"] .form-text,
html[data-theme="dark"] .form-check-label { color: var(--t-text) !important; }
html[data-theme="dark"] .form-control::placeholder { color: var(--t-muted) !important; }
html[data-theme="dark"] .btn-outline-secondary { color: var(--t-text) !important; border-color: var(--t-border) !important; }
html[data-theme="dark"] .btn-outline-secondary:hover { color: #fff !important; }

/* Таблицы */
html[data-theme="dark"] .table { color: var(--t-text) !important; }
html[data-theme="dark"] .table thead th {
    background-color: var(--t-surface-2) !important;
    color: var(--t-muted) !important;
    border-bottom-color: var(--t-border) !important;
}
html[data-theme="dark"] .table td { border-color: var(--t-border) !important; }
html[data-theme="dark"] .table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.08) !important; }

/* Фон страницы + ячейки таблицы — явный тёмный. Баги: в тёмной теме страница
   (body) оставалась светлой (#f5f7fa из account-light.css) и пункты list-group
   сайдбара были белыми — правил body и .list-group не существовало. */
html[data-theme="dark"] body { background-color: var(--t-bg) !important; color: var(--t-text) !important; }
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table tbody tr { background-color: var(--t-surface) !important; }

/* Sidebar-список админки (.list-group: Обзор/Пользователи/Биллинг/Модели) — тёмная палитра */
html[data-theme="dark"] .list-group { border-color: var(--t-border) !important; }
html[data-theme="dark"] .list-group-item { background-color: var(--t-surface) !important; border-color: var(--t-border) !important; color: var(--t-text) !important; }
html[data-theme="dark"] .list-group-item-action:hover,
html[data-theme="dark"] .list-group-item-action:focus { background-color: var(--t-surface-2) !important; color: var(--t-text) !important; }
html[data-theme="dark"] .list-group-item.active { background-color: var(--t-accent) !important; border-color: var(--t-accent) !important; color: #fff !important; }
html[data-theme="dark"] .list-group-item.disabled,
html[data-theme="dark"] .list-group-item:disabled { background-color: var(--t-surface) !important; color: var(--t-muted) !important; }

/* ============================================================================
   ТЁМНАЯ ТЕМА (ПО УМОЛЧАНИЮ) — АККАУНТ-СТРАНИЦЫ НА _Layout (Tools/LocalAgents)
   Эти страницы светлые по умолчанию (account-light.css). Тёмная тема = дефолт
   (у <html> НЕТ data-theme="light") ИЛИ data-theme="dark". Блок выше срабатывал
   ТОЛЬКО при явном data-theme="dark", из-за чего в дефолтной теме таблицы и
   карточки оставались светлыми. Скоуп body.scope-account ставится ТОЛЬКО на
   Tools/LocalAgents (не на воркбен Chat — у него светлые .card.bg-light
   намеренно), поэтому воркбен не затрагивается.
   ========================================================================== */
html:not([data-theme="light"]) body.scope-account { background-color: var(--t-bg) !important; color: var(--t-text) !important; }
html:not([data-theme="light"]) body.scope-account .navbar { background-color: var(--t-surface) !important; border-bottom-color: var(--t-border) !important; box-shadow: none !important; }
html:not([data-theme="light"]) body.scope-account .navbar .navbar-brand,
html:not([data-theme="light"]) body.scope-account .navbar .nav-link,
html:not([data-theme="light"]) body.scope-account .navbar .text-dark { color: var(--t-text) !important; }
html:not([data-theme="light"]) body.scope-account .navbar .btn-light { color: #fff !important; background-color: var(--t-surface-2) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .card { background-color: var(--t-surface) !important; border-color: var(--t-border) !important; box-shadow: none !important; }
html:not([data-theme="light"]) body.scope-account .card-header { background-color: var(--t-surface-2) !important; border-bottom-color: var(--t-border) !important; color: var(--t-text) !important; }
html:not([data-theme="light"]) body.scope-account h1,
html:not([data-theme="light"]) body.scope-account h2,
html:not([data-theme="light"]) body.scope-account h3,
html:not([data-theme="light"]) body.scope-account h4,
html:not([data-theme="light"]) body.scope-account h5,
html:not([data-theme="light"]) body.scope-account h6 { color: var(--t-text) !important; }
html:not([data-theme="light"]) body.scope-account .text-muted { color: var(--t-muted) !important; }
html:not([data-theme="light"]) body.scope-account a { color: var(--t-accent) !important; }
html:not([data-theme="light"]) body.scope-account .alert { background-color: var(--t-surface) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .alert-info { background-color: var(--t-accent-soft) !important; }
html:not([data-theme="light"]) body.scope-account .form-control,
html:not([data-theme="light"]) body.scope-account .form-select { background-color: var(--t-surface) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .form-label,
html:not([data-theme="light"]) body.scope-account .form-text { color: var(--t-text) !important; }
html:not([data-theme="light"]) body.scope-account .form-control::placeholder { color: var(--t-muted) !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-secondary { color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-secondary:hover { color: #fff !important; background-color: var(--t-accent) !important; border-color: var(--t-accent) !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-primary { color: var(--t-accent) !important; border-color: var(--t-accent) !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-primary:hover { color: #fff !important; background-color: var(--t-accent) !important; border-color: var(--t-accent) !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-warning { color: #ffc107 !important; border-color: #ffc107 !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-warning:hover { color: #fff !important; background-color: #ffc107 !important; border-color: #ffc107 !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-danger { color: #f87171 !important; border-color: #f87171 !important; }
html:not([data-theme="light"]) body.scope-account .btn-outline-danger:hover { color: #fff !important; background-color: #ef4444 !important; border-color: #ef4444 !important; }
html:not([data-theme="light"]) body.scope-account .badge { color: #fff !important; }
html:not([data-theme="light"]) body.scope-account code { color: #e6b3b3 !important; background-color: #3a2530 !important; text-shadow: none !important; }
html:not([data-theme="light"]) body.scope-account .table { background-color: var(--t-surface) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .table thead th { background-color: var(--t-surface-2) !important; color: var(--t-muted) !important; border-bottom-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .table td { background-color: var(--t-surface) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html:not([data-theme="light"]) body.scope-account .table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.10) !important; }

/* Инлайн-код (тёмная консоль) */
html[data-theme="dark"] code { color: #ff9e9e !important; background-color: var(--t-surface-2) !important; text-shadow: none !important; }

/* Скроллбары */
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #4a4a4a !important; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #5a5a5a !important; }

/* ============================================================================
   UI ПЕРЕКЛЮЧАТЕЛЯ ТЕМЫ (общие стили пунктов/кнопки)
   ========================================================================== */
.theme-section-label {
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 0.65;
    margin: 0 0 2px;
    padding: 0 1rem;
}
.theme-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}
.theme-opt i { width: 1.15rem; }
.theme-opt .theme-opt-check { margin-left: auto; opacity: 0; }
.theme-opt-active {
    background: rgba(13, 110, 253, 0.12) !important;
    color: #9ec9ff !important;
    font-weight: 600;
}
.theme-opt-active .theme-opt-check { opacity: 1; }
html[data-theme="light"] .theme-opt-active {
    background: rgba(13, 110, 253, 0.1) !important;
    color: #0b5ed7 !important;
}
.theme-toggle-btn {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 1.05rem;
}

/* ============================================================================
   СВЕТЛАЯ ТЕМА — ОБЩИЕ БЛОКИ (Account / Auth: Tools, LocalAgents, Tokens,
   Privacy, Login, Register)
   Общие (не-scoped) правила: формы, карточки, таблицы, заголовки. Работают на
   страницах _Layout и _AuthLayout, когда выбрана светлая тема (на лендинге
   дублируют scoped-правила теми же значениями — без конфликта).
   Ссылки (a) намеренно НЕ переопределяются глобально, чтобы не затупить
   акцентные цвета .text-danger/.btn-danger.
   ========================================================================== */
html[data-theme="light"] .card { background-color: var(--l-surface) !important; border-color: var(--l-border) !important; box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06) !important; }
html[data-theme="light"] .card-header { background-color: var(--l-surface) !important; border-bottom-color: var(--l-border) !important; color: var(--l-text) !important; }
html[data-theme="light"] .card-title,
html[data-theme="light"] .card-subtitle { color: var(--l-text) !important; }
html[data-theme="light"] .form-control,
html[data-theme="light"] .form-select { background-color: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .form-control:focus,
html[data-theme="light"] .form-select:focus { background-color: var(--l-surface) !important; color: var(--l-text) !important; border-color: #86b7fe !important; }
html[data-theme="light"] .form-label,
html[data-theme="light"] .form-text,
html[data-theme="light"] .form-check-label { color: var(--l-text) !important; }
html[data-theme="light"] .form-control::placeholder { color: var(--l-muted) !important; }
html[data-theme="light"] .table { color: var(--l-text) !important; --bs-table-bg: transparent !important; }
html[data-theme="light"] .table thead th { background-color: #eef1f6 !important; color: var(--l-muted) !important; border-bottom-color: var(--l-border) !important; }
html[data-theme="light"] .table td { border-color: var(--l-border) !important; }
html[data-theme="light"] .table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.05) !important; }
html[data-theme="light"] .text-muted,
html[data-theme="light"] .text-secondary { color: var(--l-muted) !important; }
html[data-theme="light"] h1, html[data-theme="light"] h2, html[data-theme="light"] h3,
html[data-theme="light"] h4, html[data-theme="light"] h5, html[data-theme="light"] h6 { color: var(--l-text) !important; }
html[data-theme="light"] .btn-outline-secondary { color: var(--l-text) !important; border-color: var(--l-border) !important; }
html[data-theme="light"] .btn-outline-secondary:hover { color: #fff !important; }

/* Модалки с inline-тёмным фоном (напр. «Токен создан» на странице токенов) */
html[data-theme="light"] .modal-content { background-color: var(--l-surface) !important; color: var(--l-text) !important; border-color: var(--l-border) !important; }

/* ============================================================================
   СТРАНИЦЫ _AUTHLAYOUT (Login / Register / Offer / Privacy / Billing / …) —
   scope=auth. Body-класс scope-auth ставится в самом _AuthLayout (аналог
   ViewData["BodyClass"]=scope-account в _Layout, но для авторизационных
   страниц, где account-light.css НЕ подключается).
   ----------------------------------------------------------------------------
   Без этих правил Offer/Privacy в тёмной теме оставались «голыми»: <p>/<li>/
   <strong>/<code>/<hr> наследовали color и часть текста «слитывалась» в тёмный
   фон (Bootstrap-утилиты, inline-стили). Правила ниже дают явную палитру,
   скоуп как у блока body.scope-account выше.
   Light-тема: дефолтная палитра Bootstrap (тёмный текст) — читаемо, правки
   не нужны.
   ========================================================================== */
html[data-theme="dark"] body.scope-auth { background-color: var(--t-bg) !important; color: var(--t-text) !important; }
/* Абзацы, списки — явный светлый текст (у Bootstrap .text-*, .small и другие
   utility-классы могут задвигать color в тёмный). */
html[data-theme="dark"] body.scope-auth p,
html[data-theme="dark"] body.scope-auth ol,
html[data-theme="dark"] body.scope-auth ul,
html[data-theme="dark"] body.scope-auth li { color: var(--t-text) !important; }
/* <strong>/<b> — явный color против Bootstrap .fw-semibold и inline-стилей */
html[data-theme="dark"] body.scope-auth strong,
html[data-theme="dark"] body.scope-auth b { color: inherit !important; font-weight: 700; }
/* Инлайн-код: тёмный фон + красный-акцент (как block-код в scope-account) */
html[data-theme="dark"] body.scope-auth code {
    color: #e6b3b3 !important;
    background-color: #3a2530 !important;
    text-shadow: none !important;
    border: 1px solid var(--t-border) !important;
}
/* <hr> — по умолчанию невидим в тёмной теме (tёмная border-color) */
html[data-theme="dark"] body.scope-auth hr,
html[data-theme="dark"] body.scope-auth .hr {
    color: var(--t-border) !important;
    background-color: var(--t-border) !important;
    border-color: var(--t-border) !important;
}
/* <details>/<summary> (AI Disclaimer) — читаемый и контрастный в тёмной теме */
html[data-theme="dark"] body.scope-auth summary {
    color: var(--t-text) !important;
    cursor: pointer;
    user-select: none;
    list-style: none;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--t-border) !important;
    background-color: var(--t-surface-2) !important;
    border-radius: 6px;
}
html[data-theme="dark"] body.scope-auth summary::marker,
html[data-theme="dark"] body.scope-auth summary::-webkit-details-marker { color: var(--t-accent) !important; }
html[data-theme="dark"] body.scope-auth details { border: 1px solid var(--t-border) !important; background-color: var(--t-surface) !important; border-radius: 8px; padding: 0.5rem 0.75rem; }
html[data-theme="dark"] body.scope-auth details[open] { padding-bottom: 0.25rem; }
/* Блок дисклеймера: сама .ai-disclaimer границы НЕ имеет — единственная рамка
   на внутренних details (иначе получаются «двe линии» из-за двойной вложенности). */
html[data-theme="dark"] body.scope-auth .ai-disclaimer { background-color: var(--t-surface); border: none !important; border-radius: 8px; padding: 0.75rem 1rem; }
html[data-theme="dark"] body.scope-auth .ai-disclaimer .ai-disclaimer__body,
html[data-theme="dark"] body.scope-auth .ai-disclaimer .ai-disclaimer__body p,
html[data-theme="dark"] body.scope-auth .ai-disclaimer .ai-disclaimer__body li { color: var(--t-text) !important; }
/* Back-link («← На главную» на всех страницах _AuthLayout) */
html[data-theme="dark"] body.scope-auth .legal-back-link { color: var(--t-accent) !important; }
html[data-theme="dark"] body.scope-auth .legal-back-link:hover { color: #9ec9ff !important; }

/* ============================================================================
   AI Disclaimer (docs/Юридические дела.md ЧАСТЬ 1) — раскрывающийся блок в footer/auth/landing */
.ai-disclaimer { font-size: 0.875rem; }
.ai-disclaimer__header { font-weight: 600; cursor: pointer; list-style: none; user-select: none; }
.ai-disclaimer__header::-webkit-details-marker { display: none; }
.ai-disclaimer details[open] .ai-disclaimer__header { margin-bottom: 0.5rem; }
.ai-disclaimer__body { margin-top: 0.25rem; }
.ai-disclaimer li { margin-left: 1rem; }