/**
 * Глобальная тема Attio для консоли, портала, публичных отчётов и ЛК.
 * Требует attio-theme.css и класс body: aui-body aui-app
 * Дополнительно: aui-auth — страницы входа портала; aui-dialogs-portal — список диалогов (см. dialogs-attio-portal.css)
 */

body.aui-app {
  --brand: var(--aui-color-accent-blue);
  --brand-dark: var(--aui-color-accent-blue-hover);
  --brand-light: color-mix(in oklab, var(--aui-color-accent-blue) 12%, var(--aui-color-bg-surface));
  --bs-primary: var(--aui-color-accent-blue);
  --bs-primary-rgb: 59, 130, 246;
  --bs-link-color: var(--aui-color-accent-blue);
  --bs-link-hover-color: var(--aui-color-accent-blue-hover);
  --bs-border-color: var(--aui-color-border);
  font-family: var(--aui-font-sans);
  font-size: var(--aui-text-base);
  line-height: var(--aui-leading-normal);
  color: var(--aui-color-text);
  background-color: var(--aui-color-bg-page);
  background-image: var(--aui-bg-page-pattern);
  background-size: var(--aui-bg-page-dot-size) var(--aui-bg-page-dot-size);
}

@supports not (color: color-mix(in lab, red, red)) {
  body.aui-app {
    --brand-light: #eff6ff;
  }
}

/* Тёмный экран входа — без точечного фона */
body.aui-app.aui-auth-page.login-grad-dark {
  background-image: none !important;
}

/* ── Консоль (base.html) ─────────────────────────────────────────────────── */
body.aui-app .sidebar {
  background: #1e2128;
  border-right: var(--aui-border-width) solid rgba(255, 255, 255, 0.06);
}

body.aui-app .sidebar-link.active {
  background: var(--aui-color-accent-blue);
  color: #fff;
}

body.aui-app .sidebar-create {
  background: var(--aui-color-accent-blue);
}

body.aui-app .sidebar-create:hover {
  background: var(--aui-color-accent-blue-hover);
  color: #fff;
}

body.aui-app .topbar {
  background: var(--aui-color-bg-surface);
  border-bottom: var(--aui-border-width) solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-sm);
}

body.aui-app .topbar-title {
  color: var(--aui-color-text);
}

body.aui-app .topbar-breadcrumb {
  color: var(--aui-color-text-muted);
}

body.aui-app .topbar-breadcrumb a {
  color: var(--aui-color-text-secondary);
}

body.aui-app .topbar-breadcrumb a:hover {
  color: var(--aui-color-accent-blue);
}

body.aui-app .client-tabbar {
  background: var(--aui-color-bg-surface);
  border-bottom: var(--aui-border-width) solid var(--aui-color-border);
}

body.aui-app .ctab {
  color: var(--aui-color-text-secondary);
}

body.aui-app .ctab:hover {
  color: var(--aui-color-accent-blue);
}

body.aui-app .ctab.active {
  color: var(--aui-color-accent-blue);
  border-bottom: 2px solid var(--aui-color-accent-blue);
}

body.aui-app .page-content {
  background: transparent;
}

/* ── Единая типографика (консоль: основной текст = sm) ───────────────────── */
body.aui-app .page-content {
  font-size: var(--aui-text-sm);
  line-height: var(--aui-leading-normal);
}

body.aui-app .page-content h1,
body.aui-app .page-content .h1 {
  font-size: var(--aui-text-2xl);
  font-weight: var(--aui-weight-semibold);
  letter-spacing: var(--aui-tracking-tight);
  line-height: var(--aui-leading-tight);
  color: var(--aui-color-text);
}

body.aui-app .page-content h2,
body.aui-app .page-content .h2 {
  font-size: var(--aui-text-xl);
  font-weight: var(--aui-weight-semibold);
  letter-spacing: var(--aui-tracking-tight);
  line-height: var(--aui-leading-snug);
  color: var(--aui-color-text);
}

body.aui-app .page-content h3,
body.aui-app .page-content .h3 {
  font-size: var(--aui-text-lg);
  font-weight: var(--aui-weight-semibold);
  line-height: var(--aui-leading-snug);
  color: var(--aui-color-text);
}

body.aui-app .page-content h4,
body.aui-app .page-content .h4 {
  font-size: var(--aui-text-base);
  font-weight: var(--aui-weight-semibold);
  line-height: var(--aui-leading-snug);
  color: var(--aui-color-text);
}

body.aui-app .page-content h5,
body.aui-app .page-content .h5 {
  font-size: var(--aui-text-sm);
  font-weight: var(--aui-weight-semibold);
  line-height: var(--aui-leading-snug);
  color: var(--aui-color-text);
}

body.aui-app .page-content h6,
body.aui-app .page-content .h6 {
  font-size: var(--aui-text-xs);
  font-weight: var(--aui-weight-semibold);
  line-height: var(--aui-leading-snug);
  color: var(--aui-color-text-secondary);
}

body.aui-app .page-content .small,
body.aui-app .page-content small {
  font-size: var(--aui-text-xs);
}

body.aui-app .page-content .text-muted {
  font-size: inherit;
}

body.aui-app .page-content .card-header {
  font-size: var(--aui-text-sm);
  font-weight: var(--aui-weight-semibold);
}

body.aui-app .page-content .table {
  font-size: var(--aui-text-sm);
}

body.aui-app .page-content .form-label {
  font-size: var(--aui-text-sm);
  font-weight: var(--aui-weight-medium);
}

/* Иконки в кнопках Bootstrap: один стиль (размер от текста, выравнивание) */
body.aui-app .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
}

body.aui-app .btn .ph-bold {
  font-size: 1.0625em;
  line-height: 1;
  vertical-align: -0.12em;
  opacity: 0.92;
  flex-shrink: 0;
}

body.aui-app .btn-sm .ph-bold {
  font-size: 1.1em;
}

body.aui-app .btn-lg .ph-bold {
  font-size: 1em;
}

/* ── Портал: верхняя навигация (.nav-portal) ─────────────────────────────── */
body.aui-app .nav-portal {
  background: var(--aui-color-bg-surface);
  border-bottom: 1px solid var(--aui-color-border);
  box-shadow:
    var(--aui-shadow-sm),
    0 2px 8px rgba(15, 23, 42, 0.06);
}

body.aui-app .nav-portal a {
  color: var(--aui-color-text-secondary);
}

body.aui-app .nav-portal a:hover {
  color: var(--aui-color-text);
}

body.aui-app .nav-portal a.active {
  color: var(--aui-color-accent-blue);
  font-weight: 700;
  border-bottom: var(--aui-border-width) solid var(--aui-color-accent-blue);
  padding-bottom: 4px;
}

body.aui-app .nav-portal .who {
  color: var(--aui-color-text-muted);
}

body.aui-app .nav-portal .who a {
  color: var(--aui-color-text-muted);
}

/* ── Портал: главная, карточки ───────────────────────────────────────────── */
body.aui-app .hero {
  background: linear-gradient(
    135deg,
    color-mix(in oklab, var(--aui-color-accent-blue) 10%, var(--aui-color-bg-surface)) 0%,
    var(--aui-color-bg-surface) 55%
  );
  border: 1px solid var(--aui-color-border);
  border-radius: var(--aui-radius-lg);
  box-shadow: var(--aui-shadow-sm);
}

@supports not (color: color-mix(in lab, red, red)) {
  body.aui-app .hero {
    background: linear-gradient(135deg, #eef3fd 0%, #fff 55%);
    border-color: var(--aui-color-border);
  }
}

body.aui-app .dash-card {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  border-radius: var(--aui-radius-lg);
  box-shadow: var(--aui-shadow-sm);
}

body.aui-app .dash-card:hover {
  border-color: color-mix(in oklab, var(--aui-color-accent-blue) 40%, var(--aui-color-border));
  box-shadow: var(--aui-shadow-md);
  color: inherit;
}

body.aui-app .dash-card h2 {
  color: var(--aui-color-text);
}

body.aui-app .dash-card p {
  color: var(--aui-color-text-secondary);
}

/* ── Портал: статистика (manager.html) ───────────────────────────────────── */
body.aui-app .filter-card {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  border-radius: var(--aui-radius-lg);
  box-shadow: var(--aui-shadow-sm);
}

body.aui-app .kpi-card {
  background: var(--aui-color-bg-surface);
  border-radius: var(--aui-radius-lg);
  box-shadow: var(--aui-shadow-sm);
  border: var(--aui-border-width) solid var(--aui-color-border);
  border-top: 2px solid var(--aui-color-accent-blue);
}

body.aui-app .kpi-val {
  color: var(--aui-color-accent-blue);
}

body.aui-app .kpi-label,
body.aui-app .kpi-sub {
  color: var(--aui-color-text-muted);
}

body.aui-app .section-card {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  border-radius: var(--aui-radius-lg);
  box-shadow: var(--aui-shadow-sm);
}

body.aui-app .section-title {
  color: var(--aui-color-text);
}

body.aui-app .client-link {
  background: color-mix(in oklab, var(--aui-color-accent-blue) 12%, var(--aui-color-bg-surface));
  color: var(--aui-color-accent-blue);
}

body.aui-app .client-link:hover {
  background: color-mix(in oklab, var(--aui-color-accent-blue) 20%, var(--aui-color-bg-muted));
  color: var(--aui-color-accent-blue-hover);
}

body.aui-app .day-bar {
  background: var(--aui-color-accent-blue);
}

/* ── Дообучение (training) ───────────────────────────────────────────────── */
body.aui-app .client-pill {
  background: color-mix(in oklab, var(--aui-color-accent-blue) 12%, var(--aui-color-bg-surface));
  color: var(--aui-color-accent-blue);
}

body.aui-app .client-pill:hover {
  background: color-mix(in oklab, var(--aui-color-accent-blue) 20%, var(--aui-color-bg-muted));
  color: var(--aui-color-accent-blue-hover);
}

body.aui-app .prompt-block {
  border-left-color: color-mix(in oklab, var(--aui-color-accent-blue) 45%, var(--aui-color-border));
}

body.aui-app .prompt-block code {
  color: var(--aui-color-accent-blue);
}

body.aui-app .muted-box {
  background: var(--aui-color-bg-muted);
  color: var(--aui-color-text-secondary);
}

/* ── Вход портала / PIN / 403 (aui-auth) ─────────────────────────────────── */
body.aui-app.aui-auth-page {
  font-family: var(--aui-font-sans);
}

body.aui-app.aui-auth-page.login-grad-dark {
  background: linear-gradient(160deg, #1a1d24 0%, #2a2f38 100%);
}

body.aui-app.aui-auth-page .login-card,
body.aui-app.aui-auth-page .cardx,
body.aui-app.aui-auth-page .pin-card {
  border: 1px solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-lg);
  border-radius: var(--aui-radius-xl);
}

body.aui-app.aui-auth-page .brand {
  color: var(--aui-color-accent-blue);
}

body.aui-app.aui-auth-page .btn-primary {
  background: var(--aui-color-accent-blue);
  border-color: var(--aui-color-accent-blue);
}

body.aui-app.aui-auth-page .btn-primary:hover {
  background: var(--aui-color-accent-blue-hover);
  border-color: var(--aui-color-accent-blue-hover);
}

body.aui-app.aui-auth-page.reset-light {
  background: var(--aui-color-bg-page);
}

/* ── Консоль: вход (login.html) ───────────────────────────────────────────── */
body.aui-app .login-left {
  background: #1e2128;
}

body.aui-app .form-group input:focus {
  border-color: var(--aui-color-accent-blue);
}

body.aui-app .btn-login {
  background: var(--aui-color-accent-blue);
}

body.aui-app .btn-login:hover {
  background: var(--aui-color-accent-blue-hover);
}

/* ── Публичный отчёт (public_report.html) ───────────────────────────────── */
body.aui-app.public-report-page {
  font-family: var(--aui-font-sans);
  background: var(--aui-color-bg-page);
  color: var(--aui-color-text);
}

body.aui-app.public-report-page .report-header {
  background: linear-gradient(
    180deg,
    color-mix(in oklab, var(--aui-color-accent-blue) 92%, #000) 0%,
    var(--aui-color-accent-blue) 100%
  );
}

body.aui-app.public-report-page .report-title-bar {
  background: var(--aui-color-bg-surface);
  border-bottom: 1px solid var(--aui-color-border);
}

body.aui-app.public-report-page .report-title-bar h1 {
  font-family: var(--aui-font-sans);
  color: var(--aui-color-text);
}

body.aui-app.public-report-page .report-title-bar .period {
  color: var(--aui-color-text-secondary);
}

body.aui-app.public-report-page .filter-card,
body.aui-app.public-report-page .metric-filter {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}

body.aui-app.public-report-page .filter-card label,
body.aui-app.public-report-page .metric-filter-title {
  color: var(--aui-color-text-secondary);
}

body.aui-app.public-report-page .filter-card input[type="date"] {
  border-color: var(--aui-color-border-strong);
  border-radius: var(--aui-radius-md);
}

body.aui-app.public-report-page .filter-card input[type="date"]:focus {
  border-color: var(--aui-color-accent-blue);
}

body.aui-app.public-report-page .btn-filter {
  background: var(--aui-color-accent-blue);
  border-radius: var(--aui-radius-md);
}

body.aui-app.public-report-page .btn-filter:hover {
  background: var(--aui-color-accent-blue-hover);
}

body.aui-app.public-report-page .kpi-card {
  background: var(--aui-color-bg-surface);
  border: var(--aui-border-width) solid var(--aui-color-border);
  border-top: 2px solid var(--aui-color-accent-blue);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}

body.aui-app.public-report-page .kpi-val {
  color: var(--aui-color-accent-blue);
  font-family: var(--aui-font-sans);
}

body.aui-app.public-report-page .kpi-label {
  color: var(--aui-color-text-muted);
}

body.aui-app.public-report-page .kpi-sub {
  color: var(--aui-color-text-placeholder);
}

body.aui-app.public-report-page .section-card {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}

body.aui-app.public-report-page .section-title {
  font-family: var(--aui-font-sans);
  color: var(--aui-color-text);
}

body.aui-app.public-report-page .day-bar-fill {
  background: var(--aui-color-accent-blue);
}

body.aui-app.public-report-page .day-label {
  color: var(--aui-color-text-muted);
}

body.aui-app.public-report-page .day-val {
  color: var(--aui-color-text);
}

body.aui-app.public-report-page .metric-toggle.active {
  border-color: var(--aui-color-accent-blue);
  background: color-mix(in oklab, var(--aui-color-accent-blue) 10%, var(--aui-color-bg-surface));
  color: var(--aui-color-accent-blue);
}

/* Публичная страница отчёта: шире контейнер (не 820px) */
body.aui-app.public-report-page .wrap {
  max-width: min(1400px, 100%);
}

body.aui-app.public-report-page .footer-bottom.footer-public {
  background: var(--aui-color-accent-blue);
}

@media print {
  body.aui-app.public-report-page .report-header {
    background: var(--aui-color-accent-blue) !important;
  }
  body.aui-app.public-report-page .kpi-val {
    color: var(--aui-color-accent-blue) !important;
  }
  body.aui-app.public-report-page .day-bar-fill {
    background: var(--aui-color-accent-blue) !important;
  }
  body.aui-app.public-report-page .footer-bottom.footer-public {
    background: var(--aui-color-accent-blue) !important;
  }
}

/* ── Публичный отчёт внутри консоли (тот же визуальный язык, что и выше) ─── */
body.aui-app .public-report-scope .filter-card,
body.aui-app .public-report-scope .metric-filter {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}
body.aui-app .public-report-scope .filter-card label,
body.aui-app .public-report-scope .metric-filter-title {
  color: var(--aui-color-text-secondary);
}
body.aui-app .public-report-scope .filter-card input[type="date"] {
  border-color: var(--aui-color-border-strong);
  border-radius: var(--aui-radius-md);
}
body.aui-app .public-report-scope .filter-card input[type="date"]:focus {
  border-color: var(--aui-color-accent-blue);
}
body.aui-app .public-report-scope .btn-filter {
  background: var(--aui-color-accent-blue);
  border-radius: var(--aui-radius-md);
}
body.aui-app .public-report-scope .btn-filter:hover {
  background: var(--aui-color-accent-blue-hover);
}
body.aui-app .public-report-scope .kpi-card {
  background: var(--aui-color-bg-surface);
  border: var(--aui-border-width) solid var(--aui-color-border);
  border-top: 2px solid var(--aui-color-accent-blue);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}
body.aui-app .public-report-scope .kpi-val {
  color: var(--aui-color-accent-blue);
  font-family: var(--aui-font-sans);
}
body.aui-app .public-report-scope .kpi-label {
  color: var(--aui-color-text-muted);
}
body.aui-app .public-report-scope .kpi-sub {
  color: var(--aui-color-text-placeholder);
}
body.aui-app .public-report-scope .section-card {
  background: var(--aui-color-bg-surface);
  border: 1px solid var(--aui-color-border);
  box-shadow: var(--aui-shadow-sm);
  border-radius: var(--aui-radius-lg);
}
body.aui-app .public-report-scope .section-title {
  font-family: var(--aui-font-sans);
  color: var(--aui-color-text);
}
body.aui-app .public-report-scope .day-bar-fill {
  background: var(--aui-color-accent-blue);
}
body.aui-app .public-report-scope .metric-toggle.active {
  border-color: var(--aui-color-accent-blue);
  background: color-mix(in oklab, var(--aui-color-accent-blue) 10%, var(--aui-color-bg-surface));
  color: var(--aui-color-accent-blue);
}

/* Отчёт ЛК в консоли: тот же .wrap, что на публичной странице (max-width + отступы) */
body.aui-app .public-report-scope .wrap {
  max-width: min(1400px, 100%);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(12px, 2.5vw, 28px) clamp(12px, 3vw, 24px);
  box-sizing: border-box;
}

/* Ближе к публичной странице: не дублировать боковые отступы main + .wrap */
body.aui-app main.page-content:has(> .public-report-scope) {
  padding-left: 12px;
  padding-right: 12px;
}

/* ── Панель оператора (manager/sessions.html) ───────────────────────────── */
body.aui-app.op-sessions-page {
  font-family: var(--aui-font-sans);
  background: var(--aui-color-bg-page);
}

body.aui-app.op-sessions-page .nav-portal a.active {
  color: var(--aui-color-accent-blue);
  border-bottom-color: var(--aui-color-accent-blue);
  padding-bottom: 6px;
}

body.aui-app.op-sessions-page .sess-item.active {
  background: color-mix(in oklab, var(--aui-color-accent-blue) 12%, var(--aui-color-bg-surface));
  border-left-color: var(--aui-color-accent-blue) !important;
}

body.aui-app.op-sessions-page .chat-area {
  background: var(--aui-color-bg-page);
}

body.aui-app.op-sessions-page .chat-header {
  background: var(--aui-color-bg-surface);
  border-bottom: 1px solid var(--aui-color-border);
}

body.aui-app.op-sessions-page .sess-list {
  background: var(--aui-color-bg-surface);
  border-right: 1px solid var(--aui-color-border);
}

body.aui-app.op-sessions-page .nav-portal a {
  color: var(--aui-color-text-secondary);
}

body.aui-app.op-sessions-page .nav-portal a:hover {
  color: var(--aui-color-accent-blue);
}

/* Синхронизация с порталом: как auto_gen/_portal_nav_styles.html (статистика, диалоги) */
body.aui-app.op-sessions-page .nav-portal {
  padding: 16px 24px;
  gap: 10px 12px;
  font-size: 1.0625rem;
  line-height: 1.45;
  /* Явная тень: на очереди фон под панелью совпадает с «полом», без неё бар выглядит плоско */
  box-shadow:
    var(--aui-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06)),
    0 2px 8px rgba(15, 23, 42, 0.06);
}
body.aui-app.op-sessions-page .nav-portal a {
  font-size: inherit;
  font-weight: 500;
  padding-bottom: 6px;
}
body.aui-app.op-sessions-page .nav-portal a .nav-ico .ph-bold {
  font-size: 1.125em;
  line-height: 1;
  opacity: 0.92;
}
body.aui-app.op-sessions-page .nav-portal .who {
  font-size: 0.9375rem;
}

