/* Gtnox — светлая серая тема, чистая и спокойная (cursor-like) */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --gx-bg: #f5f6f8;
  --gx-surface: #ffffff;
  --gx-surface-2: #f0f1f4;
  --gx-border: #e4e6ea;
  --gx-border-light: #d5d8de;
  --gx-text: #454a54;
  --gx-text-strong: #1f232b;
  --gx-text-muted: #8b909b;
  --gx-accent: #4c7ef3;
  --gx-accent-hover: #3d6ee0;
  --gx-accent-soft: rgba(76, 126, 243, 0.1);
  --gx-link: #454a54;
  --gx-success: #2f9e63;
  --gx-warn: #b5842a;
  --gx-danger: #d0524f;
  --gx-font: 'Inter', system-ui, -apple-system, sans-serif;
  --gx-mono: 'JetBrains Mono', ui-monospace, monospace;
  --gx-radius: 8px;
  --gx-radius-sm: 6px;
  --gx-input-h: 38px;
  --gx-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --gx-header-h: 3.25rem;
  --gx-header-sticky-top: var(--gx-header-h);
  --gx-dash-sticky-top: calc(var(--gx-header-h) + 0.75rem);
}

/* Всегда резервируем место под вертикальный скроллбар, чтобы страница
   (и хедер) не дёргалась при переходе на вкладки с малым числом позиций. */
html {
  scrollbar-gutter: stable;
  overflow-y: scroll;
}

/* Скроллбар всегда на <html>, поэтому компенсация ширины скроллбара,
   которую Bootstrap навешивает на body при открытии модалки, лишняя и
   вызывает горизонтальный сдвиг (дёрганье). Нейтрализуем её. */
body.modal-open { padding-right: 0 !important; }

body.gtnox-body {
  background: var(--gx-bg);
  color: var(--gx-text);
  font-family: var(--gx-font);
  font-size: 14px;
  line-height: 1.5;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
  padding-top: var(--gx-header-h);
}

.gtnox-body .page-wrapper { flex: 1; }
.gtnox-body .container-xl { max-width: 1400px; }
.gtnox-body .py-4 { padding-top: 1.1rem !important; padding-bottom: 1.1rem !important; }

/* ── Header / footer ─────────────────────────────── */
.gtnox-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1030;
  background: rgba(245, 246, 248, 0.97);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--gx-border);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.gtnox-brand {
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
  color: var(--gx-text-strong) !important;
  text-decoration: none;
}

.gtnox-brand-sub {
  font-size: 0.78rem;
  color: var(--gx-text-muted);
  margin-left: 0.55rem;
}

/* Видимое навигационное меню */
.gtnox-header-bar {
  position: relative;
  flex-wrap: nowrap;
  min-height: 2.75rem;
}
.gtnox-header-actions {
  flex-shrink: 0;
}

/* Language switcher */
.gtnox-lang {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.12rem;
  border: 1px solid var(--gx-border);
  border-radius: 8px;
  background: #fff;
}
.gtnox-lang-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 0.22rem 0.45rem;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--gx-text-muted);
  text-decoration: none;
  line-height: 1.2;
}
.gtnox-lang-btn:hover {
  color: var(--gx-text-strong);
  background: var(--gx-surface-2);
  text-decoration: none;
}
.gtnox-lang-btn.is-active {
  color: #fff;
  background: var(--gx-text-strong);
}
.gtnox-lang--compact .gtnox-lang-btn {
  min-width: 1.7rem;
  padding: 0.18rem 0.35rem;
  font-size: 0.68rem;
}
.kiosk-lang-bar {
  display: flex;
  justify-content: center;
  margin: 0.85rem 0 0;
}

.gtnox-nav {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex: 1 1 auto;
  min-width: 0;
  overflow: visible;
}
.gtnox-nav-items {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.gtnox-nav-more {
  position: relative;
  flex-shrink: 0;
  margin-left: 0.1rem;
}
.gtnox-nav-more-btn {
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}
.gtnox-nav-more-btn::after {
  content: "";
  display: inline-block;
  margin-left: 0.3rem;
  border-left: 0.28rem solid transparent;
  border-right: 0.28rem solid transparent;
  border-top: 0.32rem solid currentColor;
  vertical-align: 0.12rem;
  opacity: 0.7;
}
.gtnox-nav-more-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 1040;
  min-width: 12rem;
  max-width: min(20rem, 80vw);
  max-height: min(70vh, 28rem);
  overflow-y: auto;
  padding: 0.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}
.gtnox-nav-more-menu .gtnox-nav-link {
  display: block;
  width: 100%;
  text-align: left;
}
.gtnox-nav-more-menu .gtnox-nav-sep {
  display: block;
  width: auto;
  height: 1px;
  margin: 0.25rem 0.35rem;
}

/* Бургер — только на узких экранах (см. media-блок ниже) */
.gtnox-burger { display: none; }
.gtnox-burger-bars {
  position: relative;
  display: block;
  width: 1.05rem;
  height: 0.7rem;
}
.gtnox-burger-bars span {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform 0.18s ease, opacity 0.18s ease;
}
.gtnox-burger-bars span:nth-child(1) { top: 0; }
.gtnox-burger-bars span:nth-child(2) { top: 50%; margin-top: -1px; }
.gtnox-burger-bars span:nth-child(3) { bottom: 0; }
.gtnox-burger.is-open .gtnox-burger-bars span:nth-child(1) { transform: translateY(0.34rem) rotate(45deg); }
.gtnox-burger.is-open .gtnox-burger-bars span:nth-child(2) { opacity: 0; }
.gtnox-burger.is-open .gtnox-burger-bars span:nth-child(3) { transform: translateY(-0.34rem) rotate(-45deg); }

.gtnox-header .gtnox-nav-link {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--gx-text);
  text-decoration: none;
  padding: 0.35rem 0.65rem;
  border-radius: var(--gx-radius-sm);
  white-space: nowrap;
}
.gtnox-header .gtnox-nav-link:hover { color: var(--gx-text-strong); background: var(--gx-surface-2); }
.gtnox-header .gtnox-nav-link.active { color: #fff; background: var(--gx-text-strong); }

/* Отделитель между каталогом и блоком компаний */
.gtnox-nav-sep {
  display: inline-block;
  width: 1px;
  height: 1.1rem;
  margin: 0 0.35rem;
  background: var(--gx-border-light);
  flex-shrink: 0;
}
.gtnox-header .gtnox-nav-link-block {
  font-weight: 600;
}

.gtnox-user-pill { font-size: 0.86rem; color: var(--gx-text); }

/* ── Cards / panels ──────────────────────────────── */
.gtnox-card,
.gtnox-panel {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  box-shadow: var(--gx-shadow);
}

.gtnox-panel { display: flex; flex-direction: column; }

.gtnox-card-head,
.gtnox-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.7rem 0.9rem;
  border-bottom: 1px solid var(--gx-border);
  flex-shrink: 0;
}

.gtnox-card-title,
.gtnox-panel-title {
  font-size: 0.82rem;
  font-weight: 600;
  margin: 0;
  color: var(--gx-text-strong);
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.gtnox-card-body { padding: 0.9rem; }

/* Левая колонка дашборда: сплошной фон на всю высоту строки */
.gtnox-dashboard-row {
  align-items: stretch;
}
.gtnox-left-col {
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  padding: 0.7rem;
}
.gtnox-left-rail {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
@media (min-width: 992px) {
  .gtnox-left-col {
    align-self: stretch;
  }
  .gtnox-left-rail {
    position: sticky;
    top: var(--gx-dash-sticky-top);
    max-height: calc(100vh - var(--gx-header-h) - 1.25rem);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
  .gtnox-left-rail > .gtnox-card,
  .gtnox-left-rail > .gtnox-panel {
    margin-bottom: 0 !important;
    box-shadow: var(--gx-shadow);
  }
  .gtnox-left-rail::-webkit-scrollbar { width: 6px; }
  .gtnox-left-rail::-webkit-scrollbar-thumb {
    background: var(--gx-border-light);
    border-radius: 4px;
  }
}

#panel-active .gtnox-panel-head {
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.gtnox-panel-chevron {
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid var(--gx-text-muted);
  border-bottom: 2px solid var(--gx-text-muted);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  flex: 0 0 auto;
  opacity: 0.7;
}
#panel-active.is-collapsed .gtnox-panel-chevron {
  transform: rotate(-45deg);
}
#panel-active.is-collapsed .gtnox-panel-body {
  display: none;
}

.gtnox-back-top {
  position: fixed;
  right: 1.1rem;
  bottom: 1.25rem;
  z-index: 1040;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gx-border);
  border-radius: 999px;
  background: var(--gx-surface);
  color: var(--gx-text-strong);
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.gtnox-back-top:hover {
  border-color: var(--gx-accent);
  color: var(--gx-accent);
}
.gtnox-back-top[hidden] { display: none !important; }

.gtnox-panel-body { overflow-y: auto; padding: 0.7rem; }
/* В обработке: без своего скролла — один скролл у .gtnox-left-rail */
.gtnox-panel-body.scroll-active {
  max-height: none;
  overflow: visible;
}
/* Результаты: скролл страницы (не узкое окошко) */
.gtnox-panel-body.scroll-results {
  max-height: none;
  min-height: 0;
  overflow: visible;
}
.gtnox-panel-body .gtnox-empty { padding: 1.5rem 0.5rem; }

.gtnox-panel-body::-webkit-scrollbar { width: 8px; }
.gtnox-panel-body::-webkit-scrollbar-thumb {
  background: var(--gx-border-light);
  border-radius: 4px;
  border: 2px solid var(--gx-surface);
}

.gtnox-count-badge {
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.08rem 0.42rem;
  border-radius: 20px;
  background: var(--gx-surface-2);
  color: var(--gx-text-muted);
}
.gtnox-panel-head.is-live .gtnox-count-badge { background: var(--gx-accent-soft); color: var(--gx-accent); }

/* ── Forms ───────────────────────────────────────── */
.gtnox-body .form-label {
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gx-text-muted);
  margin-bottom: 0.25rem;
}

.gtnox-body .form-control,
.gtnox-body .form-select {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  color: var(--gx-text-strong);
  border-radius: var(--gx-radius-sm);
  font-size: 13.5px;
  min-height: var(--gx-input-h);
  padding: 0.4rem 0.6rem;
}

.gtnox-body .form-control:focus,
.gtnox-body .form-select:focus {
  border-color: var(--gx-accent);
  box-shadow: 0 0 0 3px var(--gx-accent-soft);
  background: var(--gx-surface);
  color: var(--gx-text-strong);
}

.gtnox-body .form-control::placeholder { color: #aeb3bd; }
.gtnox-body .font-monospace { font-family: var(--gx-mono); font-size: 12.5px; }

/* File input: fixed min-height ломает кнопку «Обзор» в Chrome/Edge */
.gtnox-body input[type="file"].form-control {
  min-height: 0;
  height: auto;
  padding: 0.35rem 0.5rem;
  line-height: 1.35;
}
.gtnox-body input[type="file"].form-control::file-selector-button {
  margin-right: 0.75rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  background: var(--gx-surface-2);
  color: var(--gx-text-strong);
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}
.gtnox-body input[type="file"].form-control::file-selector-button:hover {
  background: var(--gx-border);
}

/* Компании · склады */
.co-page { max-width: 1180px; }
.co-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.co-page-head h1 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--gx-text-strong);
}
.co-page-head .co-meta {
  margin: 0.2rem 0 0;
  font-size: 0.86rem;
  color: var(--gx-text-muted);
}
.co-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 1rem;
  padding: 0.25rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
}
.co-subnav a {
  text-decoration: none;
  color: var(--gx-text);
  font-size: 0.86rem;
  font-weight: 500;
  padding: 0.4rem 0.75rem;
  border-radius: var(--gx-radius-sm);
}
.co-subnav a:hover { background: var(--gx-surface-2); color: var(--gx-text-strong); }
.co-subnav a.is-active {
  background: var(--gx-text-strong);
  color: #fff;
}
.co-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--gx-border);
}
.co-tabs a {
  text-decoration: none;
  color: var(--gx-text);
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.55rem 0.9rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.co-tabs a:hover { color: var(--gx-text-strong); }
.co-tabs a.is-active {
  color: var(--gx-text-strong);
  border-bottom-color: var(--gx-accent);
}
.co-steps {
  display: grid;
  gap: 0.65rem;
}
.co-step {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.85rem 1rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
}
.co-step.is-next {
  border-color: var(--gx-accent);
  box-shadow: 0 0 0 3px var(--gx-accent-soft);
}
.co-step.is-done { opacity: 0.72; }
.co-step-num {
  flex: 0 0 auto;
  width: 1.7rem;
  height: 1.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--gx-surface-2);
  color: var(--gx-text-strong);
  font-size: 0.8rem;
  font-weight: 600;
}
.co-step.is-next .co-step-num {
  background: var(--gx-accent);
  color: #fff;
}
.co-step-body { flex: 1 1 12rem; min-width: 0; }
.co-step-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--gx-text-strong);
}
.co-step-hint {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  color: var(--gx-text-muted);
}
.co-step-action { flex: 0 0 auto; }
.co-stat-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}
@media (max-width: 760px) {
  .co-stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.co-stat {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  padding: 0.75rem 0.9rem;
}
.co-stat-label {
  font-size: 0.78rem;
  color: var(--gx-text-muted);
}
.co-stat-value {
  margin-top: 0.15rem;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--gx-text-strong);
  line-height: 1.2;
}
.co-stat-value.is-warn { color: var(--gx-warn); }
.co-stat-value.is-ok { color: var(--gx-success); }
.co-file-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.co-file-pick {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-width: min(100%, 22rem);
  padding: 0.4rem 0.55rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
}
.co-file-pick input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.co-file-btn {
  flex: 0 0 auto;
  padding: 0.35rem 0.7rem;
  border-radius: var(--gx-radius-sm);
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--gx-text-strong);
  pointer-events: none;
}
.co-file-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.84rem;
  color: var(--gx-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}
.co-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 500;
  background: var(--gx-surface-2);
  color: var(--gx-text);
}
.co-badge-ok { background: rgba(47, 158, 99, 0.12); color: var(--gx-success); }
.co-badge-warn { background: rgba(181, 132, 42, 0.14); color: var(--gx-warn); }
.co-badge-err { background: rgba(208, 82, 79, 0.12); color: var(--gx-danger); }
.co-badge-info { background: var(--gx-accent-soft); color: var(--gx-accent); }
.co-price-cmp {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin: 0.35rem 0;
  font-size: 0.8rem;
}
.co-price-cmp span { color: var(--gx-text-muted); }
.co-price-cmp b { color: var(--gx-text-strong); font-weight: 600; }
.co-resolve {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.4rem;
}
.co-resolve .btn {
  font-size: 0.78rem;
  padding: 0.25rem 0.55rem;
  min-height: 0;
}
.co-filter-note {
  font-size: 0.8rem;
  color: var(--gx-text-muted);
  width: 100%;
  margin-top: 0.35rem;
}

/* Drawer редактирования позиции (компании / импорт) */
.gtnox-body .offcanvas.co-drawer {
  width: min(520px, 100vw);
  background: var(--gx-surface);
  color: var(--gx-text);
  border-left: 1px solid var(--gx-border);
}
.gtnox-body .offcanvas.co-drawer.co-drawer-wide {
  width: min(840px, 100vw);
}
.gtnox-body .co-drawer-head {
  border-bottom: 1px solid var(--gx-border);
  padding: 0.85rem 1rem;
  background: var(--gx-surface);
}
.gtnox-body .co-drawer-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gx-text-strong);
}
.gtnox-body .co-drawer-body {
  padding: 1rem;
}
.gtnox-body .co-drawer .form-hint {
  font-size: 0.78rem;
  color: var(--gx-text-muted);
  margin-top: 0.25rem;
}
.gtnox-body .co-drawer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--gx-border);
}
.gtnox-body .co-drawer .gtnox-ss-panel {
  z-index: 50;
}
.gtnox-body tr.co-row-inbound {
  background: rgba(181, 132, 42, 0.08);
}
.gtnox-body tr.co-row-inbound:hover {
  background: rgba(181, 132, 42, 0.14);
}

/* Компактные поля (фильтры в админке) */
.gtnox-body .form-control-sm,
.gtnox-body .form-select-sm {
  min-height: 32px;
  font-size: 13px;
  padding: 0.25rem 0.5rem;
  border-radius: var(--gx-radius-sm);
}
.gtnox-body .input-group-sm > .form-control,
.gtnox-body .input-group-sm > .form-select { min-height: 32px; }
.gtnox-body .input-group-text {
  background: var(--gx-surface-2);
  border-color: var(--gx-border);
  color: var(--gx-text-muted);
  font-size: 13px;
}
.gtnox-body .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238b909b' stroke-width='2'%3e%3cpath d='M4 6l4 4 4-4'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
  background-size: 14px 14px;
  padding-right: 2rem;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.gtnox-ss { position: relative; width: 100%; }
.gtnox-ss-native {
  position: absolute !important;
  left: 0;
  top: 0;
  width: 1px !important;
  height: 1px !important;
  opacity: 0;
  pointer-events: none;
  margin: 0;
  padding: 0;
}
.gtnox-ss-btn {
  width: 100%;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.gtnox-ss-panel {
  display: none;
  position: absolute;
  z-index: 40;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
  padding: 0.4rem;
}
.gtnox-ss.is-open .gtnox-ss-panel { display: block; }
.gtnox-ss-list {
  max-height: 240px;
  overflow: auto;
  margin-top: 0.35rem;
}
.gtnox-ss-opt {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--gx-text-strong);
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
  font-size: 13px;
}
.gtnox-ss-opt:hover,
.gtnox-ss-opt.is-selected { background: var(--gx-surface-2); }
.gtnox-ss-empty {
  padding: 0.45rem;
  font-size: 12.5px;
  color: var(--gx-text-muted);
}
.gtnox-ss-multi select.form-select {
  min-height: 10rem;
}

/* ── Buttons ─────────────────────────────────────── */
.btn-gtnox {
  font-size: 0.85rem;
  font-weight: 500;
  background: var(--gx-text-strong);
  color: #fff !important;
  border: 1px solid transparent;
  border-radius: var(--gx-radius-sm);
  padding: 0 1rem;
  min-height: var(--gx-input-h);
  white-space: nowrap;
}
.btn-gtnox:hover,
.btn-gtnox:focus,
.btn-gtnox:active {
  background: #000;
  color: #fff !important;
}
a.btn-gtnox,
a.btn-gtnox:visited,
a.btn-gtnox:hover,
a.btn-gtnox:focus {
  color: #fff !important;
  text-decoration: none;
}
a.btn-gtnox.disabled,
a.btn-gtnox.disabled:hover {
  opacity: 0.55;
  pointer-events: none;
  color: #fff !important;
}

.btn-gtnox-outline {
  font-size: 0.85rem;
  background: var(--gx-surface);
  color: var(--gx-text);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  min-height: var(--gx-input-h);
  padding: 0 0.6rem;
}
.btn-gtnox-outline:hover { color: var(--gx-text-strong); border-color: var(--gx-border-light); background: var(--gx-surface-2); }

.btn-gtnox-ghost {
  background: none;
  border: none;
  color: var(--gx-link);
  font-size: 0.82rem;
  padding: 0.2rem 0;
}
.btn-gtnox-ghost:hover { color: var(--gx-accent-hover); }

/* ── Badges ──────────────────────────────────────── */
.gtnox-badge {
  font-size: 0.66rem;
  font-weight: 600;
  padding: 0.16rem 0.42rem;
  border-radius: 4px;
  white-space: nowrap;
}
.gtnox-badge-queued { background: var(--gx-surface-2); color: var(--gx-text-muted); }
.gtnox-badge-processing { background: rgba(181, 132, 42, 0.14); color: var(--gx-warn); }
.gtnox-badge-retry { background: rgba(181, 132, 42, 0.12); color: var(--gx-warn); }
.gtnox-badge-completed { background: rgba(47, 158, 99, 0.14); color: var(--gx-success); }
.gtnox-badge-failed { background: rgba(208, 82, 79, 0.14); color: var(--gx-danger); }

@keyframes gx-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
.gtnox-pulse-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gx-warn);
  flex-shrink: 0;
  animation: gx-pulse 1.4s ease-in-out infinite;
}

/* ── Request card (accordion) ────────────────────── */
/* Каждая заявка — отдельный обособленный блок-карточка */
.gtnox-req {
  color: var(--gx-text);
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  margin-bottom: 0.7rem;
  overflow: hidden;
}
.gtnox-req:last-child { margin-bottom: 0; }
.gtnox-req.is-open { border-color: var(--gx-border-light); box-shadow: var(--gx-shadow); }
.gtnox-req.is-props-open {
  border-color: #f59e0b;
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.28), var(--gx-shadow);
  background: linear-gradient(180deg, #fffbeb 0%, #fff 42%);
}
.gtnox-req.is-props-open .gtnox-req-head {
  background: rgba(245, 158, 11, 0.10);
}
.gtnox-req.is-props-open .gtnox-req-id {
  background: #f59e0b;
  border-color: #d97706;
  color: #fff;
}

/* Свёрнутая заявка — спокойный синий акцент (заметно, но не «жёлтый») */
.gtnox-req.is-collapsed,
.gtnox-req:not(.is-open) {
  border-color: rgba(76, 126, 243, 0.35);
  background: rgba(76, 126, 243, 0.06);
  box-shadow: inset 3px 0 0 var(--gx-accent);
}
.gtnox-req.is-collapsed .gtnox-req-head,
.gtnox-req:not(.is-open) .gtnox-req-head {
  background: rgba(76, 126, 243, 0.08);
}
.gtnox-req.is-collapsed .gtnox-req-head:hover,
.gtnox-req:not(.is-open) .gtnox-req-head:hover {
  background: rgba(76, 126, 243, 0.14);
}
.gtnox-req.is-collapsed .gtnox-chevron,
.gtnox-req:not(.is-open) .gtnox-chevron {
  color: var(--gx-accent);
}
.gtnox-collapsed-hint {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gx-accent);
  background: rgba(76, 126, 243, 0.12);
  border: 1px solid rgba(76, 126, 243, 0.28);
  border-radius: 4px;
  padding: 0.1rem 0.4rem;
  line-height: 1.3;
  white-space: nowrap;
}

.gtnox-req-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.85rem;
  cursor: pointer;
  min-width: 0;
}
.gtnox-req-head > .d-flex {
  min-width: 0;
  max-width: 100%;
}
.gtnox-req-head > .d-flex.min-w-0,
.gtnox-req-head > .d-flex.flex-wrap {
  flex: 1 1 auto;
}
.gtnox-req-body,
.gtnox-query-block,
.gtnox-results-table,
.gtnox-oem-cell,
.gtnox-oem-main,
.col-name,
.col-oem,
.col-actions {
  min-width: 0;
  max-width: 100%;
}
.gtnox-req-head:hover { background: var(--gx-surface-2); }
.gtnox-req.is-open .gtnox-req-head { border-bottom: 1px solid var(--gx-border); }

.gtnox-req-meta { font-size: 12px; color: var(--gx-text-muted); }
.gtnox-req-date { font-size: 12px; color: var(--gx-text-muted); white-space: nowrap; }
.gtnox-req-id {
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gx-accent);
  background: rgba(76, 126, 243, 0.10);
  border: 1px solid rgba(76, 126, 243, 0.22);
  border-radius: 4px;
  padding: 0.1rem 0.4rem;
  line-height: 1.3;
  white-space: nowrap;
}
.gtnox-visit-code {
  font-size: 0.95rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
  color: var(--gx-text-strong);
  background: #fff;
  border: 2px solid var(--gx-text-strong);
  border-radius: 6px;
  padding: 0.12rem 0.55rem;
  line-height: 1.25;
  white-space: nowrap;
}
.gtnox-body .gtnox-visit-code.copy-tag {
  font-family: inherit;
  cursor: copy;
}
.gtnox-body .gtnox-visit-code.copy-tag:hover {
  background: var(--gx-surface-2);
}
.gtnox-body .gtnox-visit-code.copy-tag.copied {
  border-color: var(--gx-success);
  color: var(--gx-success);
}
.gtnox-hall-operator {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--gx-text-strong);
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  border-radius: 999px;
  padding: 0.1rem 0.5rem;
  line-height: 1.25;
  white-space: nowrap;
}
.gtnox-body .gtnox-req-id.copy-tag {
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gx-accent);
  background: rgba(76, 126, 243, 0.10);
  border: 1px solid rgba(76, 126, 243, 0.22);
  cursor: copy;
}
.gtnox-body .gtnox-req-id.copy-tag:hover {
  border-color: var(--gx-accent);
  color: var(--gx-accent);
  background: rgba(76, 126, 243, 0.16);
}
.gtnox-body .gtnox-req-id.copy-tag.copied {
  border-color: var(--gx-success);
  color: var(--gx-success);
}

.gtnox-req-comment {
  margin: 0 0 0.65rem;
  padding: 0.45rem 0.65rem;
  font-size: 13px;
  color: var(--gx-text-strong);
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm, 6px);
  white-space: pre-wrap;
  word-break: break-word;
}

.gtnox-client-contacts {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.gtnox-contact-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  padding: 0.15rem 0.35rem 0.15rem 0.25rem;
  border: 1px dashed rgba(76, 126, 243, 0.45);
  border-radius: 6px;
  background: rgba(76, 126, 243, 0.06);
  color: var(--gx-accent);
  cursor: pointer;
  line-height: 1;
  vertical-align: middle;
}
.gtnox-contact-add-btn:hover {
  background: rgba(76, 126, 243, 0.12);
  border-color: rgba(76, 126, 243, 0.7);
  color: var(--gx-accent-hover);
}
.gtnox-contact-add-plus {
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}
.gtnox-contact-add-btn svg {
  display: block;
  flex-shrink: 0;
}
.dash-contact-popover {
  position: fixed;
  z-index: 1080;
  display: none;
  padding: 0.65rem 0.7rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border-light);
  border-radius: var(--gx-radius);
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12), var(--gx-shadow);
}
.dash-contact-popover.is-open {
  display: block;
}
.dash-contact-form-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--gx-text-strong);
  margin-bottom: 0.4rem;
}
.dash-contact-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.gtnox-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  max-width: 100%;
  padding: 0.1rem 0.2rem 0.1rem 0.4rem;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: #0f766e;
  background: rgba(15, 118, 110, 0.08);
  border: 1px solid rgba(15, 118, 110, 0.25);
  border-radius: 6px;
  vertical-align: middle;
}
.gtnox-filter-chip-text {
  max-width: 10.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
  text-decoration: none;
}
.gtnox-body .gtnox-filter-chip .gtnox-filter-chip-text,
.gtnox-body .gtnox-filter-chip a.gtnox-filter-chip-text {
  color: var(--gx-link);
}
.gtnox-body .gtnox-filter-chip a.gtnox-filter-chip-text:hover {
  color: var(--gx-accent-hover, #0d9488);
  text-decoration: underline;
}
.gtnox-filter-chip-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #0f766e;
  opacity: 0.72;
  cursor: pointer;
  flex-shrink: 0;
}
.gtnox-filter-chip-btn:hover {
  opacity: 1;
  background: rgba(15, 118, 110, 0.14);
  color: #0d9488;
}
.gtnox-filter-chip-btn.is-filter:hover {
  background: rgba(37, 99, 235, 0.12);
  color: #2563eb;
}
.dash-filters-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.gtnox-filter-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: auto;
  flex: 0 0 auto;
}
.gtnox-filter-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--gx-border);
  border-radius: 6px;
  background: var(--gx-surface);
  color: var(--gx-text-muted);
  cursor: pointer;
}
.gtnox-filter-clear[hidden] {
  display: none !important;
}
.gtnox-filter-clear:hover {
  background: var(--gx-surface-2);
  color: #b91c1c;
  border-color: rgba(185, 28, 28, 0.35);
}


/* Вкладки workflow (иконки) */
.gtnox-panel-head-workflow {
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: space-between;
}
.gtnox-workflow-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}
.gtnox-panel-head-workflow .gtnox-admin-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
  margin-left: auto;
}
.gtnox-filter-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--gx-border);
  border-radius: 6px;
  background: var(--gx-surface);
  color: var(--gx-text-muted);
  cursor: pointer;
  flex: 0 0 auto;
  margin-left: 0;
}
.gtnox-filter-toggle:hover,
.gtnox-filter-toggle.is-open {
  background: var(--gx-surface-2);
  color: var(--gx-text-strong);
  border-color: var(--gx-border-light);
}
.gtnox-filter-toggle.is-active {
  color: var(--gx-text-strong);
  border-color: var(--gx-text-strong);
}
.gtnox-filter-dot {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0f766e;
  box-shadow: 0 0 0 2px var(--gx-surface);
}
.dash-filters-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1075;
  width: min(360px, 100vw);
  display: flex;
  flex-direction: column;
  background: var(--gx-bg);
  border-left: 1px solid var(--gx-border);
  box-shadow: -4px 0 24px rgba(16, 24, 40, 0.08);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.22s ease, visibility 0.22s ease;
}
.dash-filters-drawer.is-open { transform: translateX(0); visibility: visible; }
.dash-filters-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1.15rem;
  background: var(--gx-surface);
  border-bottom: 1px solid var(--gx-border);
  flex-shrink: 0;
}
.dash-filters-drawer-head h6 {
  margin: 0;
  font-weight: 600;
  color: var(--gx-text-strong);
}
.dash-filters-drawer-body {
  flex: 1;
  overflow: auto;
  padding: 1rem 1.15rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}
.dash-filters-section-title {
  font-size: 12px;
  font-weight: 650;
  color: var(--gx-text-muted);
  margin: 0 0 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.dash-filters-field-label {
  display: block;
  font-size: 12px;
  color: var(--gx-text-muted);
  margin-bottom: 0.3rem;
}
.gtnox-results-filters.is-drawer {
  margin-left: 0;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
}
.gtnox-results-filters.is-drawer .gtnox-date-filter {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0.55rem;
}
.gtnox-results-filters.is-drawer .gtnox-date-filter > span {
  flex: 0 0 1.5rem;
  width: 1.5rem;
  text-align: left;
}
.gtnox-results-filters.is-drawer .form-control-sm {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
}
.gtnox-admin-filters.is-drawer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin-left: 0;
}
.gtnox-admin-filters.is-drawer .form-select-sm {
  width: 100%;
  min-width: 0;
}
.gtnox-wf-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 34px;
  height: 32px;
  padding: 0 0.4rem;
  border: 1px solid var(--gx-border);
  border-radius: 6px;
  background: var(--gx-surface);
  color: var(--gx-text-muted);
  cursor: pointer;
  position: relative;
  font: inherit;
  line-height: 1;
  box-sizing: border-box;
}
.gtnox-wf-tab:hover { background: var(--gx-surface-2); color: var(--gx-text-strong); border-color: var(--gx-border-light); }
.gtnox-wf-tab.active {
  background: var(--gx-text-strong);
  border-color: var(--gx-text-strong);
  color: #fff;
}
.gtnox-wf-tab-count {
  font-size: 10px;
  font-weight: 600;
  min-width: 0.85em;
  line-height: 1;
}

/* Переместить → стадии под позицией */
.gtnox-workflow-bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 0.6rem;
  padding-top: 0.5rem;
  border-top: 1px dashed var(--gx-border);
}
.gtnox-workflow-bar-label { font-size: 11px; color: var(--gx-text-muted); white-space: nowrap; }
.gtnox-workflow-move-btns { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.gtnox-wf-move {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 26px;
  padding: 0;
  border: 1px solid var(--gx-border);
  border-radius: 4px;
  background: var(--gx-surface);
  color: var(--gx-text-muted);
  cursor: pointer;
}
.gtnox-wf-move:hover { color: var(--gx-accent); border-color: var(--gx-accent); background: var(--gx-surface-2); }
.gtnox-wf-move.is-current { background: var(--gx-accent-soft); border-color: var(--gx-accent); color: var(--gx-accent); }

/* Анимация ухода карточки после перемещения по вкладкам */
.gtnox-query-block.gtnox-wf-leaving,
.gtnox-req.gtnox-wf-leaving {
  position: relative;
  overflow: hidden;
  pointer-events: none;
  transition:
    opacity 0.4s ease,
    transform 0.4s ease,
    max-height 0.45s ease,
    margin 0.45s ease,
    padding 0.45s ease,
    border-width 0.45s ease;
}
.gtnox-wf-moved-msg {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--gx-text-strong);
  background: color-mix(in srgb, var(--gx-surface) 88%, var(--gx-accent) 12%);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.gtnox-wf-leaving.is-showing-msg .gtnox-wf-moved-msg { opacity: 1; }
.gtnox-wf-leaving.is-out {
  opacity: 0;
  transform: translateY(-6px) scale(0.985);
  max-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-width: 0 !important;
}
.gtnox-wf-leaving.is-out .gtnox-wf-moved-msg { opacity: 0; transition-duration: 0.2s; }

/* Уход карточки после «Оформить заказ» — желтоватый акцент как у открытой корзины */
.gtnox-req.gtnox-wf-leaving.is-order-leave {
  border-color: #f59e0b;
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.28), var(--gx-shadow);
  background: linear-gradient(180deg, #fffbeb 0%, #fff 42%);
}
.gtnox-req.gtnox-wf-leaving.is-order-leave .gtnox-req-head {
  background: rgba(245, 158, 11, 0.10);
}
.gtnox-req.gtnox-wf-leaving.is-order-leave .gtnox-wf-moved-msg {
  background: color-mix(in srgb, #fffbeb 82%, #f59e0b 18%);
  color: #78350f;
}

/* Комментарии под позицией */
.gtnox-comments { margin-top: 0.5rem; }
.gtnox-comment {
  font-size: 12px;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--gx-border);
  line-height: 1.4;
}
.gtnox-comment:last-of-type { border-bottom: none; }
.gtnox-comment-time { color: var(--gx-text-muted); margin-right: 0.35rem; white-space: nowrap; }
.gtnox-comments-empty { padding: 0.25rem 0 0.5rem; }
.gtnox-comment-form {
  display: flex;
  gap: 0.35rem;
  margin-top: 0.4rem;
}
.gtnox-comment-form .form-control { flex: 1; min-width: 0; }
.gtnox-comment-form .btn { flex-shrink: 0; }

.gtnox-chevron { color: var(--gx-text-muted); transition: transform 0.15s; flex-shrink: 0; }
.gtnox-req.is-open .gtnox-chevron { transform: rotate(180deg); }

.gtnox-req-body { display: none; padding: 0.7rem 0.9rem 0.7rem; }
.gtnox-req.is-open .gtnox-req-body { display: block; }

.gtnox-vehicle-line {
  font-size: 13px;
  color: var(--gx-text);
  padding: 0.45rem 0.6rem;
  margin-bottom: 0.35rem;
  background: var(--gx-surface-2);
  border-radius: var(--gx-radius-sm);
  border: 1px solid var(--gx-border);
}
.gtnox-vehicle-line.gtnox-vehicle-decode {
  background: rgba(37, 99, 235, 0.06);
  border-color: rgba(37, 99, 235, 0.22);
}
.gtnox-vehicle-src {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.08rem 0.35rem;
  border-radius: 3px;
  margin-right: 0.35rem;
  background: rgba(15, 23, 42, 0.08);
  color: var(--gx-text-muted);
}
.gtnox-vehicle-src.is-decode {
  background: rgba(37, 99, 235, 0.14);
  color: #1d4ed8;
}
.gtnox-vin-decode-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.25rem 0.6rem;
  margin: 0 0 0.55rem;
  padding: 0.35rem 0.55rem 0.45rem;
  font-size: 12px;
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-top: 0;
  border-radius: 0 0 var(--gx-radius-sm) var(--gx-radius-sm);
  background: rgba(37, 99, 235, 0.04);
}
.gtnox-vehicle-knowledge {
  margin: 0.2rem 0 0.15rem;
  padding: 0 0.15rem;
}
.gtnox-filter-chip-btn.is-vk-detail:hover {
  color: var(--gx-accent);
  background: var(--gx-accent-soft);
}

.dash-vk-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1080;
  width: min(420px, 100vw);
  height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--gx-surface);
  border-left: 1px solid var(--gx-border);
  box-shadow: -8px 0 32px rgba(15, 23, 42, 0.12);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.2s ease, visibility 0.2s;
}
.dash-vk-drawer.is-open {
  transform: translateX(0);
  visibility: visible;
}
.dash-vk-drawer-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--gx-border);
}
.dash-vk-drawer-head h6 {
  font-family: var(--gx-mono);
  font-size: 14px;
}
.dash-vk-drawer-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0.75rem 1rem 1.25rem;
}
.dash-vk-section { margin-bottom: 1rem; }
.dash-vk-section-title {
  font-size: 11px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gx-text-muted);
  margin: 0 0 0.4rem;
}
.dash-vk-row {
  font-size: 12.5px;
  line-height: 1.4;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--gx-border);
  color: var(--gx-text);
}
.dash-vk-row:last-child { border-bottom: none; }
.dash-vk-flag {
  display: inline-block;
  min-width: 0.9rem;
  font-weight: 700;
  color: var(--gx-text-muted);
}
.dash-vk-open-tab {
  flex: 0 0 auto;
  padding: 0.15rem 0.45rem;
  line-height: 1.2;
}

.gtnox-vehicle-knowledge-list {
  margin: 0.15rem 0 0.35rem;
  padding: 0.25rem 0.45rem;
  border-left: 2px solid var(--gx-border);
}
.gtnox-vk-row {
  font-size: 12px;
  line-height: 1.35;
  color: var(--gx-text-muted);
}
.gtnox-vk-src {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-right: 0.3rem;
  color: var(--gx-text-muted);
  opacity: 0.85;
}
.gtnox-vin-decode-cell .k {
  display: block;
  font-size: 10px;
  color: var(--gx-text-muted);
}
.gtnox-vin-decode-cell .v {
  color: var(--gx-text-strong);
  font-weight: 500;
}

/* ── Query + results ─────────────────────────────── */
/* Каждый запрос (деталь) — отдельный обособленный блок */
.gtnox-query-block {
  margin-bottom: 0.7rem;
  padding: 0.6rem 0.7rem;
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
}
.gtnox-query-block:last-child { margin-bottom: 0; }

.gtnox-query-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--gx-text-strong);
  margin-bottom: 0.4rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--gx-border);
}
.gtnox-query-label .entity-hint { font-weight: 400; color: var(--gx-text-muted); }

.gtnox-results-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.gtnox-results-table th {
  text-align: left;
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gx-text-muted);
  padding: 0.3rem 0.5rem;
  border-bottom: 1px solid var(--gx-border);
}
.gtnox-results-table td {
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid var(--gx-border);
  vertical-align: top;
  color: var(--gx-text);
}
.gtnox-results-table tr:last-child td { border-bottom: none; }
.gtnox-results-table tr.is-best td { background: var(--gx-accent-soft); }
.gtnox-results-table .col-oem { width: 34%; font-family: var(--gx-mono); font-size: 12px; }
.gtnox-results-table .col-name { color: var(--gx-text-strong); white-space: normal; line-height: 1.35; }
.gtnox-results-table .col-actions { width: 1%; white-space: nowrap; text-align: right; }
.gtnox-oem-cell {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
}
.gtnox-oem-ent-thumb {
  width: 36px;
  height: 36px;
  object-fit: cover;
  border-radius: 6px;
  background: var(--gx-surface-2, #f1f3f5);
  flex: 0 0 auto;
  border: 1px solid rgba(0,0,0,0.06);
}
.gtnox-oem-main {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
  min-width: 0;
}
.gtnox-stock-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
  padding: 0.28rem 0.4rem;
  border-radius: 6px;
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.18);
  max-width: 100%;
}
.gtnox-stock-thumb {
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  flex: 0 0 auto;
  background: #fff;
}
.gtnox-stock-meta {
  font-size: 11.5px;
  line-height: 1.3;
  color: var(--gx-text-muted, #5c6570);
  min-width: 0;
  flex: 1 1 auto;
}
.gtnox-stock-article {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 600;
  color: var(--gx-text-strong, #1a1f24);
}
.gtnox-stock-price {
  color: var(--gx-text-strong, #1a1f24);
  font-weight: 650;
}
.gtnox-stock-cart-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(16, 185, 129, 0.35);
  border-radius: 6px;
  background: #fff;
  color: #059669;
  cursor: pointer;
  line-height: 0;
}
.gtnox-stock-cart-btn:hover {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.55);
}
.gtnox-stock-cart-btn.is-busy,
.gtnox-stock-cart-btn:disabled {
  opacity: 0.55;
  cursor: wait;
}
.gtnox-result-src {
  font-family: var(--gx-font, inherit);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.12rem 0.4rem;
  border-radius: 3px;
  white-space: nowrap;
}
.gtnox-result-src.is-my-detail {
  background: var(--gx-accent-soft, #e8f5e9);
  color: var(--gx-accent, #2e7d32);
}
.gtnox-result-src.is-extra-order {
  background: #f0f0f0;
  color: #333;
}
.gtnox-result-src.is-catalog-oem {
  background: rgba(16, 185, 129, 0.16);
  color: #047857;
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.gtnox-result-src.is-warehouse {
  background: rgba(245, 158, 11, 0.16);
  color: #b45309;
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.gtnox-result-src.is-emex-match {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
  border: 1px solid rgba(59, 130, 246, 0.3);
}
.gtnox-results-table tr.gtnox-unit-row td {
  padding: 0.55rem 0.5rem 0.15rem;
  border-bottom: none;
  background: transparent;
}
.gtnox-results-table tr.gtnox-unit-child td { padding-top: 0.3rem; }
.gtnox-unit-label {
  display: block;
  max-width: 100%;
  font-size: 11px;
  font-weight: 600;
  color: var(--gx-text-muted);
  letter-spacing: 0.02em;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
  line-height: 1.35;
}
.dash-group-unit-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--gx-text-strong);
  margin: 0.45rem 0 0.2rem;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.gtnox-results-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  margin-top: 0.4rem;
}

.gtnox-continue-search-btn {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--gx-border, #c9d0da);
  background: #fff;
  color: var(--gx-text-strong, #1a2332);
  border-radius: 6px;
  padding: 0.22rem 0.65rem;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  line-height: 1.3;
}
.gtnox-continue-search-btn:hover {
  border-color: var(--gx-link, #2b6cb0);
  color: var(--gx-link, #2b6cb0);
}
.gtnox-continue-search-btn:disabled {
  opacity: 0.55;
  cursor: wait;
}
.gtnox-query-block.is-continue-search {
  outline: 1px solid rgba(43, 108, 176, 0.45);
  outline-offset: 2px;
  border-radius: 8px;
  background: rgba(43, 108, 176, 0.04);
}
.gtnox-continue-banner {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.35rem 0 0.5rem;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  background: rgba(43, 108, 176, 0.1);
  color: var(--gx-text-strong, #1a2332);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

.btn-show-more,
.btn-collapse {
  font-size: 12px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.btn-show-more { color: var(--gx-link); }
.btn-show-more:hover { text-decoration: underline; color: var(--gx-accent-hover); }
.btn-collapse { color: var(--gx-text-muted); }
.btn-collapse:hover { text-decoration: underline; color: var(--gx-text-strong); }

.gtnox-item-status-msg { font-size: 13px; color: var(--gx-text-muted); padding: 0.25rem 0; }

.gtnox-empty {
  padding: 1.75rem 0.9rem;
  text-align: center;
  color: var(--gx-text-muted);
  font-size: 13px;
}

/* ── Segment switch (По ENT / Все прогоны) ───────── */
.gtnox-seg {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.2rem;
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
  border-radius: 8px;
}
.gtnox-seg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0.25rem 0.75rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--gx-text-muted);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
.gtnox-body a.gtnox-seg-btn { color: var(--gx-text-muted); }
.gtnox-seg-btn:hover {
  color: var(--gx-text-strong);
  background: var(--gx-surface);
}
.gtnox-body a.gtnox-seg-btn:hover { color: var(--gx-text-strong); }
.gtnox-seg-btn.active {
  background: var(--gx-text-strong);
  border-color: var(--gx-text-strong);
  color: #fff;
}
.gtnox-body a.gtnox-seg-btn.active,
.gtnox-body label.gtnox-seg-btn.active { color: #fff; }
.gtnox-body label.gtnox-seg-btn {
  cursor: pointer;
  margin: 0;
}

/* ── Pagination ──────────────────────────────────── */
.gtnox-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.35rem 0;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.gtnox-pagination-sticky {
  padding: 0.45rem 0.9rem 0.55rem;
  border-bottom: 1px solid var(--gx-border);
  background: var(--gx-surface);
}
.gtnox-results-sticky {
  flex-shrink: 0;
}
.gtnox-results-sticky .gtnox-panel-head {
  border-top: 0;
}
#panel-completed > .gtnox-pagination:last-child {
  padding: 0.55rem 0.9rem 0.7rem;
  border-top: 1px solid var(--gx-border);
}
.card-footer .gtnox-pagination {
  padding: 0;
  border-top: 0;
}
.gtnox-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 32px;
  padding: 0 0.5rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  color: var(--gx-text-strong);
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
}
.gtnox-body a.gtnox-page-btn { color: var(--gx-text-strong); }
.gtnox-page-btn.is-active {
  background: var(--gx-text-strong);
  color: #fff;
  border-color: var(--gx-text-strong);
  cursor: default;
}
.gtnox-page-ellipsis { color: var(--gx-text-muted); padding: 0 0.25rem; }

/* ── Admin dashboard filters ─────────────────────── */
.gtnox-admin-filters .form-select-sm {
  min-width: 120px;
  width: auto;
  height: 32px;
  padding: 0 0.5rem;
  font-size: 12px;
  border-radius: 6px;
  border-color: var(--gx-border);
}
.gtnox-admin-filter-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.gtnox-admin-req-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 12px;
  color: var(--gx-text-muted);
}
.gtnox-admin-meta {
  padding: 0.1rem 0.4rem;
  background: var(--gx-surface-2);
  border-radius: 4px;
}
.gtnox-search-mode {
  font-size: 10px;
  letter-spacing: 0.02em;
  color: var(--gx-text-muted);
  opacity: 0.55;
  user-select: none;
}
.gtnox-problem-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(208, 82, 79, 0.15);
  color: var(--gx-danger);
  font-weight: 700;
  font-size: 11px;
}
.gtnox-search-log-pre {
  white-space: pre-wrap;
  word-break: break-word;
  font-family: var(--gx-mono);
  max-height: 70vh;
  overflow: auto;
}
.gtnox-log-btn { opacity: 0.7; }
.gtnox-log-btn:hover { opacity: 1; }
.gtnox-page-btn:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--gx-surface-2); border-color: var(--gx-border-light); text-decoration: none; }
.gtnox-page-btn:disabled,
.gtnox-page-btn[aria-disabled="true"] { opacity: 0.4; cursor: default; }
.gtnox-page-info { font-size: 12.5px; color: var(--gx-text-muted); }

/* ── Copy tags / price links ─────────────────────── */
.gtnox-body .copy-tag {
  font-family: var(--gx-mono);
  font-size: 12px;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  background: var(--gx-surface-2);
  color: var(--gx-text-strong);
  border: 1px solid var(--gx-border);
  cursor: copy;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.gtnox-body .copy-tag:hover { border-color: var(--gx-accent); color: var(--gx-accent); }
.gtnox-body .copy-tag.copied { border-color: var(--gx-success); color: var(--gx-success); }

.gtnox-body .price-link {
  font-size: 11px;
  color: var(--gx-link);
  text-decoration: none;
  margin-left: 0.25rem;
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-all;
  vertical-align: middle;
}
.gtnox-body .price-link:hover { text-decoration: underline; color: var(--gx-accent-hover); }

/* Мини-кнопки рядом с тегами (PT ↔ d, лупа) — размер как у copy-tag */
.gtnox-body .gtnox-mini-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  height: 24px;
  padding: 0 0.45rem;
  font-size: 11px;
  line-height: 1;
  border: 1px solid var(--gx-border);
  border-radius: 4px;
  background: var(--gx-surface);
  color: var(--gx-text-strong);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  vertical-align: middle;
}
.gtnox-body .gtnox-mini-btn:hover {
  background: var(--gx-surface-2);
  border-color: var(--gx-border-light);
  color: var(--gx-text-strong);
  text-decoration: none;
}
.gtnox-body .gtnox-mini-btn.gtnox-loupe { padding: 0 0.35rem; color: var(--gx-text-muted); }
.gtnox-body .gtnox-mini-btn.gtnox-loupe:hover { color: var(--gx-accent); border-color: var(--gx-accent); }
.gtnox-body .gtnox-mini-btn.gtnox-card-link { padding: 0 0.35rem; color: var(--gx-text-muted); }
.gtnox-body .gtnox-mini-btn.gtnox-card-link:hover { color: var(--gx-accent); border-color: var(--gx-accent); }

/* Контейнер для множества тегов групп на странице PT */
.gtnox-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  max-height: 96px;
  overflow-y: auto;
}

/* ── Login ───────────────────────────────────────── */
.gtnox-login-hero { font-weight: 600; font-size: 1.9rem; letter-spacing: 0.01em; color: var(--gx-text-strong); }
.gtnox-login-sub { font-size: 0.82rem; color: var(--gx-text-muted); }
.gtnox-card-body { padding: 1.35rem; }

/* ── Admin (Tabler overrides) ────────────────────── */
.gtnox-body .card {
  background: var(--gx-surface);
  border-color: var(--gx-border);
  border-radius: var(--gx-radius);
  color: var(--gx-text);
  box-shadow: var(--gx-shadow);
}
.gtnox-body .card-header { background: transparent; border-color: var(--gx-border); padding: 0.7rem 0.9rem; min-height: auto; }
.gtnox-body .card-title { color: var(--gx-text-strong); font-size: 0.9rem; margin: 0; }
.gtnox-body .card-body { color: var(--gx-text); }

.gtnox-body .btn { font-size: 0.85rem; border-radius: var(--gx-radius-sm); }
.gtnox-body .btn-sm { font-size: 0.78rem; padding: 0.46rem 0.6rem; }

.gtnox-body .table { color: var(--gx-text); font-size: 13px; margin-bottom: 0; }
.gtnox-body .table-sm td, .gtnox-body .table-sm th { padding: 0.4rem 0.55rem; }
.gtnox-body .card-table td, .gtnox-body .card-table th { padding-left: 0.9rem; padding-right: 0.9rem; }
.gtnox-body .table-vcenter td, .gtnox-body .table-vcenter th { vertical-align: middle; }
.gtnox-body .table thead th {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gx-text-muted);
  border-color: var(--gx-border);
}
.gtnox-body .table td, .gtnox-body .table th { border-color: var(--gx-border); }
.gtnox-body .table-hover tbody tr:hover { background: var(--gx-surface-2); }

.gtnox-body .badge.bg-blue-lt { background: var(--gx-accent-soft) !important; color: var(--gx-accent) !important; }

.gtnox-body .alert-danger {
  background: rgba(208, 82, 79, 0.08);
  border-color: rgba(208, 82, 79, 0.25);
  color: #b8413e;
  font-size: 13px;
  border-radius: var(--gx-radius-sm);
}

.gtnox-body .text-secondary,
.gtnox-body .text-muted { color: var(--gx-text-muted) !important; }
.gtnox-body .form-hint { color: var(--gx-text-muted); font-size: 12px; }

.gtnox-body .btn-primary {
  background: var(--gx-text-strong);
  border-color: transparent;
  color: #fff;
}
.gtnox-body .btn-primary:hover { background: #000; border-color: transparent; color: #fff; }

.gtnox-body .btn-outline-secondary { border-color: var(--gx-border); color: var(--gx-text-muted); background: var(--gx-surface); }
.gtnox-body .btn-outline-secondary:hover { border-color: var(--gx-border-light); color: var(--gx-text-strong); background: var(--gx-surface-2); }

.gtnox-body a { color: var(--gx-link); }

/* Заголовки страниц (админка) */
.gtnox-body h1 { font-size: 1.35rem; }
.gtnox-body h2 { font-size: 1.15rem; font-weight: 600; color: var(--gx-text-strong); }
.gtnox-body h3.card-title { font-size: 0.92rem; }

/* Списки (list-group) */
.gtnox-body .list-group,
.gtnox-body .list-group-flush { border-radius: var(--gx-radius); }
.gtnox-body .list-group-item {
  background: var(--gx-surface);
  border-color: var(--gx-border);
  color: var(--gx-text);
  font-size: 13px;
}
.gtnox-body .list-group-item-action:hover { background: var(--gx-surface-2); }

/* Бейджи Tabler *-lt */
.gtnox-body .badge { font-weight: 600; }
.gtnox-body .badge.bg-green-lt,
.gtnox-body .badge.bg-success-lt { background: rgba(47, 158, 99, 0.14) !important; color: var(--gx-success) !important; }
.gtnox-body .badge.bg-warning-lt,
.gtnox-body .badge.bg-yellow-lt { background: rgba(181, 132, 42, 0.14) !important; color: var(--gx-warn) !important; }
.gtnox-body .badge.bg-red-lt,
.gtnox-body .badge.bg-danger-lt { background: rgba(208, 82, 79, 0.14) !important; color: var(--gx-danger) !important; }
.gtnox-body .badge.bg-cyan-lt { background: rgba(13, 148, 136, 0.14) !important; color: #0d9488 !important; }
.gtnox-body .badge.bg-azure-lt { background: rgba(14, 124, 178, 0.12) !important; color: #0b6e99 !important; }
.gtnox-body .badge.bg-green { background: rgba(47, 158, 99, 0.16) !important; color: var(--gx-success) !important; }
.gtnox-body .badge.bg-yellow { background: rgba(181, 132, 42, 0.16) !important; color: var(--gx-warn) !important; }

.pc-ready-card .pc-ready-title {
  color: var(--gx-text-strong);
  font-weight: 600;
  font-size: 13px;
  line-height: 1.3;
}
.pc-ready-card .pc-ready-value {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--gx-text-strong);
  line-height: 1.25;
}
.pc-ready-card .pc-ready-hint {
  margin-top: 0.35rem;
  font-size: 12px;
  line-height: 1.35;
  color: var(--gx-text-muted);
}

.pc-subnav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  margin: 0 0 1rem;
  padding: 0.45rem 0.6rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
}
.pc-subnav-group {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin-left: 0.45rem;
  padding-left: 0.55rem;
  border-left: 1px solid var(--gx-border);
}
.pc-subnav-group:first-of-type { margin-left: 0.15rem; }
.pc-subnav-link {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 13px;
  color: var(--gx-text) !important;
  text-decoration: none;
}
.pc-subnav-link:hover { background: var(--gx-surface-2); color: var(--gx-text-strong) !important; }
.pc-subnav-link.is-active {
  background: var(--gx-text-strong);
  color: #fff !important;
}

/* Group admin: строки деталей с ENT */
.gtnox-body #ga-details-table tr.ga-row-linked > td {
  background: rgba(47, 158, 99, 0.10) !important;
}

/* Инлайн-код как copy-tag */
.gtnox-body code {
  font-family: var(--gx-mono);
  font-size: 12px;
  color: var(--gx-text-strong);
}

/* Контекстные подложки Tabler */
.gtnox-body .bg-light-lt,
.gtnox-body .bg-light { background: var(--gx-surface-2) !important; }
.gtnox-body .text-on-light { color: var(--gx-text-strong) !important; }

/* Модальное окно */
.gtnox-body .modal-content {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  color: var(--gx-text);
}
.gtnox-body .modal-header { border-color: var(--gx-border); }
.gtnox-body .modal-title { color: var(--gx-text-strong); font-size: 1rem; }

/* Табличные кнопки-действия */
.gtnox-body .btn-outline-primary { border-color: var(--gx-border-light); color: var(--gx-text-strong); background: var(--gx-surface); }
.gtnox-body .btn-outline-primary:hover { background: var(--gx-text-strong); border-color: var(--gx-text-strong); color: #fff; }
.gtnox-body .btn-outline-success { border-color: var(--gx-success); color: var(--gx-success); background: var(--gx-surface); }
.gtnox-body .btn-outline-success:hover,
.gtnox-body .btn-success { background: var(--gx-success); border-color: var(--gx-success); color: #fff; }
.gtnox-body .btn-outline-danger { border-color: var(--gx-danger); color: var(--gx-danger); background: var(--gx-surface); }
.gtnox-body .btn-outline-danger:hover,
.gtnox-body .btn-danger { background: var(--gx-danger); border-color: var(--gx-danger); color: #fff; }

/* ── Responsive ──────────────────────────────────── */
@media (max-width: 991.98px) {
  /* iOS Safari зумит страницу при фокусе, если font-size < 16px */
  .gtnox-body input.form-control,
  .gtnox-body input.form-control-sm,
  .gtnox-body select.form-select,
  .gtnox-body select.form-select-sm,
  .gtnox-body textarea.form-control,
  .gtnox-body textarea.form-control-sm,
  .gtnox-body .input-group-sm > .form-control,
  .gtnox-body .input-group-sm > .form-select,
  .gtnox-body input.font-monospace.form-control,
  .gtnox-body input.form-control.font-monospace,
  .gtnox-body .dash-props-drawer input,
  .gtnox-body .dash-props-drawer select,
  .gtnox-body .dash-prices-drawer input,
  .gtnox-body .dash-prices-drawer select,
  .gtnox-body .dash-client-drawer input,
  .gtnox-body .dash-filters-drawer input,
  .gtnox-body .dash-filters-drawer select,
  .gtnox-body .gtnox-oem-prices-input,
  .gtnox-body .dash-prices-p-input,
  .gtnox-body .dash-props-p-input,
  .gtnox-body .dash-qty-input {
    font-size: 16px !important;
  }

  .gtnox-panel-body.scroll-active { max-height: none; overflow: visible; }
  .gtnox-panel-body.scroll-results { max-height: none; }
  .gtnox-brand-sub { display: none; }

  .gtnox-burger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid var(--gx-border);
    border-radius: var(--gx-radius-sm);
    background: var(--gx-surface);
    color: var(--gx-text-strong);
    cursor: pointer;
  }
  .gtnox-burger:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--gx-accent-soft);
  }

  /* Ссылки уезжают в выпадающее меню под шапкой */
  .gtnox-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1035;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.1rem;
    margin: 0 !important;
    padding: 0.4rem 0.75rem calc(0.6rem + env(safe-area-inset-bottom, 0px));
    background: var(--gx-surface);
    border-top: 1px solid var(--gx-border);
    border-bottom: 1px solid var(--gx-border);
    box-shadow: 0 14px 28px rgba(16, 24, 40, 0.14);
    max-height: calc(100dvh - 3.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    flex: none;
    min-width: 0;
  }
  .gtnox-nav.is-open { display: flex; }
  .gtnox-nav-items {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.1rem;
    overflow: visible;
    flex: none;
    min-width: 0;
    width: 100%;
  }
  .gtnox-nav-more { display: none !important; }
  .gtnox-header .gtnox-nav-link {
    padding: 0.65rem 0.7rem;
    font-size: 0.95rem;
  }
  body.gtnox-nav-open { overflow: hidden; }
}

/* ==================== WARMAP (карта воркеров) ==================== */
.gtnox-wm-updated { margin-left: 0.25rem; }

.gtnox-wm-queue {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}
.gtnox-wm-stat {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  padding: 0.7rem 0.9rem;
  box-shadow: var(--gx-shadow);
}
.gtnox-wm-stat-val { font-size: 1.5rem; font-weight: 600; color: var(--gx-text-strong); line-height: 1.1; }
.gtnox-wm-stat-lbl { font-size: 11px; color: var(--gx-text-muted); text-transform: uppercase; letter-spacing: 0.03em; }
.gtnox-wm-stat-p .gtnox-wm-stat-val { color: var(--gx-accent); }
.gtnox-wm-stat-r .gtnox-wm-stat-val { color: var(--gx-warn); }
.gtnox-wm-stat-f .gtnox-wm-stat-val { color: var(--gx-danger); }
.gtnox-wm-stat-s .gtnox-wm-stat-val { color: var(--gx-warn); }
.gtnox-wm-stat-d .gtnox-wm-stat-val { color: var(--gx-success); }

.gtnox-wm-host {
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  padding: 1rem;
  margin-bottom: 1rem;
  box-shadow: var(--gx-shadow);
}
.gtnox-wm-host-head { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.gtnox-wm-host-badge { font-size: 11px; padding: 0.1rem 0.5rem; border-radius: 999px; font-weight: 500; }
.gtnox-wm-host-badge.is-online { background: rgba(47,158,99,0.12); color: var(--gx-success); }
.gtnox-wm-host-badge.is-offline { background: var(--gx-surface-2); color: var(--gx-text-muted); }

.gtnox-wm-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.7rem;
}
.gtnox-wm-tile {
  border: 1px solid var(--gx-border);
  border-left: 3px solid var(--gx-border-light);
  border-radius: var(--gx-radius-sm);
  padding: 0.7rem 0.8rem;
  background: var(--gx-surface);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.gtnox-wm-tile-head { display: flex; align-items: center; gap: 0.4rem; }
.gtnox-wm-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--gx-border-light); flex-shrink: 0; }
.gtnox-wm-name { font-weight: 600; color: var(--gx-text-strong); font-family: var(--gx-mono); font-size: 12px; }
.gtnox-wm-kind { font-size: 10px; color: var(--gx-text-muted); text-transform: uppercase; margin-left: auto; }
.gtnox-wm-state { font-size: 12px; color: var(--gx-text); }
.gtnox-wm-current {
  background: var(--gx-surface-2);
  border-radius: var(--gx-radius-sm);
  padding: 0.3rem 0.45rem;
  font-size: 11px;
  overflow: hidden;
}
.gtnox-wm-vin { font-family: var(--gx-mono); color: var(--gx-text-strong); display: block; }
.gtnox-wm-query { color: var(--gx-text-muted); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gtnox-wm-err { font-size: 11px; color: var(--gx-danger); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gtnox-wm-actions { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.2rem; }
.gtnox-wm-actions .btn { padding: 0.15rem 0.5rem; font-size: 12px; }

/* Тепловая индикация по состоянию */
.gtnox-wm-tile.is-busy { border-left-color: var(--gx-success); }
.gtnox-wm-tile.is-busy .gtnox-wm-dot { background: var(--gx-success); box-shadow: 0 0 0 3px rgba(47,158,99,0.15); animation: wm-pulse 1.4s ease-in-out infinite; }
.gtnox-wm-tile.is-idle { border-left-color: var(--gx-accent); }
.gtnox-wm-tile.is-idle .gtnox-wm-dot { background: var(--gx-accent); }
.gtnox-wm-tile.is-starting { border-left-color: var(--gx-warn); }
.gtnox-wm-tile.is-starting .gtnox-wm-dot { background: var(--gx-warn); }
.gtnox-wm-tile.is-pending { border-left-color: var(--gx-warn); background: rgba(181,132,42,0.04); }
.gtnox-wm-tile.is-pending .gtnox-wm-dot { background: var(--gx-warn); animation: wm-pulse 1.4s ease-in-out infinite; }
.gtnox-wm-tile.is-stopping { border-left-color: var(--gx-text-muted); }
.gtnox-wm-tile.is-stopped { border-left-color: var(--gx-border-light); opacity: 0.85; }
.gtnox-wm-tile.is-stopped .gtnox-wm-dot { background: var(--gx-border-light); }
.gtnox-wm-tile.is-warmup { border-left-color: #7c5cff; background: rgba(124,92,255,0.05); }
.gtnox-wm-tile.is-warmup .gtnox-wm-dot { background: #7c5cff; animation: wm-pulse 1.4s ease-in-out infinite; }
.gtnox-wm-warmup-note { color: #5b45c9; }
.gtnox-wm-path { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: var(--gx-mono); font-size: 10px; }

@keyframes wm-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }

/* Модалка добавления профиля */
.gtnox-wm-modal {
  position: fixed; inset: 0; z-index: 1050;
  background: rgba(16,24,40,0.35);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.gtnox-wm-modal-card {
  background: var(--gx-surface);
  border-radius: var(--gx-radius);
  padding: 1.4rem;
  width: 100%; max-width: 420px;
  box-shadow: 0 10px 40px rgba(16,24,40,0.2);
}
.gtnox-wm-modal-wide { max-width: 520px; }
.gtnox-wm-local-panel .card { border-color: var(--gx-border); }

/* ===== Парсер каталога ===== */
.gtnox-wm-host-badge.is-busy { background: rgba(47,158,99,0.12); color: var(--gx-success); }
.gtnox-wm-host-badge.is-idle { background: var(--gx-surface-2); color: var(--gx-text-muted); }
.gtnox-wm-host-badge.is-pending { background: rgba(212,153,30,0.14); color: var(--gx-warn); }
.gtnox-wm-host-badge.is-stopped { background: rgba(214,69,69,0.12); color: var(--gx-danger); }

.gtnox-parser-status {
  background: var(--gx-surface); border: 1px solid var(--gx-border);
  border-radius: 10px; padding: 0.6rem 0.9rem;
}
.gtnox-parser-run textarea { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9rem; }
.gtnox-parser-pauses summary { cursor: pointer; color: var(--gx-text-muted); }
.gtnox-parser-pause-grid .form-label { color: var(--gx-text-muted); }
.gtnox-parser-search { max-width: 220px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.gtnox-parser-profile-select { width: auto; min-width: 11rem; max-width: 16rem; }
.gtnox-parser-queue-bar {
  background: var(--gx-surface); border: 1px solid var(--gx-border); border-radius: 10px;
}
.gtnox-parser-pager { min-height: 2rem; }

.gtnox-parser-vins { display: flex; flex-direction: column; gap: 0.5rem; max-height: 60vh; overflow-y: auto; }
.gtnox-parser-vin {
  background: var(--gx-surface); border: 1px solid var(--gx-border);
  border-radius: 10px; padding: 0.55rem 0.75rem;
}
/* Ghost-кнопки с нормальными горизонтальными отступами (в рядах с обычными кнопками). */
.btn-gtnox-ghost.btn-pad {
  padding: 0.2rem 0.55rem;
  border-radius: var(--gx-radius-sm);
}
.btn-gtnox-ghost.btn-pad:hover { background: var(--gx-surface-2); }

.gtnox-parser-vin.is-legacy { opacity: 0.75; border-style: dashed; }
.gtnox-parser-vin-head { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.gtnox-parser-vin-actions {
  display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.45rem;
}
.gtnox-parser-vin-actions .btn {
  font-size: 0.75rem;
  min-height: 1.65rem;
  padding: 0.1rem 0.55rem;
}
.gtnox-parser-vin-actions .btn-gtnox-ghost {
  border: 1px solid transparent;
  padding: 0.1rem 0.45rem;
}
.gtnox-parser-vin-actions .btn-gtnox-ghost:hover {
  background: var(--gx-surface-2);
  border-color: var(--gx-border);
}
.gtnox-parser-vin-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 600; letter-spacing: 0.02em; }
.gtnox-parser-bar {
  flex: 1; height: 8px; border-radius: 999px; background: var(--gx-surface-2); overflow: hidden;
}
.gtnox-parser-bar > span { display: block; height: 100%; background: var(--gx-accent); transition: width 0.3s; }
.gtnox-parser-stop-note { color: var(--gx-warn); margin-top: 0.15rem; }

.gtnox-parser-log { display: flex; flex-direction: column; gap: 0.25rem; max-height: 60vh; overflow-y: auto; font-size: 0.82rem; }
.gtnox-parser-ev {
  background: var(--gx-surface); border: 1px solid var(--gx-border); border-left-width: 3px;
  border-radius: 6px; padding: 0.35rem 0.55rem; display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: baseline;
}
.gtnox-parser-ev.lvl-error { border-left-color: var(--gx-danger); }
.gtnox-parser-ev.lvl-warn { border-left-color: var(--gx-warn); }
.gtnox-parser-ev.lvl-info { border-left-color: var(--gx-border); }
.gtnox-parser-ev-time { color: var(--gx-text-muted); font-variant-numeric: tabular-nums; }
.gtnox-parser-ev-vin { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--gx-text-strong); }
.gtnox-parser-ev-msg { flex: 1; }

.gtnox-parser-candidates { display: flex; flex-direction: column; gap: 0.35rem; max-height: 50vh; overflow-y: auto; }
.gtnox-parser-cand-row {
  display: flex; align-items: center; gap: 0.35rem;
  padding: 0.45rem 0.55rem; border: 1px solid var(--gx-border); border-radius: 8px;
  background: var(--gx-surface);
}
.gtnox-parser-cand-row:hover { background: var(--gx-surface-2); }
.gtnox-parser-cand-main {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
  flex: 1; min-width: 0; cursor: pointer; margin: 0;
}
.gtnox-parser-cand-row .form-check-input { margin: 0; flex-shrink: 0; }
.gtnox-parser-cand-row .ps-cand-dismiss-one {
  flex: 0 0 auto;
  width: 1.5rem; height: 1.5rem; padding: 0; line-height: 1;
  font-size: 1.1rem; color: var(--gx-muted, #667085);
}
.gtnox-parser-cand-row .ps-cand-dismiss-one:hover { color: var(--gx-danger, #d92d20); }

/* ===== VIN OCR drop zone (дашборд) ===== */
.gtnox-vin-drop {
  border: 1px dashed var(--gx-border);
  border-radius: var(--gx-radius-sm);
  padding: 0.45rem 0.5rem 0.5rem;
  transition: border-color 0.15s, background 0.15s;
}
.gtnox-vin-drop.is-dragover {
  border-color: var(--gx-accent);
  background: rgba(47, 111, 235, 0.06);
}
.gtnox-vin-drop.is-recognizing { opacity: 0.85; pointer-events: none; }
.gtnox-vin-photo-btn { display: inline-flex; align-items: center; justify-content: center; }
.gtnox-vin-photo-btn svg { display: block; }
.gtnox-vin-hint { margin-top: 0.35rem; line-height: 1.3; }
.gtnox-vin-hint kbd {
  font-size: 0.75em; padding: 0.1em 0.35em; border-radius: 3px;
  border: 1px solid var(--gx-border); background: var(--gx-surface-2);
}
.gtnox-vin-candidates { display: flex; }
.gtnox-vin-candidates .btn { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.75rem; }

/* Превью загруженного фото + статус распознавания */
.gtnox-vin-preview {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.5rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  background: var(--gx-surface-2);
}
.gtnox-vin-preview-info { flex: 1; min-width: 0; }
.gtnox-vin-clear-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.5rem;
}
.gtnox-vin-preview img {
  width: 52px; height: 52px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid var(--gx-border);
  flex: 0 0 auto;
}
.gtnox-vin-preview-info {
  display: flex; align-items: center; gap: 0.45rem;
  font-size: 0.85rem; color: var(--gx-text-strong);
}
.gtnox-vin-spinner {
  width: 15px; height: 15px;
  border: 2px solid var(--gx-border);
  border-top-color: var(--gx-accent);
  border-radius: 50%;
  display: inline-block;
  animation: gtnox-spin 0.7s linear infinite;
  flex: 0 0 auto;
}
@keyframes gtnox-spin { to { transform: rotate(360deg); } }

/* Кнопки действий в строках админ-таблиц */
.gtnox-row-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.25rem;
}
.gtnox-icon-btn {
  width: 28px;
  height: 28px;
  padding: 0;
  flex-shrink: 0;
}
.gtnox-icon-btn svg { display: block; }
.gtnox-icon-save:hover { color: var(--gx-accent); border-color: var(--gx-accent); }
.gtnox-icon-save.is-saved { color: #2f9e44; border-color: #2f9e44; }
.gtnox-icon-edit:hover { color: var(--gx-accent); border-color: var(--gx-accent); }
.gtnox-icon-del:hover { color: #d63939; border-color: #d63939; }

/* PT ↔ emex_details: поле PT не схлопывается при пустом значении */
.gtnox-pt-cell { min-width: 11rem; }

/* ===== Дашборд: выпадающие подсказки и дровер ENT ===== */
.gtnox-field-wrap { position: relative; }
.gtnox-field-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  z-index: 40;
  max-height: 220px;
  overflow-y: auto;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius-sm);
  box-shadow: var(--gx-shadow);
}
.gtnox-field-dropdown-item {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  padding: 0.45rem 0.65rem;
  font-size: 12.5px;
  color: var(--gx-text);
  cursor: pointer;
  border-bottom: 1px solid var(--gx-border);
}
.gtnox-field-dropdown-item:last-child { border-bottom: none; }
.gtnox-field-dropdown-item:hover,
.gtnox-field-dropdown-item:focus { background: var(--gx-surface-2); outline: none; }
.gtnox-field-dropdown-item .mono { font-family: var(--gx-mono); }
.gtnox-field-dropdown-empty {
  padding: 0.55rem 0.65rem;
  font-size: 12px;
  color: var(--gx-text-muted);
}

/* Поле детали — clear внутри инпута, без outline-кнопки */
.gtnox-query-field {
  position: relative;
  width: 100%;
}
.gtnox-query-field > .form-control {
  width: 100%;
  border-radius: var(--gx-radius-sm);
}
.gtnox-query-field:has(.remove-item:not(.d-none)) > .form-control {
  padding-right: 2.35rem;
}
.gtnox-query-remove {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  min-width: 1.75rem;
  min-height: 1.75rem;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: var(--gx-radius-sm);
  background: transparent;
  color: var(--gx-text-muted);
  cursor: pointer;
  line-height: 1;
  appearance: none;
  -webkit-appearance: none;
}
.gtnox-query-remove:hover {
  background: var(--gx-surface-2);
  color: #b91c1c;
}
.gtnox-query-remove:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--gx-accent-soft);
}
.gtnox-query-remove svg {
  display: block;
  pointer-events: none;
}

.dash-ent-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1040;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: var(--gx-surface);
  border-left: 1px solid var(--gx-border);
  box-shadow: -4px 0 24px rgba(16, 24, 40, 0.08);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  /* visibility прячет размытую тень закрытого дровера за краем экрана */
  visibility: hidden;
  transition: transform 0.22s ease, visibility 0.22s ease;
}
.dash-ent-drawer.is-open { transform: translateX(0); visibility: visible; }
.dash-ent-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  border-bottom: 1px solid var(--gx-border);
  flex-shrink: 0;
}
.dash-ent-drawer-head h6 {
  font-weight: 600;
  color: var(--gx-text-strong);
  margin: 0;
}
.dash-ent-drawer-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.85rem 1.15rem 1rem;
}
.dash-ent-section {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.dash-ent-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin: 0 0 0.45rem;
  flex-shrink: 0;
}
.dash-ent-suggest-list {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 0.15rem;
}
/* Мобильный «режим поиска»: поле переезжает в шапку полноэкранной панели */
.dash-ent-mobile-search { display: none; }
body.dash-ent-search-mode { overflow: hidden; }

@media (max-width: 991.98px) {
  .dash-ent-drawer {
    inset: 0;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100% !important;
    max-width: 100vw;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    z-index: 1085;
    border-left: none;
    box-shadow: none;
    transform: translateY(8px);
    opacity: 0;
    transition: transform 0.18s ease, opacity 0.18s ease, visibility 0.18s ease;
  }
  .dash-ent-drawer.is-open {
    transform: translateY(0);
    opacity: 1;
  }
  .dash-ent-head-title,
  .dash-ent-drawer-head .btn-close { display: none; }
  .dash-ent-drawer-head {
    gap: 0.4rem;
    padding: 0.55rem 0.7rem;
    padding-top: calc(0.55rem + env(safe-area-inset-top, 0px));
    padding-left: max(0.7rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.7rem, env(safe-area-inset-right, 0px));
  }
  .dash-ent-mobile-search {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
    min-width: 0;
  }
  .dash-ent-mobile-search .form-control {
    height: 2.5rem;
    font-size: 16px; /* меньше 16px — iOS зумит страницу при фокусе */
    min-width: 0;
  }
  .dash-ent-back,
  .dash-ent-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--gx-text);
    cursor: pointer;
  }
  .dash-ent-back:active,
  .dash-ent-clear:active { background: var(--gx-surface-2); }
  .dash-ent-drawer-body {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    gap: 0.55rem;
    padding: 0.7rem 0.8rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
    padding-left: max(0.8rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.8rem, env(safe-area-inset-right, 0px));
  }
  .dash-ent-section--main {
    flex: 1;
    min-height: 0;
  }
  .dash-ent-suggest-list {
    overflow: visible;
    flex: none;
  }
  .dash-ent-grid {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1;
    min-height: 0;
  }
  .dash-ent-chip,
  .dash-ent-chip-inner {
    min-height: 3.5rem;
    max-width: 100%;
  }
  .dash-ent-chip-img {
    width: 44px;
    height: 44px;
    border-radius: 8px;
  }
  .dash-ent-chip-text {
    -webkit-line-clamp: 2;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .dash-ent-chip-copy {
    min-width: 0;
  }
}
.dash-ent-suggest-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  text-align: left;
  border: 1px solid var(--gx-border);
  background: var(--gx-surface);
  border-radius: var(--gx-radius-sm);
  padding: 0.5rem 0.7rem;
  color: var(--gx-text-strong);
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s;
}
.dash-ent-suggest-item:hover {
  background: var(--gx-surface-2);
}
.dash-ent-suggest-text {
  font-size: 13px;
  line-height: 1.35;
  font-weight: 500;
}
.dash-ent-suggest-count {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--gx-text-muted);
}

.dash-groups-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1045;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: var(--gx-surface);
  border-left: 1px solid var(--gx-border);
  box-shadow: -4px 0 24px rgba(16, 24, 40, 0.08);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.22s ease, visibility 0.22s ease;
}
.dash-groups-drawer.is-open { transform: translateX(0); visibility: visible; }

.dash-prices-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1046;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: var(--gx-bg);
  border-left: 1px solid var(--gx-border);
  box-shadow: -4px 0 24px rgba(16, 24, 40, 0.08);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.22s ease, visibility 0.22s ease;
}
.dash-prices-drawer.is-open { transform: translateX(0); visibility: visible; }
.dash-prices-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1.15rem;
  background: var(--gx-surface);
  border-bottom: 1px solid var(--gx-border);
  flex-shrink: 0;
}
.dash-prices-head-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.dash-prices-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--gx-border);
  border-radius: 8px;
  background: var(--gx-bg);
  color: var(--gx-text);
  cursor: pointer;
}
.dash-prices-refresh:hover:not(:disabled) {
  background: var(--gx-surface-2);
  color: var(--gx-text-strong);
}
.dash-prices-refresh:disabled {
  opacity: 0.55;
  cursor: default;
}
.dash-prices-refresh.is-spinning svg {
  animation: dash-prices-spin 0.8s linear infinite;
}
@keyframes dash-prices-spin {
  to { transform: rotate(360deg); }
}
.dash-prices-drawer-head h6 {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--gx-text-strong);
  margin: 0;
  letter-spacing: 0.01em;
}
.dash-prices-drawer-head .small {
  margin-top: 0.15rem;
  font-size: 12px;
  color: var(--gx-text-muted);
}
.dash-prices-drawer-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.85rem 1rem 1.35rem;
}
.dash-prices-loading,
.dash-prices-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 8rem;
  padding: 1.5rem 1rem;
  color: var(--gx-text-muted);
  text-align: center;
  font-size: 13px;
}
.dash-prices-loading--searching {
  flex-direction: column;
  gap: 0.85rem;
  min-height: 14rem;
  padding: 1.75rem 1rem 2rem;
}
.dash-prices-loading-visual {
  position: relative;
  width: min(220px, 72%);
  aspect-ratio: 320 / 568;
  border-radius: 12px;
  overflow: hidden;
  background: #1a1a1a;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 10px 28px rgba(15, 23, 42, 0.12);
}
.dash-prices-loading-video,
.dash-prices-loading-still {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dash-prices-loading-still {
  display: none;
}
.dash-prices-loading-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--gx-text-muted);
  letter-spacing: 0.01em;
}
.dash-prices-loading-spinner {
  display: none;
  width: 1.15rem;
  height: 1.15rem;
  border: 2px solid rgba(15, 23, 42, 0.12);
  border-top-color: var(--gx-accent, #2f6fed);
  border-radius: 50%;
  animation: dash-prices-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .dash-prices-loading-video {
    display: none !important;
  }
  .dash-prices-loading-still,
  .dash-prices-loading-spinner {
    display: block;
  }
  .dash-prices-loading--searching {
    gap: 0.65rem;
  }
  .dash-prices-loading-visual {
    width: min(160px, 58%);
    box-shadow: none;
  }
  .dash-prices-loading-spinner {
    margin: 0.15rem auto 0;
  }
}
.dash-prices-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}
.dash-prices-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  font-size: 11px;
  font-weight: 600;
  color: var(--gx-text);
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: 999px;
}
.dash-prices-chip.is-gutap,
.dash-prices-chip.is-gutapam,
.dash-prices-source.is-gutap,
.dash-prices-source.is-gutapam {
  color: #0b5f8a;
  background: #e6f5fc;
  border-color: #a9d4ea;
}
.dash-prices-chip.is-autosan,
.dash-prices-source.is-autosan {
  color: #1f4b7a;
  background: #eaf2fb;
  border-color: #c5d8ef;
}
.dash-prices-chip.is-pitstop,
.dash-prices-source.is-pitstop {
  color: #7a3b12;
  background: #fff1e6;
  border-color: #efd0b5;
}
.dash-prices-chip.is-kingmotors,
.dash-prices-source.is-kingmotors {
  color: #5a2d7a;
  background: #f5eefb;
  border-color: #ddc8ef;
}
.dash-prices-chip.is-autosena,
.dash-prices-source.is-autosena {
  color: #1f5a4a;
  background: #e8f6f1;
  border-color: #b9ddd0;
}
.dash-prices-chip.is-primemotors,
.dash-prices-source.is-primemotors {
  color: #6a1f3a;
  background: #fbeef3;
  border-color: #efc8d6;
}
.dash-prices-chip.is-carfat,
.dash-prices-source.is-carfat {
  color: #5c4a12;
  background: #f7f3e4;
  border-color: #ddd0a4;
}
.dash-prices-chip.is-tecdoc,
.dash-prices-source.is-tecdoc {
  color: #0f4c5c;
  background: #e6f4f7;
  border-color: #a8d0db;
}
.dash-prices-chip.is-drivemotors,
.dash-prices-source.is-drivemotors {
  color: #065f46;
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.dash-prices-chip.is-warn {
  color: #8a5a00;
  border-color: #e6c98a;
  background: #fff8e8;
}
.dash-prices-source {
  display: inline-flex;
  align-items: center;
  margin-left: 0.4rem;
  padding: 0.05rem 0.35rem;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  vertical-align: middle;
  border-radius: 4px;
  color: var(--gx-text-muted);
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
}
.dash-prices-sources {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-top: 0.35rem;
}
.dash-prices-source-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  font-size: 12px;
  line-height: 1.3;
}
.dash-prices-source-price {
  font-weight: 600;
  color: var(--gx-text-strong);
  font-variant-numeric: tabular-nums;
}
.dash-prices-source-price small {
  font-weight: 500;
  color: var(--gx-text-muted);
  font-size: 10px;
}
.dash-prices-source-deliv {
  color: var(--gx-text-muted);
  font-size: 11px;
}
.dash-prices-price-label {
  font-size: 10px;
  color: var(--gx-text-muted);
  text-transform: lowercase;
  letter-spacing: 0.02em;
}
.dash-prices-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.dash-prices-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  background: var(--gx-surface);
  border: 1px solid var(--gx-border);
  border-radius: var(--gx-radius);
  box-shadow: var(--gx-shadow);
  transition: border-color 0.12s, background 0.12s;
}
.dash-prices-row:hover {
  border-color: var(--gx-border-light);
  background: #fff;
}
.dash-prices-img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  border-radius: var(--gx-radius-sm);
  flex-shrink: 0;
}
.dash-prices-img.is-empty {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}
.dash-prices-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.dash-prices-brand {
  font-weight: 600;
  font-size: 13px;
  color: var(--gx-text-strong);
  line-height: 1.3;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.15rem 0;
}
.dash-prices-code-line {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  min-width: 0;
}
.dash-prices-code {
  font-family: var(--gx-mono);
  font-size: 12px;
  line-height: 1.35;
}
.dash-prices-code .copy-tag {
  font-size: 12px;
}
.dash-prices-loupe {
  flex-shrink: 0;
}
.dash-prices-name {
  font-size: 12px;
  color: var(--gx-text);
  line-height: 1.35;
}
.dash-prices-deliv {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 0.2rem;
}
.dash-prices-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.4rem;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--gx-text-muted);
  background: var(--gx-surface-2);
  border-radius: 4px;
}
.dash-prices-tag.is-today {
  color: var(--gx-success);
  background: rgba(47, 158, 99, 0.1);
}
.dash-prices-tag.is-tomorrow {
  color: var(--gx-warn);
  background: rgba(181, 132, 42, 0.12);
}
.dash-prices-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0.15rem;
  flex-shrink: 0;
  text-align: right;
  min-width: 5.5rem;
}
.dash-prices-price {
  font-weight: 600;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--gx-text-strong);
  letter-spacing: -0.01em;
}
.dash-prices-currency {
  font-size: 10px;
  font-weight: 500;
  color: var(--gx-text-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.dash-prices-row.is-staff {
  align-items: flex-start;
  flex-wrap: wrap;
}
.dash-prices-row.is-staff .dash-prices-info {
  flex: 1 1 180px;
}
.dash-prices-row.is-staff .dash-prices-side {
  flex: 0 0 auto;
  min-width: 4.5rem;
}
.dash-prices-check {
  display: flex;
  align-items: center;
  padding-top: 0.35rem;
  margin: 0;
}
.dash-prices-pricing {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
  margin-top: 0.4rem;
}
@media (min-width: 520px) {
  .dash-prices-pricing {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.dash-prices-kpi {
  background: var(--gx-surface-2);
  border-radius: 6px;
  padding: 0.3rem 0.4rem;
  min-width: 0;
}
.dash-prices-kpi span {
  display: block;
  font-size: 10px;
  color: var(--gx-text-muted);
  line-height: 1.2;
}
.dash-prices-kpi b {
  font-size: 12px;
  font-weight: 650;
  color: var(--gx-text-strong);
}
.dash-prices-kpi.is-ours {
  background: rgba(37, 99, 235, 0.08);
}
.dash-prices-p-input {
  width: 100%;
  border: 1px solid var(--gx-border);
  border-radius: 4px;
  padding: 0.15rem 0.3rem;
  font-size: 12px;
  font-weight: 650;
  background: #fff;
}
.dash-prices-manual {
  color: var(--gx-warn);
  font-weight: 600;
}
.dash-prices-supplier {
  margin-top: 0.35rem;
  width: 100%;
  max-width: 100%;
  font-size: 12px;
  border: 1px solid var(--gx-border);
  border-radius: 6px;
  padding: 0.25rem 0.4rem;
  background: #fff;
}
.dash-prices-cart {
  border-top: 1px solid var(--gx-border);
  padding: 0.75rem;
  background: var(--gx-surface);
  flex-shrink: 0;
}
.dash-prices-cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.dash-prices-cart-count {
  display: inline-flex;
  min-width: 1.4rem;
  height: 1.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--gx-text-strong);
  color: #fff;
  font-size: 11px;
  font-weight: 650;
}
.dash-prices-cart-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  max-height: 160px;
  overflow: auto;
  margin-bottom: 0.55rem;
}
.dash-prices-cart-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--gx-border);
  border-radius: 8px;
  background: #fff;
}
.dash-prices-cart-thumb {
  width: 36px;
  height: 36px;
}
.dash-prices-cart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.dash-props-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  width: min(520px, 100vw);
  display: flex;
  flex-direction: column;
  background: var(--gx-bg);
  border-left: 1px solid var(--gx-border);
  box-shadow: var(--gx-shadow);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.2s ease, visibility 0.2s ease;
}
.dash-props-drawer.is-open { transform: translateX(0); visibility: visible; }
.dash-props-btn {
  display: inline-flex;
  align-items: center;
  margin: 0 0 0.65rem;
  padding: 0.28rem 0.7rem;
  font-size: 12px;
  font-weight: 650;
  color: #fff;
  background: #0f766e;
  border: 1px solid #0f766e;
  border-radius: var(--gx-radius-sm);
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08);
}
.dash-props-btn:hover {
  background: #0d9488;
  border-color: #0d9488;
  color: #fff;
}
.dash-prices-row.is-in-cart {
  background: rgba(15, 118, 110, 0.08);
  border-color: rgba(15, 118, 110, 0.35);
}
.gtnox-results-table tr.is-in-cart {
  background: rgba(15, 118, 110, 0.1);
}
.gtnox-results-table tr.is-in-cart td {
  border-color: rgba(15, 118, 110, 0.2);
}
.dash-prices-source-stock {
  font-size: 11px;
  color: var(--gx-text-muted);
  white-space: nowrap;
}
.dash-prices-source-loc {
  font-size: 11px;
  color: #64748b;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dash-prices-source-row.is-warehouse .dash-prices-source {
  font-weight: 600;
}
.gtnox-body .dash-prices-btn {
  display: inline-flex;
  align-items: center;
  margin: 0 0 0 0.25rem;
  padding: 0.12rem 0.5rem;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.3;
  vertical-align: middle;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08);
}
.dash-groups-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  border-bottom: 1px solid var(--gx-border);
  flex-shrink: 0;
}
.dash-groups-drawer-head h6 {
  font-weight: 600;
  color: var(--gx-text-strong);
  margin: 0;
}
.dash-groups-drawer-meta {
  display: none;
}
.dash-groups-drawer-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(280px, 1.2fr);
  gap: 0.85rem 1rem;
  padding: 0.85rem 1.15rem 1rem;
}
.dash-groups-section {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.dash-groups-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin: 0 0 0.45rem;
  flex-shrink: 0;
}
.dash-groups-list,
.dash-groups-detail {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 0.15rem;
}
.dash-groups-list {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.dash-group-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  text-align: left;
  border: 1px solid var(--gx-border);
  background: var(--gx-surface);
  border-radius: var(--gx-radius-sm);
  padding: 0.55rem 0.7rem;
  color: var(--gx-text-strong);
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s;
}
.dash-group-item:hover { background: var(--gx-surface-2); }
.dash-group-item.is-active {
  border-color: #206bc4;
  background: #f0f6ff;
}
.dash-group-item.is-hit {
  border-color: color-mix(in srgb, #16a34a 35%, var(--gx-border));
}
.dash-group-item-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}
.dash-group-item-id {
  font-size: 11px;
  color: var(--gx-text-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.dash-group-item-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  justify-content: flex-end;
  flex-shrink: 0;
}
.dash-group-badge {
  font-size: 10px;
  line-height: 1.2;
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  background: var(--gx-surface-2);
  color: var(--gx-text-muted);
  white-space: nowrap;
}
.dash-group-badge.is-ok {
  background: color-mix(in srgb, #16a34a 16%, var(--gx-surface));
  color: #15803d;
}
.dash-group-badge.is-muted { opacity: 0.85; }
.dash-groups-detail-block {
  margin-bottom: 0.85rem;
}
.dash-groups-detail-block:last-child { margin-bottom: 0; }
.dash-group-section-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin: 0 0 0.35rem;
}
.dash-group-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.dash-group-list li {
  font-size: 12px;
  line-height: 1.35;
  color: var(--gx-text);
  display: flex;
  gap: 0.45rem;
  align-items: baseline;
  flex-wrap: wrap;
}
.dash-group-list .oem {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 600;
  flex-shrink: 0;
}
.dash-group-list .muted { color: var(--gx-text-muted); }
.dash-groups-section-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  padding: 0.65rem 0.35rem 0.35rem;
  margin-top: 0.25rem;
}
.dash-groups-section-label:first-child { padding-top: 0.15rem; }
.dash-group-details-table {
  width: 100%;
  margin: 0;
}
.dash-group-details-table .col-actions {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.dash-detail-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  align-items: center;
}
.dash-action-btn,
.dash-my-detail-btn,
.dash-extra-order-btn {
  font-size: 0.82rem;
  font-weight: 500;
  min-height: 32px;
  min-width: 7.6rem;
  padding: 0 0.75rem;
  border-radius: var(--gx-radius-sm);
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
  box-sizing: border-box;
}
.dash-my-detail-btn {
  background: var(--gx-text-strong);
  color: #fff;
  border: 1px solid transparent;
}
.dash-my-detail-btn:hover {
  background: #000;
  color: #fff;
}
.dash-my-detail-btn.is-done,
.dash-my-detail-btn:disabled {
  opacity: 0.75;
  cursor: default;
}
.dash-extra-order-btn {
  background: #fff;
  color: var(--gx-text-strong);
  border: 1px solid var(--gx-text-strong);
}
.dash-extra-order-btn:hover {
  background: var(--gx-surface-2);
}
.dash-extra-order-btn.is-done,
.dash-extra-order-btn:disabled {
  opacity: 0.75;
  cursor: default;
}
.dash-detail-row td {
  border-top: 1px solid var(--gx-border);
  vertical-align: middle;
  padding: 0.4rem 0.45rem;
}
.dash-detail-row.is-alt td {
  background: var(--gx-surface-2);
}
.dash-detail-row.is-matched td {
  background: rgba(47, 158, 99, 0.12);
  color: var(--gx-success);
}
.dash-detail-row.is-matched .copy-tag {
  border-color: rgba(47, 158, 99, 0.45);
  color: var(--gx-success);
}
.dash-toast {
  position: fixed;
  top: 1rem;
  right: 1rem;
  left: auto;
  z-index: 11000;
  max-width: min(22rem, calc(100vw - 2rem));
  padding: 0.7rem 1rem;
  border-radius: var(--gx-radius-sm, 6px);
  border: 1px solid transparent;
  background: rgba(47, 158, 99, 0.12);
  color: var(--gx-success);
  border-color: rgba(47, 158, 99, 0.35);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 550;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.dash-toast.is-show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.dash-toast.is-ok {
  background: rgba(47, 158, 99, 0.12);
  color: var(--gx-success);
  border-color: rgba(47, 158, 99, 0.35);
}
.dash-toast.is-warn {
  background: rgba(181, 132, 42, 0.14);
  color: var(--gx-warn);
  border-color: rgba(181, 132, 42, 0.4);
}
.dash-toast.is-err {
  background: rgba(208, 82, 79, 0.12);
  color: var(--gx-danger);
  border-color: rgba(208, 82, 79, 0.4);
}
.gtnox-groups-btn {
  font-size: 11px;
  padding: 0.1rem 0.45rem;
  border: 1px solid var(--gx-border);
  background: var(--gx-surface);
  border-radius: var(--gx-radius-sm);
  color: var(--gx-text-muted);
  cursor: pointer;
  line-height: 1.4;
}
.gtnox-groups-btn:hover {
  color: var(--gx-text-strong);
  background: var(--gx-surface-2);
}
.gtnox-groups-btn.is-black {
  font-size: 0.82rem;
  font-weight: 500;
  min-height: 32px;
  padding: 0 0.85rem;
  background: var(--gx-text-strong);
  color: #fff;
  border-color: transparent;
  display: inline-flex;
  align-items: center;
}
.gtnox-groups-btn.is-black:hover {
  background: #000;
  color: #fff;
}
.gtnox-groups-btn.is-cta {
  font-size: 0.82rem;
  font-weight: 500;
  min-height: 32px;
  padding: 0 0.85rem;
  background: var(--gx-text-strong);
  color: #fff;
  border-color: transparent;
  margin-top: 0.35rem;
  display: inline-flex;
  align-items: center;
  animation: gtnox-cta-pulse 1.6s ease-in-out infinite;
}
.gtnox-groups-btn.is-cta:hover {
  background: #000;
  color: #fff;
  animation: none;
}
@keyframes gtnox-cta-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(15, 23, 42, 0.35);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 7px rgba(15, 23, 42, 0);
    transform: scale(1.03);
  }
}
.gtnox-item-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.15rem 0 0.25rem;
}
.gtnox-query-block.is-extra-order {
  border-left: 3px solid var(--gx-success);
  padding-left: 0.65rem;
  background: rgba(47, 158, 99, 0.04);
  border-radius: 0 var(--gx-radius-sm) var(--gx-radius-sm) 0;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}
.gtnox-query-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: pointer;
  user-select: none;
}
.gtnox-query-head-main { flex: 1; min-width: 0; }
.gtnox-query-head .gtnox-chevron {
  flex-shrink: 0;
  margin-top: 0.2rem;
  color: var(--gx-success);
  transition: transform 0.15s;
}
.gtnox-query-block.is-extra-order.is-open .gtnox-query-head .gtnox-chevron {
  transform: rotate(180deg);
}
.gtnox-query-block.is-extra-order.is-open .gtnox-query-head {
  margin-bottom: 0.35rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(47, 158, 99, 0.2);
}
.gtnox-query-body { display: none; }
.gtnox-query-block.is-extra-order.is-open > .gtnox-query-body { display: block; }

/* Свёрнутый доп. заказ / по коду — только хедер, спокойный синий */
.gtnox-query-block.is-extra-order.is-collapsed,
.gtnox-query-block.is-extra-order:not(.is-open) {
  border-left-color: var(--gx-accent);
  background: rgba(76, 126, 243, 0.08);
  border-color: rgba(76, 126, 243, 0.32);
  box-shadow: inset 0 0 0 1px rgba(76, 126, 243, 0.08);
}
.gtnox-query-block.is-extra-order.is-collapsed .gtnox-query-head .gtnox-chevron,
.gtnox-query-block.is-extra-order:not(.is-open) .gtnox-query-head .gtnox-chevron {
  color: var(--gx-accent);
  transform: none;
}
.gtnox-query-block.is-extra-order.is-collapsed .gtnox-extra-order-banner,
.gtnox-query-block.is-extra-order:not(.is-open) .gtnox-extra-order-banner {
  color: var(--gx-accent);
}
.gtnox-query-block.is-extra-order.is-collapsed .gtnox-query-head,
.gtnox-query-block.is-extra-order:not(.is-open) .gtnox-query-head {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.gtnox-extra-order-banner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--gx-success);
  margin-bottom: 0.25rem;
  line-height: 1.35;
}
.gtnox-extra-order-banner-text { min-width: 0; flex: 1; }
.gtnox-user-detail-del {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  padding: 0;
  border: 1px solid var(--gx-border, #d0d5dd);
  border-radius: 4px;
  background: #fff;
  color: var(--gx-muted, #667085);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}
.gtnox-user-detail-del:hover {
  border-color: var(--gx-danger, #d92d20);
  color: var(--gx-danger, #d92d20);
  background: #fef3f2;
}
.gtnox-user-detail-del.is-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.25rem;
  vertical-align: middle;
}
.gtnox-user-detail-del:disabled {
  opacity: 0.55;
  cursor: wait;
}
.gtnox-req-footer {
  margin-top: 0.65rem;
  padding-top: 0;
  border-top: 0;
}
.gtnox-req-footer-label {
  display: none;
}
.gtnox-req-footer .gtnox-workflow-bar {
  margin-bottom: 0.55rem;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.gtnox-req-footer .gtnox-comments {
  margin-top: 0;
  border-top: 0;
  padding-top: 0;
}
.gtnox-query-block.is-extra-detail .gtnox-results-table {
  margin: 0;
}
.gtnox-query-block.is-extra-detail .gtnox-results-table thead {
  display: none;
}
.gtnox-query-block.is-extra-detail .gtnox-item-empty {
  padding: 0.35rem 0;
}
.gtnox-extra-details {
  display: none;
}
@media (max-width: 991.98px) {
  .dash-groups-drawer-body {
    grid-template-columns: 1fr;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  }
  .dash-groups-list,
  .dash-groups-detail {
    overflow: visible;
    flex: none;
    max-height: none;
  }
  .dash-groups-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--gx-border);
    margin-bottom: 0.35rem;
  }
  .dash-groups-detail {
    min-height: 12rem;
  }
}

.gtnox-dd-ent {
  display: flex !important;
  align-items: center;
  gap: 0.5rem;
}
.gtnox-dd-ent-img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  border-radius: 4px;
  flex-shrink: 0;
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
}
.gtnox-dd-ent-img--empty {
  display: inline-block;
}
.dash-ent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 0.65rem;
  align-content: start;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.15rem 0.15rem 0.15rem 0;
}
.dash-ent-chip {
  width: 100%;
  min-height: 5.5rem;
  text-align: left;
  border: 1px solid var(--gx-border);
  border-radius: 12px;
  background: var(--gx-surface);
  padding: 0;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 500;
  color: var(--gx-text-strong);
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.04);
  transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
  overflow: hidden;
}
.dash-ent-chip-inner {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem;
  min-height: 5.5rem;
}
.dash-ent-chip-img {
  width: 66px;
  height: 66px;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 11px;
  background: var(--gx-surface-2);
  border: 1px solid var(--gx-border);
}
.dash-ent-chip-img--empty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--gx-surface-2) 0%, var(--gx-surface) 100%);
  color: var(--gx-text-muted);
}
.dash-ent-chip-copy {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.dash-ent-chip-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.dash-ent-chip-meta {
  font-size: 11px;
  line-height: 1.2;
  font-weight: 500;
  color: var(--gx-text-muted);
}
.dash-ent-chip:hover {
  border-color: var(--gx-accent);
  background: var(--gx-accent-soft);
  box-shadow: 0 2px 8px rgba(16, 24, 40, 0.06);
}
.dash-ent-empty {
  grid-column: 1 / -1;
  font-size: 12px;
  color: var(--gx-text-muted);
  padding: 0.35rem 0;
}
.dash-ent-footer {
  flex-shrink: 0;
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--gx-border);
  font-size: 11.5px;
  color: var(--gx-text-muted);
  text-align: center;
}

.ea-drawer-scrim {
  position: fixed; inset: 0; z-index: 1050; background: rgba(15, 23, 42, 0.32);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.22s ease, visibility 0.22s ease;
}
.ea-drawer-scrim.ea-open { opacity: 1; visibility: visible; pointer-events: auto; }
.ea-drawer {
  position: fixed; top: 0; right: 0; z-index: 1060;
  width: min(960px, 100vw); height: 100%; max-height: 100dvh;
  background: #fff; border-left: 1px solid var(--tblr-border-color, #e6e7e9);
  box-shadow: -8px 0 32px rgba(15, 23, 42, 0.12);
  display: flex; flex-direction: column;
  transform: translateX(100%); visibility: hidden;
  transition: transform 0.26s ease, visibility 0.26s ease;
}
.ea-drawer.ea-open { transform: translateX(0); visibility: visible; }
.ea-drawer-sm { width: min(440px, 100vw); }
.ea-drawer-header {
  flex-shrink: 0; display: flex; align-items: center; gap: 0.75rem;
  padding: 1rem 1.25rem; border-bottom: 1px solid var(--tblr-border-color, #e6e7e9);
}
.ea-drawer-header h5 { margin: 0; flex: 1; font-size: 1.05rem; font-weight: 600; }
.ea-drawer-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 1rem 1.25rem; }
.ea-drawer-footer {
  flex-shrink: 0; padding: 0.85rem 1.25rem 1rem;
  border-top: 1px solid var(--tblr-border-color, #e6e7e9);
  background: #f8fafc;
}
.ea-drawer-section {
  border: 1px solid var(--tblr-border-color, #e6e7e9);
  border-radius: 0.4rem;
  padding: 0.85rem 0.9rem; margin-bottom: 0.85rem; background: #fafbfc;
}
.ea-drawer-section h6 {
  font-size: 0.72rem; text-transform: uppercase; color: var(--tblr-secondary, #6c7a91);
  margin: 0 0 0.55rem; font-weight: 700;
}
.ea-drawer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}
@media (min-width: 768px) {
  .ea-drawer-grid {
    grid-template-columns: 1.15fr 0.85fr;
    align-items: start;
  }
}
.ea-candidate-btn {
  display: block; width: 100%; text-align: left;
  border: 1px solid var(--tblr-border-color, #e6e7e9); border-radius: 0.35rem;
  padding: 0.5rem 0.65rem; margin-bottom: 0.4rem; background: #fff;
  font-size: 0.84rem;
}
.ea-candidate-btn:hover { background: #f8fafc; }
.ea-candidate-btn.is-picked { border-color: #206bc4; background: #f0f6ff; }
.ea-candidate-list { max-height: 280px; overflow-y: auto; }
.ea-search-wrap { position: relative; }
.ea-search-results {
  position: absolute; z-index: 20; background: #fff; border: 1px solid #ced4da;
  border-radius: 0.25rem; max-height: 220px; overflow-y: auto; width: 100%;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
html.ea-drawer-active { overflow: hidden !important; }

.gtnox-pt-cell .pt-input { min-width: 10rem; width: 100%; }

.gtnox-comment.is-req-note{background:rgba(15,118,110,.08);border-radius:6px;padding:.35rem.5rem;}

/* Поиск цен по OEM/кроссу — как comment-form на карточке */
.gtnox-oem-prices-bar {
  margin: 0.4rem 0 0.55rem;
}
.gtnox-oem-prices-row {
  display: flex;
  gap: 0.35rem;
  align-items: center;
}
.gtnox-oem-prices-row .gtnox-oem-prices-input {
  flex: 1;
  min-width: 0;
}
.gtnox-oem-prices-row .dash-oem-prices-go {
  flex-shrink: 0;
}

/* ===== Клиент: lookup + дровер ===== */
.gtnox-client-lookup-card .gtnox-card-body {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}
.dash-client-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1076;
  width: min(380px, 100vw);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-left: 1px solid var(--gx-border);
  box-shadow: -4px 0 24px rgba(16, 24, 40, 0.08);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.22s ease, visibility 0.22s ease;
}
.dash-client-drawer.is-open { transform: translateX(0); visibility: visible; }
.dash-client-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1.1rem;
  border-bottom: 1px solid rgba(15, 118, 110, 0.12);
  background: #fff;
  flex-shrink: 0;
}
.dash-client-drawer-head h6 {
  font-weight: 600;
  color: var(--gx-text-strong);
  margin: 0;
}
.dash-client-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.85rem 1.1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: #fff;
}
.dash-client-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin: 0 0 0.45rem;
}
.dash-client-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.dash-client-chip-wrap {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
}
.dash-client-chip-wrap .dash-client-chip {
  flex: 1;
  min-width: 0;
  border-radius: 8px 0 0 8px;
}
.dash-client-chip-wrap:not(:has(.dash-client-chip-del)) .dash-client-chip {
  border-radius: 8px;
}
.dash-client-chip-del {
  flex: 0 0 auto;
  width: 1.55rem;
  border: 1px solid rgba(15, 118, 110, 0.16);
  border-left: 0;
  border-radius: 0 8px 8px 0;
  background: rgba(15, 118, 110, 0.04);
  color: var(--gx-muted, #667085);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.dash-client-chip-del:hover {
  color: var(--gx-danger, #d92d20);
  background: #fef3f2;
  border-color: rgba(217, 45, 32, 0.35);
}
.dash-client-chip-del:disabled {
  opacity: 0.55;
  cursor: wait;
}
.dash-client-chip {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.4rem;
  max-width: 100%;
  padding: 0.4rem 0.55rem 0.4rem 0.4rem;
  border: 1px solid rgba(15, 118, 110, 0.16);
  border-radius: 8px;
  background: rgba(15, 118, 110, 0.04);
  color: #3d7a74;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.dash-client-chip:hover {
  background: rgba(15, 118, 110, 0.08);
  border-color: rgba(13, 148, 136, 0.28);
  color: #2f6f69;
}
.dash-client-chip-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 0.05rem;
  border-radius: 50%;
  border: 1.5px solid rgba(15, 118, 110, 0.32);
  background: #fff;
  color: transparent;
  box-sizing: border-box;
}
.dash-client-chip-check svg {
  display: block;
  width: 10px;
  height: 10px;
}
.dash-client-chip:hover .dash-client-chip-check {
  border-color: rgba(13, 148, 136, 0.55);
}
.dash-client-chip.is-active {
  border-color: rgba(15, 118, 110, 0.32);
  background: rgba(15, 118, 110, 0.09);
  color: #2a6862;
}
.dash-client-chip.is-active:hover {
  background: rgba(15, 118, 110, 0.12);
  color: #24605b;
}
.dash-client-chip.is-active .dash-client-chip-check {
  border-color: #0f766e;
  background: #0f766e;
  color: #fff;
}
.dash-client-chip-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1;
}
.dash-client-chip-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.dash-client-chip-sub {
  font-size: 11px;
  font-weight: 400;
  line-height: 1.25;
  color: #6b8f8a;
  white-space: normal;
  word-break: break-word;
}
.dash-client-chip.is-active .dash-client-chip-sub {
  color: #5a827d;
}
.dash-client-chip-meta {
  font-size: 10px;
  font-weight: 500;
  opacity: 0.65;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.dash-client-chip.is-active .dash-client-chip-meta { opacity: 0.8; }
.dash-client-empty {
  font-size: 12.5px;
  color: var(--gx-text-muted);
}
.dash-client-drawer-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1.1rem;
  border-top: 1px solid rgba(15, 118, 110, 0.12);
  background: #fff;
  flex-shrink: 0;
}
.gtnox-field-dropdown-item .dd-kind {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--gx-text-muted);
  margin-right: 0.35rem;
}
.gtnox-field-dropdown-item .dd-meta {
  display: block;
  font-size: 11px;
  color: var(--gx-text-muted);
  margin-top: 0.1rem;
}

.gtnox-results-filters.is-drawer.gtnox-results-filters--dates {
  gap: 0.65rem;
}
.gtnox-results-filters.is-drawer.gtnox-results-filters--dates > label {
  display: block;
  width: 100%;
}
.gtnox-results-filters.is-drawer.gtnox-results-filters--dates .form-control-sm {
  width: 100%;
  min-width: 0;
  max-width: none;
}

/* ── Mobile drawers + OEM cards (phones / tablets) ─ */
body:has(.dash-filters-drawer.is-open),
body:has(.dash-client-drawer.is-open),
body:has(.dash-ent-drawer.is-open),
body:has(.dash-groups-drawer.is-open),
body:has(.dash-vk-drawer.is-open),
body:has(.dash-prices-drawer.is-open),
body:has(.dash-props-drawer.is-open) {
  overflow: hidden;
  overscroll-behavior: none;
}

@media (max-width: 991.98px) {
  .dash-filters-drawer,
  .dash-client-drawer,
  .dash-vk-drawer,
  .dash-groups-drawer,
  .dash-prices-drawer,
  .dash-props-drawer {
    left: 0 !important;
    right: 0 !important;
    top: 0;
    bottom: 0;
    width: 100% !important;
    max-width: 100vw;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    border-left: none;
    box-shadow: none;
  }

  .dash-filters-drawer-head,
  .dash-client-drawer-head,
  .dash-vk-drawer-head,
  .dash-groups-drawer-head,
  .dash-prices-drawer-head {
    padding-top: calc(0.75rem + env(safe-area-inset-top, 0px));
    padding-left: max(0.85rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.85rem, env(safe-area-inset-right, 0px));
  }

  .dash-filters-drawer-body,
  .dash-client-drawer-body,
  .dash-vk-drawer-body,
  .dash-prices-drawer-body {
    padding-left: max(0.85rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.85rem, env(safe-area-inset-right, 0px));
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  .dash-client-drawer-footer,
  .dash-prices-cart {
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
  }

  .dash-drawer-vehicle {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .gtnox-filter-chip {
    max-width: 100%;
  }
  .gtnox-filter-chip-text {
    max-width: min(14rem, calc(100vw - 7rem));
  }

  .gtnox-req-head {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.45rem 0.65rem;
    padding: 0.7rem 0.75rem;
  }
  .gtnox-req-meta {
    flex: 1 1 100%;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.45rem;
    align-items: center;
  }

  .gtnox-oem-prices-bar {
    width: 100%;
  }
  .gtnox-oem-prices-row {
    flex-wrap: wrap;
  }
  .gtnox-oem-prices-row .gtnox-oem-prices-input {
    flex: 1 1 100%;
    min-width: 0;
    font-size: 16px; /* iOS: avoid focus zoom */
  }
}

/* Narrow phones: OEM results as cards */
@media (max-width: 640px) {
  .gtnox-body .copy-tag {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.28rem 0.55rem;
    font-size: 13px;
    line-height: 1.2;
  }
  .gtnox-body .gtnox-mini-btn {
    min-height: 32px;
    min-width: 32px;
    padding: 0 0.45rem;
  }
  .gtnox-body .gtnox-filter-chip-btn {
    min-width: 32px;
    min-height: 32px;
  }

  .gtnox-panel-body {
    padding: 0.55rem 0.55rem 0.85rem;
  }

  .gtnox-results-table thead {
    display: none;
  }
  .gtnox-results-table,
  .gtnox-results-table tbody {
    display: block;
    width: 100%;
  }
  .gtnox-results-table tr {
    display: block;
    width: 100%;
    margin: 0 0 0.55rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--gx-border);
    border-radius: 10px;
    background: var(--gx-surface);
    box-shadow: 0 1px 0 rgba(16, 24, 40, 0.04);
  }
  .gtnox-results-table tr:last-child {
    margin-bottom: 0;
  }
  .gtnox-results-table tr.is-best {
    border-color: color-mix(in srgb, var(--gx-accent) 45%, var(--gx-border));
    background: var(--gx-accent-soft);
  }
  .gtnox-results-table tr.is-in-cart {
    border-color: rgba(15, 118, 110, 0.35);
  }
  .gtnox-results-table tr.gtnox-unit-row {
    padding: 0.35rem 0.15rem 0.15rem;
    border: none;
    background: transparent;
    box-shadow: none;
    margin-bottom: 0.15rem;
  }
  .gtnox-results-table tr.gtnox-unit-row td {
    padding: 0;
    border: none;
  }
  .gtnox-results-table td {
    display: block;
    width: 100% !important;
    border: none;
    padding: 0.15rem 0;
    white-space: normal;
  }
  .gtnox-results-table .col-oem {
    font-size: 13px;
  }
  .gtnox-results-table .col-name {
    padding-top: 0.25rem;
  }
  .gtnox-results-table .col-actions {
    text-align: left;
    padding-top: 0.45rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
  }
  .gtnox-results-table .col-actions .dash-prices-btn,
  .gtnox-results-table .col-actions .dash-props-btn {
    margin: 0;
  }
  .gtnox-results-table .col-actions .price-link {
    margin-left: 0;
    flex: 1 1 auto;
  }

  .gtnox-filter-chip {
    max-width: 100%;
    flex-wrap: wrap;
  }
  .gtnox-filter-chip-text {
    max-width: min(12rem, calc(100vw - 8rem));
  }
  .gtnox-client-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    max-width: 100%;
    min-width: 0;
  }

  .gtnox-unit-label,
  .dash-group-unit-label,
  .col-name,
  .gtnox-query-label {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .gtnox-req {
    overflow: hidden;
  }
  .gtnox-req-body {
    overflow-x: hidden;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .gtnox-oem-cell {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
  }
  .gtnox-oem-ent-thumb {
    width: 44px;
    height: 44px;
    border-radius: 8px;
  }
  .gtnox-oem-main {
    flex: 1 1 auto;
    gap: 0.35rem;
  }

  .dash-group-details-table thead {
    display: none;
  }
  .dash-group-details-table,
  .dash-group-details-table tbody,
  .dash-group-details-table tr,
  .dash-group-details-table td {
    display: block;
    width: 100%;
  }
  .dash-group-details-table tr {
    margin: 0 0 0.5rem;
    padding: 0.5rem 0.55rem;
    border: 1px solid var(--gx-border);
    border-radius: 8px;
    background: var(--gx-surface);
  }
  .dash-group-details-table td {
    border: none;
    padding: 0.15rem 0;
    white-space: normal;
  }
  .dash-group-details-table .col-actions {
    width: 100%;
    text-align: left;
  }
  .dash-detail-actions {
    justify-content: flex-start;
    width: 100%;
  }
  .dash-action-btn,
  .dash-my-detail-btn,
  .dash-extra-order-btn {
    min-width: 0;
    flex: 1 1 auto;
  }

  .dash-prices-row {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.55rem 0.65rem;
  }
  .dash-prices-side {
    align-items: flex-start;
    text-align: left;
    min-width: 0;
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
  }
  .dash-prices-img,
  .dash-prices-img.is-empty {
    width: 44px;
    height: 44px;
  }

  .dash-prices-cart-actions {
    width: 100%;
  }
  .dash-prices-cart-actions .btn {
    flex: 1 1 auto;
  }

  .dash-ent-chip-inner {
    padding: 0.55rem;
    min-height: 3.75rem;
  }
  .dash-ent-chip-img {
    width: 48px;
    height: 48px;
  }

  .gtnox-stock-row {
    flex-wrap: wrap;
  }
}

/* Very small phones */
@media (max-width: 380px) {
  .gtnox-brand {
    font-size: 1.05rem;
  }
  .gtnox-header-bar {
    gap: 0.35rem;
  }
  .gtnox-body .copy-tag {
    font-size: 12px;
    padding: 0.25rem 0.4rem;
  }
  .gtnox-oem-ent-thumb {
    width: 36px;
    height: 36px;
  }
  .dash-prices-drawer-head h6,
  .dash-groups-drawer-head h6 {
    font-size: 0.9rem;
  }
  .gtnox-results-table tr {
    padding: 0.45rem 0.5rem;
  }
}

