/* Ежик 99 — бренд-токены поверх Tabler 1.4 (DESIGN.md «Ядро стиля»). Только переменные;
   классы не создаются. Новый цвет — токеном здесь, с проверкой контраста ≥4.5:1 в обеих темах. */
:root, [data-bs-theme] {
  --tblr-primary: #F59E0B;
  --tblr-primary-rgb: 245, 158, 11;
  --tblr-primary-fg: #182433;
  --tblr-primary-darken: #D98A06;
  --tblr-primary-lt: rgba(245, 158, 11, .16);
  --tblr-brand: #F59E0B;
  --tblr-primary-border-subtle: rgba(245, 158, 11, .4);
}

/* Тёмная: графит без синевы Tabler (#111827), янтарные ссылки, читаемые серый и красный. */
[data-bs-theme=dark] {
  --tblr-body-bg: #121212; --tblr-body-bg-rgb: 18, 18, 18;
  --tblr-bg-surface: #1c1c1c; --tblr-bg-surface-rgb: 28, 28, 28;
  --tblr-bg-surface-secondary: #242424; --tblr-bg-surface-tertiary: #2a2a2a;
  --tblr-border-color: #333333; --tblr-border-color-translucent: rgba(255, 255, 255, .08);
  --tblr-secondary: #A3A3A3; --tblr-secondary-rgb: 163, 163, 163; --tblr-secondary-color: #A3A3A3;
  --tblr-secondary-fg: #121212; /* текст на заливке secondary (hover/focus Excel и ИИ): белый на #A3A3A3 — 2.4:1 */
  --tblr-link-color: #F59E0B; --tblr-link-color-rgb: 245, 158, 11;
  --tblr-link-hover-color: #FBBF24; --tblr-link-hover-color-rgb: 251, 191, 36;
  --tblr-red: #F26D6D; --tblr-red-rgb: 242, 109, 109;
  /* Tabler dark keeps slate-blue literals (#1f2937, rgb(35,46,62)…) regardless of theme-base. */
  --tblr-active-bg: #2a2a2a;
  --tblr-secondary-bg: #262626; --tblr-tertiary-bg: #1f1f1f;
  --tblr-dark: #262626; --tblr-gray-dark: #262626; --tblr-gray: #525252;
  --tblr-border-active-color: #4a4a4a; --tblr-border-dark-color: #2e2e2e;
  --tblr-border-dark-color-translucent: rgba(0, 0, 0, .27);
  --tblr-light-bg-subtle: #262626; --tblr-light-border-subtle: #404040; --tblr-dark-border-subtle: #262626;
  --tblr-primary-bg-subtle: rgba(245, 158, 11, .12); --tblr-primary-text-emphasis: #FBBF24;
}

/* Светлая: янтарь только заливкой (на белом 2.15:1); текст-акцент — тёмный янтарь. */
[data-bs-theme=light] {
  --tblr-body-bg: #f5f5f5;
  --tblr-link-color: #B45309; --tblr-link-color-rgb: 180, 83, 9;
  --tblr-link-hover-color: #92400E; --tblr-link-hover-color-rgb: 146, 64, 14;
  --tblr-secondary: #616161; --tblr-secondary-rgb: 97, 97, 97; --tblr-secondary-color: #616161;
  --tblr-green: #1F7A33; --tblr-green-rgb: 31, 122, 51;
  --tblr-orange: #A63C0A; --tblr-orange-rgb: 166, 60, 10;
  --tblr-red: #C42B2B; --tblr-red-rgb: 196, 43, 43;
  /* Tabler light keeps slate-blue literals for dark ink and the primary «subtle» family. */
  --tblr-dark: #262626; --tblr-gray-dark: #262626; --tblr-gray: #525252;
  --tblr-emphasis-color: #262626; --tblr-highlight-color: #262626;
  --tblr-dark-text-emphasis: #262626; --tblr-light-text-emphasis: #262626; --tblr-light-fg: #262626;
  --tblr-border-color-translucent: rgba(0, 0, 0, .1); --tblr-border-dark-color-translucent: rgba(0, 0, 0, .27);
  --tblr-primary-bg-subtle: rgba(245, 158, 11, .14); --tblr-primary-text-emphasis: #92400E;
}
[data-bs-theme=light] .bg-primary-lt { color: #92400E !important; }
[data-bs-theme=light] .text-primary { color: #B45309 !important; }

/* Tabler задаёт эти цвета литералами мимо токенов. */
.pagination { --tblr-pagination-active-color: var(--tblr-primary-fg); }
.nav-pills { --tblr-nav-pills-link-active-color: var(--tblr-link-color); }
.nav { --tblr-nav-link-color: var(--tblr-secondary); }
/* Tabler 1.4 задаёт цвет кольца фокуса только .btn-link (синий): у остальных кнопок фокус с клавиатуры невидим. */
.btn { --tblr-btn-focus-shadow-rgb: var(--tblr-primary-rgb); }
.status-green { --tblr-status-color: var(--tblr-green); --tblr-status-color-rgb: var(--tblr-green-rgb); }
.status-orange { --tblr-status-color: var(--tblr-orange); --tblr-status-color-rgb: var(--tblr-orange-rgb); }
.status-red { --tblr-status-color: var(--tblr-red); --tblr-status-color-rgb: var(--tblr-red-rgb); }
.status-secondary { --tblr-status-color: var(--tblr-secondary); --tblr-status-color-rgb: var(--tblr-secondary-rgb); }

/* Выбранная строка таблицы — тот же акцент, что активная точка графика. */
.table tr[aria-selected=true] > * { box-shadow: inset 0 0 0 9999px var(--tblr-primary-lt); }
.table tr[aria-selected=true] > :first-child { box-shadow: inset 3px 0 0 var(--tblr-primary), inset 0 0 0 9999px var(--tblr-primary-lt); }

/* Номер блока (DESIGN): бейдж в левом нижнем углу карточки-блока; место под ним, чтобы не перекрыть текст. */
[data-block-n] > .card { padding-bottom: 1.5rem; }

@media (prefers-reduced-motion: reduce) {
  [data-cabinet-report-skeleton] .progress-bar-indeterminate::before,
  [data-module-progressive-placeholder] .progress-bar-indeterminate::before { animation: none; }
}

/* «Посмотрите демо» на главной: мягкая пульсация, без неё при «уменьшить анимацию». */
@keyframes ezhik-demo-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--tblr-primary-rgb), .55); transform: scale(1); }
  50% { box-shadow: 0 0 0 .6rem rgba(var(--tblr-primary-rgb), 0); transform: scale(1.04); }
}
.ezhik-demo-link { animation: ezhik-demo-pulse 2s ease-in-out infinite; }
.ezhik-demo-link:hover, .ezhik-demo-link:focus-visible { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .ezhik-demo-link { animation: none; } }

/* ИИ-аналитик (решение Эдгара 24.10.2026): живое окно чата. Только янтарный акцент, без новых цветов. */
@keyframes ezhik-ai-beam { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.ezhik-ai-beam {
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--tblr-primary), #FBBF24, var(--tblr-primary), transparent);
  background-size: 200% 100%;
  animation: ezhik-ai-beam 2.6s linear infinite;
}
@keyframes ezhik-ai-orb {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--tblr-primary-rgb), .5); transform: scale(1) rotate(0deg); }
  50% { box-shadow: 0 0 0 .55rem rgba(var(--tblr-primary-rgb), 0); transform: scale(1.06) rotate(6deg); }
}
.ezhik-ai-orb { animation: ezhik-ai-orb 2.8s ease-in-out infinite; }
.ezhik-ai-modal.fade .modal-dialog { transform: translateY(24px) scale(.96); transition: transform .32s cubic-bezier(.2, .9, .25, 1.05), opacity .32s ease; }
.ezhik-ai-modal.show .modal-dialog { transform: none; }
@keyframes ezhik-ai-enter { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
.ezhik-ai-enter { animation: ezhik-ai-enter .4s cubic-bezier(.2, .9, .25, 1) both; }
@keyframes ezhik-ai-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }
.ezhik-ai-dots { display: inline-flex; gap: .25rem; }
.ezhik-ai-dots > span { width: .45rem; height: .45rem; border-radius: 50%; background: var(--tblr-primary); animation: ezhik-ai-dot 1.2s ease-in-out infinite; }
.ezhik-ai-dots > span:nth-child(2) { animation-delay: .15s; }
.ezhik-ai-dots > span:nth-child(3) { animation-delay: .3s; }
@media (prefers-reduced-motion: reduce) {
  .ezhik-ai-beam, .ezhik-ai-orb, .ezhik-ai-enter, .ezhik-ai-dots > span { animation: none; }
  .ezhik-ai-modal.fade .modal-dialog { transition: none; transform: none; }
}

/* Компактная «Сводная» (референс одобрен Эдгаром 30.10.2026): спарклайн и popover «Что считаем». Tabler не имеет таких паттернов; только токены. */
.kpi-spark { display: flex; align-items: flex-end; gap: 1px; height: 26px; margin: .375rem 0 .25rem; }
.kpi-spark > i { flex: 1 1 0; min-width: 1px; margin: 0; background: var(--tblr-primary); opacity: .45; border-radius: 1px; }
.kpi-spark > i.h0 { height: 0; }
.kpi-spark > i.h5 { height: 5%; }
.kpi-spark > i.h10 { height: 10%; }
.kpi-spark > i.h15 { height: 15%; }
.kpi-spark > i.h20 { height: 20%; }
.kpi-spark > i.h25 { height: 25%; }
.kpi-spark > i.h30 { height: 30%; }
.kpi-spark > i.h35 { height: 35%; }
.kpi-spark > i.h40 { height: 40%; }
.kpi-spark > i.h45 { height: 45%; }
.kpi-spark > i.h50 { height: 50%; }
.kpi-spark > i.h55 { height: 55%; }
.kpi-spark > i.h60 { height: 60%; }
.kpi-spark > i.h65 { height: 65%; }
.kpi-spark > i.h70 { height: 70%; }
.kpi-spark > i.h75 { height: 75%; }
.kpi-spark > i.h80 { height: 80%; }
.kpi-spark > i.h85 { height: 85%; }
.kpi-spark > i.h90 { height: 90%; }
.kpi-spark > i.h95 { height: 95%; }
.kpi-spark > i.h100 { height: 100%; }
.kpi-spark > i.gap { height: 100%; background: transparent; }
.kpi-info { flex: none; }
.kpi-info > summary { list-style: none; cursor: pointer; }
.kpi-info > summary::-webkit-details-marker { display: none; }
.kpi-info[open] > .kpi-info-body { position: absolute; right: .5rem; top: 1.7rem; z-index: 20; width: calc(100% - 1rem); background: var(--tblr-card-bg); border: 1px solid var(--tblr-border-color); border-radius: 4px; padding: .5rem .625rem; box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .15); }
.kpi-note { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
