@import url("/_shared/d3-fonts.css"); /* D3 11.11.2026: Space Grotesk + Onest */
/* ============================================================================
   Trust Infinity — общая дизайн-система
   Канонические токены взяты из самой свежей и цельной части продукта —
   Dashboard (1.Страница логин/app/home-style.css) и модуля «Соцсети».
   Подключать ДО собственного css модуля: модуль по-прежнему может
   переопределять точечные правила, но общие переменные, шрифт, toast
   и навигационная панель становятся едиными для всей системы.
   ============================================================================ */

:root {
  /* ---- Поверхности (графит partnertrust.pl) ---- */
  --ti-bg-base:        #24262b; /* D3 11.11.2026 */
  --ti-bg-surface:     #31343b;
  --ti-bg-raised:      #383b43;
  --ti-bg-hover:       #3d4048;

  /* ---- Окантовки / разделители ---- */
  --ti-rim:            rgba(255,255,255,0.09);
  --ti-rim-mid:        rgba(255,255,255,0.13);
  --ti-rim-bright:     rgba(255,255,255,0.17);

  /* ---- Текст ---- */
  --ti-text-1:         #ffffff;
  --ti-text-2:         #e6e7ea;
  --ti-text-3:         #b9bbc1;
  --ti-text-inverse:   #1d1f23;

  --ti-silver:         rgba(255,255,255,0.55);
  --ti-silver-bright:  rgba(255,255,255,0.75);

  /* ---- Акцент: синий сайта ---- */
  --ti-accent:         #ff6200;
  --ti-accent-hover:   #ffb37a;
  --ti-accent-soft:    rgba(255,98,0,0.14);
  --ti-accent-strong:  #e65100;

  /* ---- Оранжевый сайта: только главная кнопка экрана и важные цифры ---- */
  --tp-orange:         #ff6200;
  --tp-orange-dark:    #e65100;

  /* ---- Статусы («ок» на сайте — синий) ---- */
  --ti-success:        #34d27b;
  --ti-success-bright: #34d27b;
  --ti-danger:         #e5534b;
  --ti-danger-bright:  #ff6b61;
  --ti-warning:        #ffb37a;
  --ti-info:           #ffb37a;

  /* ---- Радиусы ---- */
  --ti-r-sm:   6px;
  --ti-r-btn:  9px;
  --ti-r-icon: 9px;
  --ti-r-md:   9px;
  --ti-r-card: 16px;
  --ti-r-lg:   16px;

  /* ---- Тени ---- */
  --ti-shadow-sm: none;
  --ti-shadow-md: 0 12px 28px -14px rgba(0,0,0,.55);
  --ti-shadow-lg: 0 24px 48px -20px rgba(0,0,0,.6);

  /* ---- Типографика: заголовки Space Grotesk, текст системный (как на сайте) ---- */
  --ti-font-display: 'Space Grotesk', 'Onest', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --ti-font-body:    'Space Grotesk', 'Onest', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  /* ---- Анимации ---- */
  --ti-ease:     cubic-bezier(.4,0,.2,1);
  --ti-ease-out: cubic-bezier(.16,1,.3,1);

  /* ---- Служебное ---- */
  --ti-navbar-h: 44px;
  --ti-z-navbar: 9000;
  --ti-z-toast:  9500;
}

/* Фокус-стиль — единый для всей системы (доступность) */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--ti-accent);
  outline-offset: 2px;
}

/* ============================================================================
   Верхняя панель навигации (внедряется скриптом /_shared/nav.js)
   ============================================================================ */
#ti-navbar {
  position: sticky;
  top: 0;
  z-index: var(--ti-z-navbar);
  height: var(--ti-navbar-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  /* backdrop-filter прибрано: цей бар (position:sticky) присутній АБСОЛЮТНО
     на кожній сторінці системи (внедряється nav.js) — браузер мусив
     безперервно перераховувати розмиття фону під час будь-якого скролу на
     будь-якій сторінці, весь час. Фон і так майже непрозорий (92%), тож
     суцільний колір виглядає практично ідентично, без цієї ціни. */
  background: rgba(18,19,22,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ti-rim);
  font-family: var(--ti-font-body);
  box-sizing: border-box;
}

#ti-navbar * { box-sizing: border-box; }

/* Bar wstrzykiwany przez nav.js jest PIERWSZYM elementem <body> na każdej
   stronie modułu — łącznie z tymi, które ktoś drukuje (protokoły, umowy).
   Żaden z lokalnych arkuszy modułów o nim nie wie i nie może go ukryć (nie ich
   element), więc bez tej reguły zajmuje całą wysokość pierwszej strony
   wydruku, spychając właściwy dokument na drugą. */
@media print {
  #ti-navbar { display: none !important; }
}

.ti-nav__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ti-text-1);
  text-decoration: none;
  font-family: var(--ti-font-display);
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: .2px;
  flex-shrink: 0;
}
.ti-nav__brand:hover { color: var(--ti-accent-hover); }
.ti-nav__brand-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--ti-accent);
  box-shadow: 0 0 8px var(--ti-accent);
  flex-shrink: 0;
}
.ti-nav__current {
  color: var(--ti-text-3);
  font-size: 12.5px;
  padding-left: 10px;
  margin-left: 2px;
  border-left: 1px solid var(--ti-rim-mid);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ti-nav__spacer { flex: 1 1 auto; min-width: 8px; }

.ti-nav__menu-wrap { position: relative; }

.ti-nav__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--ti-rim);
  color: var(--ti-text-2);
  border-radius: var(--ti-r-btn);
  padding: 6px 10px;
  font-size: 12.5px;
  font-family: var(--ti-font-body);
  cursor: pointer;
  transition: background .15s var(--ti-ease), border-color .15s var(--ti-ease), color .15s var(--ti-ease);
}
.ti-nav__toggle:hover { background: rgba(255,255,255,0.09); color: var(--ti-text-1); border-color: var(--ti-rim-bright); }
.ti-nav__toggle svg { width: 13px; height: 13px; flex-shrink: 0; }

.ti-nav__dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 260px;
  max-height: 70vh;
  overflow-y: auto;
  background: var(--ti-bg-raised);
  border: 1px solid var(--ti-rim-mid);
  border-radius: var(--ti-r-card);
  box-shadow: var(--ti-shadow-lg);
  padding: 6px;
  display: none;
  z-index: var(--ti-z-navbar);
}
.ti-nav__dropdown.is-open { display: block; animation: ti-nav-pop .15s var(--ti-ease-out); }
@keyframes ti-nav-pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* FIX (аудит 8.3): группировка модулей по категориям — та же группировка,
   что уже используется на /home (module-card eyebrow: Marketing/Księgowość/
   Serwis/Klienci/Pozostałe/Komunikacja/IT), перенесённая в постоянный
   dropdown, чтобы не нужно было возвращаться на /home ради навигации. */
.ti-nav__group-label {
  padding: 10px 10px 4px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--ti-text-3, var(--ti-text-2));
  opacity: .75;
}
.ti-nav__group-label:first-of-type { padding-top: 6px; }

.ti-nav__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--ti-r-sm);
  color: var(--ti-text-2);
  text-decoration: none;
  font-size: 13px;
  white-space: nowrap;
}
.ti-nav__item:hover { background: var(--ti-bg-hover); color: var(--ti-text-1); }
.ti-nav__item.is-current { color: var(--ti-text-1); background: rgba(255,255,255,0.05); }
.ti-nav__item-icon { width: 15px; height: 15px; flex-shrink: 0; opacity: .85; }

.ti-nav__logout {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--ti-rim);
  color: var(--ti-text-2);
  border-radius: var(--ti-r-btn);
  padding: 6px 10px;
  font-size: 12.5px;
  font-family: var(--ti-font-body);
  cursor: pointer;
  transition: color .15s var(--ti-ease), border-color .15s var(--ti-ease);
}
.ti-nav__logout:hover { color: var(--ti-danger-bright); border-color: var(--ti-danger); }

@media (max-width: 640px) {
  .ti-nav__current { display: none; }
  #ti-navbar { padding: 0 10px; gap: 8px; }
}

/* ============================================================================
   Поля ввода на телефоне — единое правило для всей системы.
   Почти во всех модулях текст в input/textarea/select задан 12-14px. Любое
   поле ввода мельче 16px заставляет мобильный Safari (iOS) автоматически
   зумить всю страницу при фокусе на поле и отменять зум при уходе — рывок,
   который сбивает менеджера при каждом заполнении формы. Раньше это было
   исправлено точечно только в клиентском портале суб-аренды
   (portal.css: textarea{font-size:16px}); здесь — то же самое сразу для
   всей системы. !important нужен, потому что у модульных классов выше
   специфичность, чем у голых тегов — иначе правило не победит их.
   ============================================================================ */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  textarea,
  select {
    font-size: 16px !important;
  }
}

/* ============================================================================
   Toast-уведомления (единый API window.showToast(type, title, message, duration))
   ============================================================================ */
.toast-container {
  position: fixed;
  top: calc(var(--ti-navbar-h) + 14px);
  right: 18px;
  z-index: var(--ti-z-toast);
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 380px;
  pointer-events: none;
}

.toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--ti-bg-raised);
  border: 1px solid var(--ti-rim-mid);
  border-radius: var(--ti-r-card);
  padding: 14px 14px;
  box-shadow: var(--ti-shadow-md);
  border-left: 3px solid var(--ti-info);
  animation: ti-toast-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
  font-family: var(--ti-font-body);
}
.toast.toast-hide { animation: ti-toast-out 0.22s ease forwards; }

@keyframes ti-toast-in {
  from { opacity: 0; transform: translateX(24px) scale(0.96); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes ti-toast-out {
  from { opacity: 1; transform: translateX(0) scale(1); max-height: 200px; margin-bottom: 0; }
  to   { opacity: 0; transform: translateX(24px) scale(0.96); max-height: 0; margin-bottom: -10px; }
}

.toast-success { border-left-color: var(--ti-success-bright); }
.toast-error   { border-left-color: var(--ti-danger-bright); }
.toast-warning { border-left-color: var(--ti-warning); }
.toast-info    { border-left-color: var(--ti-info); }

.toast-icon {
  width: 30px; height: 30px; border-radius: var(--ti-r-icon);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; flex-shrink: 0; color: #fff;
}
.toast-success .toast-icon { background: linear-gradient(135deg, var(--ti-success-bright) 0%, var(--ti-success) 100%); }
.toast-error   .toast-icon { background: linear-gradient(135deg, var(--ti-danger-bright) 0%, var(--ti-danger) 100%); }
.toast-warning .toast-icon { background: linear-gradient(135deg, #e5b25a 0%, var(--ti-warning) 100%); }
.toast-info    .toast-icon { background: linear-gradient(135deg, var(--ti-accent-hover) 0%, var(--ti-accent-strong) 100%); }

.toast-body { flex: 1; min-width: 0; }
.toast-title { font-size: 13px; font-weight: 700; color: var(--ti-text-1); margin-bottom: 2px; letter-spacing: -0.1px; }
.toast-message { font-size: 12.5px; color: var(--ti-text-2); line-height: 1.45; }

.toast-close {
  background: none; border: none; color: var(--ti-text-3);
  font-size: 15px; cursor: pointer; line-height: 1; padding: 2px; flex-shrink: 0;
  transition: color 0.15s ease;
}
.toast-close:hover { color: var(--ti-text-1); }

.toast-progress {
  position: absolute; bottom: 0; left: 0; height: 2px;
  background: rgba(255,255,255,0.18);
  animation: ti-toast-progress linear forwards;
}
.toast-success .toast-progress { background: rgba(76,175,125,0.35); }
.toast-error   .toast-progress { background: rgba(229,112,80,0.35); }
.toast-warning .toast-progress { background: rgba(217,164,65,0.35); }

@keyframes ti-toast-progress { from { width: 100%; } to { width: 0%; } }

@media (prefers-reduced-motion: reduce) {
  .toast, .toast.toast-hide, .ti-nav__dropdown.is-open { animation: none; }
}

/* ============================================================================
   Скин partnertrust.pl (23.09.2026) — общий слой для ВСЕХ модулей CRM.
   Только внешний вид: блоки, меню, кнопки и функции не меняются.
   !important нужен: модульные CSS подключаются ПОСЛЕ этого файла и красят те же
   классы. Правила, относящиеся к одному модулю, живут в CSS этого модуля.
   ============================================================================ */
/* Весь слой — только для экрана: печать документов остаётся белой. */
@media screen{
body{font-family:var(--ti-font-body)!important;-webkit-font-smoothing:antialiased}
body :where(h1,h2,h3,h4){font-family:var(--ti-font-display)!important;letter-spacing:-.02em!important}
body :where(input,select,textarea,button){font-family:inherit}
html,body{background:var(--ti-bg-base)}
body *{text-shadow:none!important}
::selection{background:rgba(255,98,0,.45);color:#fff}
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:10px;border:3px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}

/* свечение сверху (как hero-glow сайта) + лёгкое «зерно» */
/* D3 11.11.2026: свечение и «зерно» на body::before/::after убраны (в D3 их нет; псевдоэлементы занимают ленты страниц) */

/* верхняя полоса (nav.js) */
.ti-nav__brand-dot{width:18px;height:18px;border-radius:5px;background:linear-gradient(155deg,#ff6200,#e65100);box-shadow:none}
.ti-nav__toggle,.ti-nav__logout{background:rgba(255,255,255,.075);color:rgba(255,255,255,.8)}

/* главная кнопка экрана — оранжевая кнопка сайта, с бликом при наведении */
.icon-btn.primary,.btn-primary,.btn--primary,.modal-btn-primary{
  background:linear-gradient(160deg,#ff8a00,#ff6200 55%,#ff5200)!important;border-color:transparent!important;color:#1d1f23!important;
  box-shadow:0 6px 18px -6px rgba(255,122,41,.45)!important;position:relative;overflow:hidden}
.icon-btn.primary:hover,.btn-primary:hover,.btn--primary:hover,.modal-btn-primary:hover{filter:brightness(1.06)}
.btn-primary::after,.btn--primary::after,.modal-btn-primary::after,.icon-btn.primary::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s ease;pointer-events:none}
.btn-primary:hover::after,.btn--primary:hover::after,.modal-btn-primary:hover::after,.icon-btn.primary:hover::after{left:130%}

/* нативные контролы (выпадающие списки, календарь, скроллбары) — в тёмном исполнении */
html{color-scheme:dark}
/* select без собственных стилей модуля не должен оставаться белым */
select:not(.protocol-doc select){background-color:var(--ti-bg-surface);color:var(--ti-text-1);border:1px solid var(--ti-rim)}

/* поля ввода — как формы сайта */
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{border-radius:9px}
input:focus,select:focus,textarea:focus{border-color:#ff8a3d!important;box-shadow:0 0 0 3px rgba(255,138,61,.22)!important;outline:none!important}

/* таблицы: шапка как сравнительная таблица сайта */
table:not(.protocol-doc table) thead th{background:rgba(255,255,255,.075)!important;font-size:11px!important;letter-spacing:.05em!important;text-transform:uppercase;color:rgba(255,255,255,.62)!important;font-weight:700!important}
table:not(.protocol-doc table) tbody tr:hover td{background:rgba(255,255,255,.03)}

/* активные вкладки — как .lang-switch сайта */
.nav-tab.active,.nav-subtab.active,.main-nav a.active{background:rgba(255,255,255,.075)!important;color:#fff!important;border:1px solid rgba(255,255,255,.09)!important;box-shadow:none!important}

/* боковые меню: единый каркас во всех модулях */
aside.sidebar,.sidebar{background:#131416!important;border-right:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important}
.sidebar-header,.sidebar__logo,.sidebar-brand{border-bottom:1px solid rgba(255,255,255,.07)!important}
.menu-item,.nav-tab,.sidebar__nav a,.sidebar__nav button{border-radius:9px!important;font-weight:600!important;color:rgba(255,255,255,.66)!important;transition:background .15s,color .15s!important}
.menu-item:hover,.nav-tab:hover,.sidebar__nav a:hover,.sidebar__nav button:hover{background:rgba(255,255,255,.05)!important;color:#fff!important}
.menu-item svg,.nav-tab-icon{opacity:.75}
.menu-item.active,.menu-item.open,.nav-tab.active{background:rgba(255,255,255,.06)!important;color:#fff!important;border:1px solid rgba(255,255,255,.08)!important}
.menu-item.active svg,.menu-item.open svg{color:#ff8a3d;stroke:#ff8a3d;opacity:1}
.nav-group-label,[class*="group-label"],[class*="section-label"]{font-size:10.5px!important;letter-spacing:.1em!important;color:rgba(255,255,255,.4)!important;font-weight:700!important}
.nav-action-btn,.nav-action-history,.nav-action-reports{background:rgba(255,255,255,.045)!important;border:1px solid rgba(255,255,255,.09)!important;color:#fff!important}
.nav-action-btn:hover,.nav-action-history:hover,.nav-action-reports:hover{border-color:rgba(255,255,255,.17)!important}
.nav-subtab.active{position:relative}
.nav-subtab.active::after{content:'';position:absolute;left:-10px;top:50%;width:3px;height:60%;transform:translateY(-50%);border-radius:2px;background:linear-gradient(180deg,#ff8a3d,#ff6200)}

/* шапки контента: тонкая линия, крупный заголовок */
header.header,.content-header,.topbar,.bk-header{background:rgba(23,24,27,.6)!important;backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important}
header.header h1,.content-title,.topbar__title,.bk-header h1{font-family:var(--ti-font-display)!important;font-weight:700!important;letter-spacing:-.025em!important;font-size:26px!important}
.content-header{padding-top:22px!important;padding-bottom:22px!important}

/* вторичные кнопки шапок — как btn-ghost сайта */
.header-right button:not(.icon-btn.primary),.header-buttons button,.header-buttons a{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important;color:#fff!important;border-radius:9px!important;box-shadow:none!important}
.header-right button:not(.icon-btn.primary):hover,.header-buttons button:hover{border-color:#ff6200!important;color:#ffb37a!important}

/* цифры: шрифт заголовков */
.kpi-card :is(.kpi-value,[class*="value"]),[class*="stat-value"],[class*="stat-number"]{font-family:var(--ti-font-display)!important;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi-card{border-radius:12px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important}
.kpi-card.accent{background:rgba(255,255,255,.075)!important;box-shadow:none!important}

/* фирменный синий для ромбиков-маркеров меню */
.sidebar-nav .nav-tab-icon,.nav-action-btn .nav-tab-icon{color:#ff8a3d!important;opacity:.8}
}

/* ============================================================================
   Trust Infinity — фирменный слой v2 (24.09.2026). Только оформление.
   ============================================================================ */
@media screen {
:root{--br-or:#ff6200;--br-blue:#ff6200;--br-blue2:#ff8a3d;--br-line:linear-gradient(90deg,transparent,rgba(255,98,0,.9) 30%,rgba(255,122,41,.9) 70%,transparent);
  --i-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  --i-file:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E");
  --i-scale:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M5 21h14M6 7l-3 7a3 3 0 0 0 6 0zM18 7l-3 7a3 3 0 0 0 6 0zM6 7h12'/%3E%3C/svg%3E");
  --i-folder:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
  --i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  --i-receipt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v20l3-2 3 2 3-2 3 2 3-2 1 1V2l-1 1-3-1-3 2-3-2-3 2z'/%3E%3Cpath d='M8 8h8M8 12h8'/%3E%3C/svg%3E");
  --i-alert:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
  --i-eye:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --i-calc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M8 6h8M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E");
  --i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
  --i-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 20V10M12 20V4M6 20v-6'/%3E%3C/svg%3E");
  --i-inbox:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.5 5.1L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.5-6.9A2 2 0 0 0 16.7 4H7.3a2 2 0 0 0-1.8 1.1z'/%3E%3C/svg%3E");
  --i-bell:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E");
  --i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  --i-gear:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E");
  --i-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

/* ---------- A. Шапка и логотип ---------- */
#ti-navbar{position:sticky}
#ti-navbar::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--br-line);opacity:.55;pointer-events:none}
.ti-nav__brand-dot{width:26px!important;height:26px!important;border-radius:0!important;background:url('/_shared/tp-logo.png') center/contain no-repeat!important;box-shadow:none!important}
.ti-nav__brand{font-size:14.5px!important;gap:10px!important}
.ti-nav__current{font-family:var(--ti-font-display);font-weight:600;color:rgba(255,255,255,.55)!important}

/* логотип-щит в боковых меню вместо плиток «TF» и синих квадратов */
.sidebar-header .logo:not(img){font-size:0!important;background:url('/_shared/tp-logo.png') center/contain no-repeat!important;width:42px!important;height:42px!important;box-shadow:none!important;border-radius:0!important}
.sidebar-header img.logo,.brand-mark,.rf-logo{filter:drop-shadow(0 4px 12px rgba(255,98,0,.35))}
.sidebar-header:has(.logo)>.logo:is(img){background:none!important;box-shadow:none!important;padding:0!important}
.sidebar-header{position:relative}
.sidebar-header::after{content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:1px;background:var(--br-line);opacity:.4}

/* ---------- D. Заголовки страниц ---------- */
header.header h1,.content-header h1,.content-title,.topbar__title,.bk-header h1,.content-header-text h1,.header-left h2,.content-header-text h2{font-size:30px!important;font-weight:700!important;letter-spacing:-.03em!important;line-height:1.1!important;position:relative}
header.header h1::before,.content-header h1::before,.content-header-text h1::before,.bk-header h1::before,.content-title::before,.header-left h2::before,.content-header-text h2::before{content:'';display:block;width:34px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--br-blue),var(--br-blue2));margin-bottom:12px}
.content-header p,.content-header-text p,.header-left p,.bk-subtitle{color:rgba(255,255,255,.5)!important;font-size:13.5px!important}

@media (max-width:640px){header.header h1,.content-header h1,.content-title,.topbar__title,.bk-header h1,.content-header-text h1,.header-left h2,.content-header-text h2{font-size:23px!important}
.kpi-card .value,.kpi-card .kpi-value,.stat-tile .stat-value,.stat-card .stat-value,.bk-tile .v{font-size:26px!important}}

/* подписи разделов как на сайте: синяя черта */
.nav-group-label,.menu-group-label,[class*="section-label"]:not([class*="rf-"]){display:flex!important;align-items:center;gap:8px}
.nav-group-label::before,.menu-group-label::before{content:'';width:14px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--br-blue),var(--br-blue2));flex:none}

/* ---------- B. Единые иконки вместо ромбиков ◆ (Finanse) ---------- */
.sidebar-nav .nav-tab-icon:not(:has(svg)),.nav-action-btn .nav-tab-icon:not(:has(svg)),.header-buttons .nav-tab-icon{font-size:0!important;width:18px!important;height:18px!important;flex:none;display:inline-block;opacity:1!important;
  background:linear-gradient(155deg,#ff8a3d,#ff6200)!important;-webkit-mask:var(--i-plus) center/contain no-repeat;mask:var(--i-plus) center/contain no-repeat}
.sidebar-nav .nav-tab[data-tab=clients] .nav-tab-icon{-webkit-mask-image:var(--i-users);mask-image:var(--i-users)}
.sidebar-nav .nav-tab[data-tab=invoices] .nav-tab-icon{-webkit-mask-image:var(--i-file);mask-image:var(--i-file)}
.sidebar-nav .nav-tab[data-tab=tribunal] .nav-tab-icon{-webkit-mask-image:var(--i-scale);mask-image:var(--i-scale)}
.sidebar-nav .nav-tab[data-tab=documents] .nav-tab-icon{-webkit-mask-image:var(--i-folder);mask-image:var(--i-folder)}
#btn-generate-invoices .nav-tab-icon{-webkit-mask-image:var(--i-receipt);mask-image:var(--i-receipt)}
#btn-single-invoice .nav-tab-icon{-webkit-mask-image:var(--i-plus);mask-image:var(--i-plus)}
#btn-debtors-tab .nav-tab-icon{-webkit-mask-image:var(--i-alert);mask-image:var(--i-alert)}
#btn-billing-watchdog-tab .nav-tab-icon{-webkit-mask-image:var(--i-eye);mask-image:var(--i-eye)}
#btn-fleet-calculator-tab .nav-tab-icon{-webkit-mask-image:var(--i-calc);mask-image:var(--i-calc)}
#btn-history .nav-tab-icon{-webkit-mask-image:var(--i-clock);mask-image:var(--i-clock)}
#btn-reports .nav-tab-icon{-webkit-mask-image:var(--i-chart);mask-image:var(--i-chart)}

#btn-notifications .nav-tab-icon{-webkit-mask-image:var(--i-bell);mask-image:var(--i-bell)}
#btn-actions .nav-tab-icon{-webkit-mask-image:var(--i-check);mask-image:var(--i-check)}
#btn-company-settings .nav-tab-icon{-webkit-mask-image:var(--i-gear);mask-image:var(--i-gear)}

/* ---------- E. Пустые состояния ---------- */
.empty-state,.tw-empty,.pz-messages__empty,.bk-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:rgba(255,255,255,.55)!important;border:1px dashed rgba(255,255,255,.14)!important;border-radius:16px!important;background:rgba(255,255,255,.02)!important;padding:34px 20px!important}
.empty-state:not(:has(svg))::before,.tw-empty:not(:has(svg))::before,.pz-messages__empty::before,.bk-empty-state::before{content:'';width:44px;height:44px;border-radius:14px;background:linear-gradient(155deg,rgba(255,138,61,.9),rgba(255,98,0,.9));-webkit-mask:var(--i-inbox) center/26px no-repeat;mask:var(--i-inbox) center/26px no-repeat;opacity:.9;
  background-color:#ff8a3d}
.empty-state:not(:has(svg))::before,.tw-empty:not(:has(svg))::before{-webkit-mask-size:34px;mask-size:34px}

/* ---------- F. Плитки, карточки, таблицы ---------- */
.kpi-card,.stat-tile,.stat-card,.bk-tile{position:relative;overflow:hidden}
.kpi-card .value,.kpi-card .kpi-value,.stat-tile .stat-value,.stat-card .stat-value,.bk-tile .v{font-size:30px!important;font-weight:700!important;letter-spacing:-.03em!important;line-height:1.1!important}
.kpi-card .label,.stat-tile .stat-label,.stat-card .stat-label,.bk-tile .k{font-size:10.5px!important;letter-spacing:.08em!important;text-transform:uppercase;color:rgba(255,255,255,.5)!important}
.kpi-card::before,.stat-tile::before,.stat-card::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#ff8a3d,#ff6200);opacity:.85}
.card,.panel,.client-profile-card,.module-card,.rt-card,[class$="-card"]:not(.kpi-card):not(.cpc-vehicle-block){transition:transform .25s cubic-bezier(.16,.8,.3,1),box-shadow .25s,border-color .25s}
table thead th{position:sticky;top:0;z-index:1}
table tbody tr{transition:background .12s}
table tbody tr:hover td{background:rgba(255,138,61,.06)!important}

/* пилюли статусов: единая форма */
.badge,.pill,[class*="status-badge"],[class*="badge-status"],.tw-pill{border-radius:999px!important;font-weight:600!important;letter-spacing:.02em}

/* ---------- G. Элементы форм ---------- */
input[type=checkbox],input[type=radio],input[type=range]{accent-color:#ff6200}
select:not([multiple]):not(.protocol-doc select){-webkit-appearance:none;appearance:none;padding-right:34px!important;
  background-image:var(--i-chev)!important;background-color:var(--ti-bg-surface);background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px!important;
  /* стрелка рисуется маской-цветом через градиент ниже */}
select:not([multiple]){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f96ff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important}
input[type=date],input[type=datetime-local],input[type=time]{color-scheme:dark}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8) sepia(1) saturate(4) hue-rotate(190deg);cursor:pointer}
}
