/* Оформление Superset в стиле ассистента: палитра labecom, светлый лист,
   острые углы, тонкие линии. Подключается в каждую страницу через sub_filter
   в nginx — форкать фронтенд Superset ради этого не нужно.

   Selectors у Superset частью генерируются Emotion и меняются между версиями,
   поэтому целимся в устойчивые: роли ARIA, data-test и классы Ant Design. */

/* Шрифты берём со своего домена: Superset отдаёт Content-Security-Policy,
   и внешний fonts.googleapis.com не загружается. Файлы вариативные —
   один на семейство и подмножество, все веса внутри. */
@font-face {
  font-family: "Onest"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("/static/assets/branding/fonts/onest-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("/static/assets/branding/fonts/onest-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2212;
}
@font-face {
  font-family: "Unbounded"; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("/static/assets/branding/fonts/unbounded-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Unbounded"; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("/static/assets/branding/fonts/unbounded-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2212;
}

:root {
  --lab-magenta: #FF2D87;
  --lab-magenta-deep: #C0005E;
  --lab-iris: #6B4BFF;
  --lab-aqua: #21E5C8;
  --lab-ink: #14121C;
  --lab-body: #3B3947;
  --lab-mute: #6E6C7A;
  --lab-line: #DCD8E4;
  --lab-line-soft: #ECE9F1;
  --lab-surface: #FAF9FC;
  --lab-spectrum: linear-gradient(90deg, #FF2D87 0%, #6B4BFF 52%, #21E5C8 100%);
}

/* ── Типографика ────────────────────────────────────────────────────────── */

body, .dashboard, .ant-btn, .ant-input, .ant-select, .ant-menu,
input, button, select, textarea, .Select, .header-controls {
  font-family: "Onest", -apple-system, BlinkMacSystemFont, sans-serif !important;
}

h1, h2, h3, .editable-title input, .editable-title span,
.dashboard-header .editable-title, [data-test="editable-title-input"] {
  font-family: "Unbounded", "Onest", sans-serif !important;
  letter-spacing: -.035em !important;
  font-weight: 500 !important;
  color: var(--lab-ink) !important;
}

/* ── Верхнее меню ───────────────────────────────────────────────────────── */

header, #app-menu, #app-menu .navbar, .navbar-default, header.ant-layout-header {
  background: #FFFFFF !important;
  border-bottom: 1px solid var(--lab-line) !important;
  box-shadow: none !important;
}
/* Фирменная спектральная нить, как в ассистенте */
header, #app-menu { position: relative; }
header::after, #app-menu::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 1px; background: var(--lab-spectrum); z-index: 50;
}
#app-menu .navbar-brand img { height: 26px !important; width: auto !important; }
#app-menu .ant-menu-item a, #app-menu .ant-menu-submenu-title {
  color: var(--lab-mute) !important; font-weight: 500 !important;
}
#app-menu .ant-menu-item-selected a,
#app-menu .ant-menu-item a:hover, #app-menu .ant-menu-submenu-title:hover {
  color: var(--lab-ink) !important;
}
#app-menu .ant-menu-item-selected, #app-menu .ant-menu-item-active {
  border-bottom-color: var(--lab-magenta) !important;
}

/* ── Кнопки ─────────────────────────────────────────────────────────────── */

.ant-btn-primary, .superset-button-primary, button.superset-button-primary {
  background: var(--lab-magenta) !important;
  border-color: var(--lab-magenta) !important;
  color: #0B0510 !important;
  font-weight: 600 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.ant-btn-primary:hover, .superset-button-primary:hover {
  background: var(--lab-magenta-deep) !important;
  border-color: var(--lab-magenta-deep) !important;
  color: #FFFFFF !important;
}
.ant-btn, .superset-button {
  border-radius: 0 !important;
  border-color: var(--lab-line) !important;
  box-shadow: none !important;
}
.ant-btn:not(.ant-btn-primary):hover { border-color: var(--lab-mute) !important; }

/* ── Полотно дашборда и плитки чартов ───────────────────────────────────── */

body, .dashboard, .dashboard-content, .grid-content, body.dashboard,
.dashboard .dashboard-content, .ant-layout, .ant-layout-content,
.dashboard-grid, .grid-container, #app {
  background: #FFFFFF !important;
}
.dashboard-component-chart-holder,
.dashboard-component-chart-holder .chart-slice,
[data-test="chart-container"] {
  background: #FFFFFF !important;
  border: 1px solid var(--lab-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.dashboard-component-chart-holder:hover { border-color: var(--lab-iris) !important; }
.dashboard-chart .chart-header, .header-title, .chart-header .header-title a {
  font-family: "Unbounded", "Onest", sans-serif !important;
  letter-spacing: -.03em !important;
  color: var(--lab-ink) !important;
  font-weight: 500 !important;
}

/* ── Большие числа (KPI) ────────────────────────────────────────────────── */

.big_number_total .header-line, .header-line, text.header-line {
  font-family: "Unbounded", "Onest", sans-serif !important;
  letter-spacing: -.04em !important;
  fill: var(--lab-ink) !important;
  color: var(--lab-ink) !important;
}
.big_number_total .subheader-line, .subheader-line {
  fill: var(--lab-mute) !important;
  color: var(--lab-mute) !important;
  font-family: "Onest", sans-serif !important;
}

/* ── Таблицы ────────────────────────────────────────────────────────────── */

.superset-legacy-chart-table table, .ant-table, table.table {
  font-variant-numeric: tabular-nums;
}
.superset-legacy-chart-table th, .ant-table-thead > tr > th, table.table thead th {
  background: #FFFFFF !important;
  color: var(--lab-mute) !important;
  font-size: 11px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--lab-line) !important;
}
.superset-legacy-chart-table td, .ant-table-tbody > tr > td, table.table tbody td {
  border-bottom: 1px solid var(--lab-line-soft) !important;
  color: var(--lab-ink) !important;
}

/* ── Панель фильтров и шапка дашборда ───────────────────────────────────── */

.filter-bar, [data-test="filter-bar"], .dashboard-header,
[data-test="dashboard-header-container"] {
  background: #FFFFFF !important;
  border-color: var(--lab-line) !important;
  box-shadow: none !important;
}
.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn { color: var(--lab-ink) !important; }
.ant-tabs-ink-bar { background: var(--lab-magenta) !important; }

/* ── Поля ввода ─────────────────────────────────────────────────────────── */

.ant-input, .ant-select-selector, .ant-picker, .ant-input-affix-wrapper {
  border-radius: 0 !important;
  border-color: var(--lab-line) !important;
  box-shadow: none !important;
}
.ant-input:focus, .ant-select-focused .ant-select-selector,
.ant-input-affix-wrapper-focused {
  border-color: var(--lab-iris) !important;
  box-shadow: none !important;
}

/* ── Мелочи ─────────────────────────────────────────────────────────────── */

a { color: var(--lab-iris); }
a:hover { color: var(--lab-magenta); }
.ant-card, .card { border-radius: 0 !important; box-shadow: none !important;
                   border-color: var(--lab-line) !important; }
::selection { background: rgba(255, 45, 135, .18); }
