/* ═══════════════════════════════════════════════════════════════
   RTS FLY BG — Design System v5
   Premium Enterprise Fintech CRM
   Cold white · Silver · Graphite · Deep blue
═══════════════════════════════════════════════════════════════ */

/* ── Design tokens ─────────────────────────────────────────── */
:root {
  /* Surface */
  --surface-base:    #f0f4f9;
  --surface-1:       #ffffff;
  --surface-2:       #f7faff;
  --surface-3:       rgba(248,250,253,0.90);
  --surface-glass:   #ffffff;
  --surface-frost:   rgba(255,255,255,0.50);
  --surface-manager: rgba(30,40,60,0.03);

  /* Text */
  --text-primary:   #0f1f35;
  --text-secondary: #3d5570;
  --text-muted:     #7a92ae;
  --text-faint:     #b0c0d4;
  --text-white:     #ffffff;

  /* Accent */
  --accent:         #1a5fd4;
  --accent-light:   #4d8ef7;
  --accent-soft:    #e8f1ff;
  --accent-border:  #bdd3f9;
  --accent-glow:    rgba(26,95,212,0.22);

  /* Status */
  --green:          #12a05a;
  --green-bg:       #e3f9ee;
  --amber:          #c47f00;
  --amber-bg:       #fff4d6;
  --purple:         #5b35cc;
  --purple-bg:      #ede9ff;
  --red:            #bf2d2d;
  --red-bg:         #ffeeee;
  --slate:          #5e7899;
  --slate-bg:       #eef2f7;

  /* Backstage / publish states */
  --draft-bg:       #f5f6f8;
  --draft-text:     #7a92ae;
  --ready-bg:       #fff4d6;
  --ready-text:     #c47f00;
  --pub-bg:         #e3f9ee;
  --pub-text:       #12a05a;
  --internal-bg:    #fff8ec;
  --internal-text:  #b87000;
  --internal-border:#f0d48a;

  /* Border */
  --border:         rgba(155,180,215,0.22);
  --border-strong:  rgba(155,180,215,0.42);
  --border-focus:   rgba(26,95,212,0.5);

  /* Shadows — elevation system */
  --shadow-xs:   0 1px 3px rgba(10,40,90,.06);
  --shadow-sm:   0 1px 2px rgba(10,40,90,.04);
  --shadow-md:   0 2px 6px rgba(10,40,90,.05);
  --shadow-lg:   0 3px 10px rgba(10,40,90,.06);
  --shadow-xl:   0 6px 18px rgba(10,40,90,.08);
  --shadow-btn:  0 4px 14px rgba(26,95,212,.30), 0 1px 4px rgba(26,95,212,.20);
  --shadow-btn-h:0 6px 20px rgba(26,95,212,.40), 0 2px 6px rgba(26,95,212,.25);

  /* Blur */
  --blur-sm:  blur(12px);
  --blur-md:  blur(20px);
  --blur-lg:  blur(32px);

  /* Radius */
  --r-xs:  6px;
  --r-sm:  10px;
  --r-md:  14px;
  --r-lg:  20px;
  --r-xl:  28px;
  --r-pill:999px;

  /* Spacing scale (8px) */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px;

  /* Transitions */
  --t-fast:  0.14s ease;
  --t-base:  0.22s ease;
  --t-slow:  0.36s cubic-bezier(0.34,1.56,0.64,1);
}

/* ── Reset & base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: Inter, -apple-system, "SF Pro Display", "Segoe UI", sans-serif;
  font-size: 14px; line-height: 1.5;
  color: var(--text-primary);
  background: var(--surface-base);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-faint); }

/* ────────────────────────────────────────────────────────────
   APP SHELL
──────────────────────────────────────────────────────────── */
.app-shell { padding: var(--sp-3); zoom: var(--app-zoom); }
/* Клиент: фиксированная высота в один экран, без прокрутки страницы. */
.app-shell.cabinet-client { height: calc(100vh / var(--app-zoom)); overflow: hidden; }
/* Менеджер: обычное поведение — высота по контенту, страница прокручивается. */
.app-shell.cabinet-manager { min-height: calc(100vh / var(--app-zoom)); }

/* ── Базовый масштаб интерфейса ─────────────────────────────────
   UI исходно рассчитан на ~0.8 масштаба. Раньше стоял ФИКСИРОВАННЫЙ
   --app-zoom:0.8 — из-за этого на больших мониторах всё казалось мелким,
   а на ноутбуках крупнее (property `zoom` не подстраивается под экран).
   Теперь масштаб зависит от ширины экрана: чем шире монитор, тем крупнее
   интерфейс — и на всех экранах он выглядит пропорционально. */
:root { --app-zoom: 0.8; }
/* Ноутбуки / небольшие мониторы */
@media (min-width: 1280px) { :root { --app-zoom: 0.8; } }
@media (min-width: 1440px) { :root { --app-zoom: 0.84; } }
@media (min-width: 1680px) { :root { --app-zoom: 0.92; } }
@media (min-width: 1920px) { :root { --app-zoom: 1.0; } }
@media (min-width: 2200px) { :root { --app-zoom: 1.12; } }
@media (min-width: 2560px) { :root { --app-zoom: 1.22; } }
/* Узкие экраны — оставляем компактнее, чтобы всё помещалось */
@media (max-width: 1100px) { :root { --app-zoom: 0.72; } }
.app-grid  {
  display: grid;
  grid-template-columns: 248px 1fr;
  gap: var(--sp-3);
  align-items: stretch;
}
/* Высоту строки сетки фиксируем только у клиента (для выравнивания низа). */
.cabinet-client .app-grid { height: calc((100vh / var(--app-zoom)) - 24px); }
.cabinet-manager .app-grid { min-height: calc((100vh / var(--app-zoom)) - 24px); }
/* Менеджер: не допускаем горизонтального вылета контента за край экрана.
   Колонка контента ужимается, широкие блоки (трекер этапов) скроллятся внутри. */
.cabinet-manager { max-width: 100%; }
.cabinet-manager .app-grid > .content { min-width: 0; max-width: 100%; overflow-x: hidden; }
.cabinet-manager .app-stage-tracker { max-width: 100%; }

/* ────────────────────────────────────────────────────────────
   SIDEBAR
──────────────────────────────────────────────────────────── */
.sidebar {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md);
  -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-3) var(--sp-3);
  display: flex; flex-direction: column; gap: 2px;
}
/* Клиент: сайдбар ровно в высоту экрана. Менеджер: по содержимому. */
.cabinet-client .sidebar { height: 100%; overflow: hidden; }
.cabinet-manager .sidebar { min-height: 100%; }

/* Brand */
.brand {
  display: flex; align-items: center; justify-content: center; gap: var(--sp-2);
  height: 56px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, #1048b0 0%, #1a5fd4 50%, #2d80f2 100%);
  color: var(--text-white); font-size: 15px; font-weight: 800;
  letter-spacing: .01em; flex-shrink: 0;
  box-shadow: 0 4px 20px rgba(26,95,212,.35), inset 0 1px 0 rgba(255,255,255,.18);
  position: relative; overflow: hidden;
}
.brand::after {
  content: '';
  position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
  transform: skewX(-20deg);
  animation: shimmerBrand 4s ease-in-out infinite;
}
@keyframes shimmerBrand { 0%,100%{left:-60%} 60%{left:120%} }

/* Логотип вместо текста: поле в цвет площадки, логотип вписан, анимация сохранена */
.brand-logo {
  background: var(--surface-base);
  border: 1px solid var(--border);
  padding: 8px 14px;
  box-shadow: var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.6);
}
.brand-logo .brand-img {
  max-height: 100%;
  max-width: 100%;
  height: auto;
  width: auto;
  object-fit: contain;
  display: block;
  position: relative;
  z-index: 1;
}
.brand-logo::after {
  background: linear-gradient(90deg, transparent, rgba(26,95,212,.10), transparent);
}
.brand-accent { opacity: .75; }

/* Role badge */
.user-badge {
  display: flex; align-items: center; justify-content: center;
  padding: 5px var(--sp-3);
  border-radius: var(--r-sm);
  font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  flex-shrink: 0;
}
.user-badge-manager { background: var(--internal-bg); color: var(--internal-text); border: 1px solid var(--internal-border); }
.sidebar-client .nav-island .user-badge-manager { margin: 2px 2px 8px; flex-shrink: 0; }
.user-badge-client  { background: var(--accent-soft);  color: var(--accent);        border: 1px solid var(--accent-border); }

/* Nav */
.nav-stack { display: flex; flex-direction: column; gap: 1px; flex: 1; overflow-y: auto; padding: var(--sp-1) 0; }
.nav-link {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 7px var(--sp-3); border-radius: var(--r-md);
  color: var(--text-secondary); font-size: 13px; font-weight: 600;
  transition: all var(--t-fast); position: relative; overflow: hidden;
  margin-bottom: 1px;
}
.nav-link:hover  { background: rgba(255,255,255,.6); color: var(--text-primary); transform: translateX(2px); }
.nav-link.active {
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  color: var(--text-white);
  box-shadow: 0 4px 14px rgba(26,95,212,.28);
}
.nav-link.active::after {
  content:''; position:absolute; right:0; top:25%; height:50%; width:3px;
  background: rgba(255,255,255,.6); border-radius:2px;
}
.nav-icon { font-size: 16px; flex-shrink: 0; width: 20px; text-align: center; }
.nav-exit { color: var(--text-muted); margin-top: 4px; }
.nav-exit:hover { color: var(--red); background: var(--red-bg); }

/* New app CTA */
.primary-side-button {
  display: flex; align-items: center; justify-content: center; gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-lg); flex-shrink: 0;
  margin-top: 6px;
  background: linear-gradient(135deg, #1048b0, #1a5fd4, #2d80f2);
  color: var(--text-white); font-size: 13px; font-weight: 800;
  box-shadow: var(--shadow-btn);
  transition: all var(--t-fast); position: relative; overflow: hidden;
}
.primary-side-button::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
}
.primary-side-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-btn-h);
}

/* ────────────────────────────────────────────────────────────
   MAIN CONTENT
──────────────────────────────────────────────────────────── */
.content { display: flex; flex-direction: column; gap: var(--sp-3); }
/* Клиент: контент ровно в высоту экрана, прокрутка внутри блоков. */
.cabinet-client .content { height: 100%; min-height: 0; overflow: hidden; }
/* Менеджер: обычный поток — контент по высоте, страница прокручивается,
   весь функционал (документы, кнопки, проекты) доступен как раньше. */
.cabinet-manager .content { min-height: 0; overflow: visible; }

/* Нижняя граница основного блока КЛИЕНТА совпадает с низом сайдбара
   (под «Выйти»): последний крупный блок растягивается до низа,
   внутренняя прокрутка — внутри него, страница без скролла. */
.cabinet-client .content > .panel:last-of-type,
.cabinet-client .content > .cabinet-main,
.cabinet-client .content > .msg-layout { flex: 1 1 auto; min-height: 0; }
.cabinet-client .content > .msg-layout { min-height: 0; height: auto; overflow: hidden; }
.cabinet-client .content > .av-root.cabinet-main { overflow-y: auto; }
.cabinet-client .content > .panel:last-of-type { display: flex; flex-direction: column; }
.cabinet-client .content > .panel:last-of-type > .panel-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.cabinet-client .content > .ad-card.cabinet-main { display: flex; flex-direction: column; }
.cabinet-client .content > .ad-card.cabinet-main > form { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.cabinet-client .content > .ad-card.cabinet-main .ad-body-pad { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.cabinet-client .content > .ad-card.cabinet-main .ad-bar { flex-shrink: 0; }

/* ── ЕДИНАЯ НИЖНЯЯ ЛИНИЯ ОКОН (только клиент) ──────────────────
   У клиента низ всех центральных окон фиксируется на одной линии
   (низ сайдбара под «Выйти»). Последний крупный блок страницы
   растягивается до этой линии, а содержимое, которое не помещается,
   прокручивается ВНУТРИ блока (ползунок), не вынося страницу за экран.
   Покрывает все клиентские страницы и разделы (в т.ч. «Мои финансы»),
   КРОМЕ «Работа с PDF» (content-page-tools) и «Создание Бух баланса»
   (content-page-buh) — там оставляем обычный поток. */
.cabinet-client .content:not(.content-page-tools):not(.content-page-buh) > .panel:last-of-type,
.cabinet-client .content:not(.content-page-tools):not(.content-page-buh) > .cabinet-main:not(.av-root):last-of-type,
.cabinet-client .content:not(.content-page-tools):not(.content-page-buh) > .ad-card.cabinet-main:last-of-type {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
/* Прокручиваемое тело внутри последнего блока */
.cabinet-client .content:not(.content-page-tools):not(.content-page-buh) > .panel:last-of-type > .panel-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

/* Исключения: «Работа с PDF» и «Создание Бух баланса» — обычный поток,
   страница может прокручиваться целиком, низ окон НЕ фиксируем. */
.app-shell.cabinet-client:has(> .app-grid > .content.content-page-tools),
.app-shell.cabinet-client:has(> .app-grid > .content.content-page-buh) { height: auto; min-height: calc(100vh / var(--app-zoom)); overflow: visible; }
.cabinet-client .app-grid:has(> .content.content-page-tools),
.cabinet-client .app-grid:has(> .content.content-page-buh) { height: auto; min-height: calc((100vh / var(--app-zoom)) - 24px); }
.cabinet-client .content.content-page-tools,
.cabinet-client .content.content-page-buh { height: auto; min-height: 0; overflow: visible; }
.cabinet-client .content.content-page-tools > .panel:last-of-type,
.cabinet-client .content.content-page-buh > .panel:last-of-type { flex: 0 0 auto; display: block; }
.cabinet-client .content.content-page-tools > .panel:last-of-type > .panel-body,
.cabinet-client .content.content-page-buh > .panel:last-of-type > .panel-body { flex: none; min-height: 0; overflow: visible; }

/* «Мои финансы» (клиент): последний блок (История операций) дотягивается
   до единой нижней линии, таблица истории прокручивается внутри. */
.cabinet-client .content.content-page-finances { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.cabinet-client .content.content-page-finances > .wallet-client-hero,
.cabinet-client .content.content-page-finances > .wallet-client-card:not(:last-of-type) { flex: 0 0 auto; }
.cabinet-client .content.content-page-finances > .wallet-client-card:last-of-type {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cabinet-client .content.content-page-finances > .wallet-client-card:last-of-type > .wallet-history-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

/* ── Единая шапка контента (одна линия для всех страниц) ───────
   Высота шапки = высота бренда (56px) + отступ под брендом (12px) = 68px,
   поэтому линия шапки совпадает с верхней границей островка сайдбара
   (линия над «Чат с менеджером»).
   горизонтали, а островок сайдбара стартует от этой же линии. */
.app-topbar {
  height: 68px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: 0 var(--sp-5);
  border-bottom: 1px solid var(--border-strong);
}
.app-topbar-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.app-topbar-right {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-left: auto;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.app-topbar-left {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
.app-topbar-left .app-topbar-title { margin: 0; }

/* ── Hero strip ─── */
.hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--sp-3); }
.hero-main, .hero-banner {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl);
  box-shadow: var(--shadow-md); padding: var(--sp-5) var(--sp-6);
}
.hero-main h1  { font-size: 18px; font-weight: 800; color: var(--text-primary); }
.hero-main p   { margin-top: var(--sp-1); font-size: 12px; color: var(--text-muted); }
.hero-banner {
  display: flex; justify-content: space-between; align-items: center;
  background: linear-gradient(135deg, var(--accent-soft), rgba(196,222,255,.4));
  border-color: var(--accent-border);
}
.hero-banner strong { display: block; font-size: 15px; font-weight: 900; color: var(--accent); }
.hero-banner span   { display: block; margin-top: 4px; font-size: 12px; color: var(--text-muted); }
.hero-pill {
  background: rgba(255,255,255,.85); border-radius: var(--r-sm);
  padding: var(--sp-2) var(--sp-4); font-size: 12px; font-weight: 800; color: var(--accent);
  box-shadow: var(--shadow-xs);
}

/* ────────────────────────────────────────────────────────────
   PANEL — base card
──────────────────────────────────────────────────────────── */
.panel {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border);
  border-radius: var(--r-xl); box-shadow: var(--shadow-lg); overflow: hidden;
}
.panel-head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-6); border-bottom: 1px solid var(--border);
}
.panel-head h2 { font-size: 18px; font-weight: 800; }
.panel-head p  { margin-top: 4px; font-size: 12px; color: var(--text-muted); }
.panel-body    { padding: var(--sp-5) var(--sp-6); }
.header-actions{ display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }

/* ────────────────────────────────────────────────────────────
   BUTTONS — premium 5D system
──────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  padding: 11px 20px; border: 0; border-radius: var(--r-md); cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 700; white-space: nowrap;
  transition: all var(--t-fast); position: relative; overflow: hidden;
  text-decoration: none;
}
/* Primary */
.btn, .btn-primary {
  background: linear-gradient(180deg, #2270ec 0%, #1a5fd4 50%, #1650b8 100%);
  color: var(--text-white);
  box-shadow: var(--shadow-btn), inset 0 1px 0 rgba(255,255,255,.22);
}
.btn::before, .btn-primary::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.38) 50%, transparent 100%);
}
.btn:hover, .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-btn-h), inset 0 1px 0 rgba(255,255,255,.28);
}
.btn:active, .btn-primary:active {
  transform: translateY(0); box-shadow: 0 2px 8px rgba(26,95,212,.30);
}
/* Secondary */
.btn.secondary, .btn-secondary {
  background: rgba(255,255,255,.85); color: var(--text-primary);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.95);
}
.btn.secondary:hover, .btn-secondary:hover {
  background: rgba(255,255,255,.98);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.95);
}
/* Ghost */
.btn-ghost {
  background: transparent; color: var(--text-muted); border: 1px solid var(--border);
  box-shadow: none;
}
.btn-ghost:hover { background: rgba(255,255,255,.6); color: var(--text-secondary); transform: none; box-shadow: var(--shadow-xs); }
/* Danger */
.btn-danger { background: linear-gradient(180deg, #e03535, #c52828) !important; color: #fff !important; }
.btn-danger:hover { box-shadow: 0 6px 18px rgba(197,40,40,.35) !important; }
/* Sizes */
.btn-sm { padding: 7px 14px; font-size: 12px; border-radius: var(--r-sm); }
.btn-xs { padding: 4px 10px; font-size: 11px; border-radius: var(--r-xs); }
.btn-full { width: 100%; }
.btn-icon { padding: 9px; border-radius: var(--r-sm); }

/* ────────────────────────────────────────────────────────────
   BADGES & CHIPS
──────────────────────────────────────────────────────────── */
/* Status chip */
.chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border-radius: var(--r-pill);
  font-size: 11px; font-weight: 700; white-space: nowrap;
}
.chip-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }

.chip-blue   { background: var(--accent-soft);  color: var(--accent);   border: 1px solid var(--accent-border); }
.chip-blue   .chip-dot { background: var(--accent); }
.chip-green  { background: var(--green-bg);  color: var(--green);  border: 1px solid #a7e8c5; }
.chip-green  .chip-dot { background: var(--green); }
.chip-amber  { background: var(--amber-bg);  color: var(--amber);  border: 1px solid #f5d98a; }
.chip-amber  .chip-dot { background: var(--amber); }
.chip-purple { background: var(--purple-bg); color: var(--purple); border: 1px solid #c5b8f4; }
.chip-purple .chip-dot { background: var(--purple); }
.chip-red    { background: var(--red-bg);    color: var(--red);    border: 1px solid #f5b8b8; }
.chip-red    .chip-dot { background: var(--red); }
.chip-slate  { background: var(--slate-bg);  color: var(--slate);  border: 1px solid #c8d8e8; }
.chip-slate  .chip-dot { background: var(--slate); }

/* Application status */
.status-work     { @extend .chip; background: var(--accent-soft);  color: var(--accent);   border-color: var(--accent-border); }
.status-offer    { background: var(--green-bg);  color: var(--green);  }
.status-review   { background: var(--amber-bg);  color: var(--amber);  }
.status-issued   { background: var(--purple-bg); color: var(--purple); }
.status-declined { background: var(--red-bg);    color: var(--red);    }
.status-pill { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: var(--r-pill); font-size: 11px; font-weight: 700; white-space: nowrap; }
.status-pill::before { content:''; width:6px; height:6px; border-radius:50%; }
.status-work::before     { background: var(--accent); }  .status-work     { background: var(--accent-soft); color: var(--accent); border:1px solid var(--accent-border); }
.status-offer::before    { background: var(--green); }   .status-offer    { background: var(--green-bg);  color: var(--green);  border:1px solid #a7e8c5; }
.status-review::before   { background: var(--amber); }   .status-review   { background: var(--amber-bg);  color: var(--amber);  border:1px solid #f5d98a; }
.status-issued::before   { background: var(--purple); }  .status-issued   { background: var(--purple-bg); color: var(--purple); border:1px solid #c5b8f4; }
.status-declined::before { background: var(--red); }     .status-declined { background: var(--red-bg);    color: var(--red);    border:1px solid #f5b8b8; }
.status-rework { background:#fff1eb; color:#c2410c; border:1px solid #fbcfa8; } .status-rework::before { display:none; }

/* Bank offer status */
.bos-pill { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: var(--r-pill); font-size: 11px; font-weight: 700; white-space: nowrap; }
.bos-pill::before { content:''; width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.bos-filling  { background:#f0eeff; color:#4c3fb5; border:1px solid #c5b8f4; } .bos-filling::before  { background:#4c3fb5; }
.bos-work     { background:var(--accent-soft); color:var(--accent); border:1px solid var(--accent-border); } .bos-work::before { background:var(--accent); }
.bos-approved { background:var(--green-bg); color:var(--green); border:1px solid #a7e8c5; } .bos-approved::before { background:var(--green); }
.bos-issued   { background:var(--purple-bg); color:var(--purple); border:1px solid #c5b8f4; } .bos-issued::before { background:var(--purple); }
.bos-signing  { background:#fff8e8; color:#a16207; border:1px solid #f3d690; } .bos-signing::before { background:#d99a06; }

/* Publish state badges */
.pub-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: var(--r-pill); font-size: 10px; font-weight: 800; letter-spacing:.02em; text-transform: uppercase; }
.pub-draft     { background: var(--draft-bg);    color: var(--draft-text);    border: 1px solid #d8e0ec; }
.pub-ready     { background: var(--ready-bg);    color: var(--ready-text);    border: 1px solid #f5d98a; }
.pub-published { background: var(--pub-bg);      color: var(--pub-text);      border: 1px solid #a7e8c5; }
.pub-internal  { background: var(--internal-bg); color: var(--internal-text); border: 1px solid var(--internal-border); }

/* Internal only banner */
.internal-only-bar {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4); border-radius: var(--r-sm);
  background: var(--internal-bg); border: 1px solid var(--internal-border);
  font-size: 11px; font-weight: 700; color: var(--internal-text);
}
.internal-only-bar::before { content: '🔒'; }

/* ────────────────────────────────────────────────────────────
   FORMS
──────────────────────────────────────────────────────────── */
.form-grid   { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--sp-4); }
.form-field  { display: flex; flex-direction: column; gap: var(--sp-1); }
.form-span-2 { grid-column: 1/-1; }
.form-submit { align-items: flex-end; }
.form-label  {
  font-size: 11px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .07em;
}
.input, .textarea, select.input {
  width: 100%; border: 1px solid var(--border-strong); border-radius: var(--r-md);
  padding: 11px var(--sp-4);
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font: inherit; font-size: 14px; color: var(--text-primary);
  transition: all var(--t-fast);
  box-shadow: inset 0 1px 2px rgba(10,40,90,.04);
}
.input:focus, .textarea:focus, select.input:focus {
  outline: none; border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(26,95,212,.14), inset 0 1px 2px rgba(10,40,90,.03);
  background: rgba(255,255,255,.95);
}
.input::placeholder { color: var(--text-faint); }
.textarea { min-height: 82px; resize: vertical; }

/* ────────────────────────────────────────────────────────────
   TOOLBAR / FILTER CHIPS
──────────────────────────────────────────────────────────── */
.toolbar { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin-bottom: var(--sp-4); align-items: center; }
.seg-btn {
  padding: 7px 14px; border-radius: var(--r-pill);
  background: rgba(255,255,255,.7); border: 1px solid var(--border-strong);
  font-size: 12px; font-weight: 700; color: var(--text-secondary);
  transition: all var(--t-fast); cursor: pointer;
}
.seg-btn:hover  { background: rgba(255,255,255,.95); border-color: var(--accent-border); color: var(--accent); }
.seg-btn.active { background: var(--accent); color: var(--text-white); border-color: var(--accent); box-shadow: 0 3px 10px rgba(26,95,212,.25); }

/* ────────────────────────────────────────────────────────────
   ENTERPRISE TABLE
──────────────────────────────────────────────────────────── */
.table-wrap {
  overflow: auto; border-radius: var(--r-lg);
  border: 1px solid var(--border); background: rgba(255,255,255,.7);
}
table { width: 100%; border-collapse: collapse; }
thead th {
  text-align: left; padding: var(--sp-3) var(--sp-4);
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--text-muted); background: rgba(240,245,252,.7);
  border-bottom: 1px solid var(--border); white-space: nowrap; position: sticky; top: 0;
}
tbody td { padding: 14px var(--sp-4); font-size: 13px; border-bottom: 1px solid var(--border); vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
.data-row { cursor: pointer; transition: background var(--t-fast); }
.data-row:hover td { background: rgba(26,95,212,.03); }
.num { font-weight: 800; font-variant-numeric: tabular-nums; }
.empty-row { text-align: center; color: var(--text-muted); padding: var(--sp-10); font-size: 13px; }

/* Quick row action */
.row-actions { display: flex; gap: var(--sp-1); opacity: 0; transition: opacity var(--t-fast); }
.data-row:hover .row-actions { opacity: 1; }

/* ────────────────────────────────────────────────────────────
   ALERTS
──────────────────────────────────────────────────────────── */
.alert { padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); font-size: 13px; font-weight: 600; margin-bottom: var(--sp-4); }
.alert.error   { background: var(--red-bg);   color: var(--red);   border: 1px solid #f5b8b8; }
.alert.success { background: var(--green-bg); color: var(--green); border: 1px solid #a7e8c5; }

/* ────────────────────────────────────────────────────────────
   AUTH
──────────────────────────────────────────────────────────── */
.auth-shell {
  min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--sp-6);
  background: var(--surface-base);
  background-image:
    radial-gradient(ellipse 800px 500px at 20% 10%, rgba(26,95,212,.07) 0%, transparent 70%),
    radial-gradient(ellipse 500px 400px at 80% 90%, rgba(91,53,204,.05) 0%, transparent 70%);
}
.auth-card {
  width: 100%; max-width: 480px;
  background: var(--surface-glass);
  backdrop-filter: var(--blur-lg); -webkit-backdrop-filter: var(--blur-lg);
  border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--sp-8);
  box-shadow: var(--shadow-xl);
}
.auth-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}
.auth-card { position: relative; }
.auth-brand  { margin-bottom: var(--sp-5); }
.auth-card h1 { font-size: 24px; font-weight: 800; }
.auth-sub    { margin: var(--sp-2) 0 var(--sp-5); color: var(--text-muted); font-size: 13px; }
.auth-form   { display: flex; flex-direction: column; gap: var(--sp-3); }
.auth-form label { font-size: 12px; font-weight: 700; color: var(--text-muted); }
.auth-links  { margin-top: var(--sp-4); color: var(--text-muted); font-size: 13px; }
.auth-links a { color: var(--accent); font-weight: 700; }
.demo-box    { margin-top: var(--sp-4); padding: var(--sp-4); border-radius: var(--r-md); background: var(--accent-soft); border: 1px solid var(--accent-border); font-size: 13px; line-height: 1.6; }

/* ────────────────────────────────────────────────────────────
   COMPANY CARDS
──────────────────────────────────────────────────────────── */
.companies-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.company-row {
  display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-lg); background: rgba(255,255,255,.65); border: 1px solid var(--border);
  transition: all var(--t-fast);
}
.company-row:hover { background: rgba(255,255,255,.9); border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
.company-row-active { background: var(--accent-soft); border-color: var(--accent-border); }
.company-row-info   { flex: 1; min-width: 0; }
.company-row-name   { font-size: 15px; font-weight: 800; }
.company-row-meta   { margin-top: 3px; font-size: 12px; color: var(--text-muted); }
.company-row-actions { display: flex; gap: var(--sp-2); flex-shrink: 0; }

/* ────────────────────────────────────────────────────────────
   BANKS PAGE
──────────────────────────────────────────────────────────── */
.banks-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--sp-4); }
.bank-ref-card {
  display: flex; flex-direction: column; align-items: center; gap: var(--sp-3); padding: var(--sp-6);
  background: rgba(255,255,255,.75); border: 1px solid var(--border); border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm); transition: all var(--t-base); text-align: center;
}
.bank-ref-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--accent-border); }
.bank-ref-icon   { font-size: 36px; }
.bank-ref-name   { font-size: 16px; font-weight: 800; }
.bank-ref-status { font-size: 11px; color: var(--accent); background: var(--accent-soft); border: 1px solid var(--accent-border); padding: 3px 12px; border-radius: var(--r-pill); }

/* ────────────────────────────────────────────────────────────
   HELP / SUPPORT CENTER
──────────────────────────────────────────────────────────── */
.support-hero {
  padding: var(--sp-8) var(--sp-6);
  background: linear-gradient(135deg, var(--accent-soft), rgba(230,240,255,.5));
  border-bottom: 1px solid var(--accent-border);
  display: flex; align-items: center; justify-content: space-between;
}
.support-hero-title { font-size: 22px; font-weight: 800; color: var(--text-primary); }
.support-hero-sub   { margin-top: var(--sp-2); font-size: 13px; color: var(--text-muted); max-width: 480px; line-height: 1.6; }
.support-hero-icon  { font-size: 48px; }

.help-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--sp-4); }

.help-card {
  background: rgba(255,255,255,.75); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--sp-5); box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: var(--sp-3);
  transition: all var(--t-base);
}
.help-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }
.help-card-anydesk {
  background: linear-gradient(135deg, rgba(26,95,212,.06), rgba(45,128,242,.04));
  border-color: var(--accent-border);
}
.help-card-anydesk:hover { border-color: var(--accent); box-shadow: 0 8px 30px rgba(26,95,212,.15); }
.help-card-icon  { width: 44px; height: 44px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 22px; background: var(--accent-soft); }
.help-card-title { font-size: 15px; font-weight: 800; }
.help-card-text  { font-size: 13px; color: var(--text-muted); line-height: 1.6; flex: 1; }
.help-card-anydesk .help-card-icon { background: linear-gradient(135deg, var(--accent), var(--accent-light)); }
.help-card-anydesk .help-anydesk-btn { margin-top: var(--sp-1); }

/* Security note */
.security-note {
  display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md); background: var(--slate-bg); border: 1px solid var(--border);
  font-size: 12px; color: var(--text-muted);
}
.security-note-icon { font-size: 16px; }

/* ────────────────────────────────────────────────────────────
   PDF TOOLS — service center
──────────────────────────────────────────────────────────── */
.pdf-tools-hero {
  padding: var(--sp-6); border-bottom: 1px solid var(--border);
  background: linear-gradient(135deg, rgba(91,53,204,.04), rgba(26,95,212,.04));
}
.pdf-tools-hero h2 { font-size: 20px; font-weight: 800; }
.pdf-tools-hero p  { margin-top: var(--sp-2); font-size: 13px; color: var(--text-muted); }

.pdf-tool-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--sp-4); }
.pdf-tool-card {
  background: rgba(255,255,255,.8); border: 1px solid var(--border);
  border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-sm);
  transition: all var(--t-base);
}
.pdf-tool-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.pdf-tool-card-head {
  padding: var(--sp-5); border-bottom: 1px solid var(--border);
  background: rgba(248,250,253,.6);
}
.pdf-tool-card-head h3 { font-size: 15px; font-weight: 800; }
.pdf-tool-card-head p  { margin-top: 4px; font-size: 12px; color: var(--text-muted); }
.pdf-tool-card-body { padding: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-4); }

/* Drop zone */
.dropzone {
  border: 2px dashed var(--border-strong); border-radius: var(--r-lg);
  padding: var(--sp-6); text-align: center; cursor: pointer;
  transition: all var(--t-fast); background: rgba(255,255,255,.5);
}
.dropzone:hover  { border-color: var(--accent); background: var(--accent-soft); }
.dropzone-icon   { font-size: 28px; margin-bottom: var(--sp-2); }
.dropzone-text   { font-size: 13px; color: var(--text-muted); }
.dropzone-subtext{ font-size: 11px; color: var(--text-faint); margin-top: 4px; }

.pdf-action-row { display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: center; }
.pdf-status     { padding: var(--sp-2) var(--sp-3); border-radius: var(--r-sm); background: var(--slate-bg); font-size: 12px; color: var(--text-muted); }
.result-box     { padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); background: var(--accent-soft); border: 1px solid var(--accent-border); font-size: 12px; line-height: 1.5; }
.result-box a   { color: var(--accent); font-weight: 800; }

/* ────────────────────────────────────────────────────────────
   APPLICATION VIEW — v5
──────────────────────────────────────────────────────────── */
.av-root { display: flex; flex-direction: column; gap: var(--sp-3); padding-bottom: var(--sp-6); }

/* ── Summary Hero Header ── */
.app-hero {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-md);
  overflow: hidden;
}
.app-hero-top {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-6); border-bottom: 1px solid var(--border);
}
.app-hero-left { display: flex; flex-direction: column; gap: var(--sp-2); }
.app-breadcrumb { font-size: 11px; color: var(--text-muted); display: flex; align-items: center; gap: var(--sp-1); }
.app-breadcrumb a:hover { color: var(--accent); }
.app-title-row  { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.app-title      { font-size: 22px; font-weight: 900; color: var(--text-primary); }
.app-meta-row   { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap; font-size: 12px; color: var(--text-muted); }
.app-meta-item  { display: flex; align-items: center; gap: var(--sp-1); }
.app-hero-actions { display: flex; align-items: center; gap: var(--sp-2); flex-shrink: 0; }

/* Progress tracker */
.app-stage-tracker {
  display: flex; align-items: center; padding: var(--sp-4) var(--sp-6);
  justify-content: space-between;
  overflow-x: auto;
}

/* ── Pill buttons (compact) ── */
.stage-pill {
  display: flex; align-items: center; gap: 6px;
  min-width: 0; height: 36px;
  padding: 0 12px 0 5px;
  border-radius: 18px;
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
  transition: all .25s ease;
}
.stage-pill-badge {
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  flex-shrink: 0;
  transition: all .25s ease;
}
.stage-pill-badge svg { width: 12px; height: 12px; }
.stage-pill-label {
  font-size: 12px; font-weight: 600;
  white-space: nowrap;
}

/* Done state */
.stage-pill-done {
  background: #f0faf4;
  border: 1.5px solid #35C46A;
}
.stage-pill-badge-done {
  background: #35C46A;
  color: #fff;
}
.stage-pill-done .stage-pill-label { color: #1a8c46; }

/* Active state — animated border */
@keyframes borderRotate {
  0% { --angle: 0deg; }
  100% { --angle: 360deg; }
}
@property --angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.stage-pill-active {
  background: linear-gradient(135deg, #2F6BFF 0%, #1E5AF2 100%);
  border: 2px solid transparent;
  background-clip: padding-box;
  position: relative;
  box-shadow: 0 4px 14px rgba(47,107,255,.3);
  animation: none;
}
.stage-pill-active::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 20px;
  background: conic-gradient(from var(--angle), #2F6BFF, #7eb3ff, #1E5AF2, #a8d0ff, #2F6BFF);
  animation: borderRotate 3s linear infinite;
  z-index: -1;
}
.stage-pill-active::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 18px;
  background: linear-gradient(135deg, #2F6BFF 0%, #1E5AF2 100%);
  z-index: -1;
}
.stage-pill-badge-active {
  background: rgba(255,255,255,.22);
  color: #fff;
  font-weight: 800;
}
.stage-pill-active .stage-pill-label { color: #fff; font-weight: 700; }

/* Pending state */
.stage-pill-pending {
  background: #fff;
  border: 1.5px solid #DCE3EE;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.03);
}
.stage-pill-badge-pending {
  background: #f2f4f8;
  color: #7A8AA0;
  border: 1px solid #DCE3EE;
  font-weight: 700;
}
.stage-pill-pending .stage-pill-label { color: #7A8AA0; }

/* Cancelled state */
.stage-pill-cancelled {
  background: #fafafa;
  border: 1.5px solid #e5e5e5;
  opacity: .5;
}
.stage-pill-badge-cancelled {
  background: #eee;
  color: #aaa;
}
.stage-pill-cancelled .stage-pill-label { color: #aaa; }

/* ── Connector lines ── */
.stage-connector {
  flex: 1; min-width: 8px; height: 2px;
  border-radius: 2px;
  transition: background .25s;
}
.stage-connector-done { background: #35C46A; }
.stage-connector-pending { background: #DCE3EE; }

/* Legacy stage classes kept for scoring mini-stepper */
.stage-step { display: flex; align-items: center; gap: var(--sp-2); }
.stage-circle {
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800;
}
.stage-circle-done    { background: var(--green);  color: #fff; box-shadow: 0 2px 8px rgba(18,160,90,.30); }
.stage-circle-active  { background: var(--accent); color: #fff; box-shadow: 0 2px 10px rgba(26,95,212,.35); animation: stagePulse 2s infinite; }
.stage-circle-pending { background: var(--draft-bg); color: var(--text-muted); border: 1.5px solid var(--border-strong); }
@keyframes stagePulse { 0%,100%{box-shadow:0 2px 10px rgba(26,95,212,.35)} 50%{box-shadow:0 2px 20px rgba(26,95,212,.55)} }
.stage-label { font-size: 11px; font-weight: 700; white-space: nowrap; }
.stage-label-done   { color: var(--green); }
.stage-label-active { color: var(--accent); }
.stage-label-pending{ color: var(--text-muted); }
.stage-line { flex: 1; height: 2px; background: var(--border); margin: 0 var(--sp-2); }
.stage-line-done { background: var(--green); }

/* ── Key metrics bar ── */
.metrics-bar {
  display: grid; grid-template-columns: repeat(5,minmax(0,1fr));
  border-top: 1px solid var(--border);
}
.metrics-bar-7 { grid-template-columns: 0.7fr 1.1fr 1fr 1fr 1fr 0.9fr 1fr; }
.metrics-bar-7 .metric-cell { padding: 12px 14px; }
.metrics-bar-7 .metric-value { overflow: hidden; text-overflow: ellipsis; }
.metrics-bar-6 { grid-template-columns: 0.8fr 0.8fr 1fr 1fr 1fr 1fr; }
/* Чипы для верхней полосы статуса заявки */
.metrics-bar-chips { border-top: 0; gap: 10px; padding: 4px 0 2px; }
.metrics-bar-chips .metric-cell { border-right: 0; padding: 9px 14px; background: #f4f6fa; border: 1px solid #eaeef5; border-radius: 12px; min-width: 0; }
.metrics-bar-chips .metric-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
@media (max-width: 1100px) { .metrics-bar-6.metrics-bar-chips { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.metric-cell {
  padding: var(--sp-4) var(--sp-5); border-right: 1px solid var(--border);
}
.metric-cell:last-child { border-right: 0; }
.metric-label { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .07em; }
.metric-value { margin-top: var(--sp-1); font-size: 16px; font-weight: 900; }
.metric-value-blue { color: var(--accent); }

/* Этап «документы на проверке» и подобные (есть phase1-layout):
   карточка вписывается в один экран, нижняя граница совпадает с низом
   сайдбара (под «Выйти»), без вертикальной прокрутки страницы —
   прокрутка только внутри чата/блока возможностей. */
.cabinet-client .content > .av-root.cabinet-main:has(.phase1-layout) {
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  flex: 1 1 auto;
  padding-bottom: 0;
}
.cabinet-client .content > .av-root:has(.phase1-layout) .phase1-layout {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  overflow: hidden;
}
.cabinet-client .content > .av-root:has(.phase1-layout) .app-hero { flex-shrink: 0; }

/* ── Переработанный этап «Документы на проверке» ──────────────
   Вертикально 50/50: сверху (документы + чат), снизу слайдер. */
.phase1-layout.review-redesign {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: minmax(0,0.5fr) minmax(0,1.5fr);
  grid-template-areas:
    "spinner slider"
    "chat    slider";
  gap: var(--sp-3);
  min-height: 0;
  height: 100%;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* review-top больше не контейнер-сетка: его дети раскладываются в общий грид */
.review-redesign .review-top { display: contents; }
.review-redesign .review-top > .scoring-col { grid-area: spinner; }
.review-redesign .review-top > .phase1-chat-col { grid-area: chat; }
/* Слайдшоу — вся правая колонка на обе строки */
.review-redesign > .rsl,
.review-redesign > .review-guarantee-window { grid-area: slider; align-self: stretch; height: 100%; }
.review-redesign > .review-guarantee-window .rgw-body { grid-template-columns: 1fr; }

/* ── Полоса выбранного банка ВНУТРИ окна «Заявка на рассмотрении» / «Гарантия на выпуске» ── */
.review-redesign .review-top > .scoring-col > .rs-bank-strip {
  flex: 0 0 auto;
  align-self: stretch;
  width: 100%;
  overflow: visible;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-bottom: var(--sp-3);
}
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) {
  justify-content: flex-start;
  padding: var(--sp-4);
  gap: var(--sp-3);
}
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .review-spinner { margin-top: auto; width: 72px; height: 72px; }
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .review-spinner .review-core { width: 42px; height: 42px; }
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .review-spinner .review-core-icon { font-size: 20px; }
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .scoring-h { font-size: 17px; margin: 0; }
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .scoring-p { font-size: 12.5px; margin: 0; }
.review-redesign .review-top > .scoring-col:has(> .rs-bank-strip) > .review-working { margin-bottom: auto; }
/* Компактная карточка банка в полосе «Заявка на рассмотрении» */
.review-redesign .rs-bank-strip .rs-bank-chip { padding: 9px 13px; gap: 11px; }
.review-redesign .rs-bank-strip .rs-bank-chip-icon { width: 32px; height: 32px; font-size: 15px; }
.review-redesign .rs-bank-strip .rs-bank-chip-metrics { gap: 14px; }
.rs-bank-strip-single { flex-wrap: nowrap; }
.rs-bank-chip {
  flex: 1 1 320px;
  display: flex; align-items: center; gap: 14px;
  background: var(--surface-glass);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  padding: 12px 16px;
  text-align: left;
}
.rs-bank-strip-single .rs-bank-chip { flex: 1 1 100%; }
.rs-bank-chip-icon { width: 38px; height: 38px; border-radius: 11px; background: #eef4ff; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.rs-bank-chip-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rs-bank-chip-name { font-size: 14px; font-weight: 800; color: #0f1f35; }
.rs-bank-chip-badge { font-size: 10.5px; font-weight: 700; color: #0f7b3e; background: #eafaf1; border: 1px solid #a7e8c5; border-radius: 8px; padding: 2px 8px; align-self: flex-start; white-space: nowrap; }
.rs-bank-strip-single .rs-bank-chip-badge { color: #5b3fb0; background: #efeafe; border-color: #c9b8f5; }
.rs-bank-chip-metrics { display: flex; gap: 18px; margin-left: auto; flex-wrap: wrap; }
.rs-bank-chip-m { display: flex; flex-direction: column; gap: 1px; }
.rs-bcm-l { font-size: 9.5px; font-weight: 700; color: #8a9bb2; text-transform: uppercase; letter-spacing: .06em; }
.rs-bcm-v { font-size: 13px; font-weight: 800; color: #0f1f35; }
.rs-bcm-accent { color: var(--accent); }
.review-redesign .review-top > .scoring-col,
.review-redesign .review-top > .phase1-chat-col {
  min-height: 0;
  background: var(--surface-glass);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.review-redesign .review-top > .scoring-col {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: var(--sp-4);
  overflow-y: auto; gap: 10px;
}
/* Компактная крутилка для уменьшенного вдвое окна */
.review-redesign .review-top > .scoring-col > .review-spinner { width: 64px; height: 64px; }
.review-redesign .review-top > .scoring-col > .review-spinner .review-ring-inner { inset: 8px; }
.review-redesign .review-top > .scoring-col > .review-spinner .review-core { width: 40px; height: 40px; }
.review-redesign .review-top > .scoring-col > .review-spinner .review-core-icon { font-size: 19px; }
.review-redesign .review-top > .scoring-col > .scoring-h { font-size: 18px; margin: 0; }
.review-redesign .review-top > .phase1-chat-col {
  display: flex; flex-direction: column;
}
.review-redesign .review-top > .phase1-chat-col .chat-messages-wrap {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
}

/* ── Слайдер возможностей (нижние 50%) ── */
.rsl {
  flex: 1 1 50%;
  min-height: 0;
  position: relative;
  background: var(--surface-glass);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.rsl-track { position: relative; flex: 1 1 auto; min-height: 0; }

/* ── Окно гарантии (нижние 50%, вместо слайдера на «Гарантия на выпуске») ── */
.review-guarantee-window {
  flex: 1 1 50%;
  min-height: 0;
  background: var(--surface-glass);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.rgw-head {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 18px; border-bottom: 1px solid var(--border); flex-wrap: wrap;
}
.rgw-bank { display: flex; align-items: center; gap: 12px; }
.rgw-bank-icon { width: 40px; height: 40px; border-radius: 11px; background: #eef4ff; display: flex; align-items: center; justify-content: center; font-size: 19px; }
.rgw-bank-name { font-size: 15px; font-weight: 800; color: #0f1f35; }
.rgw-approved { display: inline-block; margin-top: 2px; padding: 2px 9px; border-radius: 8px; font-size: 11px; font-weight: 700; background: #eafaf1; color: #0f7b3e; border: 1px solid #a7e8c5; }
.rgw-metrics { display: flex; gap: 22px; }
.rgw-m { display: flex; flex-direction: column; gap: 1px; }
.rgw-m-l { font-size: 10px; font-weight: 700; color: #8a9bb2; text-transform: uppercase; letter-spacing: .06em; }
.rgw-m-v { font-size: 14px; font-weight: 800; color: #0f1f35; }
.rgw-m-accent { color: var(--accent); }
.rgw-body { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 18px; align-items: start; }
.rgw-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rgw-col-title { font-size: 11px; font-weight: 800; color: #8a9bb2; text-transform: uppercase; letter-spacing: .07em; }
.rgw-docs { display: flex; flex-direction: column; gap: 8px; }
.rgw-doc-row { display: flex; align-items: center; gap: 11px; padding: 10px 13px; border: 1px solid #eef2f8; border-radius: 12px; background: #fff; }
.rgw-doc-ic { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; }
.rgw-doc-name { flex: 1; min-width: 0; font-size: 13px; font-weight: 700; color: #0f1f35; }
.rgw-doc-links { display: flex; gap: 13px; flex-shrink: 0; }
.rgw-doc-links a { color: var(--accent); font-size: 12.5px; font-weight: 700; text-decoration: none; }
.rgw-doc-empty { font-size: 12.5px; font-style: italic; color: #aab6c6; flex-shrink: 0; }
.rgw-sub { display: flex; flex-direction: column; }
.rgw-sub-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rgw-sub-ic { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 15px; }
.rgw-sub-title { font-size: 13px; font-weight: 800; color: #0f1f35; flex: 1; }
.rgw-pill { padding: 3px 10px; border-radius: 8px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.rgw-pill-amber { background: #fff8e5; color: #92400e; border: 1px solid #fbbf24; }
.rgw-pill-green { background: #eafaf1; color: #0f7b3e; border: 1px solid #a7e8c5; }
.rgw-pill-red   { background: #fff0f0; color: #c0392b; border: 1px solid #fca5a5; }
.rgw-pill-grey  { background: #f0f4fa; color: #64748b; border: 1px solid #dbe7f5; }
.rgw-project-link { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: #eef4ff; border: 1px solid #dbe7f5; border-radius: 10px; font-size: 12px; margin-bottom: 8px; }
.rgw-project-link a { color: var(--accent); font-weight: 700; text-decoration: none; }
.rgw-note { font-size: 12px; line-height: 1.5; padding: 10px 13px; border-radius: 11px; }
.rgw-note-amber { background: #fff8e5; border: 1px solid #fbbf24; color: #92400e; }
.rgw-note-green { background: #eafaf1; border: 1px solid #a7e8c5; color: #0f7b3e; }
.rgw-note-red   { background: #fff0f0; border: 1px solid #fca5a5; color: #c0392b; }
.rgw-dropzone { border: 1.5px dashed #c4d6ee; border-radius: 13px; padding: 18px 14px; text-align: center; cursor: pointer; background: #fbfdff; transition: all .2s; }
.rgw-dropzone.is-over { border-color: #3b82f6; background: #eef4ff; }
.rgw-dz-ic { font-size: 22px; }
.rgw-dz-t { font-size: 13px; font-weight: 700; color: #0f1f35; margin-top: 5px; }
.rgw-dz-h { font-size: 11px; color: #8a9bb2; margin-top: 2px; }
.rgw-dz-ok { font-size: 11px; color: #17a65a; font-weight: 600; margin-top: 2px; }
.rgw-confirm { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; background: #fff8e5; border: 1.5px solid #fbbf24; border-radius: 12px; margin-top: 10px; }
.rgw-confirm-t { font-size: 12px; font-weight: 700; color: #92400e; }
.rgw-confirm-btns { display: flex; gap: 6px; }
.rgw-btn-yes { padding: 6px 16px; border-radius: 9px; border: none; cursor: pointer; font-size: 12px; font-weight: 700; color: #fff; background: linear-gradient(180deg,#17a65a,#12904e); }
.rgw-btn-no { padding: 6px 14px; border-radius: 9px; border: 1px solid #d9e6f5; background: #fff; color: #64748b; font-size: 12px; font-weight: 600; cursor: pointer; }
.rgw-dlv-summary { font-size: 12px; color: #0f1f35; line-height: 1.7; padding: 11px 13px; background: #f8fafd; border: 1px solid #eef2f8; border-radius: 11px; }
.rgw-dlv-summary span { font-weight: 700; color: #64748b; }
.rgw-dlv-pickup { font-weight: 700; }
.rgw-edit-dlv { margin-top: 9px; padding: 8px 14px; border-radius: 10px; border: 1px solid #dbe7f5; background: #fff; color: var(--accent); font-size: 12px; font-weight: 700; cursor: pointer; }
.rgw-dlv-switch { display: flex; background: #f1f5fa; border-radius: 11px; padding: 4px; gap: 4px; margin-bottom: 9px; }
.rgw-dlv-opt { flex: 1; text-align: center; padding: 10px 0; border-radius: 9px; font-size: 13px; font-weight: 700; cursor: pointer; color: #64748b; transition: all .18s; }
.rgw-dlv-opt.is-active { color: #0f7b3e; background: #fff; box-shadow: 0 1px 3px rgba(15,31,53,.1); }
.rgw-input { width: 100%; padding: 10px 12px; font-size: 12px; border-radius: 10px; border: 1px solid #dbe7f5; background: #fff; margin-bottom: 7px; box-sizing: border-box; font-family: inherit; }
.rgw-save { width: 100%; padding: 11px; border-radius: 11px; border: none; cursor: pointer; font-size: 13px; font-weight: 700; color: #fff; background: linear-gradient(180deg,#3b82f6,#2563eb); }
@media (max-width: 720px) { .rgw-body { grid-template-columns: 1fr; } .rgw-metrics { gap: 16px; } }
.rsl-slide {
  position: absolute; inset: 0;
  display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--sp-5);
  padding: var(--sp-6);
  opacity: 0; visibility: hidden;
  transform: translateY(10px) scale(.995);
  transition: opacity .55s ease, transform .55s ease, visibility 0s linear .55s;
  background:
    radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--rsl-accent) 36%, transparent) 0%, transparent 60%),
    linear-gradient(150deg, color-mix(in srgb, var(--rsl-accent) 92%, #000) 0%, var(--rsl-accent) 55%, color-mix(in srgb, var(--rsl-accent) 78%, #000) 100%);
}
.rsl-slide.is-active {
  opacity: 1; visibility: visible; transform: none;
  transition: opacity .55s ease, transform .55s ease;
}
.rsl-left { display: flex; flex-direction: column; justify-content: center; gap: 12px; min-width: 0; }
.rsl-tag {
  align-self: flex-start; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: #fff; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.28);
  padding: 5px 13px; border-radius: 999px; backdrop-filter: blur(4px);
}
.rsl-title { font-size: 25px; font-weight: 900; color: #fff; line-height: 1.15; letter-spacing: -.01em; margin: 0; }
.rsl-lead { font-size: 14px; color: rgba(255,255,255,.9); line-height: 1.5; margin: 0; max-width: 94%; }
.rsl-cta {
  align-self: flex-start; margin-top: 4px;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 800; color: var(--rsl-accent);
  background: #fff; padding: 12px 22px; border-radius: 12px;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  transition: transform .15s, box-shadow .15s;
}
.rsl-cta span { transition: transform .2s; }
.rsl-cta:hover { transform: translateY(-1px); }
.rsl-cta:hover span { transform: translateX(3px); }
.rsl-right {
  display: flex; flex-direction: column; justify-content: center; gap: 14px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--r-lg); padding: var(--sp-5);
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
}
.rsl-icon {
  width: 56px; height: 56px; border-radius: 16px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--rsl-accent) 14%, #fff);
  color: var(--rsl-accent);
}
.rsl-icon svg { width: 30px; height: 30px; }
.rsl-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.rsl-list li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: #2b3b52; }
.rsl-check {
  width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 900; color: #fff; background: var(--rsl-accent);
}
.rsl-dots { display: flex; gap: 7px; justify-content: center; padding: 0 0 14px; }

/* ── Слайд-картинка (промо «баланс» из загруженного изображения) ── */
.rsl-slide-img {
  display: flex; align-items: center; justify-content: center;
  padding: 0; background: var(--rsl-accent);
}
.rsl-img-box {
  position: relative;
  height: 100%;
  aspect-ratio: 1 / 1;            /* изображение квадратное 1254×1254 */
  max-width: 100%;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
/* если по ширине не помещается — ограничиваем по ширине, высота подстроится */
@supports (aspect-ratio: 1/1) { .rsl-img-box { width: auto; } }
/* Кликабельная кнопка ровно поверх нарисованной «Создать баланс».
   Координаты в % от квадратной картинки: x 6.5–40.5%, y 46.5–52.2%. */
.rsl-img-btn {
  position: absolute; display: block; cursor: pointer;
  left: 6.4%; top: 47%; width: 38.5%; height: 7.2%;
  border-radius: 15px; background: transparent;
}
.rsl-img-btn:hover { background: rgba(255,255,255,.12); }
.rsl-dot {
  width: 8px; height: 8px; border-radius: 999px; border: none; cursor: pointer;
  background: #cdd9e8; padding: 0; transition: width .3s, background .3s;
}
.rsl-dot.is-active { width: 26px; background: var(--accent); }
/* Слайдшоу теперь в узкой правой колонке — содержимое слайда укладываем
   в один столбец (текст сверху, визуал снизу), как при узком экране. */
.review-redesign > .rsl .rsl-slide { grid-template-columns: 1fr; gap: var(--sp-3); padding: var(--sp-4); overflow-y: auto; }
@media (max-width: 1100px) {
  .rsl-slide { grid-template-columns: 1fr; gap: var(--sp-3); padding: var(--sp-4); overflow-y: auto; }
  .rsl-title { font-size: 20px; }
}


   шапка со статусами и полоса банков закреплены сверху, нижняя часть
   (карточка банка + чат + куратор) прокручивается ВНУТРИ, страница без
   скролла, низ совпадает с низом сайдбара. Возвращаем верхнюю панель. */
.cabinet-client .content > .av-root.cabinet-main:has(.app-main-grid) {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: 0;
}
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-hero,
.cabinet-client .content > .av-root:has(.app-main-grid) > .banks-top-strip { flex-shrink: 0; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  padding-bottom: 0;
  overflow: hidden;
  align-items: stretch;
}

/* ── ОБЪЕДИНЕНИЕ В ОДНО ОКНО (клиент, этап «Предложения банков» и др. карточки) ──
   Полоса банков + сетка (карточка банка + контакты куратора) визуально
   сливаются в одну рамку; внутренние блоки разделяются простыми линиями.
   Логика, обработчики и анимации не затрагиваются — только оформление. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .banks-top-strip {
  border-bottom: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0;
  box-shadow: none; margin-bottom: 0;
}
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid {
  margin-top: calc(-1 * var(--sp-3));            /* убрать зазор между полосой и сеткой */
  border: 1px solid var(--border); border-top: none;
  border-bottom-left-radius: var(--r-xl); border-bottom-right-radius: var(--r-xl);
  background: var(--surface-glass);
  -webkit-backdrop-filter: var(--blur-md); backdrop-filter: var(--blur-md);
  box-shadow: var(--shadow-md);
  gap: 0;
}
/* центральная карточка и блок куратора теряют собственные рамки/фон —
   становятся секциями одного окна, разделёнными вертикальной линией */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center > .bank-offer-card,
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center > .av-chat-shell,
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center #chat-anchor {
  border: none !important; box-shadow: none !important; border-radius: 0 !important; background: transparent !important;
}
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-sticky-right {
  border-left: 1px solid var(--border);
}
/* У клиента куратор убран — правая колонка пуста. Скрываем её и растягиваем
   центр на всю ширину; верх/низ совпадают с полосой/списком банков. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid.app-main-grid-norail {
  grid-template-columns: 1fr;
}
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-sticky-right {
  display: none;
}
/* Карточка банка открыта (полоса банков скрыта): у сетки нет полосы сверху,
   поэтому возвращаем ей собственную верхнюю рамку и скругление, убираем
   отрицательный отступ — окно начинается ровно и целостно. */
.cabinet-client .content > .av-root:has(.app-main-grid):not(:has(> .banks-top-strip)) > .app-main-grid {
  margin-top: 0;
  border-top: 1px solid var(--border);
  border-top-left-radius: var(--r-xl); border-top-right-radius: var(--r-xl);
}
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-sticky-right .sticky-block {
  border: none; box-shadow: none; border-radius: 0; background: transparent;
}
/* Колонки грида не выше строки: контент прокручивается ВНУТРИ, нижняя
   граница карточки банка и панели чата совпадает с единой линией. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center,
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-nav-rail,
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-sticky-right { min-height: 0; max-height: 100%; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-sticky-right { overflow-y: auto; }
/* Чат «Действия / Статусы / Чат»: центральная колонка тянется ровно в высоту
   строки сетки, лента сообщений прокручивается, поле ввода закреплено внизу —
   нижняя граница панели совпадает с единой линией, как у остальных окон. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:has(#chat-anchor) { height: 100%; min-height: 0; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:has(#chat-anchor) > #chat-anchor > .chat-composer { flex-shrink: 0; }
/* Центр тянется на всю высоту строки сетки. Чат (с лентой и полем ввода)
   заполняет низ и прокручивает только ленту. Карточка банка (нет #chat-anchor)
   прокручивается ВНУТРИ центральной колонки, низ зафиксирован. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center { min-height: 0; height: 100%; overflow-y: auto; }
/* Карточка банка у клиента: содержимое естественной высоты (не flex:1),
   чтобы оно выходило за высоту колонки и появлялась прокрутка. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:not(:has(#chat-anchor)) { display: flex; flex-direction: column; justify-content: flex-start; overflow: hidden; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:not(:has(#chat-anchor)) > .content-block,
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:not(:has(#chat-anchor)) > .bank-offer-card { flex: 0 0 auto; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:has(#chat-anchor) { display: flex; flex-direction: column; overflow: hidden; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center > #chat-anchor { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center > #chat-anchor > .chat-messages-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

/* Чат «Действия / Статусы / Чат» — поле ввода всегда внизу (клиент И менеджер).
   Панель тянется на всю высоту строки, лента прокручивается, композер закреплён. */
.app-main-grid > .app-center:has(#chat-anchor) { display: flex; flex-direction: column; min-height: 0; height: 100%; overflow: hidden; }
.app-main-grid > .app-center > #chat-anchor { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.app-main-grid > .app-center > #chat-anchor > .chat-messages-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.app-main-grid > .app-center > #chat-anchor > .chat-composer { flex-shrink: 0; margin-top: auto; }

/* ── Main grid: nav + center + sticky right ── */
.app-main-grid {
  display: grid;
  grid-template-columns: 220px 1fr 280px;
  gap: var(--sp-3);
  align-items: stretch;
  min-height: calc((100vh / var(--app-zoom)) - 320px);
}

/* ── Left nav rail ── */
.app-nav-rail {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-sm);
  padding: var(--sp-3) var(--sp-2);
  position: sticky; top: var(--sp-3);
}
.rail-section-title {
  font-size: 10px; font-weight: 800; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .08em;
  padding: var(--sp-2) var(--sp-3) var(--sp-3);
  border-bottom: 1px solid var(--border); margin-bottom: var(--sp-2);
}
.rail-item {
  display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-md); color: var(--text-secondary); font-size: 13px; font-weight: 600;
  transition: all var(--t-fast); cursor: pointer;
}
.rail-item:hover     { background: rgba(255,255,255,.6); color: var(--text-primary); }
.rail-item-active    { background: rgba(255,255,255,.85); color: var(--accent); font-weight: 700; border: 1px solid var(--accent-border); }
.rail-item-icon      { font-size: 15px; flex-shrink: 0; }
.rail-item-body      { flex: 1; min-width: 0; }
.rail-item-name      { font-size: 13px; font-weight: 700; }
.rail-item-sub       { font-size: 11px; color: var(--text-muted); }
.rail-item-dot       { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.bos-filling-dot  { background: #4c3fb5; }
.bos-work-dot     { background: var(--accent); }
.bos-approved-dot { background: var(--green); }
.bos-issued-dot   { background: var(--purple); }

/* ── Center content ── */
.app-center { display: flex; flex-direction: column; gap: var(--sp-3); }

/* ── Content block ── */
.content-block {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-md);
  overflow: hidden;
  display: flex; flex-direction: column;
}
.app-main-grid > div:nth-child(2) { display:flex; flex-direction:column; }
.app-main-grid > div:nth-child(2) > .content-block,
.app-main-grid > div:nth-child(2) > .bank-offer-card { flex:1; }
.content-block-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--border);
  background: rgba(248,250,253,.4);
}
.content-block-title { font-size: 15px; font-weight: 800; }
.content-block-sub   { font-size: 12px; color: var(--text-muted); margin-top: 3px; }
.content-block-body  { padding: var(--sp-5); }

/* ── Bank offer card ── */
.bank-offer-card {
  border: 1.5px solid var(--border); border-radius: var(--r-xl);
  background: rgba(255,255,255,.7); overflow: hidden;
  transition: all var(--t-base); box-shadow: var(--shadow-xs);
}
.bank-offer-card:hover { border-color: var(--accent-border); box-shadow: var(--shadow-md); transform: translateY(-1px); }
.bank-offer-card-active { border-color: var(--accent) !important; box-shadow: 0 0 0 3px rgba(26,95,212,.12), var(--shadow-md) !important; }
.bank-offer-card-draft  { opacity: .75; border-style: dashed; }

.boc-header {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--border);
  background: rgba(248,250,253,.5);
}
.boc-bank-info  { display: flex; align-items: center; gap: var(--sp-3); }
.boc-bank-icon  { width: 40px; height: 40px; border-radius: var(--r-md); background: var(--accent-soft); display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; border: 1px solid var(--accent-border); }
.boc-bank-name  { font-size: 15px; font-weight: 800; }
.boc-bank-badges{ display: flex; gap: var(--sp-1); flex-wrap: wrap; margin-top: 4px; }
.boc-header-right { display: flex; flex-direction: column; align-items: flex-end; gap: var(--sp-1); }
/* Метрики справа от названия банка: Извещение / Стоимость / Срок.
   Группа занимает свободное пространство и распределяется равномерно,
   чтобы данные читались как относящиеся к одной заявке, без пустот. */
.boc-head-metrics { display: flex; align-items: stretch; gap: 10px; margin-left: var(--sp-4); flex: 1 1 auto; max-width: 560px; }
.boc-hm { flex: 1 1 0; display: flex; flex-direction: column; gap: 3px; background: #f6f9fd; border: 1px solid #eef2f8; border-radius: 12px; padding: 8px 14px; min-width: 92px; }
.boc-hm-l { font-size: 9.5px; font-weight: 800; color: #8a9bb2; text-transform: uppercase; letter-spacing: .06em; }
.boc-hm-v { font-size: 16px; font-weight: 800; color: #0f1f35; font-variant-numeric: tabular-nums; line-height: 1.1; }
.boc-hm-accent { color: var(--accent); }
@media (max-width: 1200px) { .boc-head-metrics { width: 100%; max-width: none; margin-top: 10px; margin-left: 0; flex-basis: 100%; } }

/* ── Вариант B: тонировка иконки по статусу + чипы метрик (клиент). Линию слева убрали. ── */
/* Полоску-шапку карточки банка (иконка/название/статус/метрики) у клиента
   убираем целиком — ключевые данные уже есть в верхней полосе статуса. */
.cabinet-client .bank-offer-card > .boc-header { display: none; }
.boc-vb-approved .boc-bank-icon { background:#e1f5ee; border-color:#9fe1cb; }
.boc-vb-issued   .boc-bank-icon { background:#eeedfe; border-color:#cecbf6; }
.boc-vb-rejected .boc-bank-icon { background:#faece7; border-color:#f5c4b3; }
.boc-vb .boc-head-metrics { gap: 8px; }
.boc-vb .boc-hm { background:#f4f6fa; border-color:#eaeef5; border-radius:11px; }
.boc-remove     { color: var(--text-muted); background: none; border: 0; cursor: pointer; padding: 4px; border-radius: var(--r-xs); transition: all var(--t-fast); }
.boc-remove:hover { color: var(--red); background: var(--red-bg); }

.boc-metrics    { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--border); }
.boc-metric     { padding: var(--sp-3) var(--sp-4); border-right: 1px solid var(--border); }
.boc-metric:last-child { border-right: 0; }
.boc-metric-label { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
.boc-metric-value { margin-top: 4px; font-size: 15px; font-weight: 900; }
.boc-metric-value-blue { color: var(--accent); }

.boc-body    { padding: var(--sp-4) var(--sp-5); }

/* ── ВАРИАНТ 1 «Уплотнённый» (только клиент, карточка банка в proposal) ──
   Карточка целиком помещается в высоту колонки БЕЗ внутренней прокрутки:
   агрессивно ужимаем все вертикальные отступы, dropzone и строки документов,
   чтобы кошелёк был виден, а низ карточки совпадал с единой линией. */
.cabinet-client .content > .av-root:has(.app-main-grid) > .app-main-grid > .app-center:not(:has(#chat-anchor)) > .bank-offer-card {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
}
.cabinet-client .bank-offer-card > .boc-header { flex: 0 0 auto; }
/* Шапка — компактнее */
.cabinet-client .bank-offer-card .boc-header { padding: 9px 16px; }
.cabinet-client .bank-offer-card .boc-bank-icon { width: 34px; height: 34px; font-size: 17px; }
.cabinet-client .bank-offer-card .boc-bank-name { font-size: 14px; }
.cabinet-client .bank-offer-card .boc-hm { padding: 5px 11px; }
.cabinet-client .bank-offer-card .boc-hm-v { font-size: 14px; }
/* Уведомление-«как принять» — тоньше */
.cabinet-client .bank-offer-card > div[style*="background:#fffbeb"],
.cabinet-client .bank-offer-card > div[style*="background:#f0fdf4"] { padding-top: 7px !important; padding-bottom: 7px !important; }
/* Тело документов — занимает остаток; если контента больше — прокрутка ВНУТРИ,
   но кошелёк закреплён липким низом и всегда виден. */
.cabinet-client .bank-offer-card .boc-body { padding: 8px 16px 0; flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; }
.cabinet-client .bank-offer-card .boc-docs { gap: 4px; flex: 0 0 auto; }
.cabinet-client .bank-offer-card .boc-doc-row { padding: 6px 11px; }
.cabinet-client .bank-offer-card .boc-doc-icon { width: 26px; height: 26px; }
/* Двухколоночный блок правки/доставка — фиксируем, dropzone низкий */
.cabinet-client .bank-offer-card > div[style*="grid-template-columns:1fr 1fr"] { flex: 0 0 auto; }
.cabinet-client .bank-offer-card > div[style*="grid-template-columns:1fr 1fr"] > div { padding: 10px 16px !important; }
.cabinet-client .bank-offer-card [style*="dashed"] { padding-top: 14px !important; padding-bottom: 14px !important; }
/* Кошелёк — компактная липкая нижняя полоса, всегда видна на единой линии */
.cabinet-client .bank-offer-card .wallet-deduct-block {
  position: sticky; bottom: 0; z-index: 3;
  margin: 8px -16px 0; padding: 9px 16px;
  background: var(--green-bg); border-top: 1px solid #a7e8c5; border-radius: 0;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.cabinet-client .bank-offer-card .wallet-deduct-block .wallet-deduct-balance { margin: 0; white-space: nowrap; font-size: 13px; }
.cabinet-client .bank-offer-card .wallet-deduct-block .wallet-deduct-form { margin: 0 0 0 auto; display: flex; gap: 8px; }
.boc-comment { padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); background: var(--accent-soft); border: 1px solid var(--accent-border); font-size: 12px; color: var(--text-secondary); line-height: 1.5; margin-bottom: var(--sp-3); }

/* Doc rows inside bank card */
.boc-docs    { display: flex; flex-direction: column; gap: var(--sp-1); }
.boc-doc-row {
  display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-sm); background: rgba(248,250,253,.8); border: 1px solid var(--border);
  font-size: 12px;
}
.boc-doc-icon  { font-size: 16px; flex-shrink: 0; }
.boc-doc-name  { flex: 1; font-weight: 600; }
.boc-doc-empty { color: var(--text-faint); font-style: italic; }
.boc-doc-link  { color: var(--accent); font-weight: 700; font-size: 12px; }
.boc-doc-link:hover { text-decoration: underline; }

.boc-actions { display: flex; gap: var(--sp-2); padding: var(--sp-3) var(--sp-5); border-top: 1px solid var(--border); background: rgba(248,250,253,.4); }

/* Bank cards grid on top (phase 2) */
.banks-top-strip {
  background: var(--surface-glass); backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-sm);
  padding: var(--sp-4) var(--sp-5);
}
/* Клиент: компактная полоса «Предложения по вашей заявке», чтобы карточка
   банка ниже помещалась целиком до единой линии. */
.cabinet-client .banks-top-strip { padding: 10px 16px; }
.cabinet-client .banks-top-label { margin-bottom: 8px; }
.cabinet-client .banks-top-strip .btile-main { gap: 5px; padding: 9px 12px; }
.cabinet-client .banks-top-strip .btt-chat-link { padding: 5px 10px; }
.cabinet-client .banks-top-strip .btile-cta-green { padding: 6px 11px; }
.banks-top-label {
  font-size: 10px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: var(--sp-3);
}
.banks-top-grid { display: grid; grid-template-columns: 140px repeat(6,minmax(270px,1fr)); gap: var(--sp-3); align-items: stretch; overflow-x: auto; }

/* ── Карточка банка (вариант 2: статус-полоса слева) ── */
.bank-top-tile {
  display: flex; flex-direction: column; gap: 4px; padding: var(--sp-3) var(--sp-3);
  border: 1.5px solid var(--border); border-radius: var(--r-lg); background: rgba(255,255,255,.7);
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base); cursor: pointer; position: relative;
}
.bank-top-tile:hover     { border-color: var(--accent-border); background: rgba(255,255,255,.97); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.bank-top-tile-active    { border-color: var(--accent) !important; background: var(--accent-soft) !important; box-shadow: 0 0 0 3px rgba(26,95,212,.12) !important; }
.bank-top-tile-add       { align-items: center; justify-content: center; border-style: dashed; color: var(--text-muted); }
.bank-top-tile-add:hover { color: var(--accent); border-color: var(--accent); }

/* Вариант 2: горизонтальная компоновка — полоса статуса + контент */
.btile-v2 { flex-direction: row; gap: 0; padding: 0; overflow: hidden; align-items: stretch; }
.btile-bar { flex: 0 0 5px; background: var(--slate); border-radius: 4px 0 0 4px; transition: background var(--t-base); }
.bank-top-tile-free-mgr .btile-bar, .bank-top-tile-cancelled .btile-bar { opacity:.4; }
.btile-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; padding: 12px 13px; }
.btile-head { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.btile-head .btt-name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btile-head .btt-pub-badge { position: static; font-size: 10px; padding: 1px 5px; flex-shrink: 0; }
/* Статус банка — справа от названия, в одну строку, не сжимается */
.btile-head .btt-head-status { margin-left: auto; flex: 0 0 auto; white-space: nowrap; align-self: center; font-size: 10.5px; padding: 3px 9px; }
.btile-main .bos-pill:not(.btt-head-status) { align-self: flex-start; }
.btile-price-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }

/* Цвет статус-полосы по классу статуса */
.bos-free-bar     .btile-bar { background: var(--slate); }
.bos-work-bar     .btile-bar { background: var(--accent); }
.bos-filling-bar  .btile-bar { background: #4c3fb5; }
.bos-review-bar   .btile-bar { background: #d99a06; }
.bos-approved-bar .btile-bar { background: var(--green); }
.bos-issued-bar   .btile-bar { background: var(--purple); }
.bos-rejected-bar .btile-bar { background: #bf2d2d; }
.bos-cancelled-bar .btile-bar { background: var(--slate); }
.bos-signing-bar  .btile-bar { background: #c47f00; }
.status-signing-bar .btile-bar { background: #c47f00; }

.btt-pub-badge { position: absolute; top: 4px; right: 4px; }
.btt-icon      { font-size: 16px; flex-shrink: 0; }
.btt-name      { font-size: 12.5px; font-weight: 800; color: var(--text-primary); }
.btt-price     { font-size: 15px; font-weight: 900; color: var(--text-primary); }
.btt-rate      { font-size: 11px; color: var(--text-muted); font-weight: 700; }
.btt-add-icon  { font-size: 22px; }
.btt-add-label { font-size: 11px; font-weight: 700; }

/* Доп. инфо-пилюли клиента (подписано / ожидает / выбран другой) */
.btile-info-pill { display:inline-flex; align-items:center; gap:5px; align-self:flex-start; font-size:11px; font-weight:700; padding:5px 11px; border-radius:9px; white-space:nowrap; }
.btile-info-wait  { background:#fff8e5; color:#92400e; border:1px solid #fbbf24; }
.btile-info-ok    { background:#eafaf1; color:#0f7b3e; border:1px solid #a7e8c5; }
.btile-info-muted { background:#f0f4fa; color:#64748b; border:1px solid #dbe7f5; }

/* «Подписание заявки» — текст/ссылка от менеджера в чате, справа от кнопки подписания */
.sign-row { display:flex; flex-direction:row; align-items:stretch; gap:10px; flex-wrap:nowrap; }
.sign-row-action { flex:0 0 40%; max-width:40%; display:flex; align-items:stretch; gap:8px; }
.sign-row-action > form { flex:1 1 0; min-width:0; }
.sign-row-action > div { width:100%; display:flex; gap:8px; }
.sign-row-action > div > form { flex:1 1 0; min-width:0; }
.sign-row-note {
  flex:1 1 60%; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:2px;
  padding:7px 12px; border-radius:9px;
  background:#fff8e8; border:1px solid #f3d98a;
}
.sign-row-note-label { font-size:10px; font-weight:800; color:#a16207; text-transform:uppercase; letter-spacing:.04em; }
.sign-row-note-text  { font-size:12px; font-weight:600; color:#7a5a08; line-height:1.4; word-break:break-word; }
.sign-row-note-text a { color:#1a5fd4; font-weight:700; }

/* Зелёная CTA «Согласовать проект гарантии» */
.btile-cta-green {
  display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  font-size:11px; font-weight:800; color:#fff; text-decoration:none;
  background:linear-gradient(180deg,#22c55e,#16a34a); padding:7px 13px; border-radius:9px;
  box-shadow:0 3px 10px rgba(22,163,74,.28);
}

/* Крупная «прыгающая» кнопка подтверждения оплаты (карточка банка, клиент) */
.btile-pay-cta {
  display:block; width:100%; align-self:stretch; cursor:pointer; border:none;
  font-size:14px; font-weight:800; color:#fff; text-decoration:none; text-align:center;
  background:linear-gradient(180deg,#22c55e,#16a34a); padding:13px 16px; border-radius:12px;
  box-shadow:0 6px 18px rgba(22,163,74,.34); font-family:inherit;
}
.pay-pulse { animation: payPulse 1.15s ease-in-out infinite; transform-origin:center; }
@keyframes payPulse {
  0%,100% { transform:translateY(0) scale(1); box-shadow:0 6px 18px rgba(22,163,74,.34); }
  50%     { transform:translateY(-3px) scale(1.02); box-shadow:0 12px 26px rgba(22,163,74,.46); }
}

/* ── Уведомление «требуется действие» (менеджер) ── */
.btt-need-action {
  display:inline-flex; align-items:center; gap:4px; align-self:flex-start; font-size:10.5px; font-weight:800;
  padding:4px 10px; border-radius:9px; background:#fff1f0; color:#c0392b;
  border:1px solid #f5b8b8; white-space:nowrap;
  animation: bttNeedPulse 2s ease-in-out infinite;
}
@keyframes bttNeedPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(231,76,60,.34); }
  50%     { box-shadow:0 0 0 5px rgba(231,76,60,0); }
}

/* Add bank modal */
.add-bank-modal { margin-top: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-radius: var(--r-lg); background: rgba(255,255,255,.9); border: 1px solid var(--accent-border); display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.add-bank-modal.hidden { display: none; }
.add-bank-modal-title { width: 100%; font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .07em; }
.add-bank-btn { padding: 7px 14px; border-radius: var(--r-md); background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent-border); font-size: 13px; font-weight: 700; cursor: pointer; transition: all var(--t-fast); }
.add-bank-btn:hover { background: var(--accent); color: #fff; }

/* ── Chat module ── */
.chat-module {
  display: flex; flex-direction: column; height: 100%;
}
.chat-module-tabs {
  display: flex; gap: var(--sp-1); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--border); overflow-x: auto;
}
.chat-tab {
  padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); font-size: 12px; font-weight: 700;
  color: var(--text-muted); cursor: pointer; white-space: nowrap; transition: all var(--t-fast);
  border: 1px solid transparent;
}
.chat-tab:hover  { background: rgba(255,255,255,.7); color: var(--text-secondary); }
.chat-tab-active { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 2px 8px rgba(26,95,212,.22); }
.chat-tab-bank   { background: rgba(255,255,255,.6); color: var(--text-secondary); border-color: var(--border); }

.chat-messages-wrap { flex: 1; overflow-y: auto; padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); min-height: 200px; max-height: 420px; }
.chat-messages-wrap::-webkit-scrollbar { width: 4px; }

/* Bubbles */
.chat-bubble { max-width: 78%; display: flex; flex-direction: column; gap: var(--sp-1); }
.chat-bubble-client  { align-self: flex-end; }
.chat-bubble-manager { align-self: flex-start; }

.bubble-inner {
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-lg);
  font-size: 13px; line-height: 1.55; word-break: break-word;
}
.chat-bubble-manager .bubble-inner { background: rgba(255,255,255,.88); border: 1px solid var(--border); border-bottom-left-radius: var(--r-xs); box-shadow: var(--shadow-xs); }
.chat-bubble-client  .bubble-inner { background: linear-gradient(135deg, #e0edff, rgba(196,222,255,.6)); border: 1px solid var(--accent-border); border-bottom-right-radius: var(--r-xs); }

.bubble-meta { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.bubble-role { font-size: 10px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .07em; }
.bubble-bank-tag { padding: 1px 7px; border-radius: var(--r-pill); background: var(--accent-soft); color: var(--accent); font-size: 10px; font-weight: 700; }
.bubble-time { font-size: 10px; color: var(--text-faint); }
.chat-bubble-client .bubble-meta { justify-content: flex-end; }

/* System message */
.chat-system-msg { align-self: center; padding: var(--sp-2) var(--sp-4); border-radius: var(--r-pill); background: var(--slate-bg); border: 1px solid var(--border); font-size: 11px; color: var(--text-muted); text-align: center; }
.chat-empty-state { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-2); color: var(--text-muted); text-align: center; padding: var(--sp-8); }
.chat-empty-icon  { font-size: 32px; opacity: .4; }
.chat-empty-text  { font-size: 13px; }

/* Composer */
.chat-composer {
  display: flex; gap: var(--sp-2); align-items: flex-end;
  padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--border);
  background: rgba(248,250,253,.5);
}
.composer-textarea {
  flex: 1; min-height: 68px; max-height: 160px; resize: none;
  border: 1px solid var(--border-strong); border-radius: var(--r-lg);
  padding: var(--sp-3) var(--sp-4); background: rgba(255,255,255,.85);
  font: inherit; font-size: 13px; color: var(--text-primary);
  transition: all var(--t-fast);
}
.composer-textarea:focus { outline: none; border-color: var(--border-focus); box-shadow: 0 0 0 3px rgba(26,95,212,.12); background: rgba(255,255,255,.98); }
.composer-send { align-self: flex-end; }

/* ── Documents module ── */
.docs-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--sp-3); }
.doc-card  {
  background: rgba(255,255,255,.75); border: 1px solid var(--border);
  border-radius: var(--r-lg); overflow: hidden; transition: all var(--t-base); box-shadow: var(--shadow-xs);
}
.doc-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.doc-card-top  { padding: var(--sp-4); border-bottom: 1px solid var(--border); background: rgba(248,250,253,.6); }
.doc-card-icon { font-size: 26px; margin-bottom: var(--sp-2); display: block; }
.doc-card-name { font-size: 13px; font-weight: 800; }
.doc-card-bottom { padding: var(--sp-3) var(--sp-4); }
.doc-card-link  { font-size: 12px; font-weight: 700; color: var(--accent); display: flex; align-items: center; gap: 4px; }
.doc-card-link:hover { text-decoration: underline; }
.doc-card-empty { font-size: 12px; color: var(--text-faint); font-style: italic; }

/* ── Sticky right sidebar ── */
.app-sticky-right {
  position: sticky; top: var(--sp-3);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
.sticky-block {
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.sticky-block-head {
  padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--border);
  font-size: 11px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .07em;
  background: rgba(248,250,253,.5);
}
.sticky-block-body { padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }

/* Next step card */
.next-step-card {
  padding: var(--sp-4); border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--accent-soft), rgba(196,222,255,.4));
  border: 1px solid var(--accent-border);
}
.next-step-label { font-size: 10px; font-weight: 800; color: var(--accent); text-transform: uppercase; letter-spacing: .07em; margin-bottom: var(--sp-2); }
.next-step-text  { font-size: 13px; font-weight: 600; color: var(--text-primary); line-height: 1.5; }

/* Publish state panel */
.publish-panel {
  padding: var(--sp-4); border-radius: var(--r-lg); border: 1px solid var(--border);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
.publish-panel-manager { background: var(--internal-bg); border-color: var(--internal-border); }
.publish-panel-published { background: var(--green-bg); border-color: #a7e8c5; }
.publish-panel-title { font-size: 12px; font-weight: 800; color: var(--text-primary); }
.publish-panel-sub   { font-size: 11px; color: var(--text-muted); line-height: 1.5; }

.cabinet-client .cabinet-client .content > .av-root:has(.phase1-layout) .phase1-layout { min-height: 0; height: 100%; }

/* ── Phase 1: Scoring ── */
.phase1-layout {
  display: grid; grid-template-columns: 1fr 1fr; min-height: calc((100vh / var(--app-zoom)) - 320px);
  background: var(--surface-glass); backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); overflow: hidden;
}
.scoring-col { padding: var(--sp-8) var(--sp-6); border-right: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-5); text-align: center; }
.scoring-spinner-wrap { position: relative; width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; }
.scoring-ring { position: absolute; inset: 0; border-radius: 50%; border: 3px solid var(--accent-border); border-top-color: var(--accent); animation: spin 1.1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.scoring-emoji { font-size: 32px; position: relative; z-index: 1; }
.scoring-h  { font-size: 21px; font-weight: 900; text-align: center; }
.scoring-p  { font-size: 13px; color: var(--text-muted); text-align: center; line-height: 1.65; max-width: 380px; }

/* ── Оптимизированная «крутилка» проверки документов ── */
.review-spinner { position: relative; width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; }
.review-ring-outer {
  position: absolute; inset: 0; border-radius: 50%;
  border: 3px solid transparent; border-top-color: var(--accent); border-right-color: var(--accent);
  animation: reviewSpin 1.4s cubic-bezier(.6,.2,.4,.8) infinite;
}
.review-ring-inner {
  position: absolute; inset: 12px; border-radius: 50%;
  border: 3px solid transparent; border-bottom-color: #7aa7e8; border-left-color: #7aa7e8;
  animation: reviewSpinRev 1.9s linear infinite;
}
.review-core {
  position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent-soft); display: flex; align-items: center; justify-content: center;
  animation: reviewPulse 2s ease-in-out infinite;
}
.review-core-icon { font-size: 26px; }
@keyframes reviewSpin    { to { transform: rotate(360deg); } }
@keyframes reviewSpinRev { to { transform: rotate(-360deg); } }
@keyframes reviewPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(26,95,212,.22); }
  50%     { box-shadow: 0 0 0 8px rgba(26,95,212,0); }
}

/* Индикатор «идёт работа» — три бегущие точки */
.review-working { display: inline-flex; align-items: center; gap: 7px; margin-top: 2px; padding: 8px 16px; border-radius: var(--r-pill); background: var(--accent-soft); border: 1px solid var(--accent-border); }
.review-working-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); animation: reviewDot 1.4s ease-in-out infinite; }
.review-working-dot:nth-child(2) { animation-delay: .2s; }
.review-working-dot:nth-child(3) { animation-delay: .4s; }
.review-working-text { font-size: 12px; font-weight: 700; color: var(--accent); margin-left: 4px; }
@keyframes reviewDot { 0%,100% { opacity: .3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

@media (prefers-reduced-motion: reduce) {
  .review-ring-outer, .review-ring-inner, .review-core, .review-working-dot { animation: none !important; }
}

.scoring-banks-list { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: var(--sp-2); }
.scoring-bank-row {
  display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  background: rgba(255,255,255,.7); border: 1px solid var(--border); border-radius: var(--r-lg);
  opacity: 0; animation: fadeUp .5s ease forwards;
}
@keyframes fadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
.scoring-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); flex-shrink: 0; animation: pulseDot 1.5s infinite; }
@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.6)} }
.scoring-bname   { flex: 1; font-size: 13px; font-weight: 800; }
.scoring-bstatus { font-size: 11px; font-weight: 700; color: var(--amber); }

/* Stage steps */
.stage-steps-mini { display: flex; align-items: center; gap: 0; width: 100%; max-width: 380px; }
.sst-step  { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 10px; font-weight: 700; flex-shrink: 0; min-width: 52px; }
.sst-num   { width: 24px; height: 24px; border-radius: 50%; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.sst-done  { color: var(--green); } .sst-done .sst-num  { background: var(--green); color: #fff; }
.sst-active{ color: var(--accent); } .sst-active .sst-num{ background: var(--accent); color: #fff; }
.sst-pending{ color: var(--text-faint); } .sst-pending .sst-num { background: var(--draft-bg); color: var(--text-muted); border: 1.5px solid var(--border-strong); }
.sst-line  { flex: 1; height: 2px; background: var(--border); }
.sst-line-done { background: var(--green); }

/* Phase1 chat col */
.phase1-chat-col { display: flex; flex-direction: column; min-height: 0; }
.phase1-chat-col .chat-messages-wrap { max-height: none; flex: 1; }
/* P4/P3: чат сверху (~30%), информативный блок снизу (~70%). */
.phase1-chat-col:has(.pex) { height: 100%; }
.phase1-chat-col:has(.pex) .chat-messages-wrap { flex: 3 1 0; min-height: 0; }
.phase1-chat-col:has(.pex) .pex { flex: 7 1 0; min-height: 0; display: flex; flex-direction: column; margin-top: 0; border-left: none; border-right: none; border-bottom: none; border-radius: 0; }
.phase1-chat-col:has(.pex) .pex .pex-stage { flex: 1 1 auto; overflow-y: auto; }
.phase1-chat-head { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.phase1-chat-icon  { font-size: 22px; }
.phase1-chat-title { font-size: 15px; font-weight: 800; }
.phase1-chat-sub   { font-size: 12px; color: var(--text-muted); margin-top: 2px; }

/* Manager phase1 col split */
.manager-chat-col  { border-right: 1px solid var(--border); }
.bank-selector-col { background: rgba(248,250,253,.6); padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-4); overflow-y: auto; }
.bank-selector-head .bank-selector-title { font-size: 15px; font-weight: 800; margin-bottom: 4px; }
.bank-selector-head .bank-selector-sub   { font-size: 12px; color: var(--text-muted); }

.bank-cards-list { display: flex; flex-direction: column; gap: var(--sp-2); }
.bsc-card {
  border: 1.5px solid var(--border); border-radius: var(--r-lg);
  background: rgba(255,255,255,.8); overflow: hidden; transition: all var(--t-fast);
}
.bsc-card.bsc-active { border-color: var(--accent); background: var(--accent-soft); }
.bsc-check-label { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); cursor: pointer; user-select: none; }
.bsc-check-label input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--accent); cursor: pointer; flex-shrink: 0; }
.bsc-bank-icon   { font-size: 18px; }
.bsc-bank-name   { flex: 1; font-size: 14px; font-weight: 800; }
.bsc-fields      { padding: 0 var(--sp-4) var(--sp-3); animation: fadeIn .15s; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.bsc-row         { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--sp-2); align-items: end; }
.bsc-field       { display: flex; flex-direction: column; gap: 4px; }
.bsc-field-label { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
.bsc-field-sep   { font-size: 11px; color: var(--text-muted); padding-bottom: 10px; text-align: center; }
.bsc-sign        { display: flex; flex-direction: column; gap: 5px; margin-top: var(--sp-3); }
.bsc-row-2       { grid-template-columns: 1fr 1fr; }
.bsc-sign-hint   { font-size: 11px; color: #7b93b0; margin-top: 6px; }
.bsc-sign .bsc-field-label { text-transform: none; letter-spacing: 0; font-size: 11px; }
.bsc-sign-text   { resize: vertical; transition: border-color .15s; }

.bank-selector-footer { padding-top: var(--sp-3); border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: var(--sp-2); }
.bank-selector-hint   { font-size: 11px; color: var(--text-muted); line-height: 1.55; }

/* Manager form inside bank offer */
.manager-form-section {
  background: rgba(248,250,253,.7); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: var(--sp-5); margin-top: var(--sp-2);
}
.manager-form-title { font-size: 11px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: var(--sp-4); }

/* ── Activity timeline ── */
.timeline { display: flex; flex-direction: column; gap: 0; }
.timeline-item { display: flex; gap: var(--sp-3); padding: var(--sp-3) 0; position: relative; }
.timeline-item:not(:last-child)::before { content:''; position:absolute; left:15px; top:36px; bottom:0; width:1px; background:var(--border); }
.timeline-dot  { width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 13px; border: 2px solid var(--border); background: rgba(255,255,255,.8); }
.timeline-content { flex: 1; padding-top: 4px; }
.timeline-title { font-size: 13px; font-weight: 700; }
.timeline-time  { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ── App head meta ── */
.app-head-meta { margin-top: 4px; font-size: 12px; color: var(--text-muted); }

/* ────────────────────────────────────────────────────────────
   MY COMPANIES
──────────────────────────────────────────────────────────── */
.fields-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--sp-3); }

/* ────────────────────────────────────────────────────────────
   RESPONSIVE
──────────────────────────────────────────────────────────── */
@media (max-width:1400px) {
  .banks-top-grid       { grid-template-columns: auto repeat(4,minmax(0,1fr)); }
  .app-main-grid        { grid-template-columns: 200px 1fr 260px; }
}
@media (max-width:1200px) {
  .app-grid             { grid-template-columns: 1fr; }
  .hero                 { grid-template-columns: 1fr; }
  .app-main-grid        { grid-template-columns: 1fr; }
  .app-nav-rail         { position: static; display: flex; flex-direction: row; flex-wrap: wrap; }
  .app-sticky-right     { position: static; }
  .phase1-layout        { grid-template-columns: 1fr; }
  .scoring-col          { border-right: 0; border-bottom: 1px solid var(--border); }
  .manager-chat-col     { border-right: 0; border-bottom: 1px solid var(--border); }
  .banks-top-grid       { grid-template-columns: auto repeat(3,minmax(0,1fr)); }
  .docs-grid            { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .banks-grid, .help-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pdf-tool-grid        { grid-template-columns: 1fr; }
  .stage-pill           { height: 32px; padding: 0 10px 0 4px; gap: 5px; }
  .stage-pill-badge     { width: 22px; height: 22px; font-size: 10px; }
  .stage-pill-label     { font-size: 11px; }
  .stage-connector      { min-width: 6px; }
}
@media (max-width:900px) {
  .banks-top-grid       { grid-template-columns: auto repeat(2,minmax(0,1fr)); }
  .docs-grid, .boc-metrics, .metrics-bar { grid-template-columns: 1fr; }
  .chat-composer        { grid-template-columns: 1fr; }
  .banks-grid, .help-grid { grid-template-columns: 1fr; }
  .form-grid            { grid-template-columns: 1fr; }
  .bsc-row              { grid-template-columns: 1fr; }
  .bsc-field-sep        { display: none; }
  .stage-pill           { height: 28px; padding: 0 8px 0 3px; border-radius: 14px; gap: 4px; }
  .stage-pill-badge     { width: 20px; height: 20px; font-size: 9px; }
  .stage-pill-badge svg { width: 10px; height: 10px; }
  .stage-pill-label     { font-size: 10px; }
  .stage-connector      { min-width: 4px; }
}

/* ═══ v6 ADDITIONS ═══════════════════════════════════════════ */

/* Countdown in hero */
.hero-countdown { display:flex;align-items:center;gap:4px; }
.cdown-item { display:flex;flex-direction:column;align-items:center;min-width:44px;background:rgba(255,255,255,.85);border-radius:var(--r-sm);padding:6px 8px;box-shadow:var(--shadow-xs); }
.cdown-num  { font-size:20px;font-weight:900;color:var(--accent);line-height:1; }
.cdown-label{ font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px; }
.cdown-sep  { font-size:18px;font-weight:900;color:var(--accent);opacity:.5;padding:0 2px; }

/* Save toast */
.save-toast {
  position:fixed;bottom:24px;right:24px;z-index:9999;
  padding:12px 20px;background:var(--green);color:#fff;
  border-radius:var(--r-lg);font-size:14px;font-weight:700;
  box-shadow:var(--shadow-lg);
  animation:slideUpIn .3s ease;
  transition:opacity .4s;
}
.save-toast-hide { opacity:0; }
@keyframes slideUpIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* Notification badge */
.notif-badge { display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;background:var(--red);color:#fff;border-radius:var(--r-pill);font-size:10px;font-weight:800;padding:0 5px;margin-left:4px; }

/* Notification rows */
.notif-row { display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:rgba(255,255,255,.7);transition:background .12s; }
.notif-row-unread { background:var(--accent-soft);border-color:var(--accent-border); }
.notif-type-icon { font-size:20px;flex-shrink:0;margin-top:2px; }
.notif-content   { flex:1;min-width:0; }
.notif-title     { font-size:13px;font-weight:800; }
.notif-body      { font-size:12px;color:var(--text-muted);margin-top:3px; }
.notif-time      { font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0; }

/* Bank tile cancelled / not-sent */
.bank-top-tile-cancelled { opacity:.45;filter:grayscale(.7);cursor:default; }
.bank-top-tile-not-sent  { opacity:.35;cursor:default;border-style:dashed; }
.bank-offer-card-cancelled { opacity:.6;filter:grayscale(.4); }

/* Contacts grid */
.contacts-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4); }
.contact-card  {
  background:rgba(255,255,255,.8);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:var(--sp-5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-3);
  position:relative;transition:all var(--t-base);
}
.contact-card:hover { transform:translateY(-2px);box-shadow:var(--shadow-md); }
.contact-card-own   { border-color:var(--accent-border);background:var(--accent-soft); }
.contact-own-badge  { position:absolute;top:12px;right:12px;background:var(--accent);color:#fff;font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--r-pill); }
.contact-card-company { font-size:15px;font-weight:800; }
.contact-card-text    { font-size:13px;color:var(--text-secondary);line-height:1.55;flex:1; }
.contact-card-footer  { display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2); }
.contact-card-date    { font-size:11px;color:var(--text-muted); }

/* Company cards grid */
.company-cards-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4); }
.company-full-card {
  background:rgba(255,255,255,.8);border:1.5px solid var(--border);border-radius:var(--r-xl);
  padding:var(--sp-5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-3);
  transition:all var(--t-base);
}
.company-full-card:hover          { border-color:var(--border-strong);box-shadow:var(--shadow-md); }
.company-full-card-active          { border-color:var(--accent);background:var(--accent-soft); }
.cfc-header       { display:flex;align-items:flex-start;gap:var(--sp-3); }
.cfc-icon         { font-size:28px;flex-shrink:0; }
.cfc-info         { flex:1;min-width:0; }
.cfc-name         { font-size:16px;font-weight:900; }
.cfc-inn          { font-size:12px;color:var(--text-muted);margin-top:3px; }
.cfc-app-count    { font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0; }
.cfc-details      { display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:12px;color:var(--text-muted);padding:var(--sp-2) var(--sp-3);background:rgba(248,250,253,.7);border-radius:var(--r-md); }
.cfc-actions      { display:flex;gap:var(--sp-2); }

/* Wallet */
.wallet-pending-row { display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--amber-bg);border:1px solid #f5d98a;margin-bottom:var(--sp-2);flex-wrap:wrap; }
.wallet-amount      { font-size:16px;font-weight:900;color:var(--amber); }
.wallet-deduct-block { padding:var(--sp-4);border-radius:var(--r-lg);background:var(--green-bg);border:1px solid #a7e8c5;margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3); }
.wallet-deduct-balance { font-size:13px;color:var(--text-secondary); }
.wallet-deduct-form  { display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap; }

/* Bonus: new status classes */
.status-busy::before { background:#9b59b6; } .status-busy { background:#f5eeff;color:#9b59b6;border:1px solid #d7b8f4; }
.bos-cancelled::before { background:var(--red); } .bos-cancelled { background:var(--red-bg);color:var(--red);border:1px solid #f5b8b8; }

/* Responsive extras */
@media (max-width:1100px) {
  .contacts-grid, .company-cards-grid { grid-template-columns:1fr; }
}

/* ═══ v7 ADDITIONS ══════════════════════════════════════════ */

/* Nav section headers & sublinks */
.nav-section-header {
  font-size: 10px;
  font-weight: 800;
  color: var(--text-faint);
  text-transform: uppercase;
  letter-spacing: .10em;
  padding: 2px var(--sp-3) 2px;
  margin-top: 10px;
  margin-bottom: 2px;
}
.nav-sublink {
  display: block;
  padding: 6px var(--sp-3) 6px calc(var(--sp-3) + 12px);
  border-radius: var(--r-md);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 600;
  transition: all var(--t-fast);
  position: relative;
  margin-bottom: 1px;
}
.nav-sublink::before {
  content: '';
  position: absolute;
  left: calc(var(--sp-3) + 2px);
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--border-strong);
}
.nav-sublink:hover  { background: rgba(255,255,255,.55); color: var(--text-secondary); }
.nav-sublink.active { background: rgba(26,95,212,.10); color: var(--accent); font-weight: 700; }
.nav-sublink.active::before { background: var(--accent); }

/* Remove icons from regular nav-link (text only) */
.nav-link { gap: 0; line-height: 1.35; }

/* Reduce gap between sublink (Мои заявки) and next section header by 25% */
.nav-sublink + .nav-section-header {
  margin-top: 7px !important;
}

.nav-divider {
  height: 1px;
  margin: 8px 10px;
  background: linear-gradient(90deg, rgba(26,95,212,.03), rgba(26,95,212,.22), rgba(26,95,212,.03));
  border-radius: 999px;
}


/* Точечная настройка левого меню: линии, отступы и длинный пункт "Банки" */
.nav-link { gap: 0; line-height: 1.35; }

.nav-link.nav-main-block {
  padding-top: 6px;
  padding-bottom: 6px;
  margin-bottom: 3px;
  line-height: 1.25;
}

.nav-link.nav-main-banks {
  display: block;
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: 13px;
  line-height: 1.24;
  letter-spacing: -0.01em;
  white-space: normal;
  overflow: visible;
}
.nav-link.nav-main-banks .nav-banks-second {
  display: block;
}

.nav-sublink + .nav-section-header {
  margin-top: 7px !important;
}

.nav-divider {
  height: 2px;
  margin: 10px 8px 9px;
  background: linear-gradient(90deg, rgba(26,95,212,.08), rgba(26,95,212,.55), rgba(95,160,255,.38), rgba(26,95,212,.08));
  border-radius: 999px;
  box-shadow: 0 1px 0 rgba(255,255,255,.75), 0 2px 8px rgba(26,95,212,.12);
}

/* Free bank tile */
.bank-top-tile-free {
  opacity: .5;
  border-style: dashed;
  cursor: default;
  pointer-events: none;
}
/* Manager can click free tiles */
.manager-view .bank-top-tile-free {
  pointer-events: auto;
  cursor: pointer;
}

/* bos-free pill */
.bos-free { background: var(--slate-bg); color: var(--slate); border: 1px solid var(--border-strong); }
.bos-free::before { background: var(--slate); }

/* Chat subtitle removed — just title */
.content-block-sub { margin-top: 2px; font-size: 12px; color: var(--text-muted); }

/* Buh balance form */
.buh-form-wrap { max-width: 720px; }
.buh-section-title {
  font-size: 13px;
  font-weight: 900;
  color: var(--text-primary);
  padding: var(--sp-2) var(--sp-4);
  background: var(--accent-soft);
  border: 1px solid var(--accent-border);
  border-radius: var(--r-md);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.buh-total-label { color: var(--text-primary) !important; font-weight: 800; }
.buh-total { background: rgba(248,250,253,.8) !important; font-weight: 800; color: var(--accent) !important; }
.buh-divider { height: 1px; background: var(--line); margin: var(--sp-2) 0; }
.buh-check { padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); font-size: 13px; font-weight: 700; }
.buh-check-ok  { background: var(--green-bg);  color: var(--green); border: 1px solid #a7e8c5; }
.buh-check-err { background: var(--amber-bg); color: var(--amber); border: 1px solid #f5d98a; }

/* Rail item without sub text (phase 2 chat only) */
.rail-item-body .rail-item-name:only-child { margin-top: 2px; }

/* ═══ v8: PDF TOOLS GRID + BUH BALANCE ══════════════════════ */

/* PDF Tools grid — 4 карточки по аналогии со скриншотом */
.pdf-tools-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: var(--sp-4);
}

.ptool-card {
  background: rgba(255,255,255,.85);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: var(--sp-6);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: all var(--t-base);
}
.ptool-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.ptool-icon {
  width: 56px; height: 56px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.ptool-title {
  font-size: 16px; font-weight: 900; color: var(--text-primary);
  margin-top: var(--sp-1);
}
.ptool-desc {
  font-size: 13px; color: var(--text-muted); line-height: 1.55; flex: 1;
}

/* Drop zone */
.ptool-drop {
  border: 2px dashed var(--border-strong);
  border-radius: var(--r-lg);
  padding: var(--sp-5) var(--sp-4);
  text-align: center; cursor: pointer;
  background: rgba(248,250,253,.7);
  transition: all var(--t-fast);
}
.ptool-drop:hover, .ptool-drop-over {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.ptool-drop-icon  { font-size: 28px; margin-bottom: var(--sp-2); }
.ptool-drop-text  { font-size: 13px; font-weight: 700; color: var(--text-secondary); }
.ptool-drop-hint  { font-size: 11px; color: var(--text-muted); margin-top: 4px; }

/* File list */
.ptool-filelist { display: flex; flex-direction: column; gap: 4px; }
.ptool-filerow {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-sm);
  background: rgba(248,250,253,.8);
  border: 1px solid var(--border);
  font-size: 12px;
}
.ptool-filerow-icon { font-size: 14px; flex-shrink: 0; }
.ptool-filerow-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ptool-filerow-size { color: var(--text-muted); flex-shrink: 0; }

.ptool-actions { }
.ptool-btn { }

.ptool-status {
  display: none; padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-sm); font-size: 12px; font-weight: 700;
}

/* ── Section nav headers styled like "+ Новая заявка" button ── */
/* (used in sidebar nav-section-header already, but also for page section titles) */
.section-btn-title {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 10px 18px;
  background: linear-gradient(180deg, #2270ec 0%, #1a5fd4 50%, #1650b8 100%);
  color: var(--text-white); border-radius: var(--r-md);
  font-size: 14px; font-weight: 800;
  box-shadow: var(--shadow-btn), inset 0 1px 0 rgba(255,255,255,.22);
  margin-bottom: var(--sp-3);
  cursor: default;
}

/* ── BUH BALANCE ────────────────────────────────────────────── */
.buh-header-block {
  background: rgba(248,250,253,.8);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
  margin-bottom: var(--sp-5);
}
.buh-header-title {
  font-size: 11px; font-weight: 800; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: var(--sp-4);
}
.buh-header-grid { display: flex; flex-direction: column; gap: var(--sp-3); }
.buh-hrow {
  display: flex; align-items: center; gap: var(--sp-3);
  flex-wrap: wrap;
}
.buh-hrow-wide { flex-wrap: nowrap; }
.buh-hlabel  { font-size: 12px; color: var(--text-secondary); min-width: 280px; flex-shrink: 0; }
.buh-hinput  { flex: 1; min-width: 200px; font-size: 13px; }
.buh-hinput-sm { flex: 1; min-width: 150px; font-size: 13px; }
.buh-hcode   { width: 120px; font-size: 13px; text-align: right; }
.buh-hcode-label { font-size: 11px; font-weight: 800; color: var(--text-muted); white-space: nowrap; }

/* Column headers */
.buh-col-headers {
  display: grid;
  grid-template-columns: 1fr 70px repeat(3, 140px);
  background: rgba(240,245,252,.9);
  border: 1px solid var(--border);
  border-bottom: 0;
  border-radius: var(--r-md) var(--r-md) 0 0;
  padding: 0;
  overflow: hidden;
}
.buh-col-name-h, .buh-col-code-h, .buh-col-val-h {
  padding: var(--sp-3) var(--sp-3);
  font-size: 11px; font-weight: 800; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em;
  border-right: 1px solid var(--border);
  text-align: center;
}
.buh-col-val-h:last-child { border-right: 0; }

/* Balance form */
.buh-form {
  border: 1px solid var(--border);
  border-radius: 0 0 var(--r-md) var(--r-md);
  overflow: hidden;
}

.buh-section-head {
  text-align: center; font-size: 13px; font-weight: 900;
  padding: var(--sp-3) var(--sp-4);
  background: #d8e5f5; border-bottom: 1px solid var(--border);
  letter-spacing: .03em;
}
.buh-section-sub {
  font-size: 12px; font-weight: 800;
  padding: var(--sp-2) var(--sp-4);
  background: rgba(248,250,253,.8);
  border-bottom: 1px solid var(--border);
}

/* Balance row */
.buh-row {
  display: grid;
  grid-template-columns: 1fr 70px repeat(3, 140px);
  border-bottom: 1px solid var(--border);
  align-items: center;
}
.buh-row:last-child { border-bottom: 0; }
.buh-row:hover { background: rgba(26,95,212,.02); }
.buh-row-total  { background: rgba(240,245,252,.6); }
.buh-row-balance{ background: #dde8f9; }

.buh-col-name { padding: var(--sp-2) var(--sp-4); font-size: 12px; border-right: 1px solid var(--border); }
.buh-col-code { padding: var(--sp-2) var(--sp-3); font-size: 12px; font-weight: 700; text-align: center; border-right: 1px solid var(--border); color: var(--text-muted); }
.buh-col-val  { padding: 3px 6px; border-right: 1px solid var(--border); }
.buh-col-val:last-child { border-right: 0; }

.buh-row-total .buh-col-name,
.buh-row-total .buh-col-code { font-weight: 800; }
.buh-row-balance .buh-col-name { font-weight: 900; font-size: 13px; }

.buh-input {
  width: 100%; border: 0; border-radius: var(--r-xs);
  padding: 6px var(--sp-2);
  background: transparent;
  font: inherit; font-size: 12px; text-align: right;
  color: var(--text-primary);
  transition: background var(--t-fast);
}
.buh-input:focus {
  outline: none; background: rgba(255,255,255,.95);
  box-shadow: 0 0 0 2px rgba(26,95,212,.2);
  border-radius: var(--r-sm);
}
.buh-input-total {
  font-weight: 800; color: var(--accent);
  background: rgba(248,250,252,.5);
}
.buh-input-balance {
  font-weight: 900; font-size: 13px; color: var(--accent);
  background: rgba(196,218,255,.2);
}
.buh-input::placeholder { color: var(--text-faint); text-align: right; }

.buh-check {
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md);
  font-size: 13px; font-weight: 700;
}
.buh-check-ok  { background: var(--green-bg);  color: var(--green); border: 1px solid #a7e8c5; }
.buh-check-err { background: var(--amber-bg); color: var(--amber); border: 1px solid #f5d98a; }

/* Responsive */
@media (max-width: 1300px) {
  .pdf-tools-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .pdf-tools-grid { grid-template-columns: 1fr; }
  .buh-col-headers { grid-template-columns: 1fr 50px repeat(3,100px); }
  .buh-row { grid-template-columns: 1fr 50px repeat(3,100px); }
  .buh-hrow-wide { flex-wrap: wrap; }
  .buh-hlabel { min-width: 100%; }
}

/* Free bank for manager — кликабельно, слегка серое */
.bank-top-tile-free-mgr {
  opacity: .6;
  border-style: dashed;
}
.bank-top-tile-free-mgr:hover {
  opacity: 1;
  border-color: var(--accent);
  border-style: solid;
  background: var(--accent-soft);
}
/* Hint "+ Добавить" */
.btt-add-hint {
  font-size: 10px;
  color: var(--accent);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* ═══ v10 — COMPLETE FIXES ══════════════════════════════════ */

/* ── Nav section headers: BLUE, BOLD, not grey ─────────────── */
.nav-section-header {
  font-size: 10px !important;
  font-weight: 900 !important;
  color: #1a5fd4 !important;
  letter-spacing: .08em !important;
  padding: 2px 12px 2px !important;
  margin-top: 10px !important;
  margin-bottom: 2px !important;
  text-transform: uppercase !important;
}

/* ── PDF 4 cards in 1 row ──────────────────────────────────── */
.pdf-grid-4 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 16px !important;
}
.ptool-card { background: rgba(255,255,255,.88); border: 1px solid rgba(155,180,215,.22); border-radius: 20px; padding: 20px; box-shadow: 0 2px 8px rgba(10,40,90,.07); display: flex; flex-direction: column; gap: 12px; transition: all .22s ease; }
.ptool-card:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(10,40,90,.09); }
.ptool-icon-wrap { width: 56px; height: 56px; border-radius: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ptool-title { font-size: 15px; font-weight: 900; }
.ptool-desc  { font-size: 12px; color: #7a92ae; line-height: 1.55; flex: 1; }
.ptool-drop  { border: 2px dashed rgba(155,180,215,.42); border-radius: 14px; padding: 16px; text-align: center; cursor: pointer; background: rgba(248,250,253,.7); transition: all .14s; }
.ptool-drop:hover, .ptool-drop-over { border-color: #1a5fd4; background: #e8f1ff; }
.ptool-drop-icon { font-size: 24px; margin-bottom: 4px; }
.ptool-drop-text { font-size: 13px; font-weight: 700; color: #3d5570; }
.ptool-drop-hint { font-size: 11px; color: #7a92ae; margin-top: 3px; }
.ptool-filelist  { display: flex; flex-direction: column; gap: 3px; }
.ptool-filerow   { display: flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 10px; background: rgba(248,250,253,.8); border: 1px solid rgba(155,180,215,.22); font-size: 12px; }
.ptool-status    { display: none; padding: 8px 12px; border-radius: 10px; font-size: 12px; font-weight: 700; }

@media (max-width:1200px) { .pdf-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:700px)  { .pdf-grid-4 { grid-template-columns: 1fr !important; } }

/* ── Contacts list rows ────────────────────────────────────── */
.contact-list-row {
  display: flex; align-items: flex-start; gap: 20px;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(155,180,215,.22);
  transition: background .14s;
}
.contact-list-row:last-child { border-bottom: 0; }
.contact-list-row:hover { background: rgba(26,95,212,.02); }
.clr-left      { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.clr-company   { font-size: 14px; font-weight: 800; }
.clr-text      { font-size: 13px; color: #3d5570; line-height: 1.55; }
.clr-meta      { font-size: 11px; color: #7a92ae; }
.clr-right     { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; min-width: 140px; }

/* ── Wallet hero (clean, no text descriptions) ─────────────── */
.wallet-hero { display: flex; align-items: center; gap: 32px; background: rgba(255,255,255,.85); border: 1px solid rgba(155,180,215,.22); border-radius: 28px; padding: 32px; box-shadow: 0 4px 20px rgba(10,40,90,.09); margin-bottom: 16px; }
.wallet-hero-label { font-size: 11px; font-weight: 800; color: #7a92ae; text-transform: uppercase; letter-spacing: .08em; }
.wallet-hero-amount{ font-size: 42px; font-weight: 900; color: #12a05a; margin-top: 8px; }

/* ── BUH BALANCE — Alpha Bank style ───────────────────────── */
.buh-org-block { background: rgba(248,250,253,.8); border: 1px solid rgba(155,180,215,.22); border-radius: 14px; padding: 20px; margin-bottom: 20px; }
.buh-org-grid  { display: flex; flex-direction: column; gap: 12px; }
.buh-org-row   { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.buh-org-label { font-size: 12px; color: #3d5570; min-width: 180px; flex-shrink: 0; }
.buh-code-tag  { font-size: 11px; font-weight: 800; color: #7a92ae; white-space: nowrap; }
.buh-code-inp  { width: 110px; font-size: 13px; }

.buh-doc { border: 1px solid rgba(155,180,215,.22); border-radius: 14px; overflow: hidden; }
.buh-doc-title { font-size: 15px; font-weight: 900; text-transform: uppercase; padding: 16px 24px; background: rgba(248,250,253,.5); }
.buh-section-name { font-size: 14px; font-weight: 900; text-transform: uppercase; padding: 12px 24px; }
.buh-subsection-name { font-size: 13px; font-weight: 700; text-transform: uppercase; padding: 8px 24px 4px; color: #3d5570; letter-spacing: .02em; }

.buh-col-row {
  display: grid;
  grid-template-columns: 1fr 120px repeat(3, 140px);
  padding: 0 24px;
  margin-bottom: 2px;
}
.buh-col-hdr { font-size: 11px; font-weight: 700; color: #7a92ae; text-align: center; padding: 4px 0; }

.buh-row {
  display: grid;
  grid-template-columns: 1fr 120px repeat(3, 140px);
  align-items: center;
  border-top: 1px solid rgba(155,180,215,.22);
  padding: 0 24px;
}
.buh-row:hover { background: rgba(26,95,212,.02); }
.buh-row-total  { background: rgba(240,245,252,.5); }
.buh-row-balance{ background: rgba(196,218,255,.15); }

.buh-col-n { font-size: 13px; font-weight: 700; padding: 8px 12px 8px 0; }
.buh-col-c { font-size: 12px; font-weight: 700; color: #7a92ae; white-space: nowrap; padding: 8px 8px; }
.buh-col-v { padding: 4px 6px; }
.buh-row-total .buh-col-n, .buh-row-balance .buh-col-n { font-weight: 900; }
.buh-row-balance .buh-col-n { font-size: 14px; }

.buh-inp {
  width: 100%; border: 1px solid #d0d5dd; border-radius: 6px;
  padding: 8px 10px; text-align: right; font: inherit; font-size: 13px;
  background: rgba(255,255,255,.85);
  transition: all .13s;
}
.buh-inp:focus { outline: none; border-color: #1a5fd4; box-shadow: 0 0 0 2px rgba(26,95,212,.15); background: #fff; }
.buh-inp-t { font-weight: 800; color: #1a5fd4; background: rgba(240,246,255,.6); }
.buh-inp::placeholder { color: #ccc; }
.buh-check { padding: 12px 16px; border-radius: 14px; font-size: 13px; font-weight: 700; }
.buh-check-ok  { background: #e3f9ee; color: #12a05a; border: 1px solid #a7e8c5; }
.buh-check-err { background: #fff4d6; color: #c47f00; border: 1px solid #f5d98a; }

/* Bank offer rejected status */
.bos-rejected { background: #ffeeee; color: #bf2d2d; border: 1px solid #f5b8b8; }
.bos-rejected::before { background: #bf2d2d; }

@media (max-width:900px) {
  .buh-row, .buh-col-row { grid-template-columns: 1fr 80px repeat(3, 90px); padding: 0 12px; }
  .buh-doc-title, .buh-section-name, .buh-subsection-name { padding-left: 12px; padding-right: 12px; }
  .wallet-hero { flex-direction: column; }
}

/* ═══ v11 ADDITIONS ═════════════════════════════════════════ */

/* Unread dot in chat rail */
.rail-unread-dot {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: #1a5fd4; color: #fff; border-radius: 999px;
  font-size: 10px; font-weight: 800; flex-shrink: 0;
}

/* "открыть чат" link in bank tiles (вариант 2: компактная кнопка) */
.btt-chat-link {
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  align-self:stretch; margin-top:2px;
  font-size:11px; font-weight:700; color:#1a5fd4; text-decoration:none;
  background:var(--accent-soft); border:1px solid var(--accent-border);
  padding:7px 10px; border-radius:9px; cursor:pointer;
  transition: background var(--t-fast), border-color var(--t-fast);
}
.btt-chat-link:hover { background:#dceaff; border-color:#1a5fd4; color:#0f4aab; }

/* New statuses */
.status-signing  { background: #fff4d6; color: #c47f00; border: 1px solid #f5d98a; }
.status-signing::before  { background: #c47f00; }
.status-accepted { background: #e3f9ee; color: #12a05a; border: 1px solid #a7e8c5; }
.status-accepted::before { background: #12a05a; }

/* Messages / Chat layout */
.msg-layout { display: grid; grid-template-columns: 280px 1fr; gap: 12px; min-height: 560px; }
.msg-sidebar {
  background: rgba(255,255,255,.85); border: 1px solid rgba(155,180,215,.22);
  border-radius: 20px; overflow: hidden; box-shadow: 0 2px 8px rgba(10,40,90,.07);
}
.msg-sidebar-head {
  padding: 16px 20px; font-size: 11px; font-weight: 800; color: #7a92ae;
  text-transform: uppercase; letter-spacing: .08em;
  border-bottom: 1px solid rgba(155,180,215,.22);
}
.msg-conv {
  display: flex; flex-direction: column; gap: 3px; padding: 12px 16px;
  border-bottom: 1px solid rgba(155,180,215,.12);
  cursor: pointer; transition: background .12s; position: relative;
}
.msg-conv:hover { background: rgba(26,95,212,.04); }
.msg-conv-active { background: #e8f1ff !important; }
.msg-conv-name { font-size: 13px; font-weight: 700; }
.msg-conv-preview { font-size: 11px; color: #7a92ae; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.msg-conv-unread {
  position: absolute; top: 12px; right: 12px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: #1a5fd4; color: #fff; border-radius: 999px;
  font-size: 10px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}

.msg-chat {
  background: rgba(255,255,255,.85); border: 1px solid rgba(155,180,215,.22);
  border-radius: 20px; display: flex; flex-direction: column;
  overflow: hidden; box-shadow: 0 2px 8px rgba(10,40,90,.07);
}
.msg-chat-head { padding: 16px 20px; border-bottom: 1px solid rgba(155,180,215,.22); }
.msg-chat-head-name { font-size: 15px; font-weight: 800; }
.msg-chat-head-role { font-size: 11px; color: #7a92ae; margin-top: 2px; }
.msg-chat-body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; max-height: 440px; }
.msg-chat-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #7a92ae; }

.msg-bubble { max-width: 75%; display: flex; flex-direction: column; gap: 3px; }
.msg-bubble-mine  { align-self: flex-end; }
.msg-bubble-other { align-self: flex-start; }
.msg-bubble-text {
  padding: 10px 14px; border-radius: 14px; font-size: 13px; line-height: 1.5;
  word-break: break-word;
}
.msg-bubble-mine .msg-bubble-text { background: linear-gradient(135deg, #e0edff, rgba(196,222,255,.6)); border: 1px solid #bdd3f9; border-bottom-right-radius: 4px; }
.msg-bubble-other .msg-bubble-text { background: rgba(255,255,255,.9); border: 1px solid rgba(155,180,215,.22); border-bottom-left-radius: 4px; }
.msg-bubble-time { font-size: 10px; color: #b0c0d4; }
.msg-bubble-mine .msg-bubble-time { text-align: right; }

.msg-composer { display: flex; gap: 8px; align-items: flex-end; padding: 12px 16px; border-top: 1px solid rgba(155,180,215,.22); background: rgba(248,250,253,.5); }

@media (max-width: 900px) { .msg-layout { grid-template-columns: 1fr; } }

/* ═══ v12 FIXES ═════════════════════════════════════════════ */

/* Fix chat link in bank tile — proper button style (вариант 2) */
.btt-chat-link {
  display: flex !important; align-items:center !important; justify-content:center !important; gap:5px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #1a5fd4 !important;
  text-align: center !important;
  padding: 7px 10px !important;
  margin-top: 2px !important;
  background: rgba(26,95,212,.08) !important;
  border-radius: 9px !important;
  border: 1px solid rgba(26,95,212,.16) !important;
  transition: background .14s, border-color .14s !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
.btt-chat-link:hover {
  background: rgba(26,95,212,.16) !important;
  border-color: rgba(26,95,212,.34) !important;
  color: #0f4aab !important;
}

/* Manager wallet section styles */
.wallet-mgr-clients {
  display: flex; flex-direction: column; gap: 8px;
}
.wallet-mgr-row {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 16px; border-radius: 14px;
  background: rgba(255,255,255,.7); border: 1px solid rgba(155,180,215,.22);
  flex-wrap: wrap;
}
.wallet-mgr-email { font-size: 13px; font-weight: 700; flex: 1; min-width: 160px; }
.wallet-mgr-balance { font-size: 16px; font-weight: 900; color: #12a05a; min-width: 120px; }
.wallet-mgr-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.wallet-mgr-input { width: 120px; font-size: 13px; padding: 8px 10px; }


/* v12 — partners catalog + alt app offer view */
.partner-section {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.partner-section + .partner-section {
  margin-top: var(--sp-6);
  padding-top: var(--sp-6);
  border-top: 1px solid rgba(26,95,212,.10);
}
.partner-section-head h3 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 900;
  color: var(--text-primary);
}
.partner-section-head p {
  margin: 0;
  font-size: 13px;
  color: var(--text-muted);
}
.banks-catalog { display:flex; flex-direction:column; gap:var(--sp-2); }

.alt-top-strip { margin-top: 18px; }
.offer-meta-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--sp-4);
}
.offer-meta-card {
  padding: var(--sp-4);
  border-radius: var(--r-lg);
  background: rgba(248,250,253,.82);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
}
.offer-meta-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-faint);
  font-weight: 800;
  margin-bottom: 8px;
}
.offer-meta-value {
  font-size: 15px;
  font-weight: 800;
  color: var(--text-primary);
}

@media (max-width: 900px) {
  .offer-meta-grid { grid-template-columns:1fr; }
}

/* ── ОФР: 2-column rows ── */
.buh-row.buh-row-f2 {
  grid-template-columns: 1fr 120px repeat(2, 140px);
}
@media (max-width: 900px) {
  .buh-row.buh-row-f2 { grid-template-columns: 1fr 50px repeat(2, 100px); }
}
.buh-col-row.buh-col-row-f2 {
  display: grid;
  grid-template-columns: 1fr 120px repeat(2, 140px);
  padding: 0 24px;
}
@media (max-width: 900px) {
  .buh-col-row.buh-col-row-f2 { grid-template-columns: 1fr 50px repeat(2, 100px); }
}

/* ── AJAX real-time badges ── */
.rail-unread-dot {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; border-radius: 9px;
  background: #1a5fd4; color: #fff; font-size: 10px; font-weight: 800;
  padding: 0 5px; margin-left: 6px;
}



/* v20 — add icons only, preserve previous layout widths */
.nav-link.nav-with-icon {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav-link .nav-link-label {
  display: block;
  min-width: 0;
}

.nav-link.nav-main-banks.nav-with-icon {
  align-items: flex-start;
}
.nav-link.nav-main-banks.nav-with-icon .nav-inline-icon {
  margin-top: 1px;
}

.nav-inline-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #6f83a6;
}
.nav-inline-icon svg {
  width: 20px;
  height: 20px;
  display: block;
}
.nav-inline-icon svg path,
.nav-inline-icon svg circle,
.nav-inline-icon svg line,
.nav-inline-icon svg polyline,
.nav-inline-icon svg rect {
  stroke: currentColor;
  stroke-width: 1.9;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nav-link.active .nav-inline-icon,
.nav-link:hover .nav-inline-icon {
  color: #1a5fd4;
}
.nav-exit .nav-inline-icon {
  color: #d65d6a;
}


/* v23 — client manager-chat: заполняет всю высоту до низа сайдбара */
.msg-layout-client-fill {
  display: flex !important;
  flex-direction: column;
  width: 100%;
  min-height: 0;
  height: 100%;
}

.msg-layout-client-fill .msg-chat {
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.msg-layout-client-fill .msg-chat-body {
  flex: 1 1 auto;
  max-height: none;
  min-height: 320px;
}

@media (max-width: 900px) {
  .msg-layout-client-fill,
  .msg-layout-client-fill .msg-chat {
    min-height: auto;
  }
}


/* v24 — client wallet redesign only */
.wallet-client-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 168px;
  padding: 34px 46px;
  margin-bottom: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(252,253,255,.9));
  border: 1px solid rgba(190,205,232,.45);
  border-radius: 26px;
  box-shadow: 0 10px 28px rgba(18, 49, 104, .06);
}
.wallet-client-hero::after {
  content: '';
  position: absolute;
  top: -16px;
  right: -12px;
  width: 300px;
  height: 220px;
  border-radius: 40% 0 0 40%;
  background: radial-gradient(circle at 40% 50%, rgba(236,241,255,.95), rgba(245,247,255,.65) 62%, rgba(245,247,255,0) 100%);
  pointer-events: none;
}
.wallet-client-hero-copy,
.wallet-client-hero-art { position: relative; z-index: 1; }
.wallet-client-hero-topline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #496184;
  font-size: 13px;
  font-weight: 700;
}
.wallet-client-hero-title { font-size: 14px; font-weight: 700; color: #496184; }
.wallet-client-info {
  width: 18px;
  height: 18px;
  border: 1.5px solid #6c84a9;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  color: #6c84a9;
  font-weight: 700;
}
.wallet-client-hero-amount {
  margin-top: 16px;
  font-size: 29px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.03em;
  color: #0d2046;
}
.wallet-client-hero-status {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #7488a6;
  font-size: 14px;
  font-weight: 500;
}
.wallet-client-status-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #2abb6a;
  box-shadow: 0 0 0 4px rgba(42,187,106,.12);
}
.wallet-client-hero-art {
  min-width: 200px;
  display: flex;
  justify-content: center;
}
.wallet-client-wallet-shape {
  position: relative;
  width: 74px;
  height: 74px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #eef3fb);
  border: 1px solid rgba(191,207,231,.65);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 18px rgba(29,67,129,.14);
}
.wallet-client-wallet-shape::before {
  content: '';
  position: absolute;
  inset: 9px;
  border-radius: 12px;
  border: 2px dashed rgba(205,215,232,.75);
}
.wallet-client-wallet-switch {
  position: absolute;
  right: -10px;
  top: 26px;
  width: 58px;
  height: 24px;
  border-radius: 999px;
  background: linear-gradient(135deg, #6fa2ff, #1f67e8);
  box-shadow: 0 6px 14px rgba(38,102,224,.28);
}
.wallet-client-wallet-switch::after {
  content: '';
  position: absolute;
  top: 5px;
  left: 8px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #ffffff;
}

.wallet-client-card {
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(252,253,255,.92));
  border: 1px solid rgba(190,205,232,.42);
  border-radius: 26px;
  box-shadow: 0 10px 28px rgba(18,49,104,.05);
  overflow: hidden;
}
.wallet-client-card-head {
  padding: 28px 40px;
  border-bottom: 1px solid rgba(199,212,234,.45);
}
.wallet-client-card-head h2 {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  color: #132649;
}
.wallet-client-card-body {
  padding: 26px 36px 30px;
}

.wallet-request-form {
  display: grid;
  grid-template-columns: minmax(420px, 560px) minmax(420px, 1fr);
  gap: 28px;
  align-items: start;
}
.wallet-request-step-title {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 800;
  color: #45628d;
}
.wallet-op-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.wallet-op-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 98px;
  padding: 18px 18px 18px 20px;
  background: #fff;
  border: 2px solid rgba(191,207,231,.58);
  border-radius: 18px;
  cursor: pointer;
  transition: .15s ease;
}
.wallet-op-card:hover { border-color: rgba(76,120,219,.45); }
.wallet-op-card.is-active {
  border-color: #2a6df0;
  box-shadow: 0 6px 14px rgba(42,109,240,.08);
}
.wallet-op-card input {
  position: absolute;
  opacity: 0;
  inset: 0;
  pointer-events: none;
}
.wallet-op-radio {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid rgba(91,115,153,.55);
  flex: 0 0 18px;
  position: relative;
}
.wallet-op-card.is-active .wallet-op-radio {
  border-color: #2a6df0;
}
.wallet-op-card.is-active .wallet-op-radio::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 999px;
  background: #2a6df0;
}
.wallet-op-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 800;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.wallet-op-icon-discount { background: #eef4ff; color: #2a6df0; }
.wallet-op-icon-withdraw { background: #f3efff; color: #7f69ef; }
.wallet-op-copy { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.wallet-op-copy strong {
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
  color: #233a63;
}
.wallet-op-copy span {
  font-size: 13px;
  line-height: 1.35;
  color: #7085a5;
}

.wallet-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.wallet-detail-field { display: flex; flex-direction: column; gap: 12px; }
.wallet-detail-label {
  font-size: 14px;
  font-weight: 700;
  color: #61789f;
}
.wallet-detail-input {
  width: 100%;
  height: 52px;
  padding: 0 18px;
  border: 1.5px solid rgba(191,207,231,.72);
  border-radius: 16px;
  background: #fff;
  font-size: 16px;
  color: #21375f;
  outline: none;
}
.wallet-detail-input::placeholder { color: #afbdd4; }
.wallet-detail-input:focus {
  border-color: rgba(42,109,240,.6);
  box-shadow: 0 0 0 3px rgba(42,109,240,.08);
}
.wallet-detail-input-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
}
.wallet-detail-input-row .wallet-detail-input {
  flex: 1;
  min-width: 0;
}
.wallet-detail-input-row .wallet-submit-btn {
  flex-shrink: 0;
}
.wallet-submit-btn {
  height: 54px;
  padding: 0 28px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, #1f67e8, #2b78f4 60%, #195ee0);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 10px 22px rgba(38,102,224,.26);
  cursor: pointer;
}
.wallet-submit-btn:hover { filter: brightness(1.03); }

.wallet-history-body { padding-top: 0; }
.wallet-history-table-wrap { overflow-x: auto; }
.wallet-history-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 14px;
}
.wallet-history-table thead th {
  padding: 0 20px 0 20px;
  text-align: left;
  font-size: 13px;
  font-weight: 700;
  color: #6b82a7;
}
.wallet-history-table tbody tr {
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 10px rgba(18,49,104,.04);
}
.wallet-history-table tbody td {
  padding: 18px 20px;
  border-top: 1px solid rgba(220,229,243,.8);
  border-bottom: 1px solid rgba(220,229,243,.8);
  vertical-align: middle;
}
.wallet-history-table tbody td:first-child {
  border-left: 1px solid rgba(220,229,243,.8);
  border-top-left-radius: 18px;
  border-bottom-left-radius: 18px;
}
.wallet-history-table tbody td:last-child {
  border-right: 1px solid rgba(220,229,243,.8);
  border-top-right-radius: 18px;
  border-bottom-right-radius: 18px;
}
.wallet-history-date-wrap {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
  color: #7084a3;
  white-space: nowrap;
}
.wallet-date-badge {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid transparent;
  flex: 0 0 32px;
}
.wallet-date-badge::before {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 999px;
  border: 2px solid currentColor;
}
.wallet-date-badge::after {
  content: '';
  position: absolute;
  left: 15px;
  top: 11px;
  width: 2px;
  height: 7px;
  background: currentColor;
  box-shadow: 4px 4px 0 -0.5px currentColor;
  transform-origin: bottom center;
}
.wallet-date-badge-pending   { background: #eef4ff; color: #2f73ef; border-color: #d8e6ff; }
.wallet-date-badge-confirmed { background: #f2edff; color: #7f69ef; border-color: #e2d9ff; }
.wallet-date-badge-credit    { background: #eafaf0; color: #27b36a; border-color: #cbf0da; }
.wallet-date-badge-debit     { background: #fff1ea; color: #ea7b49; border-color: #ffd8c8; }
.wallet-date-badge-rejected  { background: #ffeef0; color: #d85f71; border-color: #ffd5db; }
.wallet-history-amount {
  font-size: 18px;
  font-weight: 800;
  color: #12274b;
  white-space: nowrap;
}
.wallet-history-note {
  font-size: 15px;
  color: #31496f;
}
.wallet-history-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.wallet-history-status::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
}
.wallet-status-pending   { background: #eef4ff; color: #2f73ef; border-color: #d8e6ff; }
.wallet-status-confirmed { background: #f2edff; color: #7f69ef; border-color: #e2d9ff; }
.wallet-status-credit    { background: #eafaf0; color: #27b36a; border-color: #cbf0da; }
.wallet-status-debit     { background: #fff1ea; color: #ea7b49; border-color: #ffd8c8; }
.wallet-status-rejected  { background: #ffeef0; color: #d85f71; border-color: #ffd5db; }

@media (max-width: 1300px) {
  .wallet-request-form {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .wallet-detail-input-row {
    flex-direction: column;
  }
  .wallet-client-hero {
    padding: 26px 24px;
    flex-direction: column;
    align-items: flex-start;
  }
  .wallet-client-hero-amount { font-size: 44px; }
  .wallet-client-card-head,
  .wallet-client-card-body { padding-left: 22px; padding-right: 22px; }
  .wallet-op-cards,
  .wallet-detail-grid { grid-template-columns: 1fr; }
  .wallet-history-table thead { display: none; }
  .wallet-history-table,
  .wallet-history-table tbody,
  .wallet-history-table tr,
  .wallet-history-table td { display: block; width: 100%; }
  .wallet-history-table tbody tr { margin-bottom: 14px; }
  .wallet-history-table tbody td {
    border-radius: 0 !important;
    border-left: 1px solid rgba(220,229,243,.8);
    border-right: 1px solid rgba(220,229,243,.8);
  }
  .wallet-history-table tbody td:first-child { border-top-left-radius: 18px !important; border-top-right-radius: 18px !important; }
  .wallet-history-table tbody td:last-child { border-bottom-left-radius: 18px !important; border-bottom-right-radius: 18px !important; }
}


/* v29 — wallet button + messages composer vertical alignment */
.msg-layout {
  min-height: calc((100vh / var(--app-zoom)) - 168px);
  align-items: stretch;
}
.msg-chat {
  min-height: 100%;
}
.msg-chat-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}
@media (max-width: 900px) {
  .msg-layout {
    min-height: auto;
  }
  .msg-chat-body {
    max-height: 440px;
  }
}

/* ── Accept offer button (client) ── */
.boc-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.boc-accept-btn-sm {
  background: linear-gradient(180deg, #17a65a 0%, #12904e 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(18,144,78,.25);
  transition: filter .15s;
  white-space: nowrap;
}
.boc-accept-btn-sm:hover { filter: brightness(1.06); }
.boc-accepted-badge {
  font-size: 12px;
  font-weight: 700;
  color: var(--green);
  white-space: nowrap;
}

/* ── Refresh Box (sidebar 3D button) ── */
.refresh-box { display:none; }
.sidebar-refresh-btn {
  margin:12px 18px 0;cursor:pointer;
}
.sidebar-refresh-inner {
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 20px;border-radius:14px;
  background:linear-gradient(180deg,#f0f5ff 0%,#dbe7f9 50%,#c5d8f4 100%);
  border:1px solid #b8cce5;
  box-shadow:0 2px 4px rgba(26,95,212,.08),0 6px 16px rgba(26,95,212,.06),inset 0 1px 0 rgba(255,255,255,.7);
  color:#3366cc;font-size:13px;font-weight:700;
  transition:all .22s ease;
}
.sidebar-refresh-btn:hover .sidebar-refresh-inner {
  background:linear-gradient(180deg,#e3edff 0%,#c5d8f4 50%,#b0c9ee 100%);
  box-shadow:0 3px 6px rgba(26,95,212,.12),0 8px 20px rgba(26,95,212,.1),inset 0 1px 0 rgba(255,255,255,.8);
  transform:translateY(-1px);color:#1a5fd4;
}
.sidebar-refresh-btn:active .sidebar-refresh-inner {
  transform:translateY(1px);
  box-shadow:0 1px 2px rgba(26,95,212,.1),inset 0 1px 3px rgba(26,95,212,.12);
  background:linear-gradient(180deg,#c5d8f4 0%,#dbe7f9 100%);
}
.sidebar-refresh-inner svg {
  transition:transform .4s ease;flex-shrink:0;
}
.sidebar-refresh-btn:hover .sidebar-refresh-inner svg {
  transform:rotate(180deg);
}

/* ── Green action buttons (signing / payment) ── */
.btn-action-green {
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:8px;border:none;
  background:linear-gradient(135deg,#17a65a,#12904e);color:#fff;
  font-size:11px;font-weight:700;cursor:pointer;
  box-shadow:0 2px 8px rgba(23,166,90,.25);
  transition:all .2s ease;text-decoration:none;white-space:nowrap;
}
.btn-action-green:hover { background:linear-gradient(135deg,#1dbd68,#17a65a);transform:translateY(-1px);box-shadow:0 4px 12px rgba(23,166,90,.35); }

/* ── Guarantee Release Status ── */
.status-guarantee-release {
  background:linear-gradient(135deg,#e3f9ee,#c8f0da);color:#0f7b3e;
  border:1px solid #a7e8c5;
}
.status-guarantee-release::before { background:#12a05a; }

/* ── Pending Sign Status ── */
.status-pending-sign {
  background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;
  border:1px solid #fbbf24;animation:pulse-sign 2s ease-in-out infinite;
}
@keyframes pulse-sign { 0%,100%{opacity:1} 50%{opacity:.7} }

/* Bank offer review status */
.bos-review { background:#fef3c7; color:#92400e; border:1px solid #fbbf24; }

/* ── Accept offer card ── */
.accept-card {
  padding:22px 24px;border-radius:18px;border:1px solid #dbe7f5;
  background:rgba(255,255,255,.72);box-shadow:0 12px 32px rgba(20,70,130,.08);
  margin-top:8px;
}
.accept-card-title {
  font-size:18px;font-weight:800;color:#0f1f35;margin-bottom:18px;
}
.delivery-options {
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;
}
.delivery-option {
  padding:13px 14px;border:1px solid #d9e6f5;border-radius:14px;
  background:#f8fbff;cursor:pointer;font-size:14px;font-weight:700;
  color:#0f1f35;text-align:center;transition:all .2s;
}
.delivery-option.active {
  border-color:#1aa35c;background:#eafaf1;
  box-shadow:0 8px 18px rgba(26,163,92,.12);
}
.delivery-option:hover:not(.active) {
  border-color:#94a3b8;background:#f0f4fa;
}
.accept-input {
  width:100%;padding:10px 14px;font-size:13px;border-radius:10px;
  border:1px solid #d9e6f5;background:#f8fbff;margin-bottom:8px;
  box-sizing:border-box;transition:border-color .2s;
}
.accept-input:focus { outline:none;border-color:#1a5fd4;box-shadow:0 0 0 3px rgba(26,95,212,.1); }
.file-upload-box {
  display:block;padding:14px 16px;border:1px dashed #b8cce5;border-radius:14px;
  background:#f8fbff;color:#607999;margin-bottom:18px;cursor:pointer;
  transition:all .2s;font-size:13px;
}
.file-upload-box:hover { border-color:#1a5fd4;background:#eef4ff; }
.accept-main-btn {
  width:100%;height:46px;border-radius:13px;
  background:linear-gradient(180deg,#1caf63 0%,#0e934e 100%);
  box-shadow:0 10px 22px rgba(20,150,80,.25);
  color:#fff;font-size:15px;font-weight:800;border:none;cursor:pointer;
  transition:all .2s;
}
.accept-main-btn:hover { transform:translateY(-2px);box-shadow:0 14px 28px rgba(20,150,80,.3); }
.accept-main-btn:active { transform:translateY(1px); }

/* ══ Platform Cards (delivery, amendments) ══ */
.platform-card {
  border:1px solid #dbe7f5;border-radius:18px;
  background:rgba(255,255,255,.85);
  box-shadow:0 2px 12px rgba(20,70,130,.04);
  margin-bottom:0;overflow:hidden;
}
.platform-card-delivery { border-left:3px solid #3b82f6; }
.platform-card-amendment { border-left:3px solid #f59e0b; }
.platform-card-accept { border-left:3px solid #17a65a; }
.platform-card-header {
  display:flex;align-items:center;gap:14px;
  padding:16px 22px;border-bottom:1px solid #f0f4fa;
}
.platform-card-icon {
  width:42px;height:42px;border-radius:12px;
  background:linear-gradient(135deg,#f0f5ff,#e3ecfa);
  display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;
}
.platform-card-title { font-size:15px;font-weight:800;color:#0f1f35; }
.platform-card-sub { font-size:12px;color:#7b93b0;margin-top:2px; }
.platform-card-body { padding:18px 22px; }
.platform-card-btn {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 24px;border-radius:12px;border:none;cursor:pointer;
  font-size:13px;font-weight:700;color:#fff;
  background:linear-gradient(180deg,#3b82f6 0%,#2563eb 100%);
  box-shadow:0 4px 14px rgba(37,99,235,.2);
  transition:all .2s;margin-top:12px;
}
.platform-card-btn:hover { transform:translateY(-1px);box-shadow:0 6px 18px rgba(37,99,235,.3); }
.platform-card-btn:active { transform:translateY(1px); }
.platform-card-btn-ghost {
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 20px;border-radius:10px;border:1px solid #d9e6f5;
  background:#fff;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;
  transition:all .2s;
}
.platform-card-btn-ghost:hover { border-color:#94a3b8;background:#f8fafd; }

/* Status badges */
.platform-status-badge {
  margin-left:auto;padding:5px 14px;border-radius:10px;
  font-size:12px;font-weight:700;white-space:nowrap;flex-shrink:0;
}
.platform-status-grey { background:#f0f4fa;color:#64748b;border:1px solid #dbe7f5; }
.platform-status-green { background:#eafaf1;color:#0f7b3e;border:1px solid #a7e8c5; }
.platform-status-amber { background:#fff8e5;color:#92400e;border:1px solid #fbbf24; }
.platform-status-red { background:#fff0f0;color:#c0392b;border:1px solid #fca5a5; }

/* Delivery choice cards */
.dlv-choice-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;
}
.dlv-choice-card {
  padding:18px 16px;border:1.5px solid #dbe7f5;border-radius:16px;
  background:#f8fbff;cursor:pointer;text-align:center;
  transition:all .22s ease;
}
.dlv-choice-card:hover:not(.dlv-choice-active) {
  border-color:#94a3b8;background:#f0f4fa;transform:translateY(-1px);
}
.dlv-choice-active {
  border-color:#1aa35c;background:linear-gradient(180deg,#eafaf1,#d5f5e3);
  box-shadow:0 6px 18px rgba(26,163,92,.1);
}
.dlv-choice-emoji { font-size:28px;margin-bottom:8px; }
.dlv-choice-label { font-size:14px;font-weight:800;color:#0f1f35;margin-bottom:2px; }
.dlv-choice-desc { font-size:11px;color:#7b93b0; }

/* Delivery fields */
.dlv-fields-grid { display:flex;flex-direction:column;gap:10px;margin-bottom:8px; }
.dlv-field-label { font-size:12px;font-weight:700;color:#0f1f35;margin-bottom:4px;display:block; }
.dlv-field-input {
  width:100%;padding:11px 14px;font-size:13px;border-radius:12px;
  border:1.5px solid #dbe7f5;background:#f8fbff;box-sizing:border-box;
  transition:all .2s;
}
.dlv-field-input:focus { outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,.1); }

/* Delivery info display */
.dlv-info-grid { display:flex;flex-direction:column;gap:8px; }
.dlv-info-item { font-size:13px;color:#0f1f35;padding:8px 12px;background:#f8fafd;border-radius:10px;border:1px solid #f0f4fa; }
.dlv-info-label { font-weight:700;color:#64748b;margin-right:6px; }

/* Amendment dropzone */
.amendment-dropzone {
  border:2px dashed #b8cce5;border-radius:16px;
  padding:28px 20px;text-align:center;cursor:pointer;
  background:linear-gradient(180deg,#fafcff,#f0f5ff);
  transition:all .22s ease;
}
.amendment-dropzone:hover, .amendment-dropzone-hover {
  border-color:#3b82f6;background:linear-gradient(180deg,#eef4ff,#e3edff);
  box-shadow:0 4px 16px rgba(59,130,246,.08);
}
.amendment-dropzone-icon { font-size:32px;margin-bottom:8px; }
.amendment-dropzone-title { font-size:14px;font-weight:800;color:#0f1f35;margin-bottom:4px; }
.amendment-dropzone-sub { font-size:12px;color:#7b93b0; }
.amendment-file-name { font-size:14px;font-weight:700;color:#0f1f35;margin-bottom:4px; }
.amendment-file-hint { font-size:12px;color:#17a65a;font-weight:600; }

/* Amendment status box */
.amendment-status-box {
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 18px;border-radius:14px;margin-bottom:14px;
}
.amendment-status-pending { background:#fff8e5;border:1px solid #fbbf24; }
.amendment-status-approved { background:#eafaf1;border:1px solid #a7e8c5; }
.amendment-status-rejected { background:#fff0f0;border:1px solid #fca5a5; }
.amendment-status-icon { font-size:22px;flex-shrink:0;margin-top:1px; }
.amendment-status-title { font-size:13px;font-weight:800;color:#0f1f35;margin-bottom:2px; }
.amendment-status-text { font-size:12px;color:#64748b;line-height:1.5; }

/* Platform cards inside bank-offer-card */
.bank-offer-card > .platform-card {
  margin:12px 16px;border-radius:16px;
}
.bank-offer-card > .platform-card:first-of-type { margin-top:16px; }

/* ── Компактная раскладка карточки заявки (без hero, без скролла) ── */
.content .av-root { margin-top: 0; }
.app-hero-top { padding: 10px 16px; }
.app-stage-tracker { padding: 10px 16px; }
.metric-cell { padding: 9px 14px; }
.metric-value { margin-top: 2px; font-size: 14px; }
.app-main-grid { margin-top: 10px; }
.av-root .content-block { margin-bottom: 10px; }
.phase1-layout { margin-top: 10px; }
/* убираем лишний внешний отступ основного контента, т.к. hero скрыт */
.content > .av-root:first-child { margin-top: 0; }

/* ── Карточка заявки без левой рельсы чатов: центр растягивается ── */
.app-main-grid-norail { grid-template-columns: 1fr 280px; }
.app-main-grid-norail > div:nth-child(1) { display:flex; flex-direction:column; }
.app-main-grid-norail > div:nth-child(1) > .content-block,
.app-main-grid-norail > div:nth-child(1) > .bank-offer-card { flex:1; }
@media (max-width:1400px){ .app-main-grid-norail { grid-template-columns: 1fr 260px; } }
@media (max-width:1200px){ .app-main-grid-norail { grid-template-columns: 1fr; } }

/* Плитка «Действия / Статусы / Чат» в полосе банков */
.btt-actions { background:linear-gradient(135deg,#eef4ff,#dbe9ff)!important; border:1px solid #b9d2f7!important; color:#1a5fd4!important; }
.btt-actions .btt-name { color:#1a5fd4; }
.btt-actions:hover { border-color:#1a5fd4!important; box-shadow:0 2px 8px rgba(26,95,212,.15); }

/* ── Центральная кнопка действий: вертикальная, компактная, явно основная ── */
.bank-top-tile.btt-actions{
  display:flex!important; flex-direction:column!important;
  align-items:center; justify-content:center; gap:9px;
  width:140px;                        /* шире — под «Действия · Статусы» в строку */
  padding:14px 10px!important;
  border-radius:14px!important;
  background:linear-gradient(160deg,#1a5fd4,#2f6fe0)!important;
  border:none!important;
  box-shadow:0 4px 14px rgba(26,95,212,.30)!important;
  text-align:center; overflow:visible;
  transition: transform var(--t-base), box-shadow var(--t-base);
}
.bank-top-tile.btt-actions .btt-actions-icon{ font-size:24px; line-height:1; }
.bank-top-tile.btt-actions .btt-actions-text{ display:flex; flex-direction:column; align-items:center; gap:5px; width:100%; }
.bank-top-tile.btt-actions .btt-actions-top{
  color:#fff; font-size:10px; font-weight:800; line-height:1.2; letter-spacing:.02em;
  text-transform:uppercase; white-space:nowrap;
}
.bank-top-tile.btt-actions .btt-actions-bottom{
  color:#fff; font-size:13px; font-weight:900; line-height:1.1;
  background:rgba(255,255,255,.18); border-radius:8px; padding:4px 14px;
  width:100%; box-sizing:border-box; white-space:nowrap;
}
.bank-top-tile.btt-actions .btt-icon{ font-size:22px; line-height:1; }
.bank-top-tile.btt-actions .btt-name{
  color:#fff!important; font-size:10.5px; font-weight:800; line-height:1.25;
  white-space:normal; word-break:break-word;
}
.bank-top-tile.btt-actions:hover{
  transform:translateY(-2px);
  box-shadow:0 7px 20px rgba(26,95,212,.42)!important;
  border:none!important;
}
.bank-top-tile.btt-actions.bank-top-tile-active{
  background:linear-gradient(160deg,#1450bd,#2f6fe0)!important;
  box-shadow:0 0 0 3px rgba(26,95,212,.22), 0 4px 14px rgba(26,95,212,.30)!important;
}
.bank-top-tile.btt-actions .rail-unread-dot{ background:#fff; color:#1a5fd4; }

/* ── Анимации уведомлений в карточках банков (плавные, не дёрганые) ── */
@keyframes bttFloat {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-3px); }
}
@keyframes bttGlowGreen {
  0%,100% { box-shadow:0 3px 10px rgba(22,163,74,.28); }
  50%     { box-shadow:0 4px 16px rgba(22,163,74,.55); }
}
@keyframes bttGlowAccent {
  0%,100% { box-shadow:0 3px 10px rgba(22,163,74,.26); }
  50%     { box-shadow:0 4px 16px rgba(22,163,74,.5); }
}

/* «✍️ Требуется подписание», «💳 Подтвердить оплату» — зелёные CTA */
.bank-top-tile .btn-action-green{
  align-self:flex-start;
  animation: bttFloat 2.4s ease-in-out infinite, bttGlowGreen 2.4s ease-in-out infinite;
  will-change: transform, box-shadow;
}
.bank-top-tile .btn-action-green:hover{ animation-play-state:paused; }

/* «📄 Согласовать проект гарантии» */
.bank-top-tile .btile-cta-green{
  animation: bttFloat 2.6s ease-in-out infinite, bttGlowAccent 2.6s ease-in-out infinite;
  will-change: transform, box-shadow;
}
.bank-top-tile .btile-cta-green:hover{ animation-play-state:paused; }

/* Бейдж «⚠️ Требуется действие» (менеджер) — мягкая пульсация */
.btt-need-action{ animation: bttNeedPulse 2s ease-in-out infinite, bttFloat 2.6s ease-in-out infinite; will-change:transform, box-shadow; }
.btt-need-action:hover{ animation-play-state:paused; }

/* Уважать настройку «уменьшить движение» */
@media (prefers-reduced-motion: reduce) {
  .bank-top-tile .btn-action-green,
  .bank-top-tile .btile-cta-green,
  .btt-need-action { animation: none !important; }
}

/* ── Постоянный баннер-подсказка менеджеру «что делать дальше» ── */
.mgr-next-banner {
  display:flex; align-items:center; gap:14px;
  border-radius:14px; padding:14px 20px; margin-bottom:12px;
}
.mgr-next-info  { background:linear-gradient(180deg,#eff5ff,#e3eeff); border:1px solid #c2d8f7; box-shadow:0 4px 14px rgba(26,95,212,.10); }
.mgr-next-amber { background:linear-gradient(180deg,#fff8e8,#fdefcf); border:1px solid #f3d690; box-shadow:0 4px 14px rgba(217,154,6,.12); }
.mgr-next-ic {
  flex:0 0 42px; width:42px; height:42px; border-radius:12px;
  display:flex; align-items:center; justify-content:center; font-size:22px; background:rgba(255,255,255,.7);
}
.mgr-next-body { flex:1; min-width:0; }
.mgr-next-title { font-size:14px; font-weight:900; color:#0f1f35; }
.mgr-next-info  .mgr-next-title { color:#13478f; }
.mgr-next-amber .mgr-next-title { color:#92610a; }
.mgr-next-text  { font-size:12.5px; color:#3c4a5e; margin-top:2px; line-height:1.45; }
.mgr-next-close {
  flex-shrink:0; width:28px; height:28px; border:none; border-radius:8px; cursor:pointer;
  background:rgba(15,31,53,.07); color:#5b6b7e; font-size:14px; font-weight:800;
}
.mgr-next-close:hover { background:rgba(15,31,53,.13); }

/* ════════════════════════════════════════════════════════════════
   КЛИЕНТСКИЙ САЙДБАР — единый островок навигации (вариант 3)
   ════════════════════════════════════════════════════════════════ */

/* Логотип RTS FLY — самостоятельный, вне островка; скруглён как кнопка «+ Новая заявка» */
.sidebar-client {
  gap: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.sidebar-client .brand {
  height: 68px;
  padding: 0 var(--sp-4);
  border-radius: var(--r-lg);
  font-size: 15px;
  margin-bottom: var(--sp-3);
  flex-shrink: 0;
}
.sidebar-client .brand-logo { padding: 10px 14px; }

/* Единый островок: оформление идентично окну «Мои заявки» (.panel) —
   одинаковые границы, скругление, тень и стеклянный 3D-эффект. */
.sidebar-client .nav-island {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: var(--surface-glass);
  backdrop-filter: var(--blur-md);
  -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-2);
}
.sidebar-client .nav-island .nav-stack {
  flex: 1; min-height: 0; overflow-y: auto; padding: 0; gap: 1px;
}
.sidebar-client .nav-island .primary-side-button { margin: 8px 2px 4px; }
.sidebar-client .nav-island .nav-exit { margin: 2px; }

/* Синий групповой заголовок (как «ИНСТРУМЕНТЫ»): ФИНАНСОВЫЕ ПРОДУКТЫ / УПРАВЛЕНИЕ АККАУНТОМ */
.nav-group-header {
  font-size: 10px; font-weight: 800; color: var(--accent);
  text-transform: uppercase; letter-spacing: .09em;
  padding: 10px 11px 5px;
}

/* Продуктовый заголовок (тёмный, как «Мои финансы») с иконкой: Банковская гарантия / Страхование / Кредитование */
.nav-product-label {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 11px;
  font-size: 13px; font-weight: 600; color: var(--text-secondary);
}
.nav-product-label .nav-inline-icon { width: 20px; height: 20px; flex: 0 0 20px; color: #6f83a6; }
.nav-product-label .nav-inline-icon svg { width: 20px; height: 20px; }

/* Подпункты «Мои заявки» под продуктами — тот же размер, что у пунктов меню */
.sidebar-client .nav-island .nav-sublink {
  font-size: 13px; font-weight: 600; color: var(--text-secondary);
  padding: 6px 11px 6px 41px;
}
.sidebar-client .nav-island .nav-sublink.active { color: var(--accent); font-weight: 700; }

/* Подпункты-инструменты с иконкой: убрать точку, выровнять по иконке.
   Левый отступ и gap совпадают с .nav-link («Помощь», «Мои финансы»), чтобы
   «Работа с PDF», «Создание Бух баланса», «Удалённая поддержка» начинались
   ровно под остальными пунктами меню. */
.sidebar-client .nav-island .nav-sublink.nav-sublink-icon {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 7px var(--sp-3);
}
.nav-sublink.nav-sublink-icon::before { display: none; }
.nav-sublink.nav-sublink-icon .nav-inline-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.nav-sublink.nav-sublink-icon.active .nav-inline-icon,
.nav-sublink.nav-sublink-icon:hover .nav-inline-icon { color: #1a5fd4; }

/* ── Карточка «Гарантия выпущена» в чате ── */
.chat-issued-card { display:flex; flex-direction:column; gap:9px; }
.chat-issued-head { font-size:14px; font-weight:900; color:#0f7b3e; }
.chat-issued-text { font-size:12.5px; color:#0f1f35; line-height:1.5; }
.chat-issued-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }
.chat-issued-btn { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; text-decoration:none; padding:8px 14px; border-radius:10px; white-space:nowrap; }
.chat-issued-btn-primary { background:linear-gradient(180deg,#17a65a,#12904e); color:#fff; box-shadow:0 3px 10px rgba(18,160,90,.24); }
.chat-issued-btn-ghost { background:#fff; color:#1a5fd4; border:1px solid #c2d8f7; }
.chat-issued-btn-ghost:hover { background:#eef4ff; border-color:#1a5fd4; }

/* ── Выбор вида гарантии в окне принятия предложения ── */
.ac-kind { display:flex; align-items:center; gap:11px; padding:0; margin-bottom:8px; cursor:pointer; }
.ac-kind input { position:absolute; opacity:0; width:0; height:0; }
.ac-kind .ac-kind-box {
  flex:1; display:flex; flex-direction:column; gap:2px;
  border:2px solid #e3eaf3; border-radius:12px; padding:11px 14px;
  transition:border-color .15s, background .15s;
}
.ac-kind:hover .ac-kind-box { border-color:#bcd2f0; }
.ac-kind.ac-kind-active .ac-kind-box { border-color:#1caf63; background:#f0fbf4; }
.ac-kind-ttl { font-size:13.5px; font-weight:800; color:#0f1f35; }
.ac-kind-sub { font-size:11.5px; color:#7b93b0; }
.ac-spfs { display:flex; align-items:center; gap:9px; margin-top:6px; padding:10px 14px; border:1px dashed #c2d8f7; border-radius:12px; background:#f4f8ff; cursor:pointer; font-size:13px; font-weight:700; color:#1a5fd4; }
.ac-spfs input { width:16px; height:16px; accent-color:#1a5fd4; cursor:pointer; }
/* Кнопки доставки в окне принятия — заметные, кликабельные */
.ac-dlv { flex:1; cursor:pointer; }
.ac-dlv input { position:absolute; opacity:0; width:0; height:0; }
.ac-dlv .ac-kind-box {
  border:2px solid #e3eaf3; border-radius:12px; padding:13px 10px;
  font-size:14px; font-weight:800; color:#0f1f35;
  display:flex; align-items:center; justify-content:center; gap:6px;
  transition:border-color .15s, background .15s, box-shadow .15s;
}
.ac-dlv:hover .ac-kind-box { border-color:#bcd2f0; background:#f6faff; }
.ac-dlv.ac-kind-active .ac-kind-box { border-color:#1a5fd4; background:#eef4ff; color:#1a5fd4; box-shadow:0 4px 12px rgba(26,95,212,.18); }

/* ── Индикатор «чей ход» под баннером менеджера ── */
.mgr-turn-box { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.mgr-turn-cell {
  display:flex; align-items:center; gap:11px; padding:12px 16px;
  border:1.5px solid var(--border); border-radius:12px; background:#fbfdff;
  opacity:.55; transition:all .2s;
}
.mgr-turn-cell .mgr-turn-ic { font-size:20px; flex-shrink:0; filter:grayscale(1); }
.mgr-turn-ttl { font-size:13px; font-weight:800; color:#0f1f35; }
.mgr-turn-sub { font-size:11.5px; color:#7b93b0; margin-top:1px; }
.mgr-turn-cell.mgr-turn-active { opacity:1; border-color:#f3b34f; background:linear-gradient(180deg,#fffaf0,#fff4e0); box-shadow:0 3px 12px rgba(217,154,6,.12); }
.mgr-turn-cell.mgr-turn-active .mgr-turn-ic { filter:none; }
.mgr-turn-cell.mgr-turn-active .mgr-turn-ttl { color:#92610a; }
.mgr-turn-cell.mgr-turn-active.mgr-turn-wait { border-color:#9bc0ee; background:linear-gradient(180deg,#f3f8ff,#e8f1ff); box-shadow:0 3px 12px rgba(26,95,212,.10); }
.mgr-turn-cell.mgr-turn-active.mgr-turn-wait .mgr-turn-ttl { color:#13478f; }

/* ── Аккаунты клиентов (менеджер) ── */
.clients-table { display:flex; flex-direction:column; gap:0; }
.clients-row { display:grid; grid-template-columns:64px 1.4fr 1.8fr 80px 110px; gap:12px; align-items:center; padding:11px 12px; border-bottom:1px solid var(--border); font-size:13px; }
.clients-row-head { font-size:10.5px; font-weight:800; color:#8a9bb2; text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid var(--border); }
.clients-row:last-child { border-bottom:none; }
.clients-id { font-weight:700; color:#8a9bb2; }
.clients-email { font-weight:700; color:#0f1f35; word-break:break-all; }
.clients-comp { color:#44546b; }
.clients-apps { font-weight:700; color:#0f1f35; }
.clients-act { text-align:right; }
@media (max-width:760px){ .clients-row{ grid-template-columns:1fr; gap:4px; } .clients-row-head{ display:none; } .clients-act{ text-align:left; } }

/* ── Официальный счёт от банка (карточка для клиента) ── */
.bank-invoice-card {
  border:1px solid #d7e3f4; border-radius:14px; overflow:hidden;
  background:linear-gradient(180deg,#ffffff,#f7faff);
  box-shadow:0 6px 18px rgba(26,95,212,.08); margin:4px 0 6px;
}
.binv-head { display:flex; align-items:center; gap:12px; padding:13px 16px; background:linear-gradient(135deg,#eef4ff,#e3edff); border-bottom:1px solid #d7e3f4; }
.binv-stamp { width:40px; height:40px; border-radius:11px; background:#fff; border:1px solid #c7dbff; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; box-shadow:0 2px 6px rgba(26,95,212,.12); }
.binv-head-main { flex:1; min-width:0; }
.binv-title { font-size:14px; font-weight:800; color:#0f1f35; }
.binv-sub { font-size:11px; color:#5e74a0; margin-top:1px; }
.binv-badge { font-size:10.5px; font-weight:800; color:#0f7b3e; background:#eafaf1; border:1px solid #a7e8c5; border-radius:8px; padding:3px 10px; white-space:nowrap; }
.binv-rows { padding:12px 16px; display:flex; flex-direction:column; gap:8px; }
.binv-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; border-bottom:1px dashed #e7eef8; padding-bottom:7px; }
.binv-row:last-child { border-bottom:none; padding-bottom:0; }
.binv-l { font-size:11.5px; font-weight:700; color:#8a9bb2; text-transform:uppercase; letter-spacing:.03em; }
.binv-v { font-size:13px; font-weight:700; color:#0f1f35; text-align:right; }
.binv-amount { font-size:18px; font-weight:900; color:var(--accent); }
.binv-note { margin:0 16px 12px; padding:8px 12px; background:#fff8e8; border:1px solid #f3d98a; border-radius:10px; font-size:11.5px; font-weight:600; color:#7a5a08; }
.binv-actions { display:flex; gap:8px; padding:0 16px 14px; }
.binv-btn { flex:1; text-align:center; text-decoration:none; font-size:12.5px; font-weight:700; padding:10px 12px; border-radius:10px; cursor:pointer; transition:all .15s; }
.binv-btn-primary { background:linear-gradient(180deg,#3b82f6,#2563eb); color:#fff; box-shadow:0 4px 12px rgba(37,99,235,.22); }
.binv-btn-primary:hover { filter:brightness(1.05); }
.binv-btn-ghost { background:#fff; color:#1a5fd4; border:1px solid #c7dbff; }
.binv-btn-ghost:hover { background:#f4f8ff; }

/* ── Кнопка «Запрос» в чате менеджера + жёлтая пометка запроса ── */
.chat-composer-mgr { position: relative; }
.composer-req { background: #fef3c7; color: #92400e; border: 1px solid #f5d47a; font-weight: 700; }
.composer-req:hover { background: #fde9a8; }
.composer-req-active, .composer-req.composer-req-active { background: #f7b955; color: #4a3208; border-color: #e0a43e; }
.composer-req-tag { display: none; }
.chat-composer.is-request { background: #fffbeb; border-radius: 14px; padding: 6px; box-shadow: inset 0 0 0 2px #f5d47a; }
.chat-composer.is-request .composer-textarea { background: #fff8e6; }
.chat-composer.is-request .composer-req-tag {
  display: inline-flex; align-items: center; position: absolute; top: -10px; right: 12px;
  background: #f7b955; color: #4a3208; font-size: 10.5px; font-weight: 800;
  padding: 2px 10px; border-radius: 999px; box-shadow: 0 2px 6px rgba(200,150,30,.3);
}
/* Пузырь-запрос */
.chat-bubble-request .bubble-inner { background: #fff8e6 !important; border: 1px solid #f5d47a !important; color: #5a4308 !important; }
.bubble-req-tag {
  display: inline-flex; align-items: center; gap: 4px;
  background: #f7b955; color: #4a3208; font-size: 10px; font-weight: 800;
  padding: 1px 8px; border-radius: 999px; margin-left: 4px;
}
.bubble-req-tag::before { content: "🏦"; font-size: 10px; }

/* ── Таблица банков (клиент, этапы предложения/оплаты/выпуска) ── */
.banks-table-wrap {
  background: var(--surface-glass); backdrop-filter: var(--blur-md); -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-sm);
  padding: 14px 16px; margin-bottom: 12px;
}
.banks-table-scroll { overflow-x: auto; }
.banks-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; }
.banks-table thead th {
  text-align: left; font-size: 10.5px; font-weight: 800; color: #8a9bb2;
  text-transform: uppercase; letter-spacing: .05em; padding: 8px 12px;
  border-bottom: 2px solid var(--border); white-space: nowrap;
}
.banks-table tbody td { padding: 12px; border-bottom: 1px solid var(--border); vertical-align: middle; color: #2b3b52; white-space: nowrap; }
.banks-table tbody tr:last-child td { border-bottom: none; }
.banks-table tbody tr:hover td { background: rgba(26,95,212,.03); }
.bt-bank { display: flex; align-items: center; gap: 9px; }
.bt-bank-ic { width: 32px; height: 32px; border-radius: 9px; background: var(--bg-accent); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.bt-bank-name { font-weight: 800; color: #0f1f35; }
.bt-sum { font-weight: 800; color: var(--accent); }
.bt-need { margin-top: 5px; font-size: 11px; font-weight: 700; }
.bt-need-go { color: #0f7b3e; }
.bt-need-wait { color: #b07a12; }
.bt-need-ok { color: #1a5fd4; }
.bt-act { text-align: right; }
.bt-btn { display: inline-block; text-decoration: none; font-size: 12px; font-weight: 700; padding: 8px 14px; border-radius: 9px; white-space: nowrap; cursor: pointer; transition: all .15s; }
.bt-btn-primary { background: linear-gradient(180deg,#3b82f6,#2563eb); color: #fff; box-shadow: 0 4px 12px rgba(37,99,235,.24); }
.bt-btn-primary:hover { filter: brightness(1.06); transform: translateY(-1px); }
.bt-btn-ghost { background: #fff; color: #1a5fd4; border: 1px solid #c7dbff; }
.bt-btn-ghost:hover { background: #f4f8ff; }
.bt-row-rejected td { opacity: .62; }
.bt-row-rejected .bt-bank-ic { filter: grayscale(.5); }
/* Кнопка «Назад к списку банков» */
.bank-back-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex-shrink: 0; }
.bank-back-appno { font-size: 13px; font-weight: 800; color: #0f1f35; }
.bank-back-auto { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; font-size: 12px; font-weight: 600; color: #7a92ae; }
.bank-back-auto-dot { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.5); animation: obPulse 1.6s ease-out infinite; }
.bank-back-btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: #1a5fd4; text-decoration: none;
  background: #fff; border: 1px solid #c7dbff; border-radius: 10px; padding: 8px 16px;
  transition: all .15s;
}
.bank-back-btn:hover { background: #f4f8ff; transform: translateX(-2px); }

/* ── Сворачивание левого сайдбара ── */
.sidebar { position: relative; }
.sidebar-collapse-btn {
  position: absolute; top: 10px; right: 10px; z-index: 5;
  width: 24px; height: 24px; border-radius: 7px; cursor: pointer;
  border: 1px solid var(--border); background: #fff; color: #5a6b82;
  font-size: 15px; line-height: 1; display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.sidebar-collapse-btn:hover { background: #f4f8ff; color: #1a5fd4; border-color: #c7dbff; }
/* Кнопка-открыть (видна только когда свёрнуто) */
.sidebar-open-btn {
  display: none; position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 40;
  width: 26px; height: 52px; border-radius: 0 12px 12px 0; cursor: pointer;
  border: 1px solid var(--border); border-left: none; background: #fff;
  color: #1a5fd4; font-size: 16px; font-weight: 800; box-shadow: var(--shadow-md);
  align-items: center; justify-content: center;
}
.sidebar-open-btn:hover { background: #f4f8ff; }
/* Свёрнутое состояние: прячем сайдбар, контент на всю ширину, показываем кнопку-открыть */
.app-grid.sidebar-collapsed { grid-template-columns: 1fr; }
.app-grid.sidebar-collapsed > .sidebar { display: none; }
.app-grid.sidebar-collapsed > .sidebar-open-btn { display: flex; }

/* ── Подписание: строка банка (Банк · статус · действие) + строка инструкции ── */
.sign-bank { border: 1.5px solid #ccd8e8; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 2px 8px rgba(15,31,53,.06); }
.sign-bank-row { display: flex; align-items: center; gap: 12px; padding: 11px 14px; flex-wrap: wrap; }
.sign-bank-id { display: flex; align-items: center; gap: 9px; min-width: 150px; }
.sign-bank-ic { width: 30px; height: 30px; border-radius: 8px; background: var(--bg-accent); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.sign-bank-name { font-weight: 800; color: #0f1f35; font-size: 13.5px; }
.sign-bank-status { flex-shrink: 0; }
.sign-bank-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.sign-bank-instr-cta { font-weight: 600; color: #0f1f35; }
.btn-sign-all {
  border: none; cursor: pointer; font-family: inherit;
  background: linear-gradient(180deg,#17a65a,#12904e); color: #fff;
  font-size: 12.5px; font-weight: 800; padding: 10px 18px; border-radius: 10px;
  box-shadow: 0 4px 12px rgba(18,144,78,.26);
}
.btn-sign-all:hover { filter: brightness(1.05); }
.sign-footer { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
.btn-sign-review {
  border: none; cursor: pointer; font-family: inherit;
  background: linear-gradient(180deg,#3b82f6,#2563eb); color: #fff;
  font-size: 12.5px; font-weight: 800; padding: 10px 18px; border-radius: 10px;
  box-shadow: 0 4px 12px rgba(37,99,235,.26);
}
.btn-sign-review:hover { filter: brightness(1.05); }
.btn-sign-done {
  border: 1.5px solid #17a65a; background: #fff; color: #0f7b3e; cursor: pointer; font-family: inherit;
  font-size: 12.5px; font-weight: 800; padding: 8px 14px; border-radius: 10px;
}
.btn-sign-done:hover { background: #f0fbf4; }
.btn-sign-decline {
  border: 1.5px solid #f5b8b8; background: #fff; color: #c0392b; cursor: pointer; font-family: inherit;
  font-size: 12.5px; font-weight: 700; padding: 8px 14px; border-radius: 10px;
}
.btn-sign-decline:hover { background: #fff5f5; }
.btn-sign-chat {
  display: inline-flex; align-items: center; gap: 5px; text-decoration: none;
  border: 1px solid #c7dbff; background: #fff; color: #1a5fd4;
  font-size: 12.5px; font-weight: 700; padding: 8px 14px; border-radius: 10px;
}
.btn-sign-chat:hover { background: #f4f8ff; }
.sign-status-pill { font-size: 12px; font-weight: 700; padding: 7px 12px; border-radius: 8px; }
.sign-status-wait { color: #92400e; background: #fff8e5; border: 1px solid #fbbf24; }
.sign-status-ok { color: #0f7b3e; background: #eafaf1; border: 1px solid #a7e8c5; }
.sign-bank-instr { border-top: 1px solid #cfe0f5; background: #eaf2ff; padding: 11px 14px; display: flex; flex-direction: column; gap: 4px; }
.sign-bank-instr-label { font-size: 11px; font-weight: 800; color: #1a5fd4; text-transform: uppercase; letter-spacing: .04em; }
.sign-bank-instr-text { font-size: 13.5px; color: #0f1f35; font-weight: 600; line-height: 1.5; }

/* ── Этап подписания (общий вид): слева 65% подписание, справа 35% чат ──
   Высокая специфичность, чтобы перебить flex-column раскладку панели чата. */
.cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split {
  display: grid !important;
  grid-template-columns: 65% 35%;
  grid-template-rows: auto 1fr auto;
  min-height: 0; height: 100%;
  column-gap: 0;
}
.cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .content-block-head { grid-column: 2; grid-row: 1; }
.cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .sign-block-wrap {
  grid-column: 1; grid-row: 1 / 4;
  border-top: none; border-right: 1px solid var(--border);
  overflow-y: auto; min-height: 0;
}
.cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .chat-messages-wrap { grid-column: 2; grid-row: 2; min-height: 0; overflow-y: auto; }
.cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .chat-composer { grid-column: 2; grid-row: 3; margin-top: 0; }
@media (max-width: 900px) {
  .cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr auto; }
  .cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .content-block-head { grid-column: 1; grid-row: 1; }
  .cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .sign-block-wrap { grid-column: 1; grid-row: 2; border-right: none; border-bottom: 1px solid var(--border); }
  .cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .chat-messages-wrap { grid-column: 1; grid-row: 3; }
  .cabinet-client .content .app-main-grid .app-center > #chat-anchor.sign-split > .chat-composer { grid-column: 1; grid-row: 4; }
}
/* Одиночная карточка банка в чате банка (selBankId>0) — над лентой, стопкой */
.cabinet-client #chat-anchor:not(.sign-split) > .sign-block-wrap { order: -1; border-top: none; border-bottom: 1px solid var(--border); }
.cabinet-client #chat-anchor:not(.sign-split):has(.sign-block-wrap) { display: flex; flex-direction: column; min-height: 0; }
.cabinet-client #chat-anchor:not(.sign-split) > .chat-messages-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.cabinet-client #chat-anchor:not(.sign-split) > .chat-composer { flex-shrink: 0; }

/* № заявки слева от «Назад» в верхней панели */
.tb-appno { display: inline-flex; align-items: center; font-size: 13px; font-weight: 800; color: #0f1f35; margin-right: 4px; }

/* ── Вложение файла в чат + цена в строке счёта ── */
.composer-attach { flex-shrink: 0; width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 10px; background: #fff; cursor: pointer; font-size: 17px; }
.composer-attach:hover { background: #f4f8ff; border-color: #c7dbff; }
.composer-attach-name { font-size: 11px; color: #5a6b82; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bubble-attach { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 12.5px; font-weight: 700; color: #1a5fd4; text-decoration: none; background: #eef4ff; border: 1px solid #c7dbff; border-radius: 8px; padding: 5px 10px; }
.bubble-attach:hover { background: #e2ecff; }
.boc-doc-price { margin-left: auto; margin-right: 12px; font-size: 13px; font-weight: 800; color: var(--accent); white-space: nowrap; }

/* ═══════════════════════════════════════════════════════════════
   ИКОНКИ БАНКОВ (svg-логотипы вместо 🏦 + текст)
   ═══════════════════════════════════════════════════════════════ */
.bank-logo-img{display:inline-block;height:30px;width:auto;max-width:118px;object-fit:contain;vertical-align:middle;border-radius:5px}
.bank-logo-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}
/* В плитках верхней полосы */
.btt-icon .bank-logo-img{height:30px;max-width:120px}
/* В строках таблицы предложений */
.bt-bank .bank-logo-img{width:168px;height:56px;max-width:none;object-fit:contain}
/* Карточка-спикер банка (раскрытие строки в списках) */
.bank-logo-lg{height:44px;max-width:170px}

/* ═══════════════════════════════════════════════════════════════
   КРУТИЛКА (спиннер) рядом со статусом «Рассмотрение»
   ═══════════════════════════════════════════════════════════════ */
.status-spin{display:inline-block;width:13px;height:13px;margin-right:6px;vertical-align:-2px;
  border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;border-radius:50%;
  animation:statusSpin .8s linear infinite}
.status-spin-r{margin-right:0;margin-left:6px}
@keyframes statusSpin{to{transform:rotate(360deg)}}
/* Внутри пилюли статуса: крутилка занимает место точки-маркера.
   Убираем собственные отступы (расстояние даёт gap самой пилюли),
   прячем стандартную точку ::before, чтобы ничего не наезжало. */
.bos-pill .status-spin{width:11px;height:11px;margin:0;vertical-align:baseline;flex-shrink:0;
  border-color:currentColor;border-top-color:transparent;opacity:.85}
.bos-pill:has(.status-spin)::before{display:none}
/* Крутилка справа от текста статуса на экранах внутри заявки */
.stage-status-spin{display:inline-block;width:16px;height:16px;margin-left:9px;vertical-align:-3px;
  border:2.5px solid rgba(217,154,6,.28);border-top-color:#d99a06;border-radius:50%;
  animation:statusSpin .8s linear infinite}

/* ═══════════════════════════════════════════════════════════════
   РАСКРЫВАЮЩАЯСЯ СТРОКА СО СПИКЕРАМИ БАНКОВ (списки заявок)
   ═══════════════════════════════════════════════════════════════ */
.data-row.row-expandable{cursor:pointer}
.row-open-cell{width:1%;white-space:nowrap;text-align:right}
.row-open-btn{display:inline-block;padding:7px 16px;border-radius:9px;font-size:13px;font-weight:600;
  border:none;color:#fff;background:var(--accent,#2563eb);text-decoration:none;
  white-space:nowrap;transition:filter .15s}
.row-open-btn:hover{filter:brightness(1.08)}
.bank-speakers-row > td{padding:0!important;background:#f5f8fc;border-bottom:1px solid #e3ecf8}
.bank-speakers-wrap{display:none;padding:14px 18px 18px}
.bank-speakers-row.is-open .bank-speakers-wrap{display:block;animation:speakersReveal .22s ease}
@keyframes speakersReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.bank-speakers-title{font-size:13px;font-weight:600;color:#5b6b82;margin-bottom:12px}
/* Общая рамка вокруг всех карточек-спикеров */
.bank-speakers-grid{background:#fff;border:1px solid #e0e8f3;border-radius:12px;padding:12px;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.bank-speaker-card{min-width:0;border:1px solid #e6edf6;border-radius:12px;padding:12px}
.bank-speaker-top{display:flex;align-items:center;gap:9px;margin-bottom:12px;min-height:38px}
.bank-speaker-av{flex:0 0 auto;width:34px;height:34px;border-radius:8px;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;line-height:1}
/* Логотип банка в карточке-спикере — единая высота у всех */
.bank-speaker-logo{flex:0 0 auto;display:inline-flex;align-items:center}
.bank-speaker-logo .bank-logo-img{width:102px;height:34px;max-width:none;object-fit:contain}
.bank-speaker-name{font-size:13px;font-weight:600;color:#132d54;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bank-speaker-meta{display:flex;flex-direction:column;gap:8px}
.bank-speaker-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.bank-speaker-row .bsl{font-size:11px;color:#9aa8bd;font-weight:400}
.bank-speaker-row .bsv{font-size:13px;font-weight:600;color:#243b5e;display:inline-flex;align-items:center}
.bank-speaker-row .bsv .bos-pill{font-size:11px;font-weight:600;padding:3px 8px}
.bank-speaker-empty{color:#9aa8bd;font-size:13px;padding:12px 2px}

/* ═══════════════════════════════════════════════════════════════
   Контейнеры логотипов: когда внутри svg-логотип, убираем
   «эмодзи-рамку» (фон/границу/фикс.размер), логотип самодостаточен.
   ═══════════════════════════════════════════════════════════════ */
.boc-bank-icon:has(.bank-logo-img){width:auto;height:auto;background:none;border:none;border-radius:0}
.cabinet-client .bank-offer-card .boc-bank-icon:has(.bank-logo-img){width:auto;height:auto}
.sign-bank-ic:has(.bank-logo-img){width:auto;height:auto;background:none;border-radius:0}
.bsc-bank-icon:has(.bank-logo-img),.btt-icon:has(.bank-logo-img){font-size:0}

/* ═══════════════════════════════════════════════════════════════
   СТРОКИ ПРЕДЛОЖЕНИЙ БАНКОВ (карточки внутри заявки)
   Слева логотип, затем один блок с данными в линию, статус, кнопки.
   ═══════════════════════════════════════════════════════════════ */
.bank-offer-list{display:flex;flex-direction:column;gap:10px}
/* ── Табличная сетка предложений: шапка + строки, колонки выровнены ── */
:root{
  --bog-cols: 180px 132px minmax(120px,1.4fr) minmax(150px,1fr) 104px 132px 300px;
}
.bank-offer-grid{display:flex;flex-direction:column;gap:8px}
.bog-head,.bog-row{display:grid;grid-template-columns:var(--bog-cols);align-items:center;gap:12px}
.bog-head{padding:2px 14px 6px;font-size:11px;font-weight:700;color:#9aa8bd;text-transform:uppercase;letter-spacing:.03em}
/* Заголовки колонок — по центру каждой колонки */
.bog-head > div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.bog-h-logo{text-align:center}
.bog-row{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:12px 14px;
  box-shadow:0 1px 3px rgba(21,60,120,.04)}
.bank-offer-row-rejected{opacity:1}
/* Логотип — единый размер у всех банков (×1.5 от прежнего) */
.bog-logo{display:flex;align-items:center;justify-content:center;min-width:0}
.bog-logo .bank-logo-img{width:168px;height:56px;max-width:none;object-fit:contain}
.bog-logo .bt-bank-name{font-size:14px;font-weight:700;color:#132d54;text-align:center}
/* Ячейки-значения — единый размер шрифта везде, по центру колонки */
.bog-cell{font-size:14px;font-weight:600;color:#243b5e;min-width:0;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bog-sum{font-weight:700;color:#132d54;overflow:visible}
.bog-notice{color:#243b5e}
.bog-status{display:flex;justify-content:center;overflow:visible}
.bog-status .bos-pill{font-size:13px}
/* Кнопки: «Открыть заявку» по центру оставшегося поля, «Чат с банком» справа */
.bog-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}
.bog-actions .bt-btn{white-space:nowrap;font-size:13px}
.bog-actions .bt-btn-primary{justify-self:center}
/* Если «Открыть заявку» нет — «Чат с банком» остаётся справа */
.bog-actions .bt-btn-ghost{grid-column:2}
/* Планшет: убираем шапку, значения с подписями в строке */
@media (max-width:1180px){
  :root{ --bog-cols: 150px 1fr 108px; }
  .bog-head{display:none}
  .bog-row{grid-template-columns:150px 1fr auto;gap:10px 14px}
  .bog-logo{grid-row:1 / span 2}
  .bog-cell{white-space:normal;text-align:left}
  .bog-cell::before{content:attr(data-label);display:block;font-size:10px;font-weight:700;color:#9aa8bd;text-transform:uppercase;margin-bottom:2px}
  .bog-status::before{content:none}
  .bog-status{grid-column:3;justify-content:flex-end}
  .bog-actions{grid-column:2 / -1;grid-template-columns:auto auto;justify-content:flex-end}
}

/* ═══════════════════════════════════════════════════════════════
   ЕДИНАЯ ПАНЕЛЬ ДОКУМЕНТОВ (вариант 3) — этап «Гарантия на выпуске»
   ═══════════════════════════════════════════════════════════════ */
.gv-panel{background:#fff;border:1px solid #e6edf6;border-radius:12px;overflow:hidden}
.gv-row{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #eef2f8}
.gv-row:last-child{border-bottom:none}
.gv-ic{font-size:19px;line-height:1;flex-shrink:0;width:22px;text-align:center}
.gv-row-main{flex:1;min-width:0}
.gv-row-title{font-size:14px;font-weight:600;color:#0f1f35;line-height:1.3}
.gv-row-sub{font-size:12px;color:#94a3b8;margin-top:2px}
.gv-row-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;width:168px}
/* Кнопки — единый стиль и размер: основная синяя сверху, «Скачать» снизу */
.gv-btn{display:block;width:100%;box-sizing:border-box;text-decoration:none;font-size:13px;font-weight:700;padding:9px 16px;border-radius:9px;white-space:nowrap;transition:all .15s;text-align:center}
.gv-btn-primary{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 3px 10px rgba(37,99,235,.18)}
.gv-btn-primary:hover{filter:brightness(1.06)}
.gv-btn-ghost{background:#fff;color:#1a5fd4;border:1px solid #c7dbff}
.gv-btn-ghost:hover{background:#f4f8ff}
/* Счёт от банка — сумма встроена в подпись, раскладка как у всех строк */
.gv-row-invoice{background:#f6f9fe}
.gv-inv-sum-inline{margin-top:4px;font-size:13px}
.gv-inv-sum-l{color:#8a9bb2}
.gv-inv-sum-v{font-weight:800;color:#1a5fd4;font-variant-numeric:tabular-nums;font-size:15px}
.gv-empty{padding:16px 18px;color:#94a3b8;font-size:13px}
@media (max-width:640px){
  .gv-row{flex-wrap:wrap}
  .gv-row-actions{width:100%;flex-direction:row}
}

/* ═══════════════════════════════════════════════════════════════
   Этап «Подписание документов» у клиента: чат скрыт,
   блок подписаний занимает всю ширину.
   ═══════════════════════════════════════════════════════════════ */
.cabinet-client #chat-anchor.sign-only{display:block}
.cabinet-client #chat-anchor.sign-only > .sign-block-wrap{
  width:100%;border-right:none;border-top:1px solid var(--border);padding:16px 20px}
.cabinet-client #chat-anchor.sign-only > .content-block-head{width:100%}
/* Внутренние строки подписания — во всю ширину */
.cabinet-client #chat-anchor.sign-only .sign-bank{width:100%}
.cabinet-client #chat-anchor.sign-only .sign-bank-row{width:100%}

/* ═══════════════════════════════════════════════════════════════
   ЭТАП «ПОДПИСАНИЕ ДОКУМЕНТОВ» — правки
   ═══════════════════════════════════════════════════════════════ */
/* Логотип банка — как на этапе «Гарантия на выпуске» (высота 56px) */
.sign-bank-ic .bank-logo-img{width:168px;height:56px;max-width:none;object-fit:contain}
.sign-bank-id{min-width:190px}
/* Пустой блок статуса не занимает место */
.sign-bank-status:empty{display:none;flex:0 0 0}
/* Инструкция — крупнее, во всю ширину строки */
.sign-bank-instr{padding:14px 18px}
.sign-bank-instr-text{font-size:16px;line-height:1.55;font-weight:600;color:#0f1f35;width:100%;display:block}
.sign-bank-instr-cta{font-weight:700;color:#0f1f35}
/* Оранжевая кнопка «Проблемы с подписанием» — в стиле «Отказаться от подписания» */
.btn-sign-help{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;border-radius:10px;cursor:pointer;
  font-size:13px;font-weight:700;white-space:nowrap;
  background:#fff;color:#c2710c;border:1.5px solid #f6c98a;
  transition:background .15s,border-color .15s;
}
.btn-sign-help:hover{background:#fff8ef;border-color:#f0a94a}

/* Кнопки на этапе подписания — одинаковая ширина у всех */
.sign-bank-actions .btn-sign-done,
.sign-bank-actions .btn-sign-decline,
.sign-bank-actions .btn-sign-help,
.sign-bank-actions .btn-sign-chat{
  min-width:232px;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;
  text-align:center;white-space:nowrap;
}
.sign-bank-actions form{display:contents}

/* Аккуратное уведомление: запрос помощи с подписанием отправлен */
.sign-help-note{
  display:flex;align-items:center;gap:10px;
  background:#fff8ef;border:1px solid #f6c98a;border-radius:11px;
  padding:10px 14px;margin:0 0 12px;
  animation:shnIn .25s ease;
}
@keyframes shnIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.sign-help-note .shn-ic{font-size:16px;line-height:1;flex-shrink:0}
.sign-help-note .shn-txt{flex:1;font-size:13px;font-weight:600;color:#8a5a12;line-height:1.4}
.sign-help-note .shn-x{
  flex-shrink:0;width:22px;height:22px;border:none;border-radius:6px;cursor:pointer;
  background:transparent;color:#b5813a;font-size:12px;font-weight:800;line-height:1;
}
.sign-help-note .shn-x:hover{background:#f6e3c9;color:#8a5a12}

/* ═══════════════════════════════════════════════════════════════
   МОИ ФИНАНСЫ — сводка, начисления по сделкам, вывод, история
   ═══════════════════════════════════════════════════════════════ */
.wf-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.wf-stat{background:#fff;border:1px solid #e6edf6;border-radius:12px;padding:12px 14px}
.wf-stat-l{font-size:11px;font-weight:600;color:#9aa8bd;text-transform:uppercase;letter-spacing:.03em}
.wf-stat-v{font-size:19px;font-weight:800;color:#132d54;margin-top:4px;font-variant-numeric:tabular-nums}
.wf-green{color:#0f7b3e}
.wf-amber{color:#a16207}
.wf-muted{color:#9aa8bd}
.wf-r{text-align:right}

/* Начисления по сделкам */
.wf-earn-head,.wf-earn-row{
  display:grid;grid-template-columns:150px 1fr 110px 150px;gap:12px;align-items:center;
  padding:11px 18px;
}
.wf-earn-head{font-size:11px;font-weight:700;color:#9aa8bd;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #eef2f8}
.wf-earn-row{border-bottom:1px solid #f3f6fa;font-size:13.5px;color:#243b5e}
.wf-earn-row:last-child{border-bottom:none}
.wf-earn-app a{color:#1a5fd4;font-weight:700;text-decoration:none}
.wf-earn-app a:hover{text-decoration:underline}
.wf-earn-comp{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-earn-date{color:#8a9bb2;font-size:12.5px}
.wf-earn-sum{font-weight:800;color:#0f7b3e;font-variant-numeric:tabular-nums}

/* Вывод средств */
.wf-withdraw{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.wf-wd-field{display:flex;flex-direction:column;gap:5px;flex:0 0 200px}
.wf-wd-grow{flex:1 1 280px}
.wf-hint{margin-top:10px;font-size:12.5px;color:#8a9bb2}
.wf-hint strong{color:#132d54}

/* История — компактная */
.wf-hist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wf-toggle{border:1px solid #c7dbff;background:#fff;color:#1a5fd4;font-size:12px;font-weight:700;
  padding:6px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}
.wf-toggle:hover{background:#f4f8ff}
.wf-hist-row{
  display:grid;grid-template-columns:130px 1fr 170px 140px;gap:12px;align-items:center;
  padding:9px 18px;border-bottom:1px solid #f3f6fa;font-size:13px;
}
.wf-hist-row:last-child{border-bottom:none}
.wf-hist-date{color:#8a9bb2;font-size:12.5px;white-space:nowrap}
.wf-hist-note{color:#243b5e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-hist-badge{justify-self:start;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap}
.wf-b-green{background:#eafaf1;color:#0f7b3e;border:1px solid #a7e8c5}
.wf-b-amber{background:#fff8e8;color:#a16207;border:1px solid #f3d690}
.wf-b-red{background:#ffeeee;color:#bf2d2d;border:1px solid #f5b8b8}
.wf-b-slate{background:#f4f6fa;color:#64748b;border:1px solid #e3eaf3}
.wf-hist-sum{text-align:right;font-weight:800;color:#243b5e;font-variant-numeric:tabular-nums;white-space:nowrap}
.wf-hist-mgr{padding:0 18px 9px 148px;font-size:12px;color:#8a5a12;background:#fffdf8}
/* Свернутая история: показываем первые 5 строк */
.wf-hidden{display:none}
#wfHistList.wf-expanded .wf-hidden{display:grid}
#wfHistList.wf-expanded .wf-hist-mgr.wf-hidden{display:block}

@media(max-width:1000px){
  .wf-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wf-earn-head,.wf-earn-row{grid-template-columns:1fr 1fr;row-gap:4px}
  .wf-earn-head{display:none}
  .wf-hist-row{grid-template-columns:1fr auto}
  .wf-hist-date,.wf-hist-badge{grid-column:1}
  .wf-hist-mgr{padding-left:18px}
}

/* Мои финансы: две колонки 50/50 (альбомно) */
.wf-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wf-col{min-width:0}
.wf-col .wallet-client-card-body{min-height:0}
/* Список запросов на вывод (в левой колонке) */
.wf-wd-list{margin-top:16px;border-top:1px solid #eef2f8;padding-top:12px}
.wf-wd-list-title{font-size:11px;font-weight:700;color:#9aa8bd;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.wf-wd-item{display:grid;grid-template-columns:90px 1fr auto;gap:10px;align-items:center;
  padding:7px 0;border-bottom:1px solid #f3f6fa;font-size:13px}
.wf-wd-item:last-child{border-bottom:none}
.wf-wd-date{color:#8a9bb2;font-size:12.5px;white-space:nowrap}
.wf-wd-sum{font-weight:700;color:#243b5e;font-variant-numeric:tabular-nums}
.wf-wd-mgr{padding:0 0 7px 100px;font-size:12px;color:#8a5a12}
/* Начисления: прокрутка задана ниже вместе с ползунком */
@media(max-width:1100px){
  .wf-split{grid-template-columns:1fr}
}

/* Логотип в сайдбаре — кликабельный, ведёт в «Все заявки» */
a.brand-logo{display:flex;text-decoration:none;cursor:pointer;transition:opacity .15s,transform .15s}
a.brand-logo:hover{opacity:.88}
a.brand-logo:active{transform:scale(.985)}

/* Мои финансы: кнопка «Запросить вывод» в шапке карточки */
.wf-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.wf-head-btn{flex-shrink:0}
/* Форма без кнопки — поля в ряд */
.wf-withdraw{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}

/* Прокручиваемые списки: видимый ползунок + нижняя граница карточки */
.wf-wd-scroll,.wf-earn-scroll{
  max-height:320px;overflow-y:auto;overscroll-behavior:contain;
  border-bottom:1px solid #eef2f8;
}
.wf-wd-scroll{max-height:280px}
/* Ползунок */
.wf-wd-scroll::-webkit-scrollbar,.wf-earn-scroll::-webkit-scrollbar{width:8px}
.wf-wd-scroll::-webkit-scrollbar-track,.wf-earn-scroll::-webkit-scrollbar-track{background:#f4f7fb;border-radius:8px}
.wf-wd-scroll::-webkit-scrollbar-thumb,.wf-earn-scroll::-webkit-scrollbar-thumb{background:#c7d5e6;border-radius:8px}
.wf-wd-scroll::-webkit-scrollbar-thumb:hover,.wf-earn-scroll::-webkit-scrollbar-thumb:hover{background:#a9bdd6}
.wf-wd-scroll,.wf-earn-scroll{scrollbar-width:thin;scrollbar-color:#c7d5e6 #f4f7fb}

/* Обе карточки одинаковой высоты, содержимое не «вываливается» */
.wf-split{align-items:stretch}
.wf-col{display:flex;flex-direction:column}
.wf-col .wallet-client-card-body{flex:1;display:flex;flex-direction:column;min-height:0}
.wf-wd-list{display:flex;flex-direction:column;min-height:0}
/* Список начислений занимает оставшуюся высоту правой карточки */
.wf-col .wf-earn-scroll{flex:1;min-height:0}
.wf-col .wf-wd-scroll{flex:1;min-height:0}
/* Компактная кнопка в шапке карточки «Вывод средств» */
.wf-head-btn{height:42px;padding:0 20px;font-size:14px;border-radius:12px;gap:8px}

/* ═══════════════════════════════════════════════════════════════
   «Сначала добавьте компанию» + пустой список компаний
   ═══════════════════════════════════════════════════════════════ */
.nc-panel{max-width:640px;margin:0 auto}
.nc-wrap{text-align:center;padding:26px 20px}
.nc-ic{font-size:46px;line-height:1;margin-bottom:12px}
.nc-title{font-size:20px;font-weight:800;color:#0f1f35;margin:0 0 8px}
.nc-text{font-size:14px;line-height:1.6;color:#5b6b82;margin:0 auto 20px;max-width:460px}
.nc-text b{color:#0f1f35}
.nc-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.nc-btn-main{box-shadow:0 6px 18px rgba(37,99,235,.22)}
.nc-hint{margin-top:14px;font-size:12.5px;color:#9aa8bd}

.mc-empty{text-align:center;padding:30px 18px}
.mc-empty-ic{font-size:40px;line-height:1;margin-bottom:10px;opacity:.7}
.mc-empty-t{font-size:16px;font-weight:800;color:#0f1f35;margin-bottom:5px}
.mc-empty-s{font-size:13.5px;color:#7b93b0;margin-bottom:16px}
