  /* =========================================================
    VIService Design System (MVP)
    Правило: HTML в index.php, внешний вид — здесь.
    ========================================================= */

  /* ---------------------------------------------------------
  1) Fonts
  --------------------------------------------------------- */

@font-face{
  font-family: "Vi Sans";
  src: url("../fonts/visans/VI_Sans_Normal.woff2") format("woff2");
  font-weight: 450;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Vi Sans";
  src: url("../fonts/visans/VI_Sans_Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Vi Sans";
  src: url("../fonts/visans/VI_Sans_DemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ---------------------------------------------------------
  2) Design tokens (цвета/радиусы/тени) — сердце системы
    --------------------------------------------------------- */
  :root{
    /* Brand */
    --brand: #D60000;
    --brand-hover: #B80000;
    --brand-active: #F05A5A;

    /* Base */
    --ink: #0B0B0B;
    --paper: #FFFFFF;

    /* Neutrals */
    --bg: #F5F6F7;
    --muted: #6B7280;
    --line: #E6E8EB;
    --soft: #F0F1F3;

    /* Radius */
    --r-sm: 12px;
    --r-md: 16px;
    --r-lg: 24px;

    /* Shadows */
    --shadow-1: 0 1px 0 rgba(0,0,0,.04), 0 8px 30px rgba(0,0,0,.06);
    --shadow-2: 0 1px 0 rgba(0,0,0,.05), 0 12px 40px rgba(0,0,0,.10);
  }

  .hero-image-wrap {
    position: relative;
    height: 100%;
    min-height: 360px;
    overflow: hidden;
    border-radius: 16px;
  }

  /* Само изображение */
  .hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }


  .hero-image {
    -webkit-mask-image: radial-gradient(
      ellipse at center,
      rgba(0,0,0,1) 50%,
      rgba(0,0,0,0.75) 80%,
      rgba(0,0,0,0) 100%
    );
    mask-image: radial-gradient(
      ellipse at center,
      rgba(0,0,0,1) 50%,
      rgba(0,0,0,0.5) 80%,
      rgba(0,0,0,0) 100%
    );
  }

  .hero-image {
    animation: heroFadeIn 0.8s ease-out both;
  }

  @keyframes heroFadeIn {
    from {
      opacity: 0;
      transform: scale(1.02);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

/* =========================
   Service Center Photo
   ========================= */

.service-center-photo {
  display: flex;
  justify-content: center;
}

.service-center-photo__img {
  max-height: 420px;
  width: auto;
  border-radius: 14px;        /* мягкие скругления */

  object-fit: cover;

  box-shadow: 0 12px 30px rgba(0,0,0,.08);
  border: 1px solid var(--line);
}


/* Адрес как ссылка */
.sc-address-link{
  color: inherit;
  text-decoration: none;
  font-weight: 500;
}

.sc-address-link:hover{
  text-decoration: underline;
}

/* Координаты — кликабельный “чип” */
.sc-coords{
  display: inline-flex;
  align-items: center;
  gap: 8px;

  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.02);

  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  user-select: none;

  transition: background-color .15s ease, transform .15s ease, border-color .15s ease;
}

.sc-coords:hover{
  background: rgba(214,0,0,.06);
  border-color: rgba(214,0,0,.22);
}

.sc-coords:active{
  transform: scale(0.98);
}

/* подпись справа */
.sc-copy-hint{
  margin-left: 10px;
  font-size: 12px;
  opacity: .75;
}
  /* ---------------------------------------------------------
    3) Base / Typography (глобальные правила)
    --------------------------------------------------------- */
  html, body { height: 100%; }

  body{
    color: var(--ink);
    background: var(--paper);


    font-family: "Vi Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  }

  .letter-tight{ letter-spacing: .2px; }

  h1, .display-5{
    font-weight: 600;
    letter-spacing: -0.02em;
  }

  h2, h3{
    font-weight: 600;
    letter-spacing: -0.015em;
  }

  /* Bootstrap иногда делает text-secondary синеватым — выравниваем */
  .text-secondary{ color: var(--muted) !important; }

  a.link-secondary{ color: var(--muted) !important; }
  a.link-secondary:hover{ color: var(--ink) !important; }


  /* ---------------------------------------------------------
    4) Layout helpers / Sections (то, что можно переиспользовать)
    --------------------------------------------------------- */
  /* Используем вместо bg-light для секций */
  .section-soft{
 background: var(--bg);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  }


.cta-form-glass .btn{
  border-radius: 14px;
}
  /* ---------------------------------------------------------
    5) Brand elements
    --------------------------------------------------------- */
  .brand-mark{
    width: 12px;
    height: 12px;
    border-radius: 4px;
    background: var(--brand);
    display: inline-block;
  }


  /* =========================
    Buttons — final brand states
    ========================= */

  .btn-primary{
    background-color: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
    transition: background-color .15s ease, border-color .15s ease;
  }

  /* hover — темнее (бордовый) */
  .btn-primary:hover{
    background-color: var(--brand-hover) !important;
    border-color: var(--brand-hover) !important;
  }

  /* active — светлее (нажатие) */
  .btn-primary:active,
  .btn-primary.active{
    background-color: var(--brand-active) !important;
    border-color: var(--brand-active) !important;
  }

  /* focus — без синего, аккуратный */
  .btn-primary:focus,
  .btn-primary:focus-visible{
    outline: none !important;
    box-shadow: 0 0 0 .25rem rgba(214, 0, 0, .25) !important;
  }







  /* ---------------------------------------------------------
    7) Hero
    --------------------------------------------------------- */
  .hero{
    /* очень лёгкий фирменный “воздух”, без цирка */
    background:
      radial-gradient(1200px 520px at 15% 10%, rgba(214,0,0,.08), transparent 60%),
      radial-gradient(900px 520px at 90% 30%, rgba(11,11,11,.05), transparent 55%);
  }

  .badge-soft{
    background: var(--soft);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: .45rem .75rem;
    font-size: .875rem;
    color: var(--ink);
  }

  .badge-soft--progress{
    background: rgba(13, 110, 253, .10);
    border-color: rgba(13, 110, 253, .20);
    color: #0d6efd;
  }

  .badge-soft--resolved{
    background: rgba(25, 135, 84, .10);
    border-color: rgba(25, 135, 84, .22);
    color: #198754;
  }

  .hero-card{
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-1);
  }


  /* ---------------------------------------------------------
    8) Cards / Panels / Tiles
    --------------------------------------------------------- */
  .card-clean{
    border: 1px solid rgba(0,0,0,.06);
    background: #fff;
    transition: box-shadow .2s ease, transform .2s ease;
  }

  .card-clean:hover{
    box-shadow: 0 16px 40px rgba(0,0,0,.08);
    transform: translateY(-2px);
  }

  .panel{
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-1);
  }

  .equipment-card{
  transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-align: center;
  padding: 32px 24px;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid #eef0f4;
  height: 100%;
  }

  .equipment-card i {
  transition: color 0.2s ease, transform 0.2s ease;
  color: #6c757d; /* базовый серый как в "Наши услуги" */
}

  .equipment-card .fw-semibold,
  .equipment-card .text-secondary {
    text-align: center;}


  .equipment-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  }
/* Иконка загорается корпоративным красным */
.equipment-card:hover i {
  color: #d60000; /* твой корпоративный красный */
  transform: scale(1.1);
}


  /* круг с иконкой */
.equipment-circle {
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: rgba(220, 38, 38, 0.08);
  color: var(--brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
}

/* заголовок */
.equipment-card h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
}

/* текст */
.equipment-card p {
  font-size: 14px;
  color: #6b7280;
  margin: 0;
  line-height: 1.5;
}



  .equipment-item {
    max-width: 320px;
  }

  /* большая центральная иконка */
  .equipment-icon-lg {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 2rem;
    background: #fff;
    border: 1px solid #6c757d;
    color: var(--brand);
  }


  /* Иконка */
  .equipment-icon {
    width: 44px;
    height: 44px;
    margin-bottom: 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary);
    border-color: var(--bs-border-color);
    background: #fff;
  }

  .equipment-icon i {
    font-size: 1.4rem;
  }

  .icon-chip{
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;

    /* красный как акцент, но не как заливка всего */
    background: rgba(214,0,0,.10);
    border: 1px solid rgba(214,0,0,.18);
  }

  .kpi{
    padding: .9rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--paper);
  }

  .kpi-title{ font-size: .8rem; color: var(--muted); }
  .kpi-value{ font-size: 1.15rem; font-weight: 600; color: var(--ink); }
  .kpi-sub{ font-size: .85rem; }

  .step{
    border-radius: var(--r-md);
    border: 1px solid var(--line);
    background: var(--paper);
  }

  .step-n{
    font-weight: 600;
    color: var(--brand);
    letter-spacing: .6px;
    margin-bottom: .5rem;
  }

  .mini-tile{
    padding: 14px;
    border: 1px dashed rgba(0,0,0,.18);
    border-radius: var(--r-md);
    color: #374151;
    background: rgba(0,0,0,.02);
    text-align: center;
  }

  .cta{
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-1);
  }

  .solution--warranty { --accent: #dc3545; } /* гарантия — доверие */
  .solution--paid     { --accent: #dc3545; } /* платный — сервис */
  .solution--field    { --accent: #dc3545; } /* выезд — мобильность */
  .solution-card {
    border-top: 3px solid var(--accent);
  }
  .solution-card .icon-chip {
    color: var(--accent);
    border-color: var(--accent);
  }

  /* ---------------------------------------------------------
    9) Forms (чуть более “дорого”)
    --------------------------------------------------------- */
  .form-control, .form-select{
    border-color: var(--line);
    border-radius: 12px;
  }

  .form-control:focus, .form-select:focus{
    border-color: rgba(214,0,0,.45);
    box-shadow: 0 0 0 .25rem rgba(214,0,0,.12);
  }


  /* ---------------------------------------------------------
    10) Accordion (чтобы не выбивался)
    --------------------------------------------------------- */
  .accordion-item{
    border-color: var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
  }

  .accordion-button:focus{
    box-shadow: 0 0 0 .25rem rgba(214,0,0,.12);
  }
  /* =========================================================
    Bootstrap tokens override (NO BLUE anywhere)
    ========================================================= */
  :root{
    --bs-primary: #D60000;
    --bs-primary-rgb: 214, 0, 0;

    /* если вдруг синеют ссылки/акцентные состояния */
    --bs-link-color: #D60000;
    --bs-link-hover-color: #B80000;

    /* кольцо фокуса (bootstrap 5.3) */
    --bs-focus-ring-color: rgba(214, 0, 0, .25);
  }

  /* Кнопки: заставляем Bootstrap использовать наши цвета */
  .btn{
    --bs-btn-focus-shadow-rgb: 214, 0, 0;
  }

  /* Primary: все состояния */
  .btn-primary{
    background-color: #D60000 !important;
    border-color: #D60000 !important;

    --bs-btn-bg: #D60000;
    --bs-btn-border-color: #D60000;
    --bs-btn-hover-bg: #B80000;
    --bs-btn-hover-border-color: #B80000;
    --bs-btn-active-bg: #B80000;
    --bs-btn-active-border-color: #B80000;
    --bs-btn-focus-shadow-rgb: 214, 0, 0;
  }



  /* Если “синеет” именно тень при клике/табе — фиксируем явно */
  .btn:focus,
  .btn:focus-visible{
    outline: none !important;
    box-shadow: 0 0 0 .25rem rgba(214, 0, 0, .25) !important;
  }

  /* =========================================================
    NavBar
    ========================================================= */
 .site-header{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  /* Bootstrap modals/backdrop are ~1050+. Header must be ниже, иначе будет перекрывать модалки. */
  z-index: 1030;
  background: #fff;
}

/* Кабинет: лёгкий фирменный фон для страниц настроек */
.settings-page{
  min-height: 100vh;
  background: linear-gradient(135deg, #ffffff 0%, rgba(214,0,0,0.06) 42%, rgba(214,0,0,0.10) 100%);
}
.settings-wrap{ max-width: 860px; }
.settings-page .settings-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.settings-page .settings-sub{
  font-size: 13px;
  color: var(--muted);
}


.side-air-nav {
    position: fixed;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1025;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  .side-air-nav.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) scale(1);
  }

  .side-air-nav__panel {
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(214, 0, 0, 0.2);
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(14px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
  }

  .side-air-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
  }

  .side-air-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 12px;
    color: #D60000;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
    white-space: nowrap;
  }

  .side-air-nav__link:hover,
  .side-air-nav__link:focus {
    background-color: rgba(214, 0, 0, 0.12);
    color: #B80000;
  }

  @media (max-width: 991.98px) {
    .side-air-nav {
      display: none;
    }
  }


  /* Базово для десктопа */
  .navbar .logo{
    height: 40px;      /* было 32 → станет “приемлемо” */
    width: auto;
    display: block;
  }

  /* На очень узких экранах чуть меньше */
  @media (max-width: 576px){
    .navbar .logo{
      height: 34px;
    }
  }

  #authModal .modal-content {
    width: 100%;
  }

  #authModal .modal-dialog {
    margin: 1rem auto;
  }

  .header-contacts-link{
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
  }

  /* =========================================================
    Витрина
    ========================================================= */
  /* Витрина без панели */
  .vitrine {
    width: 100%;
    max-width: 520px;           /* чтобы кнопки не растягивались до бесконечности */
    margin-left: auto;          /* аккуратно вправо */
  }

  /* было: #partners .vitrine { overflow: hidden; }  */
  #partners .vitrine { overflow: visible; }

  /* чтобы внутренности тоже не клиппили */
  .vitrine-view,
  .vitrine-body,
  .brand-grid {
    overflow: visible;
  }

  /* клиппинг нужен только на “viewport” слайдера (пейджер) */
  .auth-viewport { overflow: hidden; }


  .vitrine-head {
    min-height: 28px;
  }

  .vitrine-heading {
    font-size: 16px;
    font-weight: 600;
  }


  /* Кнопки витрины */
  .vitrine-btn {
    height: 56px;
    border-radius: 14px;
    border: 1px dashed rgba(0,0,0,.18);
    background: transparent;

    display: flex;
    align-items: center;
    justify-content: center;

    font-weight: 500;
    font-size: 15px;
    color: #111;

    transition: border-color .15s ease, background-color .15s ease, transform .1s ease;
  }

  .vitrine-btn:hover {
    border-color: rgba(0,0,0,.30);
    background-color: rgba(0,0,0,.02);
  }

  .vitrine-btn:active {
    transform: scale(0.98);
  }

  .vitrine-back {
    color: rgba(0,0,0,.55);
    font-weight: 600;
  }

  .vitrine-back:hover {
    color: rgba(0,0,0,.85);
  }

  /* Мобилка — шире */
  @media (max-width: 991px) {
    .vitrine { max-width: 100%; }
  }

  /* Контент витрины появляется мягко */
  .vitrine-fade {
    opacity: 0;
    transform: translateY(4px);
    animation: vitrineFadeIn .18s ease-out forwards;
  }

  @keyframes vitrineFadeIn {
    to { opacity: 1; transform: translateY(0); }
  }

  /* Сетка брендов */
  .brand-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  @media (max-width: 575px) {
    .brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  .brand-card {
    height: 56px;
    border-radius: 14px;
    background: rgba(0,0,0,.08);
    border: 1px solid rgba(0,0,0,.06);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  .brand-card img {
    height: 34px;
    width: 88%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .9;
    transition: filter .18s ease, opacity .18s ease, transform .18s ease;
  }
  /* <picture> должен занимать всю карточку, иначе центрирование будет “косить” */
  .brand-card picture {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
  }

  /* img внутри picture — блочный, без baseline-сдвигов */
  .brand-card picture img {
    display: block;
    height: 34px;
    width: 88%;
    object-fit: contain;
  }


  .brand-card:hover img {
    filter: none;
    opacity: 1;
    transform: scale(1.03);
  }

  .brand-card {
    --brand-hover: transparent; /* цвет по умолчанию (если не задан) */
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
  }

  .brand-card:hover {
    background: color-mix(in srgb, var(--brand-hover) 100%, white);
    border-color: color-mix(in srgb, var(--brand-hover) 45%, rgba(0,0,0,.06));
    box-shadow: 0 10px 18px rgba(0,0,0,.06);
  }

  .brand-card[data-brand="inforce"]{ --brand-hover: #FFD41C; }
  .brand-card[data-brand="gigant"] { --brand-hover: #E74315; }
  .brand-card[data-brand="ada"] { --brand-hover: #000000; }

  /* --- Brands slider --- */
  .brands-slider {
    display: flex;
    width: 200%;
    transition: transform .22s ease;
    will-change: transform;
  }

  .brands-page {
    width: 50%;
    padding-right: 2px; /* чтобы не дрожало из-за border */
  }

  /* CTA-кнопки внутри сетки как "карточки" */
  .brand-cta {
    height: 56px;
    border-radius: 14px;
    background: rgba(214,0,0,.06);
    border: 1px solid rgba(214,0,0,.22);
    color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    font: inherit;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
  }

  .brand-cta:hover {
    background: rgba(214,0,0,.10);
    border-color: rgba(214,0,0,.32);
    transform: translateY(-1px);
  }

  .brand-cta:active {
    transform: translateY(0);
  }

  /* Навигация (стрелки + точки) */
  .brands-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .brands-nav-btn {
    width: 42px;
    height: 36px;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,.08);
    background: rgba(0,0,0,.02);
    cursor: pointer;
  }

  .brands-nav-dots {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    flex: 1;
  }

  .brands-nav .dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: rgba(0,0,0,.18);
  }

  .brands-nav .dot.is-on {
    background: rgba(214,0,0,.8);
  }



  /* =========================
    Карта (overlay + регионы)
    ========================= */

  /* ===== RF MAP (overlay + SVG regions) ===== */

  .rf-map{
    position: relative;
    width: 100%;
    height: 360px;
    border-radius: 18px;
    overflow: hidden;
    background: #f8f9fa;
    border: 1px solid rgba(0,0,0,.06);
  }

  /* фон-картинка */
  .rf-map--overlay .rf-bg{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* контейнер для SVG */
  .rf-map--overlay .rf-svg{
    position: absolute;
    inset: 0;
  }

  .rf-map--overlay .rf-svg svg{
    width: 100%;
    height: 100%;
    display: block;
  }

  /* БАЗА: НЕ задаём fill — используем то, что уже в SVG */
  /* База для ВСЕХ регионов (видимые, монотонные) */
  .rf-map--overlay [data-region]{

    stroke: rgba(0,0,0,.18);
    stroke-width: 1;
    cursor: pointer;

    pointer-events: all;
    transition:
      opacity .16s ease,
      transform .22s cubic-bezier(.2,.9,.2,1),
      filter .16s ease,
      fill .16s ease;
    transform-origin: center;
    transform-box: fill-box;
  }

  /* при фокусе приглушаем всё */
  .rf-map--overlay.is-focus [data-region]{
    opacity: .22;
  }

  /* активный (hover) регион */
  .rf-map--overlay.is-focus [data-region].is-hot{
    opacity: 1 !important;
    fill: rgba(214,0,0,1) !important;
    filter: drop-shadow(0 10px 16px rgba(0,0,0,.18));
  }


  .rf-map.is-focus [data-region].is-hot { transform: scale(1.12); }

  .rf-map.is-focus [data-region][data-zoom="big"].is-hot { transform: scale(1.35); }
  .rf-map.is-focus [data-region][data-zoom="xl"].is-hot  { transform: scale(1.75); }
  .rf-map.is-focus [data-region][data-zoom="normal"].is-hot { transform: scale(1.2); }


  /* подсказка внутри карты */
  .rf-tooltip{
    position: absolute;
    left: 16px;
    bottom: 16px;
    background: rgba(17,17,17,.92);
    color: #fff;
    padding: 10px 12px;
    border-radius: 14px;
    font-size: 13px;
    max-width: 340px;
    line-height: 1.25;
    backdrop-filter: blur(6px);
  }
  .rf-tooltip b { font-weight: 600; }
  .rf-tooltip .muted { opacity: .8; }



  /* Калибровка совмещения SVG и PNG */
  .rf-map--overlay{
    --svg-scale: 1;
    --svg-x: 0px;
    --svg-y: 0px;

    --bg-scale: 1.02; /* у тебя уже стоит 1.02 */
  }
  .rf-map--overlay .rf-bg{
    transform: scale(var(--bg-scale));
  }
  .rf-map--overlay .rf-svg{
    transform: translate(var(--svg-x), var(--svg-y)) scale(var(--svg-scale));
    transform-origin: center;
  }




  .rf-map [data-region] {
    pointer-events: all;
    stroke-width: 9;      /* зона наведения */
    stroke: rgba(0,0,0,.25);
  }


  /* =========================================================
    Loader (новая драматургия)
    ВИ: два символа (opacity), потом СЕРВИС слева-направо
    ========================================================= */

  .page-loader{
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    background: rgba(10,10,10,.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility .35s ease;
  }

  .page-loader.is-visible{
    opacity: 1;
    visibility: visible;
  }

  .page-loader__panel{
    display: grid;
    gap: 10px;
    justify-items: center;
    padding: 18px 22px;
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(255,255,255,.65);
    box-shadow: 0 18px 60px rgba(0,0,0,.25);
  }

  .page-loader__logo{
    font-family: "Vi Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    font-weight: 600;
    letter-spacing: -0.02em;
    font-size: 38px;
    line-height: 1;
    color: #111;

    display: inline-flex;
    align-items: baseline;
    gap: 10px;
  }

  /* --- ВИ: отдельные буквы --- */
  .pl-vi{
    display: inline-flex;
    gap: 0px;
    transform: translateY(2px);
    color: var(--brand, #D60000);
  }

  .pl-vi__ch{
    display: inline-block;
    opacity: 0;
    animation: pl-fade .6s ease both;
    animation-delay: calc(0.7s + var(--i) * 0.25s); /* В, потом И */
  }

  /* --- СЕРВИС: как и было, слева-направо --- */
  .pl-service{
    display: inline-flex;
    gap: 1px;
  }

  .pl-service > span{
    display: inline-block;
    opacity: 0;
    transform: translateX(-6px);
    filter: blur(2px);

    animation: pl-letter .25s cubic-bezier(.2,.8,.2,1) both;
    animation-delay: calc(.05s + (var(--i) * 0.01s));
    /* 0.70s — старт после ВИ */
  }

  .page-loader__hint{
    font-size: 13px;
    color: #666;
  }

  /* --- Анимации --- */
  @keyframes pl-fade{
    from { opacity: 0; }
    to   { opacity: 1; }
  }

  @keyframes pl-letter{
    0%   { opacity: 0; transform: translateX(-8px); filter: blur(2px); }
    100% { opacity: 1; transform: translateX(0);    filter: blur(0); }
  }

  @media (prefers-reduced-motion: reduce){
    .page-loader, .page-loader *{
      animation: none !important;
      transition: none !important;
    }
  }
  /* Пока лоадер скрыт — анимаций нет */
  .page-loader .pl-vi,
  .page-loader .pl-service > span{
    animation: none;
    opacity: 0;
  }

  /* Как только показали — задаём анимации заново */
  .page-loader.is-visible .pl-vi{
    animation: pl-pop 1.26s cubic-bezier(.2,.8,.2,1) both;
  }

  .page-loader.is-visible .pl-service > span{
    animation: pl-letter 1.65s cubic-bezier(.2,.8,.2,1) both;
    animation-delay: calc(.54s + (var(--i) * 0.18s));
  }

  .navbar .nav-link.nav-link--primary{
    color: #D60000 !important;
    font-weight: 600;
  }
  .navbar .nav-link.nav-link--primary:hover,
  .navbar .nav-link.nav-link--primary:focus{
    color: #b50000 !important;
  }
  /* Пагинация — корпоративный красный */
  .pagination{
    justify-content:center;
    gap:6px;
  }

  .pagination .page-item.active .page-link {
    background-color: #D60000;
    border-color: #D60000;
    color: #fff;
    box-shadow: 0 8px 20px rgba(214,0,0,.15);
  }

  .pagination .page-link {
    color: #D60000;
    min-width: 38px;
    text-align:center;
    border-radius: 10px;
  }

  .pagination .page-link:hover {
    color: #b50000;
    background-color: rgba(214, 0, 0, 0.08);
    border-color: #D60000;
  }

  .pagination .page-item.disabled .page-link {
    color: #adb5bd;
  }

  /* CTA-кнопка внутри brand-grid */
  .brand-cta{
    height: 56px;
    border-radius: 14px;
    background: rgba(0,0,0,.02);
    border: 1px solid rgba(0,0,0,.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    text-align: center;
    cursor: pointer;
  }

  .brand-cta__title{ font-weight: 600; }
  .brand-cta__sub{ font-size: 12px; opacity: .75; margin-top: 2px; }

  .brand-cta:hover{
    background: rgba(214,0,0,.04);
    border-color: rgba(214,0,0,.18);
  }

  /* CTA — заглушка изображения слева */
.cta-image-placeholder {
  background: var(--soft);
  border-radius: var(--r-md);
  border: 1px dashed var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9aa0a6;
  font-size: 14px;
  min-height: 220px;
  text-align: center;
}

  /* “слились 2 столбика” */
  .brand-cta--wide{
    grid-column: span 2;
  }

  /* Авторизованные бренды — пейджер */
  .auth-viewport{
    overflow: hidden;
  }

  .auth-slider{
    display: flex;
    transition: transform .22s ease;
    will-change: transform;
  }

  .auth-page{
    min-width: 100%;
  }

  .auth-controls{
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
  }

  .auth-controls{
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
  }

  .auth-arrow{
    flex: 0 0 36px;           /* фиксируем место, чтобы ничего не прыгало */
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    cursor: pointer;
  }

  .auth-arrow.is-disabled{
    visibility: hidden;       /* место остаётся, стрелка “пропадает” */
    pointer-events: none;
  }


  .auth-dots{
    flex: 1;
    display: flex;
    justify-content: center;
    gap: 6px;
  }

  .auth-dot{
    width: 18px;            /* фиксируем ширину — ничего не прыгает */
    height: 7px;
    border-radius: 999px;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
  }

  .auth-dot::before{
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: rgba(0,0,0,.18);
    transform: scaleX(0.35);         /* “точка” в неактивном состоянии */
    transform-origin: center;
    transition: transform .18s ease, background-color .18s ease, opacity .18s ease;
    opacity: .95;
  }

  .auth-dot.is-active::before{
    background: rgba(214,0,0,1);
    transform: scaleX(1);            /* “капсула” в активном */
    opacity: 1;
  }

  /* ---------------------------------------------------------
    Utility: margin-bottom (отступ снизу) для блоков
    --------------------------------------------------------- */
  .mb-0 { margin-bottom: 0 !important; }
  .mb-1 { margin-bottom: 0.25rem !important; }   /* 4px */
  .mb-2 { margin-bottom: 0.5rem !important; }    /* 8px */
  .mb-3 { margin-bottom: 0.75rem !important; }   /* 12px */
  .mb-4 { margin-bottom: 1rem !important; }      /* 16px */
  .mb-5 { margin-bottom: 1.25rem !important; }   /* 20px */
  .mb-6 { margin-bottom: 1.5rem !important; }    /* 24px */
  .mb-7 { margin-bottom: 1.75rem !important; }   /* 28px */
  .mb-8 { margin-bottom: 2rem !important; }      /* 32px */
  .mb-9 { margin-bottom: 2.5rem !important; }    /* 40px */
  .mb-10 { margin-bottom: 3rem !important; }     /* 48px */
  .mb-11 { margin-bottom: 4rem !important; }     /* 64px */
  .mb-12 { margin-bottom: 5rem !important; }     /* 80px */

  /* =========================
    Margin-top utility classes
    ========================= */
  .mt-0  { margin-top: 0 !important; }
  .mt-1  { margin-top: 0.25rem !important; }
  .mt-2  { margin-top: 0.5rem !important; }
  .mt-3  { margin-top: 0.75rem !important; }
  .mt-4  { margin-top: 1rem !important; }
  .mt-5  { margin-top: 1.25rem !important; }
  .mt-6  { margin-top: 1.5rem !important; }
  .mt-7  { margin-top: 1.75rem !important; }
  .mt-8  { margin-top: 2rem !important; }
  .mt-9  { margin-top: 2.5rem !important; }
  .mt-10 { margin-top: 3rem !important; }

  /* Центрируем карточки решений */
  #solutions .row {
    justify-content: center;
  }


  /* =========================
    Brands — Variant 2
    ========================= */

  .brands-visual{
    height: 150px;
    background: linear-gradient(135deg, #f3f3f3, #e9e9e9);
    border-radius: 10px;
  }

  /* Навигационный алфавит */
  .brand-nav{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(26px, 1fr));
    align-items: center;
    border-bottom: 1px solid #e2e2e2;
    padding-bottom: 8px;
  }

  .brand-nav__item{
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #c7c7c7;
    padding: 6px 0;
  }

  /* Активные */
  .brand-nav__item.active{
    color: #2f2f2f;
    border-bottom: 2px solid #c40000;
    cursor: pointer;
  }

  /* Неактивные */
  .brand-nav__item.disabled{
    color: #d6d6d6;
  }

  /* Бренды */
  .brand-item{
    font-weight: 500;
    color: #333;
  }

  .brands-hint{
    text-align: center;
    padding: 24px 16px;
    color: #9a9a9a;
    font-size: 14px;
    border: 1px solid #e1e1e1;
    border-radius: 14px;
    margin-top: 20px;
  }

  .brand-item { display: none; }

  .brand-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
  }

  .brand-nav__item {
    cursor: pointer;
    color: #bbb;
  }

  .brand-nav__item.active {
    color: #555;
    text-decoration: underline;
  }

  .brand-nav__item.is-selected {
    color: #111;
  }

/* Иллюстрация брендов */
  .brands-image-wrap {
    display: flex;
    justify-content: center;
  }

  .brands-image {
    max-height: 180px;
    width: auto;
    border-radius: 12px;

  }

  /* Подсказка */
  .brands-hint {
    text-align: center;
    color: #6c757d;
    font-size: 0.95rem;
  }

  /* Алфавит */
  .brands-row {
    display: flex;
    justify-content: center;
  }

  .brand-letter {
    padding: 6px 10px;
    user-select: none;
   cursor: pointer;
     transition: color .15s ease, opacity .15s ease;
    color: #ced4da; /* НЕАКТИВНЫЕ — светло‑серые */
    position: relative;
  }

  /* АКТИВНАЯ */
  .brand-letter.active {
    color: #343a40;
  }

  /* есть бренды */
  .brand-letter.is-enabled {
    color: #343a40;
    cursor: pointer;
  }

  /* Подчеркивание — ВАРИАНТ 2 (сливается) */
  .brand-letter.active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 2px;
    background: #dc3545;
  }

  /* Список */
  .brands-list {
    text-align: center;
    font-weight: 500;
  }

  .service-map-placeholder{
    height: 280px;
    border-radius: 18px;
    border: 1px solid var(--line);
    background:
      repeating-linear-gradient(
        45deg,
        #f2f2f2,
        #f2f2f2 14px,
        #e8e8e8 14px,
        #e8e8e8 28px
      );
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9aa0a6;
    font-size: 14px;
    text-align: center;
  }

  .header-contact-item{
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .header-contact-link{
    font-weight: 600;
    color: #111;
    text-decoration: none;
    white-space: nowrap;
  }

  .header-contact-link i{
    color: var(--brand);
  }

  .header-contact-link:hover{
    color: #111;
    text-decoration: underline;
  }
  /* =========================================================
   FIX: убираем линию между секциями
   ========================================================= */



/* Секция контактов — без нижней линии */
#service-centers.section-soft{
  border-bottom: none !important;
}


/* Секция заявки — без верхней линии */
#cta.section-soft{
  border-top: none !important;
}




/* Фон секции */
.cta-glass {
  padding: 120px 20px;
  background:
    radial-gradient(circle at 20% 20%, #ffffff 0%, transparent 40%),
    radial-gradient(circle at 80% 80%, #ffe3e6 0%, transparent 40%),
    linear-gradient(135deg, #f8f9fa 0%, #f1f3f5 100%);
}

/* Стеклянная карточка CTA */
.cta-glass-inner{
  max-width: 1280px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 80px;

  padding: 70px;
  border-radius: 28px;

  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px rgba(0,0,0,0.08);

  align-items: stretch; /* одинаковая высота колонок */
}

/* левая колонка */
.cta-info{
  display: flex;
  flex-direction: column;
}

/* визуал прижимается к низу */
.cta-visual{
  margin-top: auto;
  min-height: 260px;
}

/* Форма — финальная архитектура */
.cta-form-glass{
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
}

/* строка: имя + телефон */
.cta-form-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* textarea */
.cta-form-glass textarea{
  min-height: 90px;
  resize: vertical;
}

/* политика */
.cta-form-glass .policy{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--muted);
  max-width: 520px;
}

/* кнопка */
.cta-form-glass button{
  margin-top: auto;
}

.cta-info h2 {
  font-size: 40px;                /* чуть крупнее для баланса */
  margin-bottom: 18px;
}

.cta-info p {
  color: #6c757d;
  line-height: 1.7;
  margin-bottom: 36px;
  max-width: 520px;
}

/* Визуал */
.cta-visual {
  height: 300px;                  /* немного выше под новую ширину */
  border-radius: 18px;

  background: repeating-linear-gradient(
    45deg,
    #e9ecef,
    #e9ecef 12px,
    #dee2e6 12px,
    #dee2e6 24px
  );

  display: flex;
  align-items: center;
  justify-content: center;
  color: #adb5bd;
  font-weight: 500;
}

/* Форма */
.cta-form-glass {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 7%;
}

/* РЯД: телефон + имя */
.cta-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.cta-form-glass input,
.cta-form-glass select,
.cta-form-glass textarea {
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid #dee2e6;
  font-size: 14px;
  background: #fff;
}

.cta-form-glass textarea {
  resize: vertical;
  min-height: 90px;
}

.cta-visual img{
  width:100%;
  height:auto;
  display:block;
  border-radius:16px; /* 12–24px обычно выглядит ок */
}



/* ===== Policy checkbox — финальная версия ===== */

.policy {
  display: flex;
  align-items: flex-start;
  gap: 10px;

  font-size: 14px;
  line-height: 1.5;
  color: var(--muted);

  max-width: 520px; /* даёт аккуратные 2 строки */
}

.policy input {
  margin-top: 3px;
  flex: 0 0 18px;
}

.policy span {
  display: block;
}

/* Кнопка */
.cta-form-glass button {
  margin-top: 12px;

}

.btn-lg-custom{
  padding: 16px 20px;
  font-size: 18px;     /* было 16 → стало крупнее */
  font-weight: 600;    /* чуть выразительнее */
  line-height: 1.2;    /* чтобы не раздувало кнопку */
}
/* --- FIX: политика на всю ширину формы --- */

.cta-form-glass .policy {
    grid-column: 1 / -1;
    display: block;              /* ← убираем flex */
    font-size: 14px;
    line-height: 1.5;
}

.cta-form-glass .policy input {
    margin-right: 8px;
}

footer {
  border-top: 3px solid #e30613; /* фирменный красный */
}

footer .fw-semibold {
  font-size: 14px;
  letter-spacing: .3px;
  text-transform: uppercase;
}

footer a {
  transition: color .2s ease;
}

footer a:hover {
  color: #e30613 !important;
}

/* =========================================
   Волны секции "Что мы ремонтируем"
   ========================================= */

#equipment {
  position: relative;
  background: var(--bg);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: none;
   z-index: 1;
}

#equipment.section-soft{
  background: #f8f9fa;     /* нужный цвет фона */
  border-top: none;        /* убрать линию сверху */
  border-bottom: none;     /* убрать линию снизу */
}

/* внутренние отступы переносим в container */
#equipment .container {
  padding-top: 80px;
  padding-bottom: 80px;
}


.wave-top svg,
.wave-bottom svg {
  display: block;
  width: 100%;
  height: 80px;
}

/* =========================
   Section title — единый стиль
   ========================= */
.section-title{
  font-weight: 600;
  letter-spacing: -0.02em;
  font-size: 32px;
  line-height: 1.2;
  margin-bottom: 32px;
}

.brand-letter.disabled {
  color: #c5c9cf;
  cursor: default;
  pointer-events: none;
}

/* активные — ВСЕГДА выглядят одинаково */
.brand-letter:not(.disabled) {
  color: var(--ink);
  opacity: 1;
}

:root{
  --header-h: 120px;
}

.home-page .site-header{
  position: fixed;
  top: 0;
  height: var(--header-h);
}

.home-page{
  padding-top: var(--header-h);
}

.sc-address-link {
  color: #D60000;              /* фирменный красный */
  text-decoration: underline;  /* подчёркивание */
  font-weight: 500;
  cursor: pointer;
  transition: 0.2s ease;
}

.sc-address-link:hover {
  color: #a80000;
  text-decoration: none;
}


/* =========================
   Header compact mobile layout
   ========================= */

/* Не фиксируем высоту шапки: высоту считаем через JS и используем для padding-top страницы */
.home-page .site-header{ height: auto; }

/* Верхняя полоска (контакты/телефон/вход) — держим в одну строку и обрезаем длинное слева */
.site-header > .border-bottom .container{
  flex-wrap: nowrap;
}
.site-header .header-contact-item{
  flex: 1 1 auto;
  min-width: 0;
}
.site-header .header-contact-item a{
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-header .header-actions{
  flex: 0 0 auto;
  margin-left: auto;
}

/* Кнопка "Вход" в топбаре */
.header-login-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  color: var(--ink);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, transform .05s ease;
}
.header-login-btn:hover{
  background: rgba(0,0,0,.03);
  border-color: rgba(0,0,0,.18);
}
.header-login-btn:active{
  transform: translateY(1px);
}


/* CTA-кнопки (статус + заявка) */
.nav-ctas__inner{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Navbar: логотип + бургер всегда в одну строку */
@media (max-width: 991.98px){
  .site-header .navbar > .container{
    flex-wrap: nowrap;
    gap: 10px;
  }
  .site-header .navbar-brand{
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 0;
  }
  .site-header .navbar .logo{
    height: 34px;
    width: auto;
    max-width: 64vw;
  }
  .site-header .navbar-toggler{
    flex: 0 0 auto;
    margin-left: auto;
  }

  /* CTA-кнопки в меню — в одну строку */
  .nav-ctas{
    width: 100%;
  }
  .nav-ctas__inner{
    display: flex;
    gap: 10px;
    width: 100%;
  }
  .nav-ctas__inner > a{
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    white-space: nowrap;
  }
}

/* На совсем узких — чуть крупнее "Вход" и компактнее паддинги */
@media (max-width: 575.98px){
  .header-login-btn{
    padding: 10px 14px;
    font-size: 14px;
  }
  .site-header .navbar .logo{
    height: 32px;
    max-width: 60vw;
  }
}


/* =========================================================
   Responsive fixes (mobile)
   Applied: header compact, equal tiles, brands wrap, CTA mobile, anchor offsets
   ========================================================= */

html{
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 14px);
}
[id]{
  scroll-margin-top: calc(var(--header-h) + 14px);
}

/* header must not be forcibly clipped by fixed height */
.home-page .site-header{
  height: auto !important;
}

/* topbar: keep actions strictly on the right, avoid horizontal overflow */
.site-header .header-actions{
  margin-left: auto;
  flex: 0 0 auto;
}
.site-header .header-contact-item{
  min-width: 0;
}
.site-header .header-contact-item a{
  display: block;
  max-width: 100%;
}

/* login as a real button */
.header-login-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;

  padding: 8px 12px;
  border-radius: 12px;

  border: 1px solid rgba(0,0,0,.12);
  background: #fff;

  color: var(--ink);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;

  transition: background-color .15s ease, border-color .15s ease, transform .05s ease;
}
.header-login-btn:hover{
  background: rgba(0,0,0,.03);
  border-color: rgba(0,0,0,.18);
}
.header-login-btn:active{
  transform: translateY(1px);
}

/* CTA buttons in navbar */
.nav-ctas__inner{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Equipment cards: fill the column width (prevents different sizes) */
#equipment .equipment-card{
  width: 100%;
}

/* Brands alphabet: allow wrap on narrow screens */
@media (max-width: 575.98px){
  .brands-row{
    flex-wrap: wrap;
    gap: 4px 6px;
    justify-content: center;
    max-width: 100%;
  }
  .brand-letter{
    padding: 8px 10px;
  }

  /* compact login */
  .header-login-btn{
    padding: 10px 14px;
    font-size: 14px;
  }
}

/* Header compact layout on mobile: logo + burger in one row */
@media (max-width: 991.98px){
  .site-header .navbar > .container{
    flex-wrap: nowrap;
    gap: 10px;
  }
  .site-header .navbar-brand{
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 0;
  }
  .site-header .navbar .logo{
    max-width: 62vw;
    height: 34px;
    width: auto;
  }
  .site-header .navbar-toggler{
    flex: 0 0 auto;
    margin-left: auto;
  }

  /* CTA row inside collapsed menu: side-by-side */
  .nav-ctas{
    width: 100%;
  }
  .nav-ctas__inner{
    width: 100%;
  }
  .nav-ctas__inner > a{
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
  }
}

/* CTA section on mobile: hide visual + single column, prevent overflow */
@media (max-width: 991.98px){
  .cta-glass{
    padding: 72px 12px;
  }

  .cta-glass-inner{
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 28px 18px;
  }

  .cta-info,
  .cta-form-glass{
    min-width: 0;
  }

  .cta-visual{
    display: none !important;
  }

  .cta-form-glass{
    padding-top: 0 !important;
  }

  .cta-form-row{
    grid-template-columns: 1fr;
  }
}


/* CTA visual: if there's an image inside, don't show placeholder stripes */
.cta-visual{
  background: transparent !important;
  overflow: hidden;
  padding: 0;
}
.cta-visual img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

/* On extra-small screens: keep topbar compact and prevent right clipping */
@media (max-width: 575.98px){
  .site-header > .border-bottom .container{
    flex-wrap: nowrap;
  }
  .site-header .header-contact-item a{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 56vw;
  }
}

/* =========================================================
   Header mobile 2-row + sheet menu (header-only patch)
   ========================================================= */

@media (max-width: 991.98px){

  /* allow two full-width rows inside Bootstrap navbar flex container */
  .site-header .navbar > .container{
    flex-wrap: wrap !important;
    row-gap: 8px;
  }

  /* hide top bar on mobile — we use 2-row navbar instead */
  .site-header > .border-bottom.small{
    display: none !important;
  }

  /* mobile two-row layout */
  .site-header .nav-mobile-top,
  .site-header .nav-mobile-bottom{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .site-header .nav-mobile-top{ gap: 10px; }
  .site-header .nav-mobile-bottom{ gap: 10px; }

  /* logo */
  .site-header .nav-mobile-top .logo{
    height: 32px;
    width: auto;
    max-width: 62vw;
    display: block;
  }

  /* login button (right) */
  .site-header .nav-mobile-top .header-login-btn{
    padding: 10px 14px;
    font-size: 14px;
    border-radius: 14px;
  }

  /* CTAs row */
  .nav-mobile-ctas{
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
  }

  .nav-mobile-ctas > a{
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .header-mobile-cta{
    padding: 8px 10px !important;
    font-size: 13px !important;
    border-radius: 14px !important;
    line-height: 1.1;
  }

  .nav-mobile-toggler{
    flex: 0 0 auto;
    padding: 8px 10px;
    border-radius: 14px;
  }

  /* sheet menu (overlay) */
  #navMain.navbar-collapse{
    position: fixed;
    left: 0;
    right: 0;
    top: var(--header-h);
    z-index: 9998;
    max-width: 100vw;

    background: #fff;
    border-top: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 18px 40px rgba(0,0,0,.14);

    padding: 10px 14px 14px;
    max-height: calc(100vh - var(--header-h));
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  #navMain .navbar-nav{
    margin-left: 0 !important;
    margin-right: 0 !important;
    gap: 4px;
  }

  #navMain .nav-link{
    padding: 10px 12px;
    border-radius: 12px;
  }

  #navMain .nav-link:hover,
  #navMain .nav-link:focus{
    background: rgba(0,0,0,.04);
  }
}

/* =========================================================
   Brands alphabet UX (selected letter + inline list in hint)
   ========================================================= */

.brands-alphabet .brand-letter{
  position: relative;
  border-radius: 12px;
  transition: color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

/* по умолчанию — без подчеркивания */
.brands-alphabet .brand-letter::after{
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: -4px;
  height: 2px;
  border-radius: 2px;
  background: transparent;
  transition: background .15s ease, opacity .15s ease;
  opacity: 1;
}

/* буквы, где есть бренды — бледный красный андерлайн */
.brands-alphabet .brand-letter.is-enabled::after{
  background: rgba(214, 0, 0, .35);
}

/* отключенные — никаких красных линий */
.brands-alphabet .brand-letter.disabled::after{
  background: transparent !important;
}

/* выбранная буква — свечение */
.brands-alphabet .brand-letter.is-selected{
  color: var(--brand);
  background: rgba(214, 0, 0, .06);

  box-shadow:
    0 0 6px rgba(214, 0, 0, .35),
    0 0 14px rgba(214, 0, 0, .25),
    0 0 22px rgba(214, 0, 0, .18);

  transform: translateY(-1px);
}

.brands-alphabet .brand-letter.is-selected::after{
  background: var(--brand);
  box-shadow: 0 0 6px rgba(214,0,0,.6);
}

/* список брендов внутри подсказки */
.brands-hint__head{
  font-weight: 600;
  color: #212529;
  margin-bottom: 10px;
}

.brands-hint__pills{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.brand-pill{
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  border-radius: 999px;

  border: 1px solid rgba(0,0,0,.08);
  background: rgba(214,0,0,.04);

  color: #212529;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;

  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

.brand-pill:hover{
  transform: translateY(-2px);
  background: rgba(214,0,0,.08);
  box-shadow: 0 6px 14px rgba(0,0,0,.08);
}

@media (max-width: 575.98px){
  .brand-pill{
    font-size: 15px;
    padding: 8px 14px;
  }
}

/* Dashboard pills — корпоративный стиль */
#cabTabs .nav-link {
  color: #555;
  background: #f2f2f2;
  border: 1px solid #e0e0e0;
  margin-right: 6px;
}

#cabTabs .nav-link:hover {
  background: #e9e9e9;
  color: #222;
}

#cabTabs .nav-link.active {
  background: #ffffff;
  color: #222;
  border-color: #e0e0e0;
  box-shadow: inset 0 -2px 0 #e30613;
}

.btn-corp-gray{
  background: #f2f3f5;
  border: 1px solid #d9dde3;
  color: #2f3640;
}

.btn-corp-gray:hover{
  background: #e7eaee;
  border-color: #cfd5dc;
  color: #1f252b;
}

.btn-corp-gray:active{
  background: #dde2e8;
  border-color: #c4cbd4;
  color: #1a1f24;
}

.cab-user-email{
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cab-user-email{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.request-summary{
  color: var(--muted);
  font-size: 13px;
}

.request-meta-item b{
  color: var(--ink);
}

/* Request links / chat / brand search */
.request-row-link{ cursor:pointer; }
.request-row-link:hover td{ background: rgba(214,0,0,.04); }
.request-link{ color: var(--ink); text-decoration: none; }
.request-link:hover{ color: var(--brand); }

.brand-combobox{ position:relative; }
.brand-dropdown{
  position:absolute;
  inset: calc(100% + 6px) 0 auto 0;
  z-index:30;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow: var(--shadow-1);
  max-height:220px;
  overflow:auto;
  padding:6px;
}
.brand-dropdown__item{
  display:block;
  width:100%;
  border:none;
  background:transparent;
  text-align:left;
  padding:10px 12px;
  border-radius:10px;
  color:var(--ink);
}
.brand-dropdown__item:hover{ background:rgba(214,0,0,.06); }
.panel-soft{ background:rgba(0,0,0,.015); border:1px solid var(--line); border-radius:14px; }
.btn-icon{ width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; }

.request-detail-list{ display:grid; gap:12px; font-size:14px; color:var(--ink); }
.request-items-stack{ display:grid; gap:10px; }
.request-item-card{ border:1px solid var(--line); border-radius:14px; background:#fff; padding:12px; }
.request-chat{
  border:1px solid var(--line);
  background:#fff;
  border-radius:16px;
  padding:16px;
  min-height:320px;
  max-height:560px;
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.chat-msg{
  display:block;
  width:fit-content;
  max-width:min(76%, 520px);
  padding:12px 14px;
  border-radius:16px;
  word-break:break-word;
  overflow-wrap:anywhere;
  box-shadow: 0 4px 14px rgba(0,0,0,.04);
}
.chat-msg--mine,
.chat-msg--admin{
  background:rgba(214,0,0,.08);
  align-self:flex-end;
  border-bottom-right-radius:8px;
}
.chat-msg--theirs,
.chat-msg--client{
  background:rgba(0,0,0,.04);
  align-self:flex-start;
  border-bottom-left-radius:8px;
}
.chat-msg__meta{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:6px; font-size:12px; color:var(--muted); }
.chat-msg__body{ white-space:pre-wrap; color:var(--ink); }


/* Admin dashboard enhancements */
.admin-dashboard-page .admin-panel-block{
  min-height: 100%;
}
.admin-subnote{
  font-size: 13px;
}
.admin-filter-form .form-control,
.admin-filter-form .form-select{
  min-height: 40px;
}
.admin-table td,
.admin-table th{
  vertical-align: middle;
}
.admin-click-row{
  cursor: pointer;
}
.admin-click-row:hover > *{
  background: rgba(214,0,0,.035) !important;
}
.admin-request-details{
  min-width: 180px;
}


/* Unified pagination + fixed table widths */
.table-clean table,
.cab-fixed-table,
.admin-table{
  width:100%;
  table-layout:fixed;
}

.pagination{
  justify-content:center;
  align-items:center;
  gap:0;
}

.pagination .page-item + .page-item{
  margin-left:-1px;
}

.pagination .page-link{
  color:#D60000;
  min-width:38px;
  text-align:center;
  border-radius:0;
  padding:.45rem .8rem;
}

.pagination .page-item:first-child .page-link{
  border-radius:12px 0 0 12px;
}

.pagination .page-item:last-child .page-link{
  border-radius:0 12px 12px 0;
}

.pagination .page-item:only-child .page-link{
  border-radius:12px;
}

.pagination .page-item.active .page-link{
  background-color:#D60000;
  border-color:#D60000;
  color:#fff;
  box-shadow:0 8px 20px rgba(214,0,0,.15);
}

.pagination .page-link:hover{
  color:#b50000;
  background-color:rgba(214,0,0,.08);
  border-color:#D60000;
}

.pagination .page-item.disabled .page-link{
  color:#adb5bd;
  background:#fff;
}

.pagination-wrap{
  display:flex;
  justify-content:center;
  padding:14px 16px;
  border-top:1px solid var(--line);
}

.admin-user-requests-table td,
.admin-user-requests-table th,
.requests-side-table th,
.requests-side-table td{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* =========================================
   Header compact / monolithic refinement
   ========================================= */

:root{
  --header-h: 96px;
}

.site-header{
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.site-header__topbar,
.site-header__nav{
  border-bottom: none !important;
}

.site-header__topbar .container{
  min-height: 34px;
}

.site-header__topbar.small{
  font-size: 12.5px;
}

.site-header__nav .container{
  min-height: 58px;
}

.navbar .logo{
  height: 34px;
}

.navbar .nav-link{
  padding-top: .45rem;
  padding-bottom: .45rem;
  font-size: 14px;
}

.header-login-btn--nav{
  height: 42px;
  padding: 0 14px;
  border-radius: 12px;
  font-weight: 600;
}

.site-header .btn,
.site-header .header-login-btn--nav{
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.site-header .btn.btn-primary,
.site-header .btn.btn-outline-secondary{
  padding-left: 14px !important;
  padding-right: 14px !important;
}

.header-actions{
  gap: 14px !important;
}

.header-contact-item a,
.header-actions a{
  font-size: 12.5px;
}

@media (min-width: 992px){
  .site-header .navbar-nav.align-items-lg-center{
    gap: .35rem !important;
  }
}

@media (max-width: 991.98px){
  :root{
    --header-h: 88px;
  }

  .site-header .nav-mobile-top .logo{
    height: 29px;
  }

  .site-header .nav-mobile-top .header-login-btn{
    padding: 8px 12px;
    font-size: 13px;
  }

  .header-mobile-cta{
    min-height: 40px;
    font-size: 12.5px !important;
  }

  .nav-mobile-toggler{
    padding: 7px 9px;
  }
}


/* =========================================================
   Anchor centering helpers
   ========================================================= */
#cta[data-anchor-center],
#service-centers[data-anchor-center]{
  scroll-margin-top: calc(var(--header-h) + 8px);
}


/* Desktop header CTA — align height with logo */
@media (min-width: 992px){
  .site-header .navbar .logo{
    height: 34px;
  }

  .site-header .btn.btn-primary,
  .site-header .btn.btn-outline-secondary,
  .site-header .header-login-btn--nav{
    min-height: 34px;
    height: 34px;
    padding: 0 12px !important;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1;
  }

  .site-header .header-login-btn--nav{
    gap: 6px;
    font-weight: 600;
  }
}


/* =========================================
   Final layout refinement: header / footer / hero
   ========================================= */
:root{
  --header-h: 90px;
}

.site-header{
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.site-header__topbar,
.site-header__nav{
  border-bottom: none !important;
}

.site-header__topbar .container{
  min-height: 32px;
  padding-top: .3rem !important;
  padding-bottom: .3rem !important;
}

.site-header__nav .container{
  min-height: 56px;
  padding-top: .35rem !important;
  padding-bottom: .35rem !important;
}

.site-header .navbar .logo{
  height: 34px;
}

.site-header .nav-link{
  padding-top: .38rem;
  padding-bottom: .38rem;
  font-size: 14px;
}

.site-header .btn.btn-primary,
.site-header .btn.btn-outline-secondary,
.site-header .header-login-btn--nav{
  min-height: 34px;
  height: 34px;
  padding: 0 12px !important;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.site-header .header-login-btn--nav{
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-weight: 600;
  gap: 6px;
}

.site-header .header-login-btn--nav:hover{
  background: rgba(0,0,0,.03);
  border-color: rgba(0,0,0,.18);
}

.site-header .header-actions{
  gap: 14px !important;
}

.site-header .header-contact-item a,
.site-header .header-actions a{
  font-size: 12.5px;
}

.site-footer{
  padding: 28px 0 24px;
  background: rgba(255,255,255,.97);
  border-top: 1px solid rgba(0,0,0,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 -10px 24px rgba(0,0,0,.03);
}

.site-footer .container{
  position: relative;
}

.site-footer__brand .fw-semibold,
.site-footer__title{
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.site-footer__address,
.site-footer__contacts,
.site-footer__links,
.site-footer__copy{
  font-size: 14px;
}

.site-footer__contacts i{
  color: var(--brand);
  margin-right: 8px;
}

.site-footer a{
  transition: color .18s ease;
}

.site-footer a:hover{
  color: var(--brand) !important;
}

.hero-row{
  align-items: stretch;
}

.hero-copy{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}

.hero-image-wrap{
  height: 100%;
  min-height: 100%;
  display: flex;
}

.hero-image{
  flex: 1 1 auto;
  height: 100%;
}

@media (max-width: 991.98px){
  :root{
    --header-h: 84px;
  }

  .site-header__topbar{
    display: none !important;
  }

  .site-footer{
    padding: 24px 0 20px;
  }

  .site-footer__address,
  .site-footer__contacts,
  .site-footer__links,
  .site-footer__copy{
    font-size: 13px;
  }
}


/* =========================================
   Hero micro-fixes: badge + KPI stability
   ========================================= */

.hero-badge{
  width: fit-content;
  max-width: 100%;
  align-self: flex-start;
}

.hero-kpis{
  justify-content: flex-start;
  align-items: stretch;
}

.hero-kpis__item{
  display: flex;
  flex: 0 0 auto;
}

.hero-kpis__item .kpi{
  width: 100%;
  min-height: 168px;
  max-width: 240px;
}

@media (min-width: 768px){
  .hero-kpis{
    flex-wrap: nowrap;
  }

  .hero-kpis__item{
    width: auto;
  }

  .hero-kpis__item .kpi{
    width: 220px;
  }
}

@media (max-width: 767.98px){
  .hero-kpis{
    justify-content: center;
  }

  .hero-kpis__item{
    width: auto;
  }

  .hero-kpis__item .kpi{
    width: min(240px, calc(100vw - 32px));
    min-height: 168px;
    margin-inline: auto;
  }
}

/* =========================================
   Hero compacting pass
   ========================================= */

.hero > .container{
  padding-top: 2.25rem !important;
  padding-bottom: 2.25rem !important;
}

.hero-copy .display-5{
  margin-bottom: 0;
}

.hero-copy .lead{
  margin-bottom: 1.1rem !important;
}

.hero-kpis{
  margin-top: 1rem !important;
  row-gap: .75rem !important;
}

.hero-kpis__item .kpi{
  padding: .75rem .9rem;
  min-height: 146px;
}

.hero-kpis__item .kpi .kpi-value{
  font-size: 1.05rem;
  line-height: 1.25;
}

.hero-kpis__item .kpi .kpi-sub{
  font-size: .81rem;
  line-height: 1.4;
  margin-top: .35rem;
}

@media (min-width: 768px){
  .hero-kpis__item .kpi{
    width: 214px;
    min-height: 146px;
  }
}

@media (max-width: 767.98px){
  .hero > .container{
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }

  .hero-copy .lead{
    margin-bottom: .95rem !important;
  }

  .hero-kpis{
    margin-top: .85rem !important;
  }

  .hero-kpis__item .kpi{
    width: min(228px, calc(100vw - 32px));
    min-height: 138px;
    padding: .7rem .85rem;
  }

  .hero-kpis__item .kpi .kpi-value{
    font-size: 1rem;
  }

  .hero-kpis__item .kpi .kpi-sub{
    font-size: .79rem;
    line-height: 1.35;
  }
}

/* =========================================
   Hero KPI compact pass v2
   ========================================= */
.hero-kpis__item .kpi{
  min-height: auto;
  height: auto;
  padding: .68rem .9rem;
}

.hero-kpis__item .kpi .kpi-title{
  margin-bottom: .22rem;
  line-height: 1.2;
}

.hero-kpis__item .kpi .kpi-value{
  line-height: 1.15;
  margin-bottom: 0;
}

.hero-kpis__item .kpi .kpi-sub{
  line-height: 1.28;
  margin-top: .22rem;
  margin-bottom: 0;
}

@media (min-width: 768px){
  .hero-kpis__item .kpi{
    width: 214px;
    min-height: auto;
    padding: .64rem .88rem;
  }
}

@media (max-width: 767.98px){
  .hero-kpis__item .kpi{
    min-height: auto;
    padding: .62rem .8rem;
  }

  .hero-kpis__item .kpi .kpi-title{
    margin-bottom: .18rem;
  }

  .hero-kpis__item .kpi .kpi-sub{
    margin-top: .18rem;
    line-height: 1.24;
  }
}

/* =========================================================
   V6 — Focused refinement pass
   Hero / Brands / CTA / Loader / Cabinet / Admin
   ========================================================= */

:root{
  --ds-space-6: 24px;
  --ds-space-7: 28px;
  --ds-space-8: 32px;
  --ds-space-10: 40px;
  --ds-space-12: 48px;
  --ds-radius-lg: 24px;
  --ds-radius-xl: 28px;
  --ds-border: 1px solid var(--line, #E5E7E8);
  --ds-shadow-card: 0 12px 34px rgba(28,33,38,.06), 0 1px 0 rgba(255,255,255,.9) inset;
  --ds-shadow-panel: 0 20px 60px rgba(28,33,38,.08), 0 1px 0 rgba(255,255,255,.9) inset;
}

.home-page .section-title,
.home-page .hero-title,
.home-page .hero-copy .display-5{
  letter-spacing: -.03em;
}

/* -------- Hero -------- */
.hero{
  padding: clamp(12px, 2vw, 20px) 0 clamp(24px, 3vw, 36px);
}
.hero-shell{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.hero-surface{
  background: linear-gradient(180deg, rgba(250,250,251,.94) 0%, rgba(255,255,255,.98) 100%);
  border: var(--ds-border);
  border-radius: clamp(22px, 3vw, 32px);
  box-shadow: var(--ds-shadow-card);
  padding: clamp(24px, 3vw, 40px);
}
.hero-row{
  align-items: center !important;
  --bs-gutter-x: 2rem;
}
.hero-copy{
  max-width: 640px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-badge{
  padding: 10px 14px;
  border-radius: 999px;
  margin-bottom: 18px;
}
.hero-title,
.hero-copy .display-5{
  font-size: clamp(2.1rem, 2.2vw + 1rem, 3.35rem);
  line-height: 1.02;
  max-width: 11.5ch;
}
.hero-lead,
.hero-copy .lead{
  max-width: 58ch;
  font-size: clamp(1rem, .25vw + .96rem, 1.125rem);
  line-height: 1.6;
  margin-top: 14px !important;
  margin-bottom: 24px !important;
}
.hero-kpis{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 0 !important;
}
.hero-kpis__item{
  width: auto !important;
  display: block !important;
}
.hero-kpis__item.kpi,
.hero-kpis__item .kpi{
  width: 100% !important;
  max-width: none !important;
  min-height: 138px;
  height: 100%;
  padding: 18px 18px 16px;
  border-radius: 20px;
  background: #fff;
  border: var(--ds-border);
  box-shadow: 0 8px 24px rgba(28,33,38,.05);
}
.hero-kpis__item .kpi-value,
.hero-kpis__item.kpi .kpi-value{
  font-size: 1rem;
  line-height: 1.22;
  font-weight: 600;
  margin-bottom: 8px;
}
.hero-kpis__item .kpi-sub,
.hero-kpis__item.kpi .kpi-sub{
  font-size: .84rem;
  line-height: 1.42;
  margin: 0;
}
.hero-media{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.hero-image-wrap{
  width: 100%;
  min-height: clamp(380px, 34vw, 520px);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 2vw, 24px);
  border-radius: clamp(22px, 3vw, 32px);
  border: var(--ds-border);
  background:
    radial-gradient(circle at 25% 20%, rgba(214,0,0,.08) 0%, rgba(214,0,0,0) 38%),
    linear-gradient(180deg, #fff 0%, #f6f7f8 100%);
  box-shadow: var(--ds-shadow-card);
}
.hero-image{
  width: min(100%, 470px);
  max-height: clamp(360px, 31vw, 500px);
  height: auto;
  object-fit: contain;
  object-position: center center;
  display: block;
  margin: 0 auto;
}

/* -------- Brands -------- */
#brands .container{
  max-width: 1160px;
}
.brands-showcase{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: start;
  max-width: 1020px;
  margin: 0 auto;
}
.brands-showcase__media,
.brands-image-wrap{
  order: 0;
  min-height: clamp(220px, 26vw, 320px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(18px, 2vw, 28px);
  border-radius: var(--ds-radius-xl);
  border: var(--ds-border);
  background:
    radial-gradient(circle at 20% 18%, rgba(214,0,0,.08) 0%, rgba(214,0,0,0) 34%),
    linear-gradient(180deg, #fff 0%, #f6f7f8 100%);
  box-shadow: var(--ds-shadow-card);
}
.brands-image{
  width: min(100%, 860px);
  max-height: clamp(180px, 24vw, 280px);
  height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
  margin: 0 auto;
}
.brands-showcase__panel,
.brands-panel{
  border: var(--ds-border);
  border-radius: var(--ds-radius-xl);
  background: #fff;
  box-shadow: var(--ds-shadow-card);
  padding: clamp(20px, 2.2vw, 28px);
}
.brands-hint{
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px dashed rgba(214,0,0,.22);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, #fcf6f6 100%);
  padding: 16px 18px;
  margin-bottom: 18px;
}
.brands-hint__pills{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.brand-pill{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(214,0,0,.18);
  color: var(--brand, #D60000);
  font-size: 14px;
  font-weight: 600;
}
.brands-alphabet{
  display: grid;
  gap: 10px;
}
.brands-row{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.brands-alphabet .brand-letter{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  background: #f5f6f7;
  border: 1px solid transparent;
}
.brands-alphabet .brand-letter::after{display:none !important;}
.brands-alphabet .brand-letter.is-enabled{
  color: var(--text, #1C2126);
}
.brands-alphabet .brand-letter.disabled{
  opacity: .45;
  pointer-events: none;
}
.brands-alphabet .brand-letter.is-selected{
  background: rgba(214,0,0,.08);
  border-color: rgba(214,0,0,.24);
  color: var(--brand, #D60000);
  box-shadow: inset 0 0 0 1px rgba(214,0,0,.05);
}
.brands-list{
  min-height: 0;
  padding-top: 0;
}

/* -------- CTA -------- */
.cta-glass{
  padding: clamp(64px, 8vw, 108px) 0;
}
.cta-shell{
  max-width: 1160px;
  margin: 0 auto;
}
.cta-glass-inner{
  max-width: 1120px;
  margin: 0 auto;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.96fr);
  gap: clamp(28px, 3vw, 44px);
  padding: clamp(24px, 3vw, 36px);
  border-radius: clamp(24px, 3vw, 32px);
  background: rgba(255,255,255,.92);
  border: var(--ds-border);
  box-shadow: var(--ds-shadow-panel);
  backdrop-filter: blur(14px);
}
.cta-info{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.cta-info__content{
  max-width: 34rem;
}
.cta-info h2{
  font-size: clamp(2rem, 1.4vw + 1.4rem, 2.75rem);
  line-height: 1.06;
  margin-bottom: 14px;
}
.cta-info p{
  margin-bottom: 24px;
  max-width: 31rem;
}
.cta-visual{
  margin-top: 0;
  min-height: clamp(240px, 24vw, 320px);
  border-radius: var(--ds-radius-xl);
  border: var(--ds-border);
  background:
    radial-gradient(circle at 18% 20%, rgba(214,0,0,.08) 0%, rgba(214,0,0,0) 36%),
    linear-gradient(180deg, #fff 0%, #f6f7f8 100%);
  box-shadow: var(--ds-shadow-card);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(18px, 2vw, 24px);
  overflow: hidden;
}
.cta-visual__img,
.cta-visual img{
  width: min(100%, 340px);
  max-height: clamp(200px, 22vw, 286px);
  height: auto;
  object-fit: contain;
  object-position: center center;
  display: block;
  margin: 0 auto;
}
.cta-form-glass{
  padding-top: 0;
  align-self: stretch;
}
.cta-form-actions{
  margin-top: auto;
  display: grid;
  gap: 14px;
}

/* -------- Loader -------- */
.page-loader{
  background: rgba(28,33,38,.42);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.page-loader__panel{
  position: relative;
  min-width: min(520px, calc(100vw - 40px));
  max-width: min(560px, calc(100vw - 40px));
  padding: 34px 34px 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.97);
  border: var(--ds-border);
  box-shadow: 0 28px 80px rgba(0,0,0,.20);
  overflow: hidden;
}
.page-loader__panel::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, #D60000 0%, #F5C2C2 70%, rgba(245,194,194,0) 100%);
}
.page-loader__logo{
  font-family: "Vi Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: clamp(56px, 5.3vw, 74px);
  line-height: .92;
  font-weight: 600;
  letter-spacing: -.05em;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  gap: .02em;
  color: #1C2126;
}
.page-loader__hint{
  font-size: 14px;
  color: #767D83;
  letter-spacing: .01em;
}
.page-loader .pl-vi{
  display: inline-flex;
  gap: 0;
  transform: none !important;
  color: #D60000;
  animation: none !important;
}
.page-loader .pl-vi__ch,
.page-loader .pl-service > span{
  opacity: 0;
  animation: none !important;
  will-change: transform, opacity, filter;
}
.page-loader .pl-service{
  display: inline-flex;
  align-items: flex-end;
  gap: 0;
}
.page-loader .pl-service > span{
  transform: translateY(12px);
  filter: blur(4px);
}
.page-loader.is-visible .pl-vi__ch{
  animation: vi-loader-vi .34s ease-out both !important;
  animation-delay: calc(.14s + var(--i) * .10s) !important;
}
.page-loader.is-visible .pl-service > span{
  animation: vi-loader-letter .46s cubic-bezier(.2,.8,.2,1) both !important;
  animation-delay: calc(.46s + var(--i) * .085s) !important;
}
@keyframes vi-loader-vi{
  from{ opacity:0; transform:translateY(6px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes vi-loader-letter{
  0%{ opacity:0; transform:translateY(12px); filter:blur(4px); }
  100%{ opacity:1; transform:translateY(0); filter:blur(0); }
}

/* -------- Cabinet -------- */
.cabinet-page{
  background: #f4f5f6;
}
.cab-page-shell{
  max-width: 1560px;
  margin: 0 auto;
  padding: 20px;
}
.cab-layout{
  gap: 24px;
  align-items: flex-start;
}
.cab-sidebar{
  width: 312px;
  flex: 0 0 312px;
  position: sticky;
  top: 24px;
  align-self: flex-start;
}
.cab-main{
  min-width: 0;
}
.cab-brand,
.cab-nav a,
.cab-topbar,
.cab-user-card,
.cab-main .panel,
.table-clean{
  border-radius: 24px;
}
.cab-brand{
  margin-bottom: 16px;
}
.cab-user-card,
.cab-main .panel,
.table-clean,
.cab-topbar{
  border: var(--ds-border);
  box-shadow: var(--ds-shadow-card);
  background: #fff;
}
.cab-topbar{
  padding: 24px 28px;
  margin-bottom: 24px;
}
.cab-topbar__toc{
  border-radius: 18px;
  background: linear-gradient(180deg, #fcfcfc 0%, #f7f8f9 100%);
  border: var(--ds-border);
}
.cab-subtext,
.cab-microtext,
.cabinet-page .form-text{
  font-size: 13px !important;
  line-height: 1.45;
  color: #767D83 !important;
}
.cab-nav a{
  min-height: 48px;
  padding: 12px 14px;
}
.cab-main .table-responsive{
  border-radius: inherit;
}
.cab-main .table > :not(caption) > * > *{
  padding: 14px 16px;
}
.requests-side-table,
.request-detail-shell,
.settings-wrap .panel{
  border-radius: 24px;
}
.request-chat{
  min-height: 360px;
  max-height: 560px;
}

/* -------- Admin -------- */
.admin-page{
  background: #f4f5f6;
}
.admin-shell{
  max-width: 1560px;
}
.admin-page .panel,
.admin-dashboard-page .kpi,
.admin-panel-block,
.settings-wrap .panel{
  border: var(--ds-border);
  border-radius: 24px;
  box-shadow: var(--ds-shadow-card);
  background: #fff;
}
.admin-page .table-responsive{
  border-radius: 20px;
}
.admin-page .table > :not(caption) > * > *{
  padding: 14px 16px;
}
.admin-page .table-light th{
  font-size: 12px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #767D83;
}
.request-detail-list{
  display: grid;
  gap: 0;
}
.request-detail-list > div{
  padding: 11px 0;
  border-bottom: 1px solid var(--line, #E5E7E8);
}
.request-detail-list > div:last-child{
  border-bottom: 0;
}
.request-item-card{
  border: var(--ds-border);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, #f8f9fa 100%);
}
.admin-page .request-chat{
  border: var(--ds-border);
  border-radius: 20px;
  background: #fff;
  min-height: 380px;
  max-height: 560px;
}
.admin-page .chat-msg{
  border-radius: 16px;
}
.admin-page .badge.text-bg-light.border{
  background: #fff !important;
  color: #767D83 !important;
  border-color: var(--line, #E5E7E8) !important;
}

/* -------- Responsive polish -------- */
@media (max-width: 1199.98px){
  .hero-row{ --bs-gutter-x: 1.5rem; }
  .hero-title,
  .hero-copy .display-5{ max-width: 13ch; }
  .cta-glass-inner{ grid-template-columns: minmax(0, 1fr) minmax(360px, .94fr); }
}

@media (max-width: 991.98px){
  .hero-surface{ padding: 22px 20px; }
  .hero-title,
  .hero-copy .display-5,
  .hero-lead,
  .hero-copy .lead{ max-width: none; }
  .hero-kpis{ grid-template-columns: 1fr; }
  .hero-kpis__item.kpi,
  .hero-kpis__item .kpi{ min-height: auto; }

  .cta-glass-inner{
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .cta-info__content,
  .cta-info p{ max-width: none; }

  .cab-page-shell{ padding: 16px; }
  .cab-layout{ display: block !important; }
  .cab-sidebar{ width: auto; position: static; margin-bottom: 16px; }

  .admin-shell.container-fluid,
  .admin-shell.container{ padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 575.98px){
  .hero-surface,
  .brands-panel,
  .brands-image-wrap,
  .cta-glass-inner,
  .page-loader__panel,
  .cab-topbar,
  .cab-main .panel,
  .cab-user-card,
  .admin-page .panel,
  .admin-dashboard-page .kpi,
  .admin-panel-block{ border-radius: 20px; }

  .page-loader__panel{
    min-width: min(100vw - 24px, 440px);
    padding: 28px 22px 22px;
  }
  .page-loader__logo{ font-size: 46px; }
  .hero-kpis__item.kpi,
  .hero-kpis__item .kpi{ padding: 16px; }
  .brands-alphabet .brand-letter{ min-width: 30px; height: 30px; font-size: 13px; padding: 0 8px; }
}
.settings-note{
  font-size: 13px;
  line-height: 1.45;
  color: #767D83;
}
.settings-pending-box{
  border: 1px dashed rgba(214,0,0,.24);
  background: linear-gradient(180deg, #fff 0%, #fcf6f6 100%);
}
.request-chat-panel{
  border-radius: 24px;
}
/* =========================================================
   DS refinement pass — 2026-03-25
   Hero / Brands / CTA / Modals / Cabinet / Admin
   ========================================================= */

:root{
  --ds-radius-sm: 12px;
  --ds-radius-md: 16px;
  --ds-radius-lg: 20px;
  --ds-radius-xl: 24px;
  --ds-radius-2xl: 28px;
  --ds-section-max: 1200px;
  --ds-shell-max: 1720px;
}

/* Global rhythm / radii tighten */
.home-page section.py-5 > .container,
.home-page .hero > .container,
.cab-page-shell,
.admin-shell{
  width: min(100%, var(--ds-shell-max));
}

.panel,
.card-clean,
.solution-card,
.equipment-card,
.kpi,
.vitrine,
.table-clean,
.modal-content,
.toast,
.page-loader__panel{
  border-radius: var(--ds-radius-xl);
}

/* ---------------- Hero ---------------- */
.hero{
  padding: clamp(10px, 1.2vw, 16px) 0 clamp(20px, 2.2vw, 34px);
}
.hero-shell{
  max-width: var(--ds-section-max);
}
.hero-surface{
  position: relative;
  overflow: visible;
  padding: clamp(22px, 2.2vw, 34px) clamp(22px, 2.4vw, 36px);
}
.hero-row{
  --bs-gutter-x: clamp(1.25rem, 1.6vw, 2rem);
  align-items: center !important;
}
.hero-copy{
  max-width: 600px;
}
.hero-title,
.hero-copy .display-5{
  font-size: clamp(1.95rem, 1.7vw + 1rem, 3rem);
  max-width: 12.2ch;
}
.hero-lead,
.hero-copy .lead{
  font-size: clamp(.98rem, .18vw + .94rem, 1.08rem);
  line-height: 1.55;
  max-width: 52ch;
  margin-bottom: 20px !important;
}
.hero-kpis{
  gap: 12px;
  align-items: stretch;
}
.hero-kpis__item.kpi,
.hero-kpis__item .kpi{
  min-height: 122px;
  padding: 16px 16px 14px;
  border-radius: var(--ds-radius-lg);
}
.hero-kpis__item .kpi-value,
.hero-kpis__item.kpi .kpi-value{
  font-size: .96rem;
  margin-bottom: 7px;
}
.hero-kpis__item .kpi-sub,
.hero-kpis__item.kpi .kpi-sub{
  font-size: .82rem;
  line-height: 1.4;
}
.hero-media{
  position: relative;
  overflow: visible;
  justify-content: flex-end;
}
.hero-image-wrap{
  min-height: 0 !important;
  height: auto !important;
  width: min(100%, 560px);
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-image{
  width: min(100%, 560px);
  max-height: clamp(430px, 38vw, 640px);
  object-fit: contain;
  object-position: center;
  margin: 0;
  filter: drop-shadow(0 20px 42px rgba(28,33,38,.14));
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
@media (min-width: 992px){
  .hero-surface{ padding-right: clamp(18px, 2vw, 28px); }
  .hero-media{ min-height: 100%; }
  .hero-image-wrap{ margin-right: clamp(-12px, -1vw, -6px); }
  .hero-image{ transform: translateX(clamp(6px, 1.2vw, 16px)); }
}
@media (max-width: 1199.98px){
  .hero-kpis{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-kpis__item.kpi,
  .hero-kpis__item .kpi{ min-height: 116px; }
}
@media (max-width: 991.98px){
  .hero-shell{ max-width: 100%; }
  .hero-surface{ padding: 22px 20px; }
  .hero-copy{ max-width: none; }
  .hero-title,
  .hero-copy .display-5{ max-width: none; }
  .hero-kpis{ grid-template-columns: 1fr; }
}

/* ---------------- Brands ---------------- */
#brands .container{
  max-width: 980px;
}
.brands-showcase{
  max-width: 920px;
  gap: 0;
}
.brands-showcase__media,
.brands-image-wrap{
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 0;
  padding: 0 !important;
  margin: 0 auto -8px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  display: block;
}
.brands-image-wrap::before,
.brands-image-wrap::after{ display: none !important; }
.brands-image{
  width: 100%;
  max-width: 920px;
  max-height: none;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: center top;
  filter: drop-shadow(0 18px 36px rgba(28,33,38,.12));
}
.brands-showcase__panel,
.brands-panel{
  position: relative;
  z-index: 1;
  margin-top: -6px;
  padding-top: 26px;
}
.brands-hint{
  min-height: 88px;
  margin-bottom: 16px;
  border-radius: 16px;
}
.brands-list{
  padding-top: 4px;
}

/* ---------------- CTA ---------------- */
#cta > .container,
.cta-shell{
  max-width: 1180px;
}
.cta-glass{
  padding: clamp(48px, 6vw, 88px) 0;
}
.cta-glass-inner{
  align-items: center;
  grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr);
  gap: clamp(24px, 2.3vw, 36px);
  padding: clamp(24px, 2.6vw, 34px);
}
.cta-info{
  gap: 18px;
}
.cta-info__content{
  max-width: 33rem;
}
.cta-info h2{
  margin-bottom: 12px;
}
.cta-info p{
  margin-bottom: 0;
}
.cta-visual{
  min-height: 0;
  height: auto;
  margin-top: 0;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  justify-content: flex-start;
}
.cta-visual__img,
.cta-visual img{
  width: min(100%, 340px);
  max-height: clamp(240px, 24vw, 340px);
  object-fit: contain;
  object-position: center;
  display: block;
  margin: 0;
  filter: drop-shadow(0 18px 36px rgba(28,33,38,.12));
}
.cta-form-glass{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-content: start;
}
.cta-form-row{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.cta-form-glass .field-group{
  display: grid;
  gap: 8px;
  min-width: 0;
}
.cta-form-glass input,
.cta-form-glass select,
.cta-form-glass textarea{
  width: 100%;
  margin: 0;
}
.cta-form-glass textarea{
  min-height: 120px;
  resize: vertical;
}
.cta-form-actions{
  margin-top: 4px;
}
@media (max-width: 991.98px){
  .cta-glass-inner{
    grid-template-columns: 1fr;
  }
  .cta-form-row{ grid-template-columns: 1fr; }
  .cta-visual{ justify-content: center; }
  .cta-visual__img,
  .cta-visual img{ margin: 0 auto; }
}

/* ---------------- Modals ---------------- */
.modal-dialog{
  max-width: min(560px, calc(100vw - 28px));
  margin: 20px auto;
}
.modal-content{
  border: var(--ds-border);
  border-radius: var(--ds-radius-2xl);
  box-shadow: 0 24px 72px rgba(28,33,38,.16);
  overflow: hidden;
}
.modal-header{
  padding: 20px 24px 12px;
  border-bottom: 1px solid var(--line, #E5E7E8);
}
.modal-title{
  font-weight: 600;
  letter-spacing: -.02em;
}
.modal-body{
  padding: 18px 24px 24px;
}
.modal .field-group{
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}
.modal .field-group:last-child{ margin-bottom: 0; }
.modal .auth-actions{
  display: grid;
  gap: 12px;
  margin-top: 20px;
}
.modal .nav-tabs{
  border-bottom: 1px solid var(--line, #E5E7E8);
  gap: 18px;
}
.modal .nav-tabs .nav-link{
  border: 0;
  border-radius: 0;
  padding: 0 0 12px;
  margin: 0;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #767D83;
  background: transparent;
}
.modal .nav-tabs .nav-link.active{
  color: var(--brand, #D60000);
  background: transparent;
  box-shadow: inset 0 -2px 0 var(--brand, #D60000);
}
.modal .auth-note{
  font-size: 13px;
  line-height: 1.45;
  color: #767D83;
  margin: 4px 0 0;
}
.modal .alert{
  border-radius: 16px;
}
.btn-close{
  opacity: .7;
}
.btn-close:hover{ opacity: 1; }

/* ---------------- Pagination ---------------- */
.pagination{
  gap: 8px;
}
.pagination .page-link{
  min-width: 38px;
  height: 38px;
  border-radius: 12px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  font-weight: 600;
  box-shadow: none;
}
.pagination .page-item.active .page-link{
  box-shadow: inset 0 0 0 1px rgba(214,0,0,.08);
}
.pagination-wrap{
  padding-top: 14px;
}

/* ---------------- Loader ---------------- */
.page-loader__panel{
  min-width: min(640px, calc(100vw - 36px));
  max-width: min(680px, calc(100vw - 36px));
  padding: 38px 38px 30px;
}
.page-loader__logo{
  font-size: clamp(68px, 6vw, 96px);
  gap: .01em;
}
.page-loader__hint{
  margin-top: 12px;
  font-size: 15px;
}
@media (max-width: 575.98px){
  .page-loader__panel{
    min-width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    padding: 26px 20px 22px;
    border-radius: 22px;
  }
  .page-loader__logo{
    font-size: clamp(52px, 14vw, 70px);
  }
}

/* ---------------- Cabinet ---------------- */
.cab-page-shell{
  max-width: 1760px;
  padding: 24px clamp(16px, 2vw, 28px);
}
.cab-layout{
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.cab-sidebar{
  width: auto;
  flex: none;
}
.cab-brand{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: var(--ds-border);
  box-shadow: var(--ds-shadow-card);
  background: linear-gradient(180deg, #fff 0%, #f8f9fa 100%);
  text-decoration: none;
  color: var(--ink, #1C2126);
}
.cab-brand .mark{
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 14px;
  background: linear-gradient(180deg, #D60000 0%, #B80000 100%);
  box-shadow: 0 12px 24px rgba(214,0,0,.22);
  position: relative;
}
.cab-brand .mark::before{
  content: "Ви";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 600;
  font-size: 18px;
  letter-spacing: -.02em;
}
.cab-user-card{
  padding: 18px !important;
}
.cab-nav{
  padding: 12px;
  border: var(--ds-border);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--ds-shadow-card);
}
.cab-nav a{
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 14px;
  border-radius: 16px;
  color: #1C2126;
  text-decoration: none;
  font-weight: 600;
}
.cab-nav a:hover{
  background: #f6f7f8;
}
.cab-nav a.active{
  background: rgba(214,0,0,.08);
  color: var(--brand, #D60000);
  box-shadow: inset 0 0 0 1px rgba(214,0,0,.14);
}
.cab-topbar{
  padding: 24px 28px;
}
.cab-main{
  min-width: 0;
}
.settings-wrap,
.request-detail-shell{
  max-width: none !important;
  width: 100%;
}
.settings-wrap .row,
.request-detail-shell .row{
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.5rem;
}
.requests-side-table,
.request-detail-shell,
.settings-wrap .panel,
.cab-main .panel,
.cab-user-card,
.cab-topbar{
  border-radius: 24px;
}
.request-chat{
  min-height: 380px;
}
@media (max-width: 1199.98px){
  .cab-layout{
    grid-template-columns: 290px minmax(0, 1fr);
  }
}
@media (max-width: 991.98px){
  .cab-layout{
    grid-template-columns: 1fr;
  }
  .cab-sidebar{
    position: static;
  }
}

/* ---------------- Admin ---------------- */
.admin-shell{
  max-width: 1760px;
  padding-left: clamp(16px, 2vw, 28px);
  padding-right: clamp(16px, 2vw, 28px);
}
.admin-dashboard-page .row,
.admin-page .row{
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.5rem;
}
.admin-page .panel,
.admin-dashboard-page .kpi,
.admin-panel-block{
  padding: 20px;
}
.admin-page .table-responsive{
  width: 100%;
}
.admin-page .btn.w-100,
.cabinet-page .btn.w-100{
  width: auto !important;
}
.admin-page .d-grid > .btn,
.cabinet-page .d-grid > .btn{
  justify-self: start;
}
@media (max-width: 991.98px){
  .admin-shell{
    padding-left: 16px;
    padding-right: 16px;
  }
  .admin-page .d-grid > .btn,
  .cabinet-page .d-grid > .btn{
    justify-self: stretch;
  }
}


/* =========================================================
   FINAL DS FIXES — pass v9
   ========================================================= */
:root{
  --vi-primary:#D60000;
  --vi-primary-hover:#B80000;
  --vi-text:#1C2126;
  --vi-text-secondary:#767D83;
  --vi-surface:#FFFFFF;
  --vi-surface-muted:#F4F5F6;
  --vi-stroke:#E5E7E8;
  --vi-radius-sm:12px;
  --vi-radius-md:16px;
  --vi-radius-lg:24px;
  --vi-radius-xl:32px;
}
body{
  color:var(--vi-text);
}
.home-page .section-title{font-size:clamp(1.7rem,1.1vw + 1.15rem,2.3rem);line-height:1.08;font-weight: 600;}
.home-page p,.home-page .text-secondary{color:var(--vi-text-secondary)!important;}
.vi-icon{display:inline-block;vertical-align:middle;width:1em;height:1em;fill:currentColor;flex:0 0 auto;}
.vi-icon-sm{width:16px;height:16px;}
.vi-icon-md{width:20px;height:20px;}
.vi-icon-lg{width:24px;height:24px;}
.vi-icon-xl{width:28px;height:28px;}
.vi-icon-2xl{width:34px;height:34px;}
.icon-chip .vi-icon,.equipment-icon{color:var(--brand,#D60000);}
.link-secondary .vi-icon,.header-login-btn .vi-icon,.site-footer .vi-icon,.cab-nav .vi-icon{color:currentColor;}

/* widths */
.hero-shell,.hero-shell--wide,#solutions > .container,#equipment > .container,#brands > .container,.brands-container,#cta > .container,.cta-container,#service-centers > .container{
  max-width:min(1320px, calc(100vw - 24px));
}
#brands > .container,.cta-container{padding-left:var(--bs-gutter-x,.75rem);padding-right:var(--bs-gutter-x,.75rem);}

/* hero */
.hero{padding-top:16px;padding-bottom:34px;}
.hero-surface{padding:clamp(26px,2.8vw,40px);overflow:visible;}
.hero-row{--bs-gutter-x:clamp(24px,2.8vw,40px);}
.hero-copy{max-width:600px;}
.hero-badge{display:inline-flex;align-self:flex-start;width:auto;max-width:max-content;gap:10px;padding:10px 14px;border-radius:999px;margin-bottom:14px;}
.hero-title,.hero-copy .display-5{font-size:clamp(2rem,1.55vw + 1.2rem,3.05rem);line-height:.98;max-width:11.8ch;}
.hero-lead,.hero-copy .lead{font-size:clamp(1rem,.18vw + .96rem,1.08rem);line-height:1.58;max-width:54ch;margin-bottom:22px!important;}
.hero-kpis{gap:14px;}
.hero-kpis__item.kpi,.hero-kpis__item .kpi{min-height:130px;border-radius:20px;padding:18px 18px 16px;}
.hero-media{justify-content:flex-end;align-items:center;overflow:visible;}
.hero-image-wrap{width:min(100%,590px);padding:0!important;min-height:0!important;height:auto!important;background:transparent!important;border:0!important;box-shadow:none!important;display:flex;align-items:center;justify-content:center;overflow:visible!important;}
.hero-image{width:min(100%,590px);max-height:clamp(420px,35vw,580px);object-fit:contain;object-position:center;border-radius:28px;filter:drop-shadow(0 22px 44px rgba(28,33,38,.16));transform:none!important;margin:0 auto;}
@media (min-width: 992px){
  .hero-row > .col-lg-7{width:56%;}
  .hero-row > .col-lg-5{width:44%;}
}
@media (max-width: 991.98px){
  .hero-title,.hero-copy .display-5{max-width:none;}
  .hero-image-wrap,.hero-image{width:min(100%,460px);max-height:420px;}
}

/* brands */
#brands .container,.brands-container{max-width:min(1320px, calc(100vw - 24px));}
.brands-showcase{max-width:none;gap:0;}
.brands-showcase__media,.brands-image-wrap{margin:0 auto 14px;}
.brands-image{max-width:min(100%,1120px);}
.brands-showcase__panel,.brands-panel{margin-top:0;padding-top:28px;}
.brands-row{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:none;}
.brands-row::-webkit-scrollbar{display:none;}
.brands-alphabet{gap:12px;}
.brands-alphabet .brand-letter{min-width:32px;height:32px;padding:0 8px;font-size:13px;border-radius:10px;flex:0 0 auto;}
.brands-list{padding-top:10px;}

/* CTA */
#cta > .container,.cta-container,.cta-shell{max-width:min(1320px, calc(100vw - 24px));}
.cta-glass-inner{grid-template-columns:minmax(0,1.05fr) minmax(440px,0.95fr);align-items:stretch;gap:clamp(28px,3vw,40px);}
.cta-info{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:18px;}
.cta-info__content{display:grid;gap:12px;align-content:start;max-width:34rem;}
.cta-nameplate{display:inline-flex;align-self:start;width:auto;max-width:max-content;justify-self:start;margin:0;border-radius:999px;padding:10px 14px;gap:10px;}
.cta-info h2{font-size:clamp(1.9rem,1.25vw + 1.25rem,2.55rem);line-height:1.04;margin:0;}
.cta-info p{max-width:33rem;line-height:1.58;margin:0;}
.cta-visual{justify-content:center;align-items:flex-end;min-height:clamp(230px,21vw,310px);margin-top:8px;}
.cta-visual__img,.cta-visual img{width:min(100%,420px);max-height:clamp(240px,24vw,330px);margin:0 auto;display:block;object-fit:contain;object-position:center;}
.cta-form-glass{display:grid;gap:16px;align-content:start;}
.cta-form-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.cta-form-glass .field-group{display:grid;gap:8px;min-width:0;}
.cta-form-glass .form-label{margin:0;font-size:14px;font-weight:600;color:var(--vi-text);}
.cta-form-glass .form-control,.cta-form-glass .form-select,.cta-form-glass select,.cta-form-glass textarea,.cta-form-glass input{min-height:52px;border:1px solid var(--vi-stroke);border-radius:16px;background:#fff;color:var(--vi-text);padding:14px 16px;box-shadow:none;}
.cta-form-glass textarea{min-height:124px;padding-top:14px;}
.cta-form-glass .form-control:focus,.cta-form-glass .form-select:focus,.cta-form-glass select:focus,.cta-form-glass textarea:focus,.cta-form-glass input:focus{border-color:rgba(214,0,0,.28);box-shadow:0 0 0 4px rgba(214,0,0,.08);outline:none;}
.vi-select, .form-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23767D83' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-position:right 16px center!important;background-size:16px 16px!important;
}
.cta-form-glass .policy{display:grid!important;grid-template-columns:18px 1fr;align-items:flex-start;gap:12px;margin:2px 0 0;}
.cta-form-glass .policy input{margin:2px 0 0;width:18px;height:18px;accent-color:var(--brand,#D60000);}
.policy__text{display:grid;gap:2px;line-height:1.45;font-size:13px;color:var(--vi-text-secondary);}
.policy__headline{font-size:13px;font-weight:600;color:var(--vi-text);}
.cta-form-actions{margin-top:2px;gap:12px;}
.cta-form-actions .btn{min-height:54px;border-radius:16px;font-weight: 600;}
@media (max-width: 991.98px){.cta-glass-inner{grid-template-columns:1fr;}.cta-visual{order:3;}.cta-form-row{grid-template-columns:1fr;}}

/* modal */
.modal-dialog{max-width:min(560px, calc(100vw - 28px));}
.modal-content{border-radius:24px;border:1px solid var(--vi-stroke);}
.modal-header{padding:22px 24px 14px;}
.modal-body{padding:18px 24px 24px;}
.modal-title{font-size:1.1rem;line-height:1.2;font-weight: 600;color:var(--vi-text);}
.modal .form-label{font-size:14px;font-weight:600;color:var(--vi-text);margin:0;}
.modal .field-group{gap:8px;margin-bottom:16px;}
.modal .form-control,.modal .form-select{min-height:50px;border-radius:16px;border-color:var(--vi-stroke);}
.modal .form-control:focus,.modal .form-select:focus{border-color:rgba(214,0,0,.28);box-shadow:0 0 0 4px rgba(214,0,0,.08);}
.modal .auth-actions .btn,.modal form .btn{min-height:50px;border-radius:16px;font-weight: 600;}
.modal .nav-tabs{gap:20px;}
.modal .nav-tabs .nav-link{font-size:12px;letter-spacing:.08em;padding-bottom:14px;}
.modal .alert{border-radius:16px;padding:12px 14px;}

/* typography and sections */
#solutions .h6,.equipment-card .fw-semibold,#service-centers h5,.cta-info h2,.cab-topbar h1,.admin-page h1,.admin-page h2{color:var(--vi-text);}
#solutions .small,.equipment-card .small,.cab-subtext,.admin-subnote{color:var(--vi-text-secondary)!important;}
.solution-card .card-body,.equipment-card,.panel,.table-clean,.cab-topbar,.cab-nav,.cab-user-card,.admin-page .panel,.admin-panel-block,.kpi,.settings-card,.request-detail-shell{border-radius:24px;}
.equipment-card,.solution-card,.panel,.table-clean,.cab-topbar,.cab-nav,.cab-user-card,.admin-page .panel,.admin-panel-block,.kpi{border-color:var(--vi-stroke)!important;}

/* cabinet */
.cab-page-shell{max-width:1760px;padding:24px clamp(16px,2vw,28px);}
.cab-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start!important;}
.cab-sidebar{position:sticky;top:0;align-self:start;margin-top:0!important;padding-top:0!important;}
.cab-brand{display:flex;align-items:center;gap:16px;padding:18px 18px;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f7f8f9 100%);margin-bottom:16px;}
.cab-brand .mark{display:none!important;}
.cab-brand__logo{display:block;width:132px;max-width:45%;height:auto;flex:0 0 auto;}
.cab-brand .lh-sm{min-width:0;}
.cab-nav{padding:12px;border-radius:24px;}
.cab-nav a{min-height:54px;padding:12px 14px;border-radius:16px;gap:12px;}
.cab-user-card .btn,.admin-page .btn.w-100,.cabinet-page .btn.w-100{width:auto!important;}
.cab-topbar,.cab-main .panel,.table-clean,.requests-side-table,.request-detail-shell,.settings-card{box-shadow:var(--ds-shadow-card);}
.settings-wrap,.request-detail-shell{max-width:none!important;width:100%;}
.brand-combobox .form-control{padding-right:42px;}
.brand-dropdown{border-radius:16px;border-color:var(--vi-stroke);box-shadow:0 18px 32px rgba(28,33,38,.12);padding:8px;}
.brand-dropdown__item{border-radius:12px;min-height:42px;padding:10px 12px;}
@media (max-width: 991.98px){.cab-layout{grid-template-columns:1fr;}.cab-sidebar{position:static;top:auto;}}

/* admin */
.admin-shell{max-width:1760px;padding-left:clamp(16px,2vw,28px);padding-right:clamp(16px,2vw,28px);}
.admin-page .panel,.admin-panel-block,.admin-dashboard-page .kpi{border-radius:24px;border:1px solid var(--vi-stroke);box-shadow:var(--ds-shadow-card);}
.admin-page .form-control,.admin-page .form-select{min-height:46px;border-radius:14px;border-color:var(--vi-stroke);}
.admin-page .table thead th,.cabinet-page .table thead th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#767D83;font-weight: 600;}
.admin-page .table td,.cabinet-page .table td{vertical-align:middle;}
.pagination .page-link{border-color:var(--vi-stroke);color:var(--vi-text);background:#fff;}
.pagination .page-item.active .page-link{background:rgba(214,0,0,.08);border-color:rgba(214,0,0,.18);color:var(--brand,#D60000);}


/* =========================================================
   FINAL DS FIXES — pass v10
   ========================================================= */
:root{
  --vi-primary:#D60000;
  --vi-primary-hover:#C50000;
  --vi-primary-light:#FAE0E0;
  --vi-text:#1C2126;
  --vi-text-secondary:#767D83;
  --vi-note:#484F55;
  --vi-surface:#FFFFFF;
  --vi-surface-muted:#F4F5F6;
  --vi-stroke:#E5E7E8;
  --vi-stroke-strong:#DADCDE;
  --vi-shadow-card:0 12px 34px rgba(28,33,38,.06), 0 1px 0 rgba(255,255,255,.9) inset;
}

/* global widths */
.hero-shell,.hero-shell--wide,#solutions > .container,#equipment > .container,#brands > .container,.brands-container,#cta > .container,.cta-container,#service-centers > .container{
  max-width:min(1368px, calc(100vw - 32px))!important;
}
#brands > .container,#cta > .container{padding-left:var(--bs-gutter-x,.75rem)!important;padding-right:var(--bs-gutter-x,.75rem)!important;}

/* icon rendering */
.vi-icon{display:inline-block;vertical-align:middle;width:1em;height:1em;fill:currentColor;stroke:none;flex:0 0 auto;overflow:visible;}
.vi-icon use{pointer-events:none;}
.vi-icon-sm{width:16px;height:16px;}
.vi-icon-md{width:20px;height:20px;}
.vi-icon-lg{width:24px;height:24px;}
.vi-icon-xl{width:28px;height:28px;}
.vi-icon-2xl{width:34px;height:34px;}
.icon-chip .vi-icon,.equipment-icon,.hero-badge .vi-icon,.cta-nameplate .vi-icon{color:var(--vi-primary)!important;}

/* header typography */
.site-header__topbar{border-bottom:1px solid var(--vi-stroke);}
.site-header__topbar .container{min-height:42px;}
.site-header__topbar a,
.site-header__topbar .link-secondary,
.site-header .nav-link,
.site-header .navbar .nav-link{
  color:var(--vi-text)!important;
}
.site-header__topbar a,
.site-header__topbar .link-secondary{
  font-size:14px;
  line-height:20px;
  font-weight:600;
}
.site-header .nav-link,
.site-header .navbar .nav-link{
  font-size:15px;
  line-height:22px;
  font-weight:600;
  opacity:.98;
}
.site-header .nav-link:hover,
.site-header .navbar .nav-link:hover,
.site-header__topbar a:hover{color:var(--vi-primary)!important;}
.site-header__brand-link .logo{height:38px;width:auto;}
.header-login-btn{font-size:14px;font-weight: 600;color:var(--vi-text)!important;}
.header-login-btn .vi-icon{color:var(--vi-primary)!important;}

/* hero */
.hero{padding-top:18px;padding-bottom:38px;}
.hero-shell--wide{max-width:min(1400px, calc(100vw - 24px))!important;}
.hero-surface{padding:clamp(28px,2.8vw,42px)!important;border-radius:32px;overflow:visible;}
.hero-row{--bs-gutter-x:clamp(28px,3vw,44px);}
.hero-copy{max-width:580px;}
.hero-badge{margin-bottom:12px;}
.hero-title,.hero-copy .display-5{font-size:clamp(2.02rem,1.5vw + 1.24rem,3rem);line-height:1.02;max-width:12.4ch;}
.hero-lead,.hero-copy .lead{font-size:17px;line-height:1.58;max-width:55ch;}
.hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:640px;}
.hero-kpis__item.kpi,.hero-kpis__item .kpi{min-height:122px;padding:18px 18px 16px;border-radius:20px;}
.hero-row > .col-lg-7{width:54%;}
.hero-row > .col-lg-5{width:46%;}
.hero-media{justify-content:flex-end;align-items:center;overflow:visible;padding-right:0;min-height:100%;}
.hero-image-wrap{width:min(100%,640px)!important;max-width:640px;margin:0!important;padding:0!important;min-height:0!important;height:auto!important;background:transparent!important;border:0!important;box-shadow:none!important;display:flex;align-items:center;justify-content:center;overflow:visible!important;}
.hero-image{width:min(100%,620px)!important;max-height:clamp(400px,34vw,560px)!important;object-fit:contain;object-position:center center;border-radius:32px;filter:drop-shadow(0 24px 46px rgba(28,33,38,.15));transform:none!important;margin:0 auto!important;}
@media (max-width: 1199.98px){
  .hero-kpis{grid-template-columns:1fr;max-width:100%;}
}
@media (max-width: 991.98px){
  .hero-shell--wide{max-width:min(1368px, calc(100vw - 20px))!important;}
  .hero-title,.hero-copy .display-5{max-width:none;}
  .hero-image-wrap{width:min(100%,480px)!important;max-width:480px;}
  .hero-image{width:min(100%,460px)!important;max-height:420px!important;}
}

/* brands */
#brands .container,.brands-container{max-width:min(1368px, calc(100vw - 32px))!important;}
.brands-showcase{max-width:none;gap:0;}
.brands-showcase__media,.brands-image-wrap{width:min(100%,1180px);margin:0 auto 24px;display:block;}
.brands-image{display:block;width:100%;max-width:none;height:auto;object-fit:contain;object-position:center;border-radius:28px;}
.brands-showcase__panel,.brands-panel{width:min(100%,1180px);margin:0 auto;padding-top:0;border-radius:24px;}
.brands-hint{margin-bottom:18px;}
.brands-alphabet{gap:14px;}
.brands-row{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-bottom:4px;scrollbar-width:none;}
.brands-row::-webkit-scrollbar{display:none;}
.brands-alphabet .brand-letter{min-width:34px;height:34px;padding:0 10px;border-radius:12px;flex:0 0 auto;font-size:13px;font-weight: 600;}

/* cta */
#cta > .container,.cta-container,.cta-shell{max-width:min(1368px, calc(100vw - 32px))!important;}
.cta-glass-inner{grid-template-columns:minmax(0,1.04fr) minmax(420px,0.96fr);align-items:stretch;gap:clamp(28px,3vw,40px);}
.cta-info{display:grid;grid-template-rows:auto auto auto;align-content:start;gap:16px;padding-right:6px;}
.cta-info__content{display:grid;gap:12px;align-content:start;max-width:35rem;}
.cta-nameplate{display:inline-flex;align-self:flex-start;justify-self:start;width:auto;max-width:max-content;margin:0 0 2px;padding:9px 14px;gap:10px;border-radius:999px;}
.cta-info h2{font-size:clamp(1.95rem,1.2vw + 1.28rem,2.55rem);line-height:1.04;margin:0;max-width:14ch;}
.cta-info p{max-width:34rem;line-height:1.6;margin:0;}
.cta-visual{justify-content:center;align-items:center;min-height:clamp(260px,25vw,360px);margin:4px 0 0;}
.cta-visual__img,.cta-visual img{display:block;width:min(100%,500px);max-width:500px;max-height:clamp(280px,27vw,380px);margin:0 auto;object-fit:contain;object-position:center center;}
.cta-form-glass{display:grid;gap:16px;align-content:start;padding-top:2px;}
.cta-form-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;}
.cta-form-glass .field-group{display:grid;gap:8px;min-width:0;}
.cta-form-glass .form-label{margin:0;font-size:14px;font-weight:600;color:var(--vi-text);}
.cta-form-glass .form-control,.cta-form-glass .form-select,.cta-form-glass select,.cta-form-glass textarea,.cta-form-glass input,
.modal .form-control,.modal .form-select,.cabinet-page .form-control,.cabinet-page .form-select,.admin-page .form-control,.admin-page .form-select{
  border:1px solid var(--vi-stroke)!important;border-radius:16px!important;background:#fff;color:var(--vi-text);box-shadow:none;
}
.cta-form-glass .form-control,.cta-form-glass .form-select,.cta-form-glass select,.cta-form-glass input{min-height:52px;padding:14px 16px;}
.cta-form-glass textarea{min-height:124px;padding:14px 16px;}
.cta-form-glass .form-control:focus,.cta-form-glass .form-select:focus,.cta-form-glass select:focus,.cta-form-glass textarea:focus,.cta-form-glass input:focus,
.modal .form-control:focus,.modal .form-select:focus,.cabinet-page .form-control:focus,.cabinet-page .form-select:focus,.admin-page .form-control:focus,.admin-page .form-select:focus{
  border-color:rgba(214,0,0,.28)!important;box-shadow:0 0 0 4px rgba(214,0,0,.08)!important;outline:none;
}
.policy{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:flex-start;gap:12px;margin-top:2px;}
.policy input{margin:2px 0 0!important;width:18px;height:18px;accent-color:var(--vi-primary);}
.policy__text{display:grid;gap:3px;line-height:1.45;font-size:13px;color:var(--vi-text-secondary);}
.policy__headline{font-size:13px;font-weight:600;color:var(--vi-text);}
.policy__meta a{color:var(--vi-primary);text-decoration:none;border-bottom:1px solid currentColor;}
.policy__meta a:hover{color:var(--vi-primary-hover);}
@media (max-width: 991.98px){
  .cta-glass-inner{grid-template-columns:1fr;}
  .cta-visual{order:3;min-height:220px;}
  .cta-visual__img,.cta-visual img{width:min(100%,420px);max-width:420px;}
  .cta-form-row{grid-template-columns:1fr;}
}

/* ViSelect emulation */
.vi-select-shell,.brand-combobox,.vi-select-combobox{position:relative;display:block;}
.vi-select-shell::after,
.brand-combobox__chevron{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--vi-note);display:flex;align-items:center;justify-content:center;
}
.brand-combobox__chevron .vi-icon{color:var(--vi-note);}
.vi-select-shell::after{content:'';width:16px;height:16px;background:no-repeat center/16px 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='351 179 18 12' fill='none'%3E%3Cpath d='M366.28 181.528C366.108 181.356 365.904 181.27 365.668 181.27C365.433 181.27 365.229 181.356 365.057 181.528L360.009 186.576L354.943 181.511C354.783 181.35 354.582 181.27 354.34 181.27C354.099 181.27 353.892 181.356 353.72 181.528C353.548 181.701 353.462 181.905 353.462 182.14C353.462 182.376 353.548 182.579 353.72 182.752L359.526 188.54C359.595 188.609 359.67 188.658 359.75 188.687C359.831 188.716 359.917 188.73 360.009 188.73C360.1 188.73 360.187 188.716 360.267 188.687C360.347 188.658 360.422 188.609 360.491 188.54L366.297 182.734C366.458 182.574 366.538 182.376 366.538 182.14C366.538 181.905 366.452 181.701 366.28 181.528Z' fill='%23767D83'/%3E%3C/svg%3E");}
select.vi-select,.vi-select-shell .form-select,.cta-form-glass .vi-select,.cabinet-page .vi-select,.admin-page .vi-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none!important;padding-right:46px!important;cursor:pointer;}
.brand-combobox .js-brand-input{padding-right:46px!important;min-height:52px;border-radius:16px;border:1px solid var(--vi-stroke)!important;background:#fff;}
.brand-dropdown{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;border-radius:16px;border:1px solid var(--vi-stroke);background:#fff;box-shadow:0 18px 32px rgba(28,33,38,.12);padding:8px;}
.brand-dropdown__item{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px;border:0;background:transparent;border-radius:12px;color:var(--vi-text);font-size:14px;line-height:20px;text-align:left;}
.brand-dropdown__item:hover{background:#F4F5F6;color:var(--vi-text);}

/* modal + type */
.modal-dialog{max-width:min(560px, calc(100vw - 28px));}
.modal-content{border-radius:24px;border:1px solid var(--vi-stroke);box-shadow:var(--vi-shadow-card);}
.modal-header{padding:22px 24px 14px;}
.modal-body{padding:18px 24px 24px;}
.modal-title{font-size:1.2rem;line-height:1.2;font-weight: 600;color:var(--vi-text);}
.modal .nav-tabs{gap:18px;border-bottom:1px solid var(--vi-stroke);}
.modal .nav-tabs .nav-link{font-size:12px;line-height:18px;letter-spacing:.08em;text-transform:uppercase;padding:0 0 14px;border:0;color:var(--vi-text-secondary);}
.modal .nav-tabs .nav-link.active{color:var(--vi-primary);box-shadow:inset 0 -2px 0 var(--vi-primary);background:transparent;}
.modal .field-group{display:grid;gap:8px;margin-bottom:16px;}
.modal .alert{border-radius:16px;padding:12px 14px;}

/* main page typography */
.home-page .display-5,.home-page h1{font-weight: 600;letter-spacing:-.02em;color:var(--vi-text);}
.home-page h2,.home-page .section-title{font-weight: 600;letter-spacing:-.02em;color:var(--vi-text);}
.home-page h3,.home-page .h6{font-weight: 600;line-height:1.3;color:var(--vi-text);}
.home-page .lead{font-weight: 450;}
.solution-card .small,.equipment-card .small,#brands .text-secondary,#service-centers .text-secondary,.cta-info p{font-size:16px;line-height:1.56;}
.kpi-value{font-size:18px;line-height:1.28;font-weight: 600;color:var(--vi-text);}
.kpi-sub{font-size:14px;line-height:1.45;color:var(--vi-text-secondary)!important;}

/* cabinet and admin */
.cab-page-shell,.admin-shell{max-width:1760px;width:min(1760px, calc(100vw - 12px));padding:24px clamp(16px,2vw,28px);}
.cab-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start!important;}
.cab-sidebar{position:sticky;top:24px;align-self:start!important;margin:0!important;padding:0!important;display:flex;flex-direction:column;gap:16px;}
.cab-brand,.cab-user-card,.cab-nav,.cab-topbar,.cab-main .panel,.table-clean,.requests-side-table,.request-detail-shell,.settings-card,.admin-page .panel,.admin-panel-block{border-radius:24px;border:1px solid var(--vi-stroke)!important;box-shadow:var(--vi-shadow-card);}
.cab-brand{padding:18px 18px 18px 20px;background:linear-gradient(180deg,#fff 0%,#f7f8f9 100%);}
.cab-brand__logo{width:136px;max-width:48%;height:auto;flex:0 0 auto;}
.cab-nav{padding:12px;}
.cab-nav a{min-height:54px;padding:12px 14px;border-radius:16px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;color:var(--vi-text);}
.cab-nav a.active{background:rgba(214,0,0,.08);color:var(--vi-primary);}
.cab-main{min-width:0;}
.cab-topbar{padding:24px 26px;}
.cab-topbar h1{font-size:28px;line-height:1.1;font-weight: 600;}
.panel,.table-clean,.requests-side-table,.request-detail-shell,.settings-card,.admin-page .panel,.admin-panel-block{padding:24px;}
.cabinet-page .table thead th,.admin-page .table thead th{font-size:12px;line-height:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--vi-text-secondary);font-weight: 600;}
.pagination .page-link{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:12px;border-color:var(--vi-stroke);color:var(--vi-text);background:#fff;font-weight:600;}
.pagination .page-item.active .page-link{background:rgba(214,0,0,.08);border-color:rgba(214,0,0,.18);color:var(--vi-primary);}
.admin-page h1,.admin-page h2{font-weight: 600;color:var(--vi-text);}
.admin-page .form-label,.cabinet-page .form-label{font-size:14px;line-height:20px;font-weight:600;color:var(--vi-text);}
@media (max-width: 991.98px){
  .cab-page-shell,.admin-shell{width:100%;padding-inline:14px;}
  .cab-layout{grid-template-columns:1fr;}
  .cab-sidebar{position:static;top:auto;}
}

/* =========================================================
   DS typography / header / cards fixes — 2026-04-11
   ========================================================= */
:root{
  --vi-fw-normal: 450;
  --vi-fw-medium: 500;
  --vi-fw-demibold: 600;
  --bs-body-font-weight: 450;
  --bs-font-weight-normal: 450;
  --bs-font-weight-semibold: 600;
  --bs-font-weight-bold: 600;
}

html{
  font-synthesis: none;
}

body,
input,
textarea,
select,
option,
small,
.small,
.form-control,
.form-select,
.text-secondary,
.lead,
p,
li,
td,
th{
  font-weight: var(--vi-fw-normal) !important;
}

b,
strong,
.fw-semibold,
.fw-bold,
.fw-bolder{
  font-weight: var(--vi-fw-demibold) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6,
.home-page .display-5,
.home-page h1,
.home-page h2,
.home-page .section-title,
.home-page h3,
.home-page .h6,
.admin-page h1,
.admin-page h2,
.cab-topbar h1,
.modal-title,
.page-loader__logo,
.kpi-value,
.rf-tooltip b{
  font-weight: var(--vi-fw-demibold) !important;
}

.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.header-login-btn,
.header-login-btn--nav,
.vitrine-btn,
.brand-cta,
.brands-nav-btn,
.brand-dropdown__item,
.pagination .page-link,
.modal .nav-tabs .nav-link,
.navbar-toggler{
  font-weight: var(--vi-fw-medium) !important;
}

.site-header__nav{
  display: flex;
  align-items: center;
}

.site-header__nav .container{
  display: flex;
  align-items: center;
}

.site-header .navbar-collapse{
  align-items: center;
}

.site-header__nav-list,
.site-header .navbar-nav.align-items-lg-center{
  align-items: center !important;
}

.site-header__nav-list > .nav-item,
.site-header .navbar-nav > .nav-item{
  display: flex;
  align-items: center;
}

.site-header .nav-link,
.site-header .navbar .nav-link{
  display: inline-flex;
  align-items: center;
  min-height: 40px;
}

.site-header .btn.btn-primary,
.site-header .btn.btn-outline-secondary,
.site-header .header-login-btn--nav{
  min-height: 40px;
  height: 40px;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
}

.site-header .header-login-btn--nav .vi-icon{
  color: currentColor !important;
}

.solution-card,
.solution-card.card-clean{
  border: 1px solid var(--vi-stroke) !important;
  box-shadow: none !important;
  border-top: 1px solid var(--vi-stroke) !important;
}

.solution-card:hover,
.solution-card.card-clean:hover{
  box-shadow: none !important;
}

.solution-card .card-body{
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  grid-template-areas:
    "icon title"
    "icon text";
  align-items: start;
  column-gap: 16px;
  row-gap: 8px;
  padding: 24px;
  text-align: left !important;
  border: 0 !important;
  box-shadow: none !important;
}

.solution-card .icon-chip{
  grid-area: icon;
  width: 44px;
  height: 44px;
  margin: 0 !important;
  border-radius: 12px;
  border: 1px solid var(--vi-stroke) !important;
  background: transparent !important;
  color: var(--vi-icon) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: start;
}

.solution-card .icon-chip .vi-icon{
  color: currentColor !important;
}

.solution-card h3{
  grid-area: title;
  margin: 0;
  align-self: start;
}

.solution-card p{
  grid-area: text;
  margin: 0;
}

.solution-card .small,
.solution-card p,
.solution-card .text-secondary{
  font-weight: var(--vi-fw-normal) !important;
}

@media (max-width: 991.98px){
  .site-header .btn.btn-primary,
  .site-header .btn.btn-outline-secondary,
  .site-header .header-login-btn--nav{
    min-height: 38px;
    height: 38px;
  }

  .solution-card .card-body{
    grid-template-columns: 40px minmax(0, 1fr);
    column-gap: 14px;
    padding: 20px;
  }

  .solution-card .icon-chip{
    width: 40px;
    height: 40px;
  }
}


/* =========================================================
   Home fixes — 2026-04-11 (round 2)
   ========================================================= */
@media (min-width: 992px){
  .site-header__nav-list > .nav-item.d-lg-flex{
    display:flex !important;
    align-items:center !important;
  }

  .site-header__nav-list > .nav-item.d-lg-flex > .btn,
  .site-header__nav-list > .nav-item.d-lg-flex > .header-login-btn--nav{
    align-self:center !important;
  }

  .site-header .navbar-collapse,
  .site-header .navbar-nav,
  .site-header__nav-list{
    align-items:center !important;
  }
}

.site-header .btn.btn-primary,
.site-header .btn.btn-outline-secondary,
.site-header .header-login-btn--nav{
  height:40px !important;
  min-height:40px !important;
  line-height:1 !important;
  margin:0 !important;
  white-space:nowrap;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  vertical-align:middle !important;
}

.site-header .header-login-btn--nav{
  gap:8px;
}

.site-header .header-login-btn--nav .vi-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
}

/* Straight section transitions only */
.home-page .section-soft{
  border-top:none !important;
  border-bottom:none !important;
}

#equipment{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.wave-top,
.wave-bottom{
  display:none !important;
}

#service-centers{
  border-top:none !important;
  border-bottom:none !important;
}

.cta-glass{
  background:#f8f9fa !important;
}

/* Service and equipment cards */
.solution-card,
.equipment-card{
  border:1px solid var(--vi-stroke) !important;
  box-shadow:none !important;
}

.solution-card:hover,
.solution-card:focus,
.solution-card:active,
.equipment-card:hover,
.equipment-card:focus,
.equipment-card:active{
  transform:none !important;
  box-shadow:none !important;
}

.solution-card .icon-chip,
.equipment-card .equipment-icon{
  width:44px !important;
  height:44px !important;
  margin:0 !important;
  border:none !important;
  border-radius:12px !important;
  background:#F4F5F6 !important;
  color:var(--vi-icon) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:none !important;
}

.solution-card .icon-chip .vi-icon,
.equipment-card .equipment-icon .vi-icon,
.equipment-card .equipment-icon{
  color:var(--vi-icon) !important;
}

.equipment-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-areas:
    "icon title"
    "icon text";
  align-items:start;
  column-gap:16px;
  row-gap:8px;
  text-align:left !important;
  padding:24px !important;
}

.equipment-card > .equipment-icon{
  grid-area:icon;
  align-self:start;
}

.equipment-card > .fw-semibold{
  grid-area:title;
  margin:0 !important;
  text-align:left !important;
  align-self:start;
}

.equipment-card > .text-secondary{
  grid-area:text;
  margin:0 !important;
  text-align:left !important;
}

.equipment-card .fw-semibold,
.equipment-card .text-secondary{
  text-align:left !important;
}

.equipment-card:hover .equipment-icon,
.equipment-card:focus .equipment-icon,
.equipment-card:active .equipment-icon{
  color:var(--vi-icon) !important;
  transform:none !important;
  box-shadow:none !important;
}

/* Remove highlight/active shadows */
.home-page .btn:hover,
.home-page .btn:focus,
.home-page .btn:active,
.home-page .btn.active,
.home-page .header-login-btn:hover,
.home-page .header-login-btn:focus,
.home-page .header-login-btn:active,
.home-page .header-login-btn--nav:hover,
.home-page .header-login-btn--nav:focus,
.home-page .header-login-btn--nav:active,
.home-page .nav-link:hover,
.home-page .nav-link:focus,
.home-page .nav-link:active,
.home-page .pagination .page-link:hover,
.home-page .pagination .page-link:focus,
.home-page .pagination .page-link:active,
.home-page .pagination .page-item.active .page-link,
.home-page .modal .nav-tabs .nav-link:focus,
.home-page .modal .nav-tabs .nav-link:active,
.home-page .modal .nav-tabs .nav-link.active,
.home-page .brand-cta:hover,
.home-page .brand-cta:focus,
.home-page .brand-cta:active,
.home-page .brand-nav__item:hover,
.home-page .brand-nav__item:focus,
.home-page .brand-nav__item:active,
.home-page .brand-nav__item.active,
.home-page .brand-letter:hover,
.home-page .brand-letter:focus,
.home-page .brand-letter:active,
.home-page .brand-letter.active,
.home-page .sc-coords:hover,
.home-page .sc-coords:focus,
.home-page .sc-coords:active,
.home-page .form-control:focus,
.home-page .form-select:focus,
.home-page textarea:focus,
.home-page input:focus,
.home-page select:focus{
  box-shadow:none !important;
}

.home-page .btn:active,
.home-page .btn.active,
.home-page .header-login-btn:active,
.home-page .header-login-btn--nav:active,
.home-page .sc-coords:active{
  transform:none !important;
}

@media (max-width: 991.98px){
  .equipment-card{
    grid-template-columns:40px minmax(0,1fr);
    column-gap:14px;
    padding:20px !important;
  }

  .solution-card .icon-chip,
  .equipment-card .equipment-icon{
    width:40px !important;
    height:40px !important;
  }
}


/* =========================================================
   Home fixes — 2026-04-11 (round 3)
   ========================================================= */
@media (min-width: 992px){
  .site-header__nav .container{
    min-height: 56px !important;
    align-items: center !important;
  }

  .site-header .navbar-collapse{
    display: flex !important;
    align-items: center !important;
    min-height: 56px;
  }

  .site-header__nav-list{
    display: flex !important;
    align-items: center !important;
    min-height: 56px;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-header__nav-list > .nav-item,
  .site-header__nav-list > .site-header__cta-item{
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    min-height: 56px;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-header__nav-list > .nav-item > .nav-link,
  .site-header__nav-list > .site-header__cta-item > .site-header__cta-link{
    align-self: center !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-header .site-header__cta-link,
  .site-header .btn.btn-primary.site-header__cta-link,
  .site-header .btn.btn-outline-secondary.site-header__cta-link,
  .site-header .header-login-btn--nav.site-header__cta-link{
    height: 40px !important;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    position: relative;
    top: 0 !important;
    bottom: auto !important;
    transform: none !important;
  }
}

.solution-card .icon-chip .vi-icon,
.equipment-card .equipment-icon .vi-icon{
  width: 28px !important;
  height: 28px !important;
}

.equipment-card .equipment-icon{
  width: 44px !important;
  height: 44px !important;
  min-width: 44px;
  min-height: 44px;
}

.brands-panel{
  padding: 32px !important;
}

.brands-directory{
  display: grid;
  gap: 20px;
}

.brand-group{
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.brand-group__letter{
  font-size: 38px;
  line-height: 1;
  font-weight: var(--vi-fw-demibold);
  color: var(--vi-text);
}

.brand-group__items{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 28px;
  align-items: start;
}

.brand-group__item{
  display: block;
  color: var(--vi-text);
  font-weight: var(--vi-fw-normal);
  line-height: 1.5;
  min-width: 0;
}

.service-center-card{
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--vi-stroke) !important;
  box-shadow: none !important;
  background: #fff;
}

.service-center-card__media{
  aspect-ratio: 16 / 8;
  overflow: hidden;
  background: #EEF1F3;
}

.service-center-card__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.service-center-card__body{
  display: grid;
  gap: 12px;
  padding: 24px;
}

.service-center-card__title{
  margin: 0;
  font-size: 20px;
  line-height: 1.3;
  font-weight: var(--vi-fw-demibold);
  color: var(--vi-text);
}

.service-center-card__address{
  margin: 0;
  color: var(--vi-text-secondary) !important;
}

.service-center-card__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.service-center-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid var(--vi-stroke);
  background: #F4F5F6;
  color: var(--vi-text);
  text-decoration: none;
  font-weight: var(--vi-fw-medium);
  box-shadow: none !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.service-center-card__btn:hover,
.service-center-card__btn:focus,
.service-center-card__btn:active{
  background: #F4F5F6;
  border-color: var(--vi-stroke);
  color: var(--vi-text);
  text-decoration: none;
  transform: none !important;
  box-shadow: none !important;
  outline: none;
}

.service-center-card__btn .vi-icon{
  color: currentColor !important;
}

.service-center-card__btn.is-copied{
  border-color: var(--vi-stroke-strong);
}

@media (max-width: 1199.98px){
  .brand-group__items{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px){
  .brand-group{
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
  }

  .brand-group__letter{
    font-size: 32px;
  }

  .brand-group__items{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
  }

  .service-center-card__title{
    font-size: 18px;
  }
}

@media (max-width: 767.98px){
  .brands-panel{
    padding: 24px !important;
  }

  .brand-group{
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .brand-group__items{
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .service-center-card__body{
    padding: 20px;
  }

  .service-center-card__actions{
    flex-direction: column;
  }

  .service-center-card__btn{
    width: 100%;
  }
}


/* =========================================================
   Home fixes — 2026-04-11 (round 4)
   ========================================================= */
@media (min-width: 992px){
  .site-header__nav .container,
  .site-header__nav .navbar-collapse,
  .site-header__nav-list{
    display:flex !important;
    align-items:center !important;
  }

  .site-header__nav .container,
  .site-header__nav .navbar-collapse,
  .site-header__nav-list,
  .site-header__nav-list > .nav-item,
  .site-header__nav-list > .site-header__cta-item{
    min-height:56px !important;
  }

  .site-header__nav-list > .nav-item,
  .site-header__nav-list > .site-header__cta-item{
    display:flex !important;
    align-items:center !important;
    align-self:center !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }

  .site-header__nav-list > .nav-item > .nav-link,
  .site-header__nav-list > .site-header__cta-item > .site-header__cta-link,
  .site-header .header-login-btn--nav.site-header__cta-link{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:center !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    position:static !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
  }
}

.equipment-card,
.equipment-card.card,
.equipment-card.card-clean{
  border:1px solid var(--vi-stroke) !important;
  box-shadow:none !important;
}

.equipment-card .card-body{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-areas:
    "icon title"
    "icon text";
  align-items:start;
  column-gap:16px;
  row-gap:8px;
  padding:24px !important;
  text-align:left !important;
  border:0 !important;
  box-shadow:none !important;
}

.equipment-card .icon-chip{
  grid-area:icon;
  width:44px !important;
  height:44px !important;
  margin:0 !important;
  border:none !important;
  border-radius:12px !important;
  background:#F4F5F6 !important;
  color:var(--vi-icon) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:start;
  box-shadow:none !important;
}

.equipment-card .icon-chip .vi-icon{
  width:28px !important;
  height:28px !important;
  color:currentColor !important;
}

.equipment-card h3{
  grid-area:title;
  margin:0 !important;
  align-self:start;
}

.equipment-card p{
  grid-area:text;
  margin:0 !important;
}

.equipment-card h3,
.equipment-card p,
.equipment-card .text-secondary,
.equipment-card .small{
  text-align:left !important;
}

.brands-directory--columns{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:28px 40px;
}

.brands-directory__column{
  display:grid;
  gap:16px;
  align-content:start;
}

.brand-group{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start;
}

.brand-group__letter{
  font-size:32px !important;
  line-height:1 !important;
  font-weight:var(--vi-fw-demibold) !important;
  color:#171A21 !important;
}

.brand-group__items,
.brand-group__items--inline{
  display:block !important;
  color:var(--vi-text) !important;
  font-weight:var(--vi-fw-normal) !important;
  line-height:1.5 !important;
}

.service-center-card__btn .vi-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
}

@media (max-width: 991.98px){
  .equipment-card .card-body{
    grid-template-columns:40px minmax(0,1fr);
    column-gap:14px;
    padding:20px !important;
  }

  .equipment-card .icon-chip{
    width:40px !important;
    height:40px !important;
  }

  .brands-directory--columns{
    grid-template-columns:1fr;
    gap:20px;
  }
}


/* =========================================================
   Final polish — 2026-04-11 round 5
   ========================================================= */
.site-header__topbar .container,
.site-header .header-actions{
  align-items:center !important;
}

.site-header .header-contact-item,
.site-header .header-actions{
  display:flex;
  align-items:center;
}

.site-header .header-contact-item a,
.site-header .header-actions > a,
.site-header .header-actions > .link-secondary{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px;
  line-height:20px !important;
  min-height:20px;
}

.site-header .header-contact-item .vi-icon,
.site-header .header-actions .vi-icon{
  width:16px !important;
  height:16px !important;
  flex:0 0 16px;
  display:block;
}

.site-header .header-actions{
  gap:24px !important;
}

.site-footer__title{
  text-transform:none !important;
  letter-spacing:0 !important;
}

.equipment-card{
  display:block !important;
  padding:0 !important;
}

.equipment-card .card-body{
  display:grid !important;
  grid-template-columns:44px minmax(0, 1fr);
  grid-template-areas:
    "icon title"
    "icon text";
  align-items:start;
  column-gap:16px;
  row-gap:8px;
  padding:24px !important;
  text-align:left !important;
}

.equipment-card .icon-chip{
  grid-area:icon;
  width:44px !important;
  height:44px !important;
  margin:0 !important;
  border:none !important;
  border-radius:12px !important;
  background:#F4F5F6 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:start;
  box-shadow:none !important;
}

.equipment-card .icon-chip .vi-icon{
  width:28px !important;
  height:28px !important;
  color:var(--vi-icon) !important;
}

.equipment-card h3,
.equipment-card .h6{
  grid-area:title;
  margin:0 !important;
  align-self:start;
  text-align:left !important;
}

.equipment-card p,
.equipment-card .text-secondary,
.equipment-card .small{
  grid-area:text;
  margin:0 !important;
  text-align:left !important;
}

.cab-brand__title{
  font-size:18px;
  line-height:24px;
  font-weight:var(--vi-fw-demibold);
  color:var(--vi-text);
}

.cab-nav .vi-icon{
  width:20px !important;
  height:20px !important;
  flex:0 0 20px;
}

.form-label__required,
.policy__required{
  color:var(--vi-primary);
  font-weight:var(--vi-fw-demibold);
}

.field-group--policy{
  gap:0;
}

.policy{
  position:relative;
  display:grid !important;
  grid-template-columns:20px minmax(0, 1fr);
  gap:12px;
  align-items:start;
}

.policy input{
  position:absolute;
  opacity:0;
  inset:0;
  width:20px;
  height:20px;
  margin:0 !important;
}

.policy__control{
  width:20px;
  height:20px;
  border-radius:6px;
  border:1px solid var(--vi-stroke-strong);
  background:#F4F5F6;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:2px;
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.policy__control::before{
  content:'';
  width:10px;
  height:6px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) scale(0);
  transform-origin:center;
  transition:transform .16s ease;
}

.policy input:checked + .policy__control{
  background:var(--vi-primary);
  border-color:var(--vi-primary);
}

.policy input:checked + .policy__control::before{
  transform:rotate(-45deg) scale(1);
}

.policy:focus-within .policy__control{
  box-shadow:0 0 0 4px rgba(214,0,0,.08);
}

.policy__headline{
  display:block;
  font-size:14px;
  line-height:20px;
}

.policy__meta{
  display:block;
  margin-top:2px;
}

.vi-field-note{
  display:block;
  margin-top:6px;
  font-size:12px;
  line-height:16px;
  color:var(--vi-text-secondary);
}

.vi-field-note.d-none{
  display:none !important;
}

.vi-field-note.is-error{
  color:var(--vi-error);
}

.field-group.is-invalid > .form-label,
.field-group--policy.is-invalid .policy__headline,
.policy.is-invalid .policy__headline,
.form-control.is-invalid,
.form-select.is-invalid,
textarea.is-invalid,
input.is-invalid{
  color:inherit;
}

.field-group.is-invalid > .form-label,
.field-group--policy.is-invalid .policy__headline,
.policy.is-invalid .policy__headline{
  color:var(--vi-error) !important;
}

.form-control.is-invalid,
.form-select.is-invalid,
textarea.is-invalid,
input.is-invalid{
  border-color:var(--vi-error) !important;
  box-shadow:0 0 0 4px rgba(224,61,61,.08) !important;
}

.vi-select-shell .form-select.is-invalid{
  background-color:#fff !important;
}

.field-group--policy.is-invalid .policy__control,
.policy.is-invalid .policy__control,
.policy input.is-invalid + .policy__control{
  border-color:var(--vi-error) !important;
  background:#FFF5F5 !important;
  box-shadow:none !important;
}

.field-group--policy.is-invalid .policy input:checked + .policy__control,
.policy.is-invalid input:checked + .policy__control,
.policy input.is-invalid:checked + .policy__control{
  background:var(--vi-primary) !important;
  border-color:var(--vi-error) !important;
}

@media (max-width: 991.98px){
  .equipment-card .card-body{
    grid-template-columns:40px minmax(0, 1fr);
    column-gap:14px;
    padding:20px !important;
  }

  .equipment-card .icon-chip{
    width:40px !important;
    height:40px !important;
  }

  .site-header .header-actions{
    gap:14px !important;
  }
}
/* =========================================================
   ROUND 6 — DS polish / responsiveness
   ========================================================= */
:root{
  --vi-shadow-card-hover: 0 12px 28px rgba(28,33,38,.08), 0 2px 8px rgba(28,33,38,.04);
}

/* Soft hover state like DS */
.home-page .solution-card,
.home-page .equipment-card{
  transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease, background-color .18s ease;
}
.home-page .solution-card:hover,
.home-page .solution-card:focus-within,
.home-page .equipment-card:hover,
.home-page .equipment-card:focus-within{
  box-shadow: var(--vi-shadow-card-hover) !important;
  border-color: #DADCDE !important;
  transform: translateY(-1px);
}
.home-page .solution-card:active,
.home-page .equipment-card:active{
  box-shadow: var(--vi-shadow-card-hover) !important;
  transform: none;
}

/* Header topbar icon alignment */
.site-header__topbar .container,
.site-header .header-actions,
.site-header .header-contact-item{
  display:flex;
  align-items:center !important;
}
.site-header .header-contact-item a,
.site-header .header-actions > a,
.site-header .header-actions .link-secondary{
  display:inline-flex !important;
  align-items:center !important;
  vertical-align:middle;
  gap:8px;
}
.site-header .header-contact-item .vi-icon,
.site-header .header-actions .vi-icon{
  display:block !important;
  width:16px !important;
  height:16px !important;
  flex:0 0 16px;
  margin:0 !important;
  transform: translateY(0) !important;
}
.site-header .header-actions span,
.site-header .header-contact-item span{
  display:inline-flex;
  align-items:center;
}

/* Brands and CTA width parity with other sections */
#brands > .container,
.brands-container,
#cta > .container,
.cta-container{
  max-width:min(1368px, calc(100vw - 32px)) !important;
}
.brands-showcase__media,
.brands-image-wrap,
.brands-showcase__panel,
.brands-panel,
.cta-shell{
  width:100% !important;
  max-width:none !important;
}

/* Compact brands grid */
.brands-directory--columns{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:24px 32px;
}
.brands-directory__column{
  min-width:0;
}
.brand-group{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:10px 16px;
  align-items:start;
}
.brand-group + .brand-group{
  margin-top:16px;
}
.brand-group__letter{
  color:#171A21 !important;
  font-size:38px;
  line-height:1;
  font-weight:var(--vi-fw-demibold,600);
}
.brand-group__items,
.brand-group__items--inline{
  display:block;
  min-width:0;
  line-height:1.6;
  word-break:break-word;
}

/* Equipment cards exactly like service cards */
#equipment .equipment-card,
#equipment .equipment-card.card,
#equipment .equipment-card.card-clean{
  display:block !important;
  padding:0 !important;
}
#equipment .equipment-card .card-body{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) !important;
  grid-template-areas:
    "icon title"
    "icon text" !important;
  align-items:start !important;
  column-gap:16px !important;
  row-gap:8px !important;
  padding:24px !important;
  text-align:left !important;
}
#equipment .equipment-card .icon-chip{
  grid-area:icon !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  margin:0 !important;
  border:none !important;
  border-radius:12px !important;
  background:#F4F5F6 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:start !important;
  box-shadow:none !important;
}
#equipment .equipment-card .icon-chip .vi-icon{
  width:28px !important;
  height:28px !important;
  color:var(--vi-text-secondary) !important;
}
#equipment .equipment-card h3,
#equipment .equipment-card .h6{
  grid-area:title !important;
  margin:0 !important;
  text-align:left !important;
  align-self:start !important;
}
#equipment .equipment-card p,
#equipment .equipment-card .text-secondary,
#equipment .equipment-card .small{
  grid-area:text !important;
  margin:0 !important;
  text-align:left !important;
}
#equipment .equipment-card > .icon-chip,
#equipment .equipment-card > .fw-semibold,
#equipment .equipment-card > .text-secondary{
  all: unset;
}

/* CTA cleanup */
.cta-form-glass .form-note,
.cta-form-glass .field-hint,
.cta-form-glass .form-text:not(.invalid-feedback){
  display:none !important;
}
.cta-form-glass .policy{
  grid-template-columns:20px minmax(0,1fr) !important;
  gap:12px !important;
}
.cta-form-glass .policy input{
  position:absolute !important;
  opacity:0 !important;
  width:1px !important;
  height:1px !important;
  pointer-events:none !important;
}
.policy__control{
  width:20px !important;
  height:20px !important;
  border:1px solid #C8CDD2 !important;
  border-radius:6px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.policy__control::before{
  inset:3px !important;
  border-radius:3px !important;
}
.policy input:checked + .policy__control{
  border-color:var(--vi-primary) !important;
  background:#fff !important;
}
.policy input:checked + .policy__control::before{
  background:var(--vi-primary) !important;
}
.policy__text{
  gap:0 !important;
}
.policy__meta,
.policy__meta a,
.vi-link-inline{
  color:var(--vi-text) !important;
}
.policy__meta a,
.vi-link-inline{
  text-decoration:underline;
  text-decoration-color:rgba(28,33,38,.32);
  text-underline-offset:2px;
  border-bottom:0 !important;
}
.policy__meta a:hover,
.vi-link-inline:hover{
  color:var(--vi-text) !important;
  text-decoration-color:rgba(28,33,38,.56);
}
.field-group--policy .invalid-feedback:empty,
.field-group .invalid-feedback:empty{
  display:none !important;
}

/* Service center buttons with icon balance */
.service-center-card__btn .vi-icon{
  width:16px !important;
  height:16px !important;
  flex:0 0 16px !important;
}

/* Responsive polish */
@media (max-width: 1199.98px){
  .brands-directory--columns{gap:20px 24px;}
  .brand-group{grid-template-columns:48px minmax(0,1fr);}
  .brand-group__letter{font-size:34px;}
  .cta-glass-inner{grid-template-columns:minmax(0,1fr) minmax(360px,.92fr) !important;}
}
@media (max-width: 991.98px){
  .brands-directory--columns{grid-template-columns:1fr !important;gap:18px;}
  .brand-group{grid-template-columns:40px minmax(0,1fr);gap:8px 14px;}
  .brand-group__letter{font-size:30px;}
  .site-header__topbar .container{gap:8px 16px;}
  .site-header .header-actions{gap:16px !important;flex-wrap:wrap;}
  .service-center-card__actions{grid-template-columns:1fr;display:grid;}
  .service-center-card__btn{justify-content:center;}
  .cta-glass-inner{grid-template-columns:1fr !important;}
  .cta-info{padding-right:0;}
  .cta-visual{order:3;min-height:220px;}
}
@media (max-width: 767.98px){
  .hero-shell,.hero-shell--wide,#solutions > .container,#equipment > .container,#brands > .container,.brands-container,#cta > .container,.cta-container,#service-centers > .container{
    max-width:calc(100vw - 20px) !important;
  }
  #equipment .equipment-card .card-body{
    grid-template-columns:40px minmax(0,1fr) !important;
    column-gap:14px !important;
    padding:20px !important;
  }
  #equipment .equipment-card .icon-chip{width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;}
  #equipment .equipment-card .icon-chip .vi-icon{width:24px !important;height:24px !important;}
  .service-center-card__body{padding:18px 18px 20px !important;}
  .service-center-card__actions{gap:10px !important;}
  .cta-form-row{grid-template-columns:1fr !important;}
}
@media (max-width: 575.98px){
  .site-header .header-actions{gap:12px !important;}
  .site-header__topbar a, .site-header__topbar .link-secondary{font-size:13px;line-height:18px;}
  .brand-group__letter{font-size:28px;}
}


/* =========================================================
   FINAL DS FIXES — pass v12
   ========================================================= */
:root{
  --vi-shadow-card-soft: 0 10px 24px rgba(28,33,38,.08), 0 2px 6px rgba(28,33,38,.04);
}

/* Header width + logo scale */
.site-header__topbar .container,
.site-header__nav .container{
  max-width:min(1368px, calc(100vw - 32px)) !important;
  padding-left:var(--bs-gutter-x,.75rem) !important;
  padding-right:var(--bs-gutter-x,.75rem) !important;
}
.site-header__brand-link .logo,
.site-header .navbar .logo{
  height:44px !important;
  width:auto !important;
}
.site-header__nav{
  border-bottom:1px solid var(--vi-stroke);
}
.site-header .header-contact-item a,
.site-header .header-actions > a,
.site-header .header-actions .link-secondary,
.site-header .header-login-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px;
  line-height:1.2;
}
.site-header .header-contact-item .vi-icon,
.site-header .header-actions .vi-icon,
.site-header .header-login-btn .vi-icon{
  display:block !important;
  width:16px !important;
  height:16px !important;
  flex:0 0 16px !important;
  margin:0 !important;
  transform:none !important;
}

/* Buttons — rounding and DS-like proportions */
.btn,
.site-header .btn,
.header-login-btn,
.service-center-card__btn{
  border-radius:16px !important;
}
.site-header .btn.btn-primary.site-header__cta-link,
.site-header .btn.btn-outline-secondary.site-header__cta-link,
.site-header .header-login-btn--nav.site-header__cta-link{
  min-height:44px !important;
  padding:10px 16px !important;
}

/* Cards hover */
.home-page .solution-card:hover,
.home-page .solution-card:focus-within,
.home-page .equipment-card:hover,
.home-page .equipment-card:focus-within{
  box-shadow:var(--vi-shadow-card-soft) !important;
}

/* Equipment cards — exact same visual pattern as services */
#equipment .equipment-card,
#equipment .equipment-card.card,
#equipment .equipment-card.card-clean{
  display:block !important;
  padding:0 !important;
}
#equipment .equipment-card .card-body{
  display:grid !important;
  grid-template-columns:48px minmax(0,1fr) !important;
  grid-template-areas:"icon title" "icon text" !important;
  align-items:start !important;
  column-gap:16px !important;
  row-gap:8px !important;
  padding:24px !important;
  text-align:left !important;
}
#equipment .equipment-card .icon-chip{
  grid-area:icon !important;
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  min-height:48px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:16px !important;
  background:#F4F5F6 !important;
  box-shadow:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:start !important;
}
#equipment .equipment-card .icon-chip .vi-icon{
  width:28px !important;
  height:28px !important;
  color:var(--vi-text-secondary) !important;
}
#equipment .equipment-card h3,
#equipment .equipment-card .h6,
#equipment .equipment-card > .fw-semibold{
  grid-area:title !important;
  margin:0 !important;
  text-align:left !important;
  align-self:start !important;
}
#equipment .equipment-card p,
#equipment .equipment-card .text-secondary,
#equipment .equipment-card .small,
#equipment .equipment-card > .text-secondary{
  grid-area:text !important;
  margin:0 !important;
  text-align:left !important;
}
#equipment .equipment-card > .icon-chip,
#equipment .equipment-card > .fw-semibold,
#equipment .equipment-card > .text-secondary{
  all:unset;
}

/* Brands/CTA width parity */
#brands > .container,
.brands-container,
#cta > .container,
.cta-container,
.cta-shell{
  max-width:min(1368px, calc(100vw - 32px)) !important;
  width:100% !important;
}
.cta-shell{
  margin:0 auto !important;
}

/* CTA sizing and checkbox */
.cta-glass{
  padding:48px 0 52px !important;
}
.cta-glass-inner{
  grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr) !important;
  align-items:start !important;
  gap:28px !important;
  padding:24px !important;
}
.cta-info{
  gap:14px !important;
}
.cta-visual{
  min-height:240px !important;
  margin-top:0 !important;
}
.cta-visual__img,
.cta-visual img{
  width:min(100%,480px) !important;
  max-width:480px !important;
  max-height:340px !important;
}
.cta-form-glass{
  gap:14px !important;
  align-content:start !important;
}
.cta-form-actions{
  margin-top:0 !important;
}
.cta-form-actions .btn{
  min-height:52px !important;
}
.field-group--policy{
  margin-top:2px !important;
}
.cta-form-glass .policy{
  position:relative;
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr) !important;
  align-items:flex-start !important;
  gap:12px !important;
  margin:0 !important;
}
.cta-form-glass .policy input{
  position:absolute !important;
  inset:0 auto auto 0 !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.policy__control{
  display:inline-block !important;
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  margin-top:1px !important;
  border:1px solid #C8CDD2 !important;
  border-radius:6px !important;
  background:#fff !important;
  box-shadow:none !important;
  position:relative;
}
.policy__control::before{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:3px;
  background:transparent;
}
.policy input:checked + .policy__control{
  border-color:var(--vi-primary) !important;
}
.policy input:checked + .policy__control::before{
  background:var(--vi-primary) !important;
}
.policy__text{
  display:block !important;
  min-width:0;
}
.policy__meta,
.policy__meta a,
.policy__required{
  display:inline !important;
  white-space:normal;
}
.policy__meta{
  color:var(--vi-text) !important;
  font-size:13px !important;
  line-height:1.45 !important;
}
.policy__meta a,
.vi-link-inline{
  color:var(--vi-text) !important;
  text-decoration:underline;
  text-decoration-color:rgba(28,33,38,.32);
  text-underline-offset:2px;
  border-bottom:0 !important;
}
.policy__meta a:hover,
.vi-link-inline:hover{
  color:var(--vi-text) !important;
}

/* Section/card responsiveness */
@media (max-width: 991.98px){
  .site-header__topbar .container,
  .site-header__nav .container,
  #brands > .container,
  .brands-container,
  #cta > .container,
  .cta-container,
  .cta-shell{
    max-width:calc(100vw - 24px) !important;
  }
  .cta-glass-inner{
    grid-template-columns:1fr !important;
    padding:22px !important;
  }
  .cta-visual{
    order:3;
    min-height:200px !important;
  }
}
@media (max-width: 767.98px){
  .site-header__brand-link .logo,
  .site-header .navbar .logo{
    height:40px !important;
  }
  #equipment .equipment-card .card-body{
    grid-template-columns:44px minmax(0,1fr) !important;
    padding:20px !important;
  }
  #equipment .equipment-card .icon-chip{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    border-radius:14px !important;
  }
  #equipment .equipment-card .icon-chip .vi-icon{
    width:24px !important;
    height:24px !important;
  }
  .cta-glass{
    padding:40px 0 44px !important;
  }
}


/* =========================================================
   ROUND 8 — hero / equipment subtitle / CTA width / checkbox / phone note
   ========================================================= */
@media (min-width: 992px){
  .hero-row{
    --bs-gutter-x: clamp(12px, 1.4vw, 20px) !important;
  }

  .hero-row > .col-lg-7{
    width: 55.5% !important;
  }

  .hero-row > .col-lg-5{
    width: 44.5% !important;
  }

  .hero-copy{
    max-width: none !important;
  }

  .hero-media{
    padding-left: 0 !important;
  }
}

#equipment .text-center > p.text-secondary{
  max-width: 760px;
  margin-left: auto !important;
  margin-right: auto !important;
}

#cta > .container.cta-container,
.cta-container{
  width: 100% !important;
  max-width: min(1368px, calc(100vw - 24px)) !important;
  padding-left: max(var(--bs-gutter-x, .75rem), 12px) !important;
  padding-right: max(var(--bs-gutter-x, .75rem), 12px) !important;
}

.cta-shell,
.cta-glass-inner{
  width: 100% !important;
  max-width: none !important;
}

@media (min-width: 992px){
  .cta-glass-inner{
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr) !important;
    gap: clamp(24px, 2.2vw, 34px) !important;
  }
}

.cta-form-glass .vi-field-note{
  min-height: 0 !important;
}

#ctaPhone + .vi-field-note,
.field-group:has(#ctaPhone) .vi-field-note{
  display: none !important;
}

.field-group--policy{
  margin-top: 2px !important;
}

.policy{
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: start !important;
}

.policy input{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.policy__control{
  position: relative !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border: 1px solid #C8CDD2 !important;
  border-radius: 6px !important;
  background: #F4F5F6 !important;
  box-shadow: none !important;
  margin-top: 1px !important;
}

.policy__control::before{
  content: '' !important;
  position: absolute !important;
  left: 6px !important;
  top: 4px !important;
  width: 7px !important;
  height: 4px !important;
  border-left: 2px solid #fff !important;
  border-bottom: 2px solid #fff !important;
  transform: rotate(-45deg) scale(0) !important;
  transform-origin: center !important;
  transition: transform .16s ease !important;
  background: transparent !important;
  inset: auto !important;
}

.policy input:checked + .policy__control{
  background: var(--vi-primary) !important;
  border-color: var(--vi-primary) !important;
}

.policy input:checked + .policy__control::before{
  transform: rotate(-45deg) scale(1) !important;
}

.policy__text{
  display: block !important;
  line-height: 1.45 !important;
}

.policy__meta{
  display: inline !important;
}


/* =========================================================
   ROUND 9 — widths / brands 4 columns / checkbox polish
   ========================================================= */
:root{
  --vi-section-width: min(1368px, calc(100vw - 32px));
}

.site-header__topbar .container,
.site-header__nav .container,
.hero-shell,
.hero-shell--wide,
#solutions > .container,
#equipment > .container,
#brands > .container,
.brands-container,
#service-centers > .container,
#cta > .container,
.cta-container,
.cta-shell{
  width: 100% !important;
  max-width: var(--vi-section-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#cta > .container,
.cta-container,
.cta-shell{
  padding-left: var(--bs-gutter-x, .75rem) !important;
  padding-right: var(--bs-gutter-x, .75rem) !important;
}

#equipment .equipment-subtitle{
  max-width: none !important;
}
@media (min-width: 992px){
  #equipment .equipment-subtitle{
    white-space: nowrap;
    font-size: 16px;
  }
}

/* four compact brand columns: 2 for cyrillic + 2 for latin */
.brands-directory--columns{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: start !important;
}
.brands-directory__column{
  column-count: 2;
  column-gap: 24px;
  min-width: 0;
}
.brands-directory__column .brand-group{
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  display: grid;
  grid-template-columns: 52px minmax(0,1fr);
  gap: 10px 14px;
  align-items: start;
  margin: 0 0 14px;
}
.brands-directory__column .brand-group + .brand-group{
  margin-top: 0;
}
.brands-directory__column .brand-group__letter{
  color: #171A21 !important;
  font-size: 34px;
  line-height: 1;
  font-weight: var(--vi-fw-demibold, 600);
}
.brands-directory__column .brand-group__items,
.brands-directory__column .brand-group__items--inline{
  display: block;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.52;
}

/* CTA checkbox final polish */
#cta .field-group--policy{
  margin-top: 2px !important;
}
#cta .policy{
  display: grid !important;
  grid-template-columns: 20px minmax(0,1fr) !important;
  gap: 12px !important;
  align-items: start !important;
}
#cta .policy input{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
#cta .policy__control{
  position: relative !important;
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  margin: 1px 0 0 !important;
  border: 1px solid #C8CDD2 !important;
  border-radius: 6px !important;
  background: #F4F5F6 !important;
  box-shadow: none !important;
  vertical-align: top !important;
}
#cta .policy__control::before{
  content: '' !important;
  position: absolute !important;
  left: 4px !important;
  top: 5px !important;
  width: 10px !important;
  height: 6px !important;
  border-left: 2px solid #fff !important;
  border-bottom: 2px solid #fff !important;
  border-radius: 0 !important;
  background: transparent !important;
  transform: rotate(-45deg) scale(0) !important;
  transform-origin: center !important;
  transition: transform .16s ease !important;
  inset: auto !important;
  box-sizing: border-box !important;
}
#cta .policy input:checked + .policy__control{
  background: var(--vi-primary) !important;
  border-color: var(--vi-primary) !important;
}
#cta .policy input:checked + .policy__control::before{
  transform: rotate(-45deg) scale(1) !important;
}
#cta .policy__text{
  display: block !important;
  min-width: 0 !important;
  line-height: 1.45 !important;
}
#cta .policy__meta{
  display: inline !important;
}

@media (max-width: 1199.98px){
  .brands-directory__column{
    column-count: 2;
    column-gap: 20px;
  }
  .brands-directory__column .brand-group{
    grid-template-columns: 46px minmax(0,1fr);
    gap: 8px 12px;
  }
  .brands-directory__column .brand-group__letter{
    font-size: 30px;
  }
}
@media (max-width: 991.98px){
  :root{
    --vi-section-width: min(1368px, calc(100vw - 24px));
  }
  #equipment .equipment-subtitle{
    white-space: normal;
  }
  .brands-directory--columns{
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .brands-directory__column{
    column-count: 2;
  }
}
@media (max-width: 767.98px){
  :root{
    --vi-section-width: calc(100vw - 20px);
  }
  .brands-directory__column{
    column-count: 1;
  }
  .brands-directory__column .brand-group{
    grid-template-columns: 40px minmax(0,1fr);
  }
}


/* =========================================================
   ROUND 10 — unified section width by hero
   Header / main sections / CTA / brands / footer
   ========================================================= */
:root{
  --vi-section-width: min(1368px, calc(100vw - 32px));
  --vi-section-padding-x: var(--bs-gutter-x, .75rem);
}

.site-header__topbar .container,
.site-header__nav .container,
.hero-shell,
.hero-shell--wide,
#solutions > .container,
#equipment > .container,
#brands > .container,
.brands-container,
#service-centers > .container,
#cta > .container,
.cta-container,
.site-footer > .container{
  width: 100% !important;
  max-width: var(--vi-section-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--vi-section-padding-x) !important;
  padding-right: var(--vi-section-padding-x) !important;
  box-sizing: border-box !important;
}

#brands .brands-showcase,
#brands .brands-showcase__media,
#brands .brands-image-wrap,
#brands .brands-showcase__panel,
#brands .brands-panel,
#cta .cta-shell,
#cta .cta-glass-inner{
  width: 100% !important;
  max-width: none !important;
}

#brands .brands-showcase,
#cta .cta-shell{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#cta .cta-glass-inner{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.site-footer > .container{
  position: relative;
}

@media (max-width: 991.98px){
  :root{
    --vi-section-width: min(1368px, calc(100vw - 24px));
  }
}

@media (max-width: 767.98px){
  :root{
    --vi-section-width: calc(100vw - 20px);
  }
}


/* =========================================================
   ROUND 11 — CTA width uses exact hero wrapper
   ========================================================= */
#cta > .container.hero-shell.hero-shell--wide.cta-container{
  width: 100% !important;
  max-width: var(--vi-section-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--vi-section-padding-x) !important;
  padding-right: var(--vi-section-padding-x) !important;
  box-sizing: border-box !important;
}

#cta .cta-shell{
  display: contents !important;
}

#cta .cta-glass-inner{
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}


/* =========================================================
   ROUND 11 — brands / badges / CTA checkbox / modal helpers
   ========================================================= */

/* Hero + CTA: remove badges without affecting layout */
.hero-badge,
.cta-nameplate{
  display:none !important;
}

/* Brands directory: 3 compact columns on desktop, 2 on tablet, 1 on mobile */
#brands .brands-directory--columns{
  display:block !important;
  column-count:3;
  column-gap:24px;
}

#brands .brands-directory__column{
  display:contents !important;
}

#brands .brands-directory--columns .brand-group{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) !important;
  gap:8px 12px !important;
  align-items:start !important;
  margin:0 0 14px !important;
}

#brands .brands-directory--columns .brand-group__letter{
  font-size:32px !important;
  line-height:1 !important;
}

#brands .brands-directory--columns .brand-group__items,
#brands .brands-directory--columns .brand-group__items--inline{
  display:block !important;
  min-width:0;
  white-space:normal !important;
  overflow-wrap:break-word;
  word-break:normal;
  line-height:1.52 !important;
}

@media (max-width: 1199.98px){
  #brands .brands-directory--columns{
    column-count:2;
    column-gap:20px;
  }
}

@media (max-width: 767.98px){
  #brands .brands-directory--columns{
    column-count:1;
  }
}

/* CTA visual grows slightly after removing the nameplate */
#cta .cta-info{
  gap:12px !important;
}

#cta .cta-info__content{
  max-width:36rem !important;
}

#cta .cta-visual{
  min-height:280px !important;
  margin-top:0 !important;
  align-items:flex-end !important;
}

#cta .cta-visual__img,
#cta .cta-visual img{
  width:min(100%, 540px) !important;
  max-width:540px !important;
  max-height:390px !important;
  object-fit:contain !important;
  object-position:center bottom !important;
}

@media (max-width: 991.98px){
  #cta .cta-visual{
    min-height:220px !important;
    align-items:center !important;
  }

  #cta .cta-visual__img,
  #cta .cta-visual img{
    width:min(100%, 420px) !important;
    max-width:420px !important;
    max-height:300px !important;
  }
}

/* CTA checkbox: centered tick, stable button below */
#cta .field-group--policy{
  margin-top:4px !important;
}

#cta .policy{
  position:relative;
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) !important;
  gap:12px !important;
  align-items:start !important;
  margin:0 !important;
}

#cta .policy input{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}

#cta .policy__control{
  position:relative !important;
  display:block !important;
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  min-height:22px !important;
  margin:0 !important;
  border:1px solid #C8CDD2 !important;
  border-radius:7px !important;
  background:#F4F5F6 !important;
  box-shadow:none !important;
}

#cta .policy__control::before{
  content:'' !important;
  position:absolute !important;
  left:5px !important;
  top:6px !important;
  width:10px !important;
  height:6px !important;
  border-left:2px solid #fff !important;
  border-bottom:2px solid #fff !important;
  background:transparent !important;
  transform:rotate(-45deg) scale(0) !important;
  transform-origin:center !important;
  transition:transform .16s ease !important;
  box-sizing:border-box !important;
}

#cta .policy input:checked + .policy__control{
  background:var(--vi-primary) !important;
  border-color:var(--vi-primary) !important;
}

#cta .policy input:checked + .policy__control::before{
  transform:rotate(-45deg) scale(1) !important;
}

#cta .policy:focus-within .policy__control{
  box-shadow:0 0 0 4px rgba(214,0,0,.08) !important;
}

#cta .policy__text{
  display:block !important;
  min-width:0 !important;
  line-height:1.45 !important;
}

#cta .cta-form-actions{
  margin-top:4px !important;
  align-self:stretch !important;
}

#cta .cta-form-actions .btn{
  width:100% !important;
  min-height:54px !important;
  transform:none !important;
}

/* Modals: placeholders and field helpers like CTA / DS */
.modal .form-control,
.modal .form-select{
  padding:14px 16px !important;
}

.modal .form-control::placeholder,
.modal textarea::placeholder{
  color:#9AA0A6;
  opacity:1;
}

.modal .vi-field-note{
  display:block;
  margin-top:0;
  font-size:12px;
  line-height:16px;
  color:var(--vi-text-secondary);
}

.modal .auth-note{
  display:none !important;
}

/* =========================================================
   FINAL HOTFIX — CTA checkbox / ViCheckbox parity
   Причина: в style.css накопились несколько конфликтующих раундов для .policy,
   из-за чего маркер и галка рисуются разными способами. Этот блок должен быть
   САМЫМ ПОСЛЕДНИМ в файле и жёстко замыкает поведение CTA checkbox.
   ========================================================= */
#cta .field-group--policy{
  display:grid !important;
  gap:8px !important;
  margin-top:4px !important;
  min-width:0 !important;
}

#cta .field-group--policy .policy{
  position:relative !important;
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr) !important;
  column-gap:12px !important;
  row-gap:0 !important;
  align-items:start !important;
  width:100% !important;
  margin:0 !important;
  cursor:pointer !important;
  user-select:none !important;
}

#cta .field-group--policy .policy input{
  position:absolute !important;
  inline-size:1px !important;
  block-size:1px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  pointer-events:none !important;
}

#cta .field-group--policy .policy__control{
  position:relative !important;
  display:block !important;
  inline-size:20px !important;
  block-size:20px !important;
  min-inline-size:20px !important;
  min-block-size:20px !important;
  margin:2px 0 0 !important;
  border:1px solid #C8CDD2 !important;
  border-radius:6px !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}

#cta .field-group--policy .policy__control::before{
  content:'' !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:9px !important;
  height:5px !important;
  border-left:2px solid #FFFFFF !important;
  border-bottom:2px solid #FFFFFF !important;
  box-sizing:border-box !important;
  background:transparent !important;
  transform:translate(-50%, -58%) rotate(-45deg) scale(0) !important;
  transform-origin:center !important;
  transition:transform .16s ease !important;
}

#cta .field-group--policy .policy input:checked + .policy__control{
  background:var(--vi-primary, #D60000) !important;
  border-color:var(--vi-primary, #D60000) !important;
}

#cta .field-group--policy .policy input:checked + .policy__control::before{
  transform:translate(-50%, -58%) rotate(-45deg) scale(1) !important;
}

#cta .field-group--policy .policy input:focus-visible + .policy__control,
#cta .field-group--policy .policy:focus-within .policy__control{
  box-shadow:none !important;
  border-color:var(--vi-primary, #D60000) !important;
}

#cta .field-group--policy .policy__text{
  display:block !important;
  min-width:0 !important;
  padding-top:0 !important;
}

#cta .field-group--policy .policy__meta{
  display:block !important;
  margin:0 !important;
  font-size:13px !important;
  line-height:20px !important;
  color:var(--vi-text, #1C2126) !important;
}

#cta .field-group--policy .policy__required{
  display:inline !important;
}

#cta .cta-form-actions{
  margin-top:4px !important;
  align-self:stretch !important;
}

#cta .cta-form-actions .btn{
  width:100% !important;
  min-height:54px !important;
  transform:none !important;
  top:auto !important;
}

/* =========================================================
   CTA policy validation error — stable layout
   ========================================================= */
#cta .field-group--policy{
  display:grid !important;
  gap:6px !important;
}

#cta .field-group--policy .policy{
  margin:0 !important;
}

#cta .field-group--policy .policy input,
#cta .field-group--policy .policy:focus,
#cta .field-group--policy .policy:active,
#cta .field-group--policy .policy__control,
#cta .field-group--policy .policy__text,
#cta .cta-form-actions,
#cta .cta-form-actions .btn{
  transform:none !important;
}

#cta .field-group--policy .policy input:focus-visible + .policy__control,
#cta .field-group--policy .policy:focus-within .policy__control,
#cta .field-group--policy .policy:active .policy__control,
#cta .field-group--policy .policy input:active + .policy__control{
  box-shadow:none !important;
}

#cta .field-group--policy .policy__error{
  display:block !important;
  margin:0 0 0 32px !important;
  min-height:32px !important;
  font-size:12px !important;
  line-height:16px !important;
  color:#E03D3D !important;
  visibility:hidden;
  opacity:0;
  transition:opacity .16s ease;
}

#cta .field-group--policy.is-invalid .policy__error{
  visibility:visible;
  opacity:1;
}

#cta .field-group--policy.is-invalid .policy__control,
#cta .field-group--policy .policy input[aria-invalid="true"] + .policy__control{
  border-color:#E03D3D !important;
  background:#FFF5F5 !important;
}

#cta .field-group--policy.is-invalid .policy input:checked + .policy__control,
#cta .field-group--policy .policy input[aria-invalid="true"]:checked + .policy__control{
  background:var(--vi-primary, #D60000) !important;
  border-color:#E03D3D !important;
}

@media (max-width: 767.98px){
  #cta .field-group--policy .policy__error{
    min-height:48px !important;
  }
}

/* Admin/chat refinements 2026-04-17 */
.admin-page .vi-select-shell{display:block;width:100%;}
.admin-page .vi-select-shell .form-select,
.admin-page .vi-select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:none !important;
  padding-right:46px !important;
}
.admin-page .btn,
.admin-page .form-control,
.admin-page .form-select{
  border-radius:16px;
}
.admin-info-card{
  padding:14px 16px;
  border:1px solid var(--vi-stroke);
  border-radius:16px;
  background:linear-gradient(180deg,#fff 0%,#f7f8f9 100%);
}
.chat-attachments{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
.chat-attachment-thumb{
  width:120px;
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--vi-text);
  text-decoration:none;
}
.chat-attachment-thumb img{
  width:120px;
  height:90px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--vi-stroke);
  background:#fff;
}
.chat-attachment-thumb span{
  font-size:12px;
  line-height:1.3;
  color:var(--vi-text-secondary);
  word-break:break-word;
}
.chat-attachment-link{
  min-width:220px;
  max-width:100%;
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--vi-stroke);
  background:#fff;
  color:var(--vi-text);
  text-decoration:none;
}
.chat-attachment-link:hover,
.chat-attachment-thumb:hover{
  opacity:.92;
}
.admin-click-row{cursor:pointer;}
.admin-click-row:focus-visible > *{
  outline:2px solid rgba(214,0,0,.24);
  outline-offset:-2px;
}

/* UI polish — 2026-04-17 cabinet/admin follow-up */
.requests-side-table{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.requests-side-table__table{
  border:1px solid var(--vi-stroke);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
.requests-side-table__table .table{
  margin-bottom:0;
}
.requests-compact-table thead th:nth-child(1){ width:40%; }
.requests-compact-table thead th:nth-child(2){ width:32%; }
.requests-compact-table thead th:nth-child(3){ width:28%; }
.requests-compact-table td,
.requests-compact-table th{
  white-space:normal;
}
.requests-compact-table td:nth-child(1),
.requests-compact-table th:nth-child(1){
  word-break:break-word;
}
.requests-compact-table .badge-soft,
.requests-compact-table .badge-soft--progress,
.requests-compact-table .badge-soft--resolved{
  display:inline-flex;
  justify-content:center;
  min-width:104px;
}

.chat-composer{
  display:grid;
  gap:10px;
}
.chat-composer__surface{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--vi-stroke);
  border-radius:20px;
  background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%);
}
.chat-composer__textarea{
  min-height:112px;
  resize:vertical;
}
.chat-composer__toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.chat-composer__left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:1 1 320px;
}
.chat-composer__hint{
  font-size:12px;
  line-height:1.4;
  color:var(--vi-text-secondary);
}
.chat-composer__actions{
  display:flex;
  justify-content:flex-end;
  flex:0 0 auto;
}
.chat-attach-trigger{
  min-width:42px;
  min-height:42px;
  padding:0 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
}
.chat-attach-trigger[aria-disabled="true"]{
  pointer-events:none;
  opacity:.55;
}

.admin-page .admin-filter-form .col-6.d-grid .btn,
.admin-page .admin-filter-form .col-12.d-grid .btn,
.admin-page .admin-table .btn,
.admin-page .panel .btn{
  min-height:40px;
  white-space:normal;
  line-height:1.2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.admin-page .admin-table .btn-sm{
  min-height:36px;
  padding:8px 12px;
}
.admin-page .admin-table td form{
  margin:0;
}
.admin-page .admin-table .vi-select-shell,
.admin-page .admin-table .form-select{
  min-width:0;
}
.admin-page .admin-table td,
.admin-page .admin-table th{
  word-break:break-word;
}
.admin-page .admin-table .badge{
  white-space:normal;
}
.admin-page .admin-request-details .small{
  line-height:1.45;
}
.admin-page .admin-filter-form{
  align-items:stretch;
}
.admin-page .admin-filter-form .form-control,
.admin-page .admin-filter-form .form-select,
.admin-page .admin-filter-form .btn{
  height:100%;
}
.admin-page .admin-table .d-flex.flex-column.gap-2{
  align-items:stretch;
}

@media (max-width: 767.98px){
  .chat-composer__toolbar{
    align-items:stretch;
  }
  .chat-composer__left,
  .chat-composer__actions{
    width:100%;
  }
  .chat-composer__actions .btn{
    width:100%;
  }
  .requests-compact-table thead th:nth-child(1),
  .requests-compact-table thead th:nth-child(2),
  .requests-compact-table thead th:nth-child(3){
    width:auto;
  }
}
/* ===== 2026-04-18 cabinet mobile + manager/admin polish ===== */
.cab-sidebar__mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:4px 4px 0;}
.cab-mobile-nav-toggle{flex:0 0 auto;min-width:44px;height:44px;padding:0 14px;border-radius:14px;}
@media (max-width: 991.98px){
  .cab-layout{display:block!important;}
  .cab-sidebar{width:min(320px, 86vw);max-width:320px;background:#f4f5f6;padding:16px;border-right:1px solid var(--vi-stroke)!important;}
  .cab-sidebar.offcanvas-lg{box-shadow:0 18px 36px rgba(20,24,28,.18);}
  .cab-main{margin-top:14px;padding-top:0;}
  .cab-topbar{padding:18px 18px 16px;margin-bottom:16px;}
  .cab-topbar h1{font-size:22px;line-height:1.12;}
  .cab-page-shell{padding:14px;}
  .cab-main .panel,.table-clean,.request-detail-shell,.settings-card{padding:18px;}
  .cab-request-stack,.request-detail-panel,.request-chat-panel{margin-top:0;}
}
.request-detail-panel .collapse.d-lg-block{display:none;}
@media (min-width: 992px){
  .request-detail-panel .collapse.d-lg-block{display:block!important;height:auto!important;visibility:visible!important;}
}
.admin-role-badge{font-weight:600;padding:.65rem .8rem;}
.admin-table-btn{white-space:normal;line-height:1.2;padding-top:.5rem;padding-bottom:.5rem;min-height:40px;}
.admin-status-form .btn{min-width:0;}
.admin-status-form .vi-select-shell,.admin-status-form .btn{width:100%;}
.admin-panel-block .btn{border-radius:14px;}
.admin-panel-block .btn-sm{min-height:38px;}
.admin-panel-block .table td,.admin-panel-block .table th{vertical-align:middle;}
.admin-manager-shell{max-width:880px;}
.admin-card-divider{height:1px;background:var(--vi-stroke);margin:4px 0;}
.admin-topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.admin-check-card{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--vi-stroke);border-radius:16px;background:#fff;}
.admin-check-card input{margin-top:2px;flex:0 0 auto;}
.admin-check-card span{display:grid;gap:4px;font-size:14px;line-height:1.4;}
.admin-check-card small{color:var(--vi-text-secondary);font-size:12px;line-height:1.35;}
.admin-assignee-list{display:grid;gap:10px;max-height:540px;overflow:auto;padding-right:4px;}
.admin-check-card--user strong{font-size:14px;line-height:1.3;}
.admin-page .admin-filter-form .btn,.admin-page .admin-filter-form .form-select,.admin-page .admin-filter-form .form-control{height:44px;}
.admin-page .admin-filter-form .btn{display:flex;align-items:center;justify-content:center;}

/* =========================================================
   ROUND 13 — header / brands / contacts / floating forms
   ========================================================= */
:root{
  --ds-btn-radius: 14px;
  --ds-btn-height: 40px;
  --ds-btn-bg-secondary: #F0F1F3;
  --ds-btn-bg-secondary-hover: #E6E8EB;
  --ds-btn-text: #1C2126;
  --ds-input-radius: 20px;
  --ds-input-border: #D5D9DE;
  --ds-input-bg: #FFFFFF;
  --ds-input-placeholder: #8A9199;
  --ds-floating-top: 11px;
}

.btn,
.site-btn,
.header-login-btn,
.header-login-btn--nav,
.service-center-card__btn,
.cabinet-page .btn,
.admin-page .btn,
.settings-page .btn,
.modal .btn{
  border-radius: var(--ds-btn-radius) !important;
  min-height: var(--ds-btn-height);
  padding-inline: 16px;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.btn-primary,
.site-btn--primary{
  background: var(--vi-primary, #D60000) !important;
  color: #fff !important;
}

.btn-primary:hover,
.site-btn--primary:hover,
.btn-primary:focus-visible,
.site-btn--primary:focus-visible{
  background: var(--vi-primary-hover, #B80000) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(214,0,0,.18) !important;
}

.btn-outline-secondary,
.site-btn--secondary,
.header-login-btn,
.header-login-btn--nav,
.btn-corp-gray,
.service-center-card__btn{
  background: var(--ds-btn-bg-secondary) !important;
  color: var(--ds-btn-text) !important;
  border: 0 !important;
}

.btn-outline-secondary:hover,
.site-btn--secondary:hover,
.header-login-btn:hover,
.header-login-btn--nav:hover,
.btn-corp-gray:hover,
.service-center-card__btn:hover,
.btn-outline-secondary:focus-visible,
.site-btn--secondary:focus-visible,
.header-login-btn:focus-visible,
.header-login-btn--nav:focus-visible,
.btn-corp-gray:focus-visible,
.service-center-card__btn:focus-visible{
  background: var(--ds-btn-bg-secondary-hover) !important;
  color: var(--ds-btn-text) !important;
  box-shadow: 0 8px 18px rgba(28,33,38,.08) !important;
}

.btn:active,
.site-btn:active,
.service-center-card__btn:active{
  transform: translateY(1px);
}

.site-header .site-header__cta-link,
.site-header .header-login-btn--nav{
  min-height: 40px !important;
  height: 40px !important;
  padding-inline: 16px !important;
  border-radius: 14px !important;
}

.site-header .site-header__cta-item{
  display:flex !important;
  align-items:center !important;
}

.site-header .site-header__cta-item > a,
.site-header .site-header__cta-item > button{
  align-self:center !important;
}

.site-header .header-login-btn--nav{
  font-weight: 500 !important;
}

.site-header .site-btn--auth .vi-icon,
.site-header .header-login-btn--nav .vi-icon,
.nav-mobile-top .site-btn--auth .vi-icon{
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px;
  color: currentColor !important;
}

.nav-mobile-top .header-login-btn,
.nav-mobile-top .header-login-btn--nav{
  min-height: 40px !important;
  height: 40px !important;
  padding-inline: 16px !important;
}

.nav-mobile-ctas .header-mobile-cta{
  min-height: 40px !important;
  height: 40px !important;
  padding-inline: 14px !important;
}

#brands .brands-directory--triple{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 24px;
}

#brands .brands-directory--triple .brands-directory__column{
  display: grid;
  gap: 14px;
  align-content: start;
  min-width: 0;
}

#brands .brand-group--stacked{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  align-items: start;
}

#brands .brand-group--stacked .brand-group__letter{
  font-size: 26px !important;
  line-height: 1 !important;
  color: #171A21 !important;
  margin: 0 !important;
}

#brands .brand-group__items--stacked{
  display: flex !important;
  flex-wrap: wrap;
  gap: 4px 10px;
  line-height: 1.4 !important;
  color: var(--vi-text);
}

#brands .brand-group__item{
  display: inline-flex !important;
  white-space: nowrap;
}

.service-center-card__actions{
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px;
}

.service-center-card__btn{
  min-height: 38px;
  padding-inline: 14px;
}

.service-center-card__btn .vi-icon{
  color: currentColor !important;
}

.field-group--float{
  position: relative;
}

.floating-field{
  position: relative;
}

.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input,
.cabinet-page .form-control,
.cabinet-page .form-select,
.cabinet-page textarea,
.admin-page .form-control,
.admin-page .form-select,
.admin-page textarea,
.settings-page .form-control,
.settings-page .form-select,
.settings-page textarea,
.modal .form-control,
.modal .form-select,
.modal textarea{
  min-height: 52px;
  border-radius: var(--ds-input-radius) !important;
  border: 1px solid var(--ds-input-border) !important;
  background: var(--ds-input-bg) !important;
  color: var(--vi-text) !important;
  box-shadow: none !important;
}

.floating-field textarea{
  min-height: 132px;
  resize: vertical;
}

.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input{
  padding: 22px 18px 10px !important;
}

.floating-field--password .form-control,
.floating-field--password input{
  padding-right: 54px !important;
}

.floating-field--select .form-select,
.floating-field--select select{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none !important;
  padding-right: 46px !important;
}

.floating-field--select::after{
  content: '';
  position: absolute;
  right: 18px;
  top: 50%;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #8C939B;
  transform: translateY(-10%);
  pointer-events: none;
}

.floating-label{
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 !important;
  padding: 0 4px;
  background: transparent;
  color: var(--ds-input-placeholder) !important;
  font-size: 16px !important;
  line-height: 1.1 !important;
  font-weight: 450 !important;
  pointer-events: none;
  transition: top .18s ease, transform .18s ease, font-size .18s ease, color .18s ease;
}

.floating-field.is-filled .floating-label,
.floating-field.is-focused .floating-label,
.floating-field input:not(:placeholder-shown) + .floating-label,
.floating-field textarea:not(:placeholder-shown) + .floating-label,
.floating-field select:not([value=""]) + .floating-label,
.floating-field .form-select:valid + .floating-label,
.floating-field select:valid + .floating-label{
  top: var(--ds-floating-top);
  transform: translateY(0);
  font-size: 12px !important;
  color: #8A9199 !important;
}

.floating-field.is-focused .form-control,
.floating-field.is-focused .form-select,
.floating-field.is-focused textarea,
.floating-field.is-focused input,
.floating-field .form-control:focus,
.floating-field .form-select:focus,
.floating-field textarea:focus,
.floating-field input:focus,
.cabinet-page .form-control:focus,
.cabinet-page .form-select:focus,
.admin-page .form-control:focus,
.admin-page .form-select:focus,
.settings-page .form-control:focus,
.settings-page .form-select:focus,
.modal .form-control:focus,
.modal .form-select:focus{
  border-color: rgba(214,0,0,.32) !important;
  box-shadow: 0 0 0 4px rgba(214,0,0,.08) !important;
}

.password-toggle{
  position: absolute;
  top: 50%;
  right: 14px;
  width: 28px;
  height: 28px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #9AA1A8;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.password-toggle:hover,
.password-toggle:focus-visible{
  color: var(--vi-text);
  outline: none;
}

.password-toggle .vi-icon{
  width: 22px;
  height: 22px;
}

.auth-form .auth-actions{
  display: grid;
  gap: 12px;
  margin-top: 8px;
}

.auth-link,
.auth-link:visited,
.vi-link-pseudo.auth-link{
  color: #1677FF !important;
  text-decoration: none !important;
  font-size: 14px;
}

.auth-link:hover,
.auth-link:focus-visible{
  color: #0D63D8 !important;
  text-decoration: none !important;
}

.modal-title{
  font-size: 28px !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  font-weight: 600 !important;
}

.modal .btn-close{
  box-shadow: none !important;
}

.modal .nav-tabs{
  margin-bottom: 6px;
}

.modal .nav-tabs .nav-link{
  padding-bottom: 10px;
}

.field-group--float .vi-field-note{
  margin-top: 8px;
}

@media (max-width: 1199.98px){
  #brands .brands-directory--triple{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px){
  #brands .brands-directory--triple{
    grid-template-columns: 1fr;
  }

  .service-center-card__actions{
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .service-center-card__btn{
    width: 100%;
  }

  .modal-title{
    font-size: 24px !important;
  }
}


/* =========================================================
   ROUND 15 — header / brands / CTA / mobile behavior
   ========================================================= */
:root{
  --round15-header-height: 40px;
  --round15-header-radius: 14px;
  --round15-header-bg: #F1F2F4;
  --round15-header-bg-hover: #E7E9EC;
  --round15-field-radius: 20px;
  --round15-field-border: #D5D9DE;
  --round15-field-placeholder: #8A9199;
}

/* Header CTA buttons */
.site-header .site-header__cta-link.site-btn,
.site-header .header-login-btn,
.site-header .header-login-btn--nav{
  min-height: var(--round15-header-height) !important;
  height: var(--round15-header-height) !important;
  padding-inline: 16px !important;
  border-radius: var(--round15-header-radius) !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: var(--vi-fw-medium, 500) !important;
  border: 0 !important;
  box-shadow: none !important;
}
.site-header .site-btn--secondary,
.site-header .header-login-btn,
.site-header .header-login-btn--nav{
  background: var(--round15-header-bg) !important;
}
.site-header .site-btn--secondary:hover,
.site-header .header-login-btn:hover,
.site-header .header-login-btn--nav:hover,
.site-header .site-btn--secondary:focus-visible,
.site-header .header-login-btn:focus-visible,
.site-header .header-login-btn--nav:focus-visible{
  background: var(--round15-header-bg-hover) !important;
  box-shadow: none !important;
}
.site-header .site-header__cta-item{align-items:center !important;}
.site-header .site-header__cta-item > *{align-self:center !important;}
.site-header .site-header__nav-list > .site-header__cta-item,
.site-header .site-header__nav-list > .nav-item{min-height:56px;display:flex;align-items:center;}

/* Logged-in profile link should be plain clickable text */
.header-profile-link,
.site-header .header-profile-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height: var(--round15-header-height);
  color: var(--vi-text);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--vi-fw-medium, 500);
  text-decoration: none;
  white-space: nowrap;
}
.header-profile-link .vi-icon,
.site-header .header-profile-link .vi-icon{
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px;
  color: currentColor !important;
}
.header-profile-link:hover,
.header-profile-link:focus-visible{
  color: var(--vi-primary);
  text-decoration: none;
}
.site-header .header-profile-link:hover .vi-icon,
.site-header .header-profile-link:focus-visible .vi-icon{color: currentColor !important;}

/* Brands directory */
#brands .brands-directory--triple{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px 28px;
  align-items:start;
}
#brands .brands-directory--triple .brand-group{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:4px !important;
  min-width:0;
  align-content:start;
  margin:0 !important;
}
#brands .brands-directory--triple .brand-group__letter{
  font-size:30px !important;
  line-height:1 !important;
  margin:0 !important;
  color:#171A21 !important;
}
#brands .brands-directory--triple .brand-group__items,
#brands .brands-directory--triple .brand-group__items--stacked{
  display:flex !important;
  flex-wrap:wrap;
  gap:4px 10px;
  line-height:1.42 !important;
}
#brands .brands-directory--triple .brand-group__item{
  display:inline-flex !important;
  white-space:nowrap;
}

/* Contacts buttons */
#service-centers .service-center-card__actions{
  display:flex !important;
  flex-wrap:wrap;
  gap:10px;
}
#service-centers .service-center-card__btn{
  border:0 !important;
  background:#F1F2F4 !important;
  color:var(--vi-text) !important;
  box-shadow:none !important;
}
#service-centers .service-center-card__btn:hover,
#service-centers .service-center-card__btn:focus-visible{
  background:#E7E9EC !important;
  color:var(--vi-text) !important;
  box-shadow:0 8px 18px rgba(28,33,38,.08) !important;
}
#service-centers .service-center-card__btn:active{
  background:#E3E5E8 !important;
}

/* CTA + modal floating fields */
.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input,
.cabinet-page .form-control,
.cabinet-page .form-select,
.cabinet-page textarea,
.admin-page .form-control,
.admin-page .form-select,
.admin-page textarea,
.settings-page .form-control,
.settings-page .form-select,
.settings-page textarea,
.modal .form-control,
.modal .form-select,
.modal textarea{
  border-radius: var(--round15-field-radius) !important;
  border-color: var(--round15-field-border) !important;
}
.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input{
  padding: 22px 18px 10px !important;
}
.floating-field--textarea textarea,
.floating-field--textarea .form-control{
  min-height: 136px;
  padding-top: 34px !important;
}
.floating-field--textarea .floating-label{
  top: 18px;
  transform: none;
}
.floating-field--textarea.is-filled .floating-label,
.floating-field--textarea.is-focused .floating-label,
.floating-field--textarea textarea:not(:placeholder-shown) + .floating-label{
  top: 11px;
  transform: translateY(0);
}
/* remove field headers when using floating fields */
#cta .field-group--float > .form-label,
.modal .field-group--float > .form-label{display:none !important;}

/* Static picker for CTA topic */
.static-picker{position:relative;}
.static-picker .js-static-picker-input{
  cursor:pointer;
  caret-color:transparent;
}
.static-picker__chevron{
  position:absolute;
  right:18px;
  top:50%;
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid #8C939B;
  transform:translateY(-10%);
  pointer-events:none;
}
.static-picker.is-open .static-picker__chevron{transform:translateY(-10%) rotate(180deg);}
.static-picker .brand-dropdown{
  inset: calc(100% + 8px) 0 auto 0;
  border-radius: 16px;
  border:1px solid var(--vi-stroke);
  box-shadow:0 18px 32px rgba(28,33,38,.12);
  padding:8px;
  z-index:70;
}
.static-picker .brand-dropdown__item{
  min-height:44px;
  border-radius:12px;
  font-size:14px;
  line-height:20px;
}
/* Topic field text should look like regular input text until selected */
.static-picker .js-static-picker-input,
.static-picker .js-static-picker-input:focus{
  font-size:16px;
  line-height:1.2;
}

/* Global buttons/forms on cabinet/admin/settings */
.cabinet-page .btn,
.admin-page .btn,
.settings-page .btn,
.admin-panel-block .btn{
  border-radius:14px !important;
  min-height:40px;
  border:0 !important;
}
.cabinet-page .form-control,
.cabinet-page .form-select,
.admin-page .form-control,
.admin-page .form-select,
.settings-page .form-control,
.settings-page .form-select{
  min-height:48px;
  border-radius:18px !important;
  border:1px solid var(--round15-field-border) !important;
  box-shadow:none !important;
}

/* Mobile hero */
@media (max-width: 991.98px){
  .hero-row{--bs-gutter-y:16px;}
  .hero-copy,
  .hero-copy .hero-lead,
  .hero-copy .lead{
    max-width:none !important;
    width:100%;
  }
  .hero-copy .hero-lead,
  .hero-copy .lead{
    text-wrap:pretty;
  }
  .hero-kpis{
    display:grid !important;
    grid-template-columns:1fr;
    gap:12px;
    width:100%;
    max-width:none !important;
  }
  .hero-kpis__item,
  .hero-kpis__item.kpi,
  .hero-kpis__item .kpi{
    width:100% !important;
    max-width:none !important;
  }
}

/* Mobile header hide on scroll */
@media (max-width: 991.98px){
  .site-header{
    transition: transform .24s ease, box-shadow .24s ease;
    will-change: transform;
  }
  .site-header.site-header--mobile-hidden{
    transform: translateY(calc(-100% - 8px));
  }
  /* menu contains only nav links; keep cta row outside */
  #navMain .site-header__cta-item,
  #navMain .header-login-btn,
  #navMain .header-login-btn--nav,
  #navMain .site-btn--primary,
  #navMain .site-btn--secondary{
    display:none !important;
  }
  #brands .brands-directory--triple{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:16px 18px;
  }
}


/* =========================================================
   ROUND 16 — mobile hero / antibot / cabinet mobile drawer
   ========================================================= */
[data-honeypot]{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.cab-mobile-nav-toggle{display:none !important;}
@media (max-width: 991.98px){
  .cab-mobile-nav-toggle{display:inline-flex !important;align-items:center;justify-content:center;}
}

@media (max-width: 991.98px){
  .hero > .container.hero-shell.hero-shell--wide{
    max-width:none !important;
    width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin:0 !important;
  }
  .hero-surface{
    border:0 !important;
    box-shadow:none !important;
    border-radius:0 !important;
    padding:24px 16px 28px !important;
  }
  .hero-row{
    display:flex !important;
    flex-direction:column !important;
    --bs-gutter-x: 0 !important;
    gap:18px;
  }
  .hero-row > [class*="col-"]{
    width:100% !important;
    max-width:none !important;
    flex:0 0 auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .hero-copy,
  .hero-copy .hero-lead,
  .hero-copy .lead,
  .hero-kpis,
  .hero-kpis__item,
  .hero-kpis__item .kpi{
    width:100% !important;
    max-width:none !important;
  }
  .hero-kpis{grid-template-columns:1fr !important;}
  #brands .brands-image-wrap,
  #brands .brands-showcase__media,
  #brands .brands-image{display:none !important;}

  #navMain.navbar-collapse{
    padding:8px 14px 12px !important;
    border-top:1px solid rgba(0,0,0,.06);
    box-shadow:0 16px 34px rgba(0,0,0,.12);
  }
  #navMain .navbar-nav{gap:2px !important;}
  #navMain .nav-item{margin:0 !important;}
  #navMain .nav-link{padding:9px 10px !important;border-radius:10px !important;}
  #navMain .nav-link--contact{font-weight:600;}
  .site-header.site-header--mobile-hidden{transform:translateY(calc(-100% - 2px)) !important;}

  #brands .brands-directory--triple{grid-template-columns:repeat(2, minmax(0,1fr)) !important;}
}

@media (max-width: 991.98px){
  .cab-page-shell{padding:0 !important;}
  .cab-layout{display:block !important;}
  .cab-sidebar.offcanvas-lg{
    width:100vw !important;
    max-width:none !important;
    height:100dvh !important;
    padding:16px 16px 20px !important;
    background:#f4f5f6 !important;
    border-right:0 !important;
    border-radius:0 !important;
    box-shadow:0 22px 40px rgba(20,24,28,.18) !important;
  }
  .cab-sidebar__mobile-head{display:none !important;}
  .cab-brand{pointer-events:none;}
  .cab-main{margin-top:0 !important;padding:14px !important;}
  .cab-main--awaiting-nav > *:not(.cab-topbar){display:none !important;}
  .cab-main--awaiting-nav .cab-topbar{margin-bottom:0 !important;}
  .cab-topbar{border-radius:0 0 24px 24px !important;}
  body.cab-sidebar-open .offcanvas-backdrop.show{opacity:.32;backdrop-filter:blur(2px);}
}


/* =========================================================
   ROUND 17 — header mobile scroll / cabinet mobile / floating cleanup
   ========================================================= */
@media (min-width: 992px){
  .site-header__nav-list > .nav-item .nav-link--contact{display:none !important;}
}

@media (max-width: 991.98px){
  .site-header{will-change:transform;transition:none !important;}
  #navMain.navbar-collapse{padding:8px 12px 12px !important;box-shadow:0 14px 30px rgba(0,0,0,.10);}
  #navMain .navbar-nav{gap:1px !important;}
  #navMain .nav-link{padding:8px 10px !important;border-radius:10px !important;}
  #navMain .nav-link--contact{display:block !important;font-weight:600;}
  .hero > .container.hero-shell.hero-shell--wide,.hero-shell.hero-shell--wide{width:100vw !important;max-width:100vw !important;margin-left:calc(50% - 50vw) !important;margin-right:calc(50% - 50vw) !important;padding-left:0 !important;padding-right:0 !important;}
  .hero-surface{border-radius:0 !important;box-shadow:none !important;border:0 !important;padding:24px 16px 28px !important;}
  .hero-row{display:flex !important;flex-direction:column !important;gap:18px !important;}
  .hero-row > [class*="col-"]{width:100% !important;max-width:none !important;flex:0 0 auto !important;padding-left:0 !important;padding-right:0 !important;}
  .hero-media{order:2;width:100% !important;justify-content:center !important;}
  .hero-copy{order:1;max-width:none !important;width:100% !important;}
  .hero-copy .lead,.hero-copy .text-secondary,.hero-lead{max-width:none !important;width:100% !important;}
  .hero-kpis{display:grid !important;grid-template-columns:1fr !important;width:100% !important;max-width:none !important;gap:12px !important;}
  .hero-kpis__item,.hero-kpis__item .kpi{width:100% !important;max-width:none !important;}
  #brands .brands-image-wrap,#brands .brands-showcase__media,#brands .brands-image{display:none !important;}
}

.cab-mobile-nav-toggle{display:none !important;}
@media (max-width: 991.98px){
  .cab-mobile-nav-toggle{display:inline-flex !important;align-items:center;justify-content:center;}
  .cab-page-shell{padding:0 !important;}
  .cab-layout{display:block !important;}
  .cab-sidebar{position:fixed !important;inset:0 !important;z-index:1100 !important;width:100vw !important;max-width:none !important;height:100dvh !important;padding:16px 16px 20px !important;background:#f4f5f6 !important;border-right:0 !important;border-radius:0 !important;box-shadow:0 22px 40px rgba(20,24,28,.16) !important;transform:translateX(-100%);opacity:0;visibility:hidden;filter:blur(8px);transition:transform .24s cubic-bezier(.2,.8,.2,1), opacity .2s ease, filter .2s ease, visibility 0s linear .24s;overflow:auto;}
  .cab-sidebar.is-mobile-open{transform:translateX(0);opacity:1;visibility:visible;filter:none;transition:transform .24s cubic-bezier(.2,.8,.2,1), opacity .2s ease, filter .2s ease;}
  .cab-sidebar.is-mobile-hidden{transform:translateX(-100%);}
  .cab-sidebar__mobile-head{display:none !important;}
  .cab-main{position:relative;z-index:1;margin-top:0 !important;padding:14px 14px 20px !important;}
  .cab-main--awaiting-nav > *:not(.cab-topbar){display:none !important;}
  .cab-main--awaiting-nav .cab-topbar{margin-bottom:0 !important;}
  body.cab-sidebar-open{overflow:hidden;}
  body.cab-sidebar-open .cab-main{pointer-events:none;user-select:none;}
}

.cabinet-page .form-label,.admin-page .form-label,.settings-page .form-label{display:none !important;}
.cabinet-page .floating-field .form-control,.cabinet-page .floating-field .form-select,.cabinet-page .floating-field textarea,.admin-page .floating-field .form-control,.admin-page .floating-field .form-select,.admin-page .floating-field textarea,.settings-page .floating-field .form-control,.settings-page .floating-field .form-select,.settings-page .floating-field textarea{padding:22px 18px 10px !important;}
.cabinet-page .floating-field--textarea textarea,.admin-page .floating-field--textarea textarea,.settings-page .floating-field--textarea textarea{padding-top:34px !important;}


/* =========================================================
   ROUND 18 — header spacing / cabinet placeholders / request pickers
   ========================================================= */
@media (min-width: 992px){
  .site-header .site-header__nav-list{gap:.5rem !important;}
  .site-header .site-header__cta-item{margin-left:0 !important;}
  .site-header .site-header__nav-list > .site-header__cta-item + .site-header__cta-item{margin-left:0 !important;}
  .site-header .site-header__cta-link.site-btn,
  .site-header .header-login-btn,
  .site-header .header-login-btn--nav,
  .site-header .header-profile-link{margin-left:0 !important;}
}

.cabinet-page .field-group--float > .form-label,
.settings-page .field-group--float > .form-label,
.admin-page .field-group--float > .form-label{display:none !important;}

.cabinet-page .brand-combobox .js-brand-input,
.cabinet-page .static-picker .js-static-picker-input,
.settings-page .brand-combobox .js-brand-input,
.settings-page .static-picker .js-static-picker-input{
  min-height:52px;
  border-radius:20px !important;
  border:1px solid var(--ds-input-border) !important;
  background:#fff !important;
  box-shadow:none !important;
}

.cabinet-page .static-picker .js-static-picker-input{
  padding:22px 18px 10px !important;
}

.cabinet-page .static-picker .floating-label{
  left:18px;
}

.cabinet-page .static-picker.is-filled .floating-label,
.cabinet-page .static-picker.is-focused .floating-label{
  top:var(--ds-floating-top);
  transform:translateY(0);
  font-size:12px !important;
  color:#8A9199 !important;
}

.cabinet-page .static-picker .brand-dropdown{
  inset:calc(100% + 8px) 0 auto 0;
  border-radius:16px;
  border:1px solid var(--vi-stroke);
  box-shadow:0 18px 32px rgba(28,33,38,.12);
  padding:8px;
  z-index:80;
}

.cabinet-page .static-picker .brand-dropdown__item{
  min-height:44px;
  border-radius:12px;
  font-size:14px;
  line-height:20px;
}
.cabinet-page .floating-field--textarea .floating-label{
  top:18px;
  transform:none;
}

.cabinet-page .brand-combobox__chevron .vi-icon{
  color:var(--vi-note);
}

.cab-mobile-nav-toggle{display:none !important;}
@media (max-width: 991.98px){
  .cab-mobile-nav-toggle{display:inline-flex !important;align-items:center;justify-content:center;}
}


/* =========================================================
   ROUND 19 — hero width / cabinet picker / placeholders
   ========================================================= */
.header-profile-link .vi-icon,
.site-header .header-profile-link .vi-icon{
  color:#1C2126 !important;
}
.site-header .header-profile-link:hover .vi-icon,
.site-header .header-profile-link:focus-visible .vi-icon{
  color:#1C2126 !important;
}

.floating-field.floating-field--picker::after,
.static-picker.floating-field--select::after{
  display:none !important;
}

.floating-field .floating-label{
  display:block !important;
}

.cabinet-page .static-picker .js-static-picker-input{
  cursor:pointer;
}
.cabinet-page .static-picker .brand-dropdown{
  display:none;
}
.cabinet-page .static-picker.is-open .brand-dropdown{
  display:block !important;
}

.cabinet-page .cab-mobile-nav-toggle{
  display:none !important;
}
@media (max-width: 991.98px){
  .cabinet-page .cab-mobile-nav-toggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
  }
}

@media (max-width: 991.98px){
  .hero > .container.hero-shell.hero-shell--wide,
  .hero-shell.hero-shell--wide{
    width:auto !important;
    max-width:calc(100vw - 20px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .hero-surface{
    border-radius:20px !important;
    border:1px solid var(--vi-stroke) !important;
    box-shadow:var(--vi-shadow-card) !important;
    padding:22px 16px 24px !important;
  }
}


/* ROUND 20 — parts row sizing */
@media (min-width: 768px){
  .cabinet-page [data-parts-item] .col-md-3,
  .cabinet-page [data-parts-item] .col-md-4{
    min-width: 0;
  }
  .cabinet-page [data-parts-item] input[name="part_qty[]"]{
    text-align: left;
  }
}


/* =========================================================
   ROUND 21 — modal DS refinement / icons / manager placeholders
   ========================================================= */
:root{
  --ds-input-height: 48px;
  --ds-input-bg-selected: #F4F5F6;
  --ds-modal-pad-x: 40px;
  --ds-modal-pad-top: 40px;
  --ds-modal-gap-sm: 8px;
  --ds-modal-gap-md: 16px;
}

.vi-icon-file{
  display:block;
  width:24px;
  height:24px;
  flex:0 0 24px;
}

.vi-icon-file--xl{
  width:24px;
  height:24px;
}

.icon-chip .vi-icon-file,
#equipment .icon-chip .vi-icon-file,
.solution-card .icon-chip .vi-icon-file{
  width:24px !important;
  height:24px !important;
}

#cta.cta-glass{
  background:#FFFFFF !important;
}

.modal-content{
  border-radius:28px !important;
}

.modal-header{
  border-bottom:0 !important;
  padding:var(--ds-modal-pad-top) var(--ds-modal-pad-x) var(--ds-modal-gap-sm) !important;
  align-items:flex-start !important;
}

.modal-body{
  padding:0 var(--ds-modal-pad-x) 40px !important;
}

.modal-title{
  font-size:32px !important;
  line-height:1.12 !important;
  font-weight:600 !important;
  margin:0 !important;
}

.modal-close-btn{
  width:20px;
  height:20px;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  color:#8A9199;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 20px;
  box-shadow:none !important;
}

.modal-close-btn:hover,
.modal-close-btn:focus-visible{
  color:#1C2126;
  outline:none;
}

.modal-close-btn .vi-icon{
  width:20px;
  height:20px;
  color:currentColor !important;
}

.modal .nav-tabs{
  gap:28px !important;
  border-bottom:1px solid #D5D9DE !important;
  margin:0 0 20px !important;
}

.modal .nav-tabs .nav-link{
  padding:0 0 12px !important;
  margin:0 0 -1px !important;
  border:0 !important;
  border-bottom:4px solid transparent !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#9AA1A8 !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:uppercase !important;
  box-shadow:none !important;
}

.modal .nav-tabs .nav-link.active{
  color:#1C2126 !important;
  border-bottom-color:#1C2126 !important;
  box-shadow:none !important;
}

.modal .btn,
.modal button,
.modal [type="submit"]{
  font-size:16px !important;
  line-height:24px !important;
  font-weight:500 !important;
}

.field-group--float{
  margin-bottom:0 !important;
}

.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input,
.cabinet-page .form-control,
.cabinet-page .form-select,
.cabinet-page textarea,
.admin-page .form-control,
.admin-page .form-select,
.admin-page textarea,
.settings-page .form-control,
.settings-page .form-select,
.settings-page textarea,
.modal .form-control,
.modal .form-select,
.modal textarea{
  min-height:var(--ds-input-height) !important;
  height:var(--ds-input-height);
  border-radius:20px !important;
  border:1px solid #D5D9DE !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
}

.floating-field .form-control,
.floating-field .form-select,
.floating-field input,
.modal .form-control,
.modal .form-select,
.cabinet-page .floating-field .form-control,
.cabinet-page .floating-field .form-select,
.admin-page .floating-field .form-control,
.admin-page .floating-field .form-select,
.settings-page .floating-field .form-control,
.settings-page .floating-field .form-select{
  padding:18px 16px 8px !important;
}

.floating-field textarea,
.modal textarea,
.cabinet-page .floating-field textarea,
.admin-page .floating-field textarea,
.settings-page .floating-field textarea{
  min-height:116px !important;
  height:auto !important;
  padding:20px 16px 12px !important;
}

.floating-label{
  left:16px !important;
  top:50%;
  transform:translateY(-50%);
  font-size:14px !important;
  line-height:1.2 !important;
  color:#8A9199 !important;
}

.floating-field.is-filled .floating-label,
.floating-field.is-focused .floating-label,
.floating-field input:not(:placeholder-shown) + .floating-label,
.floating-field textarea:not(:placeholder-shown) + .floating-label,
.floating-field select:not([value=""]) + .floating-label,
.floating-field .form-select:valid + .floating-label,
.floating-field select:valid + .floating-label{
  top:8px !important;
  transform:none !important;
  font-size:12px !important;
  color:#8A9199 !important;
}

.floating-field--textarea .floating-label,
.cabinet-page .floating-field--textarea .floating-label,
.admin-page .floating-field--textarea .floating-label,
.settings-page .floating-field--textarea .floating-label{
  top:20px !important;
  transform:none !important;
}

.floating-field--textarea.is-filled .floating-label,
.floating-field--textarea.is-focused .floating-label,
.floating-field--textarea textarea:not(:placeholder-shown) + .floating-label,
.cabinet-page .floating-field--textarea textarea:not(:placeholder-shown) + .floating-label,
.admin-page .floating-field--textarea textarea:not(:placeholder-shown) + .floating-label,
.settings-page .floating-field--textarea textarea:not(:placeholder-shown) + .floating-label{
  top:8px !important;
}

.floating-field:hover .form-control,
.floating-field:hover .form-select,
.floating-field:hover input,
.floating-field:hover textarea,
.modal .floating-field:hover .form-control,
.modal .floating-field:hover .form-select,
.modal .floating-field:hover input,
.modal .floating-field:hover textarea{
  border-color:#1C2126 !important;
}

.floating-field.is-focused .form-control,
.floating-field.is-focused .form-select,
.floating-field.is-focused textarea,
.floating-field.is-focused input,
.floating-field .form-control:focus,
.floating-field .form-select:focus,
.floating-field textarea:focus,
.floating-field input:focus,
.cabinet-page .form-control:focus,
.cabinet-page .form-select:focus,
.admin-page .form-control:focus,
.admin-page .form-select:focus,
.settings-page .form-control:focus,
.settings-page .form-select:focus,
.modal .form-control:focus,
.modal .form-select:focus,
.modal textarea:focus{
  border-color:#1C2126 !important;
  background:var(--ds-input-bg-selected) !important;
  box-shadow:none !important;
}

.floating-field .form-control.is-invalid,
.floating-field .form-select.is-invalid,
.floating-field textarea.is-invalid,
.floating-field input.is-invalid,
.modal .form-control.is-invalid,
.modal .form-select.is-invalid,
.modal textarea.is-invalid,
.modal input.is-invalid{
  border-color:#1C2126 !important;
  box-shadow:none !important;
}

.floating-field--select::after,
.static-picker__chevron{
  width:16px !important;
  height:16px !important;
  right:16px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  border:0 !important;
  background:no-repeat center / 16px 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='400 313 8 5' fill='none'%3E%3Cpath d='M402.906 318L400.306 315.4C399.989 315.083 399.918 314.721 400.094 314.313C400.268 313.904 400.581 313.7 401.031 313.7H406.181C406.631 313.7 406.943 313.904 407.118 314.313C407.293 314.721 407.222 315.083 406.906 315.4L404.306 318C404.206 318.1 404.097 318.175 403.981 318.225C403.864 318.275 403.739 318.3 403.606 318.3C403.472 318.3 403.347 318.275 403.231 318.225C403.114 318.175 403.006 318.1 402.906 318Z' fill='%238A9199'/%3E%3C/svg%3E") !important;
  pointer-events:none;
}

.floating-field.floating-field--picker::after,
.static-picker.floating-field--select::after{display:none !important;}

.static-picker__chevron::before,
.static-picker__chevron::after{display:none !important;content:none !important;}

@media (max-width: 767.98px){
  :root{--ds-modal-pad-x:20px;--ds-modal-pad-top:24px;}
  .modal-title{font-size:24px !important;}
}


/* =========================================================
   ROUND 22 — modal spacing / icon alignment / input states
   ========================================================= */
:root{
  --round22-modal-radius:16px;
  --round22-modal-pad-x:40px;
  --round22-modal-pad-top:32px;
  --round22-modal-pad-bottom:40px;
  --round22-input-height:48px;
  --round22-input-radius:16px;
  --round22-input-border:#D5D9DE;
  --round22-input-bg:#FFFFFF;
  --round22-input-bg-active:#F5F6F7;
  --round22-input-label:#8A9199;
  --round22-gap-field:16px;
}

.vi-icon-file--sm{width:16px;height:16px;flex:0 0 16px;}

/* remove static shadows on home page only */
.home-page .site-header,
.home-page .site-footer,
.home-page .hero-surface,
.home-page .hero-card,
.home-page .panel,
.home-page .kpi,
.home-page .service-center-card,
.home-page .cta-glass-inner,
.home-page .brands-panel,
.home-page .page-loader__panel{
  box-shadow:none !important;
}
.home-page .hero-image,
.home-page .brands-image,
.home-page .cta-visual__img,
.home-page .cta-visual img{
  filter:none !important;
}
.home-page .solution-card,
.home-page .equipment-card{box-shadow:none !important;}

/* unify icon sizes in service/equipment */
.icon-chip,
.solution-card .icon-chip,
.equipment-card .icon-chip{
  width:44px !important;
  height:44px !important;
}
.icon-chip .vi-icon,
.icon-chip .vi-icon-file,
.solution-card .icon-chip .vi-icon,
.solution-card .icon-chip .vi-icon-file,
.equipment-card .icon-chip .vi-icon,
.equipment-card .icon-chip .vi-icon-file{
  width:24px !important;
  height:24px !important;
  flex:0 0 24px !important;
}

#cta.cta-glass{background:#fff !important;}

/* modal shell */
.modal-dialog{max-width:min(560px, calc(100vw - 28px));}
.modal-content{
  border-radius:var(--round22-modal-radius) !important;
  box-shadow:0 24px 56px rgba(28,33,38,.16) !important;
}
.modal-header{
  position:relative;
  border-bottom:0 !important;
  padding:var(--round22-modal-pad-top) var(--round22-modal-pad-x) 8px !important;
  min-height:auto;
}
.modal-title-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:24px;
}
.modal-title-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  color:#93999E;
}
.modal-title-icon .vi-icon{width:24px;height:24px;color:currentColor !important;}
.modal-title{
  font-size:28px !important;
  line-height:1.14 !important;
  font-weight:600 !important;
  margin:0 !important;
}
.modal-close-btn{
  position:absolute;
  top:20px;
  right:20px;
  width:20px;
  height:20px;
  flex:0 0 20px;
  color:#93999E;
}
.modal-close-btn .vi-icon{width:20px;height:20px;}
.modal-body{
  padding:0 var(--round22-modal-pad-x) var(--round22-modal-pad-bottom) !important;
}
.modal .nav-tabs{
  display:inline-flex !important;
  align-items:flex-end;
  gap:34px !important;
  border-bottom:0 !important;
  margin:0 0 16px !important;
  width:auto !important;
}
.modal .nav-item{width:auto !important;}
.modal .nav-tabs .nav-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:auto !important;
  padding:0 0 12px !important;
  margin:0 !important;
  color:#9AA1A8 !important;
  font-size:17px !important;
  line-height:1.2 !important;
  font-weight:450 !important;
  letter-spacing:0 !important;
  text-transform:uppercase !important;
  border:0 !important;
  background:transparent !important;
}
.modal .nav-tabs .nav-link::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:#D5D9DE;
}
.modal .nav-tabs .nav-link.active{color:#1C2126 !important;font-weight:450 !important;}
.modal .nav-tabs .nav-link.active::after{height:4px;background:#1C2126;}
.auth-tab-content{padding-top:0 !important;}
.modal .field-group,
.modal .field-group--float{margin-bottom:16px !important;}
.modal .field-group:last-child,
.modal .field-group--float:last-child{margin-bottom:0 !important;}
.modal .auth-actions{margin-top:0 !important;gap:12px;padding-top:8px;}
.modal .auth-link,.modal .auth-link:visited{color:#1677FF !important;text-decoration:none !important;}

/* input system */
.floating-field .form-control,
.floating-field .form-select,
.floating-field textarea,
.floating-field input,
.cabinet-page .form-control,
.cabinet-page .form-select,
.cabinet-page textarea,
.admin-page .form-control,
.admin-page .form-select,
.admin-page textarea,
.settings-page .form-control,
.settings-page .form-select,
.settings-page textarea,
.modal .form-control,
.modal .form-select,
.modal textarea{
  min-height:var(--round22-input-height) !important;
  height:var(--round22-input-height) !important;
  border-radius:var(--round22-input-radius) !important;
  border:1px solid var(--round22-input-border) !important;
  background:var(--round22-input-bg) !important;
  box-shadow:none !important;
  line-height:1.2 !important;
}
.floating-field .form-control,
.floating-field .form-select,
.floating-field input,
.modal .form-control,
.modal .form-select,
.cabinet-page .floating-field .form-control,
.cabinet-page .floating-field .form-select,
.admin-page .floating-field .form-control,
.admin-page .floating-field .form-select,
.settings-page .floating-field .form-control,
.settings-page .floating-field .form-select{
  padding:20px 16px 6px !important;
}
.floating-field textarea,
.modal textarea,
.cabinet-page .floating-field textarea,
.admin-page .floating-field textarea,
.settings-page .floating-field textarea{
  min-height:116px !important;
  height:auto !important;
  padding:28px 16px 12px !important;
}
.floating-field .floating-label{
  left:16px !important;
  top:50%;
  transform:translateY(-50%);
  font-size:16px !important;
  line-height:1.1 !important;
  font-weight:450 !important;
  color:var(--round22-input-label) !important;
  padding:0 !important;
}
.floating-field.is-filled .floating-label,
.floating-field.is-focused .floating-label,
.floating-field input:not(:placeholder-shown)+.floating-label,
.floating-field textarea:not(:placeholder-shown)+.floating-label,
.floating-field select:not([value=""])+.floating-label,
.floating-field .form-select:valid + .floating-label,
.floating-field select:valid + .floating-label{
  top:6px !important;
  transform:none !important;
  font-size:12px !important;
  color:var(--round22-input-label) !important;
}
.floating-field--textarea .floating-label,
.cabinet-page .floating-field--textarea .floating-label,
.admin-page .floating-field--textarea .floating-label,
.settings-page .floating-field--textarea .floating-label{
  top:16px !important;
  transform:none !important;
}
.floating-field--textarea.is-filled .floating-label,
.floating-field--textarea.is-focused .floating-label,
.floating-field--textarea textarea:not(:placeholder-shown)+.floating-label{top:6px !important;}
.field-group--float .vi-field-note{margin-top:4px !important;font-size:12px;line-height:1.3;color:#8A9199 !important;}
.floating-field:hover .form-control,
.floating-field:hover .form-select,
.floating-field:hover input,
.floating-field:hover textarea{border-color:#1C2126 !important;}
.floating-field.is-focused .form-control,
.floating-field.is-focused .form-select,
.floating-field.is-focused textarea,
.floating-field.is-focused input,
.floating-field .form-control:focus,
.floating-field .form-select:focus,
.floating-field textarea:focus,
.floating-field input:focus,
.cabinet-page .form-control:focus,
.cabinet-page .form-select:focus,
.admin-page .form-control:focus,
.admin-page .form-select:focus,
.settings-page .form-control:focus,
.settings-page .form-select:focus,
.modal .form-control:focus,
.modal .form-select:focus,
.modal textarea:focus{
  border-color:#1C2126 !important;
  background:var(--round22-input-bg-active) !important;
  box-shadow:none !important;
}
.floating-field .form-control.is-invalid,
.floating-field .form-select.is-invalid,
.floating-field textarea.is-invalid,
.floating-field input.is-invalid,
.modal .form-control.is-invalid,
.modal .form-select.is-invalid,
.modal textarea.is-invalid,
.modal input.is-invalid{
  border-color:#1C2126 !important;
  background:var(--round22-input-bg-active) !important;
  box-shadow:none !important;
}
.password-toggle{right:16px !important;width:20px;height:20px;}
.password-toggle .vi-icon{width:20px;height:20px;}
.floating-field--password .form-control,
.floating-field--password input{padding-right:52px !important;}
.floating-field--select .form-select,
.floating-field--select select{padding-right:40px !important;}
.floating-field--select::after,
.static-picker__chevron{
  width:14px !important;
  height:14px !important;
  right:16px !important;
  background-size:14px 14px !important;
}
.static-picker .js-static-picker-input,
.static-picker .js-static-picker-input:focus{padding-right:40px !important;}

/* cabinet/admin/forms stability */
.cabinet-page .row.g-3.align-items-end{align-items:flex-start !important;}
.cabinet-page [data-parts-item] .row.g-3 > [class*="col-"]{display:flex;align-items:flex-start;}
.cabinet-page [data-parts-item] .form-control,
.cabinet-page [data-parts-item] .js-brand-input,
.cabinet-page [data-parts-item] .brand-combobox{width:100%;}

/* specific icon colors */
.site-footer__contacts .vi-icon-file--sm{display:inline-block;vertical-align:middle;margin-right:8px;}
.site-header .header-contact-item .vi-icon-file--sm{display:inline-block;vertical-align:middle;margin-right:0;}

@media (max-width: 767.98px){
  :root{
    --round22-modal-pad-x:20px;
    --round22-modal-pad-top:24px;
    --round22-modal-pad-bottom:28px;
  }
  .modal-title{font-size:24px !important;}
}
/* =========================================================
   ROUND 23 — modal tabs / picker fixes / outline icons
   ========================================================= */

/* remove all static shadows on home page surfaces; hover states remain controlled separately */
.home-page .hero-surface,
.home-page .hero-card,
.home-page .panel,
.home-page .kpi,
.home-page .brands-panel,
.home-page .service-center-card,
.home-page .cta-glass-inner,
.home-page .site-header,
.home-page .site-footer,
.home-page .page-loader__panel{
  box-shadow:none !important;
}
.home-page .hero-image,
.home-page .brands-image,
.home-page .cta-visual__img,
.home-page .cta-visual img{
  filter:none !important;
}

/* modal tabs: one continuous grey line + thinner active segment */
.modal .nav-tabs{
  position:relative;
  display:inline-flex !important;
  width:auto !important;
  gap:34px !important;
  padding-bottom:0 !important;
  margin:0 0 16px !important;
}
.modal .nav-tabs::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:#D5D9DE;
}
.modal .nav-tabs .nav-link{
  font-weight:450 !important;
  color:#9AA1A8 !important;
  padding:0 0 12px !important;
}
.modal .nav-tabs .nav-link::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:0 !important;
  background:transparent !important;
}
.modal .nav-tabs .nav-link.active{
  color:#1C2126 !important;
  font-weight:450 !important;
}
.modal .nav-tabs .nav-link.active::after{
  height:3px !important;
  background:#1C2126 !important;
}

/* auth modal icon container */
.modal-header--auth .modal-title-icon{
  width:32px !important;
  height:32px !important;
  flex:0 0 32px !important;
}
.modal-header--auth .modal-title-icon .vi-icon{
  width:32px !important;
  height:32px !important;
}

/* select / static picker arrows */
.static-picker .js-static-picker-input,
.static-picker .js-static-picker-input:focus{
  background-image:none !important;
}
.static-picker.is-open .static-picker__chevron{
  transform:translateY(-50%) rotate(180deg) !important;
}

/* services/equipment icon treatment: equal size, no fill container */
.home-page .solution-card .icon-chip,
.home-page #equipment .equipment-card .icon-chip,
.home-page .equipment-card .icon-chip{
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
}
.home-page .solution-card .icon-chip .vi-icon,
.home-page #equipment .equipment-card .icon-chip .vi-icon,
.home-page .equipment-card .icon-chip .vi-icon,
.home-page .solution-card .icon-chip .vi-icon-file,
.home-page #equipment .equipment-card .icon-chip .vi-icon-file,
.home-page .equipment-card .icon-chip .vi-icon-file{
  width:24px !important;
  height:24px !important;
  flex:0 0 24px !important;
  color:#767D83 !important;
}

/* keep field active state only while truly focused */
.floating-field:not(.is-focused) .form-control:not(:focus),
.floating-field:not(.is-focused) .form-select:not(:focus),
.floating-field:not(.is-focused) input:not(:focus),
.floating-field:not(.is-focused) textarea:not(:focus){
  background:var(--round22-input-bg) !important;
}



/* =========================================================
   ROUND 24 — hero / cta / repair kind fixes
   ========================================================= */
/* Repair kind picker: keep options visible like other pickers */
.cabinet-page .static-picker .brand-dropdown__item{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  color:var(--vi-text, #1C2126) !important;
  background:transparent !important;
}

/* CTA form vertically centered relative to left column */
#cta .cta-glass-inner{
  align-items:center !important;
}
#cta .cta-form-glass{
  align-self:center !important;
  justify-content:center !important;
}

/* Hero without extra surface wrapper and with normal mobile width */
.home-page .hero > .container.hero-shell.hero-shell--wide.hero-surface{
  width:100% !important;
  max-width:var(--vi-section-width) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:var(--vi-section-padding-x) !important;
  padding-right:var(--vi-section-padding-x) !important;
  box-sizing:border-box !important;
}

@media (max-width: 991.98px){
  .home-page .hero > .container.hero-shell.hero-shell--wide.hero-surface{
    width:100% !important;
    max-width:var(--vi-section-width) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:var(--vi-section-padding-x) !important;
    padding-right:var(--vi-section-padding-x) !important;
    border-radius:0 !important;
    border:0 !important;
    box-shadow:none !important;
    padding-top:24px !important;
    padding-bottom:28px !important;
  }

  #cta .cta-glass-inner{
    gap:16px !important;
    align-items:start !important;
  }
  #cta .cta-form-glass{
    align-self:stretch !important;
  }
}

/* =========================================================
   ROUND 25 — hero / cta / icons / favicon polish
   ========================================================= */
/* Hero: keep wrapper for layout, but remove white framed surface */
.home-page .hero > .container.hero-shell.hero-shell--wide.hero-surface{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* CTA: nudge form down so the block reads visually centered */
#cta .cta-glass-inner{
  align-items: center !important;
}
#cta .cta-form-glass{
  align-self: center !important;
  padding-top: 24px !important;
}
@media (max-width: 991.98px){
  #cta .cta-form-glass{
    padding-top: 0 !important;
  }
}

/* Services / equipment icons: larger 48px, outline only */
.home-page .solution-card .card-body,
.home-page #equipment .equipment-card .card-body,
.home-page .equipment-card .card-body{
  grid-template-columns: 48px minmax(0, 1fr) !important;
}
.home-page .solution-card .icon-chip,
.home-page #equipment .equipment-card .icon-chip,
.home-page .equipment-card .icon-chip{
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.home-page .solution-card .icon-chip .vi-icon,
.home-page #equipment .equipment-card .icon-chip .vi-icon,
.home-page .equipment-card .icon-chip .vi-icon,
.home-page .solution-card .icon-chip .vi-icon-file,
.home-page #equipment .equipment-card .icon-chip .vi-icon-file,
.home-page .equipment-card .icon-chip .vi-icon-file{
  width: 48px !important;
  height: 48px !important;
  flex: 0 0 48px !important;
}
@media (max-width: 767.98px){
  .home-page .solution-card .card-body,
  .home-page #equipment .equipment-card .card-body,
  .home-page .equipment-card .card-body{
    grid-template-columns: 40px minmax(0, 1fr) !important;
  }
  .home-page .solution-card .icon-chip,
  .home-page #equipment .equipment-card .icon-chip,
  .home-page .equipment-card .icon-chip{
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .home-page .solution-card .icon-chip .vi-icon,
  .home-page #equipment .equipment-card .icon-chip .vi-icon,
  .home-page .equipment-card .icon-chip .vi-icon,
  .home-page .solution-card .icon-chip .vi-icon-file,
  .home-page #equipment .equipment-card .icon-chip .vi-icon-file,
  .home-page .equipment-card .icon-chip .vi-icon-file{
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
  }
}

/* Header profile icon */
.header-profile-link .vi-icon,
.site-header .header-profile-link .vi-icon{
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
}


/* =========================================================
   ROUND 26B — favicon / CTA centering / floating reset / machine icon / parts row
   ========================================================= */
@media (min-width: 992px){
  .cta-glass-inner{
    align-items: center !important;
  }
  .cta-form-glass{
    align-self: center !important;
    margin-block: auto !important;
    padding-top: 0 !important;
  }
}

/* Hero wrapper keeps structure, but visual card chrome removed */
.hero-surface,
.home-page .hero-surface{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Make updated file icons sit exactly like sprite icons */
.icon-chip,
.solution-card .icon-chip,
.equipment-card .icon-chip,
#equipment .equipment-card .icon-chip{
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.icon-chip .vi-icon,
.solution-card .icon-chip .vi-icon,
.equipment-card .icon-chip .vi-icon,
#equipment .equipment-card .icon-chip .vi-icon,
.icon-chip .vi-icon-file,
.solution-card .icon-chip .vi-icon-file,
.equipment-card .icon-chip .vi-icon-file,
#equipment .equipment-card .icon-chip .vi-icon-file{
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
}

/* Header profile icon requested size */
.header-profile-link .vi-icon,
.site-header .header-profile-link .vi-icon{
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
}

/* Parts row: keep remove button to the right of quantity on desktop/tablet */
@media (min-width: 768px){
  .cabinet-page [data-parts-item] .row{
    flex-wrap: nowrap;
  }
  .cabinet-page [data-parts-item] .col-md-3,
  .cabinet-page [data-parts-item] .col-md-4,
  .cabinet-page [data-parts-item] .col-md-1{
    min-width: 0;
  }
  .cabinet-page [data-parts-item] [data-remove-item]{
    align-self: center;
  }
}

/* More reliable floating-field visual reset */
.floating-field:not(.is-focused):not(.is-filled) .form-control,
.floating-field:not(.is-focused):not(.is-filled) .form-select,
.floating-field:not(.is-focused):not(.is-filled) input,
.floating-field:not(.is-focused):not(.is-filled) textarea{
  background-color: #fff !important;
}


/* =========================================================
   ROUND 26C — floating field state reset hardening
   Root cause: :hover could linger on touch/coarse pointers, and some wrappers
   kept visual focus styling longer than the real DOM focus.
   ========================================================= */
.floating-field .form-control,
.floating-field .form-select,
.floating-field input,
.floating-field textarea,
.static-picker .js-static-picker-input{
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.floating-field:not(.is-focused) .form-control:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused) .form-select:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused) input:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused) textarea:not(:focus):not(.is-invalid),
.static-picker:not(.is-open):not(.is-focused) .js-static-picker-input:not(:focus):not(.is-invalid){
  border-color:var(--round22-input-border, #D5D9DE) !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
}

.floating-field.is-filled:not(.is-focused) .form-control:not(:focus):not(.is-invalid),
.floating-field.is-filled:not(.is-focused) .form-select:not(:focus):not(.is-invalid),
.floating-field.is-filled:not(.is-focused) input:not(:focus):not(.is-invalid),
.floating-field.is-filled:not(.is-focused) textarea:not(:focus):not(.is-invalid),
.static-picker.is-filled:not(.is-open):not(.is-focused) .js-static-picker-input:not(:focus):not(.is-invalid){
  background:#FFFFFF !important;
}

@media (hover: hover) and (pointer: fine){
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .static-picker:hover .js-static-picker-input:not(.is-invalid){
    border-color:#1C2126 !important;
  }
}

@media (hover: none), (pointer: coarse){
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .static-picker:hover .js-static-picker-input:not(.is-invalid){
    border-color:var(--round22-input-border, #D5D9DE) !important;
    background:#FFFFFF !important;
  }
}


/* =========================================================
   ROUND 26d — reliable field hover reset
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .modal .floating-field:hover .form-control:not(.is-invalid),
  .modal .floating-field:hover .form-select:not(.is-invalid),
  .modal .floating-field:hover input:not(.is-invalid),
  .modal .floating-field:hover textarea:not(.is-invalid) {
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow: none !important;
  }

  .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid) {
    border-color: #1C2126 !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow: none !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .modal .floating-field:hover .form-control:not(.is-invalid),
  .modal .floating-field:hover .form-select:not(.is-invalid),
  .modal .floating-field:hover input:not(.is-invalid),
  .modal .floating-field:hover textarea:not(.is-invalid) {
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow: none !important;
  }
}


/* =========================================================
   ROUND 26E — definitive field hover/focus reset
   - raw :hover is neutralized to prevent sticky visual states
   - interactive hover lives on JS-managed `.is-hovered`
   - select-like controls use `.is-open` / `.is-focused`
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .modal .floating-field:hover .form-control:not(.is-invalid),
  .modal .floating-field:hover .form-select:not(.is-invalid),
  .modal .floating-field:hover input:not(.is-invalid),
  .modal .floating-field:hover textarea:not(.is-invalid),
  .static-picker:hover .js-static-picker-input:not(.is-invalid),
  .brand-combobox:hover .js-brand-input:not(.is-invalid) {
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow: none !important;
  }

  .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .static-picker.is-hovered:not(.is-open):not(.is-focused) .js-static-picker-input:not(.is-invalid),
  .brand-combobox.is-hovered:not(.is-open):not(.is-focused) .js-brand-input:not(.is-invalid) {
    border-color: #1C2126 !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .modal .floating-field:hover .form-control:not(.is-invalid),
  .modal .floating-field:hover .form-select:not(.is-invalid),
  .modal .floating-field:hover input:not(.is-invalid),
  .modal .floating-field:hover textarea:not(.is-invalid),
  .static-picker:hover .js-static-picker-input:not(.is-invalid),
  .brand-combobox:hover .js-brand-input:not(.is-invalid) {
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
  }
}

.static-picker .js-static-picker-input,
.brand-combobox .js-brand-input {
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.static-picker.is-focused .js-static-picker-input:not(.is-invalid),
.static-picker.is-open .js-static-picker-input:not(.is-invalid),
.brand-combobox.is-focused .js-brand-input:not(.is-invalid),
.brand-combobox.is-open .js-brand-input:not(.is-invalid) {
  border-color: #1C2126 !important;
  background: #F5F6F7 !important;
  box-shadow: none !important;
}

.static-picker.is-open .static-picker__chevron,
.brand-combobox.is-open .brand-combobox__chevron {
  transform: translateY(-10%) rotate(180deg) !important;
}

.brand-combobox.is-focused .brand-combobox__chevron .vi-icon,
.brand-combobox.is-open .brand-combobox__chevron .vi-icon,
.static-picker.is-focused .static-picker__chevron .vi-icon,
.static-picker.is-open .static-picker__chevron .vi-icon {
  color: #1C2126 !important;
}


/* =========================================================
   ROUND 26F — selector label timing + final hover reset
   ========================================================= */
/* For custom select-like pickers, keep placeholder centered while merely focused/open.
   Shrink the label only after a real value was chosen. */
.static-picker:not(.is-filled) .floating-label,
.static-picker.is-focused:not(.is-filled) .floating-label,
.static-picker.is-open:not(.is-filled) .floating-label{
  top:50% !important;
  transform:translateY(-50%) !important;
  font-size:16px !important;
  line-height:1.1 !important;
}
.static-picker.is-filled .floating-label,
.static-picker.is-filled.is-focused .floating-label,
.static-picker.is-filled.is-open .floating-label,
.static-picker .js-static-picker-input:not(:placeholder-shown) + .floating-label{
  top:6px !important;
  transform:none !important;
  font-size:12px !important;
}

/* Raw CSS :hover must never be the final source of truth for field visuals.
   Hover styling is applied only through JS-managed `.is-hovered`. */
@media (hover: hover) and (pointer: fine){
  .floating-field:hover .form-control:not(.is-invalid),
  .floating-field:hover .form-select:not(.is-invalid),
  .floating-field:hover input:not(.is-invalid),
  .floating-field:hover textarea:not(.is-invalid),
  .modal .floating-field:hover .form-control:not(.is-invalid),
  .modal .floating-field:hover .form-select:not(.is-invalid),
  .modal .floating-field:hover input:not(.is-invalid),
  .modal .floating-field:hover textarea:not(.is-invalid),
  .static-picker:hover .js-static-picker-input:not(.is-invalid),
  .brand-combobox:hover .js-brand-input:not(.is-invalid){
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow:none !important;
  }

  .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .static-picker.is-hovered:not(.is-open):not(.is-focused) .js-static-picker-input:not(.is-invalid),
  .brand-combobox.is-hovered:not(.is-open):not(.is-focused) .js-brand-input:not(.is-invalid){
    border-color:#1C2126 !important;
    background:#FFFFFF !important;
    box-shadow:none !important;
  }
}

@media (hover: none), (pointer: coarse){
  .floating-field.is-hovered .form-control:not(.is-invalid),
  .floating-field.is-hovered .form-select:not(.is-invalid),
  .floating-field.is-hovered input:not(.is-invalid),
  .floating-field.is-hovered textarea:not(.is-invalid),
  .static-picker.is-hovered .js-static-picker-input:not(.is-invalid),
  .brand-combobox.is-hovered .js-brand-input:not(.is-invalid){
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background:#FFFFFF !important;
    box-shadow:none !important;
  }
}

/* =========================================================
   ROUND 26G — final field hover/focus truth source
   Root cause:
   - legacy raw :hover rules were still present in multiple earlier blocks
   - when click/blur happened, those rules could still win visually until the next pointer repaint
   Fix:
   - raw :hover is always visually neutral
   - visible hover exists only through JS-managed .is-hovered
   - active/open selectors keep their own explicit state
   ========================================================= */
.floating-field .form-control,
.floating-field .form-select,
.floating-field input,
.floating-field textarea,
.static-picker .js-static-picker-input,
.brand-combobox .js-brand-input{
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE));
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF));
  box-shadow: none;
}

/* Raw CSS hover must never paint the interactive state. */
.floating-field:hover .form-control:not(.is-invalid),
.floating-field:hover .form-select:not(.is-invalid),
.floating-field:hover input:not(.is-invalid),
.floating-field:hover textarea:not(.is-invalid),
.modal .floating-field:hover .form-control:not(.is-invalid),
.modal .floating-field:hover .form-select:not(.is-invalid),
.modal .floating-field:hover input:not(.is-invalid),
.modal .floating-field:hover textarea:not(.is-invalid),
.static-picker:hover .js-static-picker-input:not(.is-invalid),
.brand-combobox:hover .js-brand-input:not(.is-invalid){
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
  box-shadow: none !important;
}

/* JS-managed hover only. */
@media (hover: hover) and (pointer: fine){
  .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-control:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) .form-select:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) input:not(.is-invalid),
  .modal .floating-field.is-hovered:not(.is-focused) textarea:not(.is-invalid),
  .static-picker.is-hovered:not(.is-focused):not(.is-open) .js-static-picker-input:not(.is-invalid),
  .brand-combobox.is-hovered:not(.is-focused):not(.is-open) .js-brand-input:not(.is-invalid){
    border-color:#1C2126 !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow:none !important;
  }
}

@media (hover: none), (pointer: coarse){
  .floating-field.is-hovered .form-control:not(.is-invalid),
  .floating-field.is-hovered .form-select:not(.is-invalid),
  .floating-field.is-hovered input:not(.is-invalid),
  .floating-field.is-hovered textarea:not(.is-invalid),
  .static-picker.is-hovered .js-static-picker-input:not(.is-invalid),
  .brand-combobox.is-hovered .js-brand-input:not(.is-invalid){
    border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
    background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
    box-shadow:none !important;
  }
}

/* Active/open states remain explicit and stronger than hover. */
.floating-field.is-focused .form-control:not(.is-invalid),
.floating-field.is-focused .form-select:not(.is-invalid),
.floating-field.is-focused input:not(.is-invalid),
.floating-field.is-focused textarea:not(.is-invalid),
.static-picker.is-focused .js-static-picker-input:not(.is-invalid),
.static-picker.is-open .js-static-picker-input:not(.is-invalid),
.brand-combobox.is-focused .js-brand-input:not(.is-invalid),
.brand-combobox.is-open .js-brand-input:not(.is-invalid){
  border-color:#1C2126 !important;
  background: var(--round22-input-bg-active, #F5F6F7) !important;
  box-shadow:none !important;
}


/* =========================================================
   ROUND 26I — definitive field hover root-cause fix
   Root cause found:
   1) wrapper-level hover rules were applied to `.floating-field:hover`
      instead of the real interactive hotspots;
   2) `.floating-label` inherited large dimensions from older cascade layers
      and could extend the hoverable area while the field was empty;
   3) because of this, after blur the wrapper could still match hover visually
      even though the real control was no longer active.
   Fix:
   - labels never participate in pointer hit-testing;
   - raw wrapper hover is neutralised;
   - visible hover is derived only from real interactive children via `:has(...)`.
   ========================================================= */
.floating-field .floating-label,
.static-picker .floating-label,
.brand-combobox .floating-label{
  pointer-events:none !important;
  user-select:none !important;
  min-height:0 !important;
  height:auto !important;
  width:auto !important;
  max-width:calc(100% - 56px) !important;
  padding:0 !important;
  z-index:2;
}

/* stale JS hover classes must not paint the field by themselves */
.floating-field.is-hovered .form-control:not(.is-invalid),
.floating-field.is-hovered .form-select:not(.is-invalid),
.floating-field.is-hovered input:not(.is-invalid),
.floating-field.is-hovered textarea:not(.is-invalid),
.static-picker.is-hovered .js-static-picker-input:not(.is-invalid),
.brand-combobox.is-hovered .js-brand-input:not(.is-invalid){
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
  box-shadow:none !important;
}

/* wrapper hover itself is never the source of truth */
.floating-field:hover .form-control:not(.is-invalid),
.floating-field:hover .form-select:not(.is-invalid),
.floating-field:hover input:not(.is-invalid),
.floating-field:hover textarea:not(.is-invalid),
.static-picker:hover .js-static-picker-input:not(.is-invalid),
.brand-combobox:hover .js-brand-input:not(.is-invalid){
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
  box-shadow:none !important;
}

/* real hover only when an actual interactive hotspot is hovered */
@media (hover: hover) and (pointer: fine){
  .floating-field:has(.form-control:hover, .form-select:hover, input:hover, textarea:hover, select:hover, .password-toggle:hover):not(.is-focused) .form-control:not(.is-invalid),
  .floating-field:has(.form-control:hover, .form-select:hover, input:hover, textarea:hover, select:hover, .password-toggle:hover):not(.is-focused) .form-select:not(.is-invalid),
  .floating-field:has(.form-control:hover, .form-select:hover, input:hover, textarea:hover, select:hover, .password-toggle:hover):not(.is-focused) input:not(.is-invalid),
  .floating-field:has(.form-control:hover, .form-select:hover, input:hover, textarea:hover, select:hover, .password-toggle:hover):not(.is-focused) textarea:not(.is-invalid),
  .static-picker:has(.js-static-picker-input:hover, .static-picker__chevron:hover):not(.is-open):not(.is-focused) .js-static-picker-input:not(.is-invalid),
  .brand-combobox:has(.js-brand-input:hover, .brand-combobox__chevron:hover):not(.is-open):not(.is-focused) .js-brand-input:not(.is-invalid){
    border-color:#1C2126 !important;
    background:#FFFFFF !important;
    box-shadow:none !important;
  }
}


/* =========================================================
   ROUND 26J — definitive input hover model
   Root cause actually fixed:
   - empty fields kept the centered floating-label state, and legacy wrapper-level
     `.floating-field:hover` rules were still painting the border.
   - after blur, the pointer no longer needed to be over the actual input; being over
     the wrapper area was enough to preserve the black border visually.
   - filled fields did not reproduce as often because the floating label shrank upward
     and the effective wrapper hover hotspot became much smaller.
   Final model:
   - wrapper hover is always neutral;
   - stale `.is-hovered` is always neutral;
   - visual hover is painted ONLY by the real interactive control itself.
   ========================================================= */

/* 1) wrapper-level hover and legacy JS hover classes are always visually neutral */
.floating-field:hover > .form-control:not(.is-invalid),
.floating-field:hover > .form-select:not(.is-invalid),
.floating-field:hover > input:not(.is-invalid),
.floating-field:hover > textarea:not(.is-invalid),
.modal .floating-field:hover > .form-control:not(.is-invalid),
.modal .floating-field:hover > .form-select:not(.is-invalid),
.modal .floating-field:hover > input:not(.is-invalid),
.modal .floating-field:hover > textarea:not(.is-invalid),
.static-picker:hover .js-static-picker-input:not(.is-invalid),
.brand-combobox:hover .js-brand-input:not(.is-invalid),
.floating-field.is-hovered > .form-control:not(.is-invalid),
.floating-field.is-hovered > .form-select:not(.is-invalid),
.floating-field.is-hovered > input:not(.is-invalid),
.floating-field.is-hovered > textarea:not(.is-invalid),
.modal .floating-field.is-hovered > .form-control:not(.is-invalid),
.modal .floating-field.is-hovered > .form-select:not(.is-invalid),
.modal .floating-field.is-hovered > input:not(.is-invalid),
.modal .floating-field.is-hovered > textarea:not(.is-invalid),
.static-picker.is-hovered .js-static-picker-input:not(.is-invalid),
.brand-combobox.is-hovered .js-brand-input:not(.is-invalid){
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
  box-shadow: none !important;
}

/* 2) explicit neutral reset for empty blurred fields */
.floating-field:not(.is-focused):not(.is-filled) > .form-control:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused):not(.is-filled) > .form-select:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused):not(.is-filled) > input:not(:focus):not(.is-invalid),
.floating-field:not(.is-focused):not(.is-filled) > textarea:not(:focus):not(.is-invalid),
.static-picker:not(.is-open):not(.is-focused):not(.is-filled) .js-static-picker-input:not(:focus):not(.is-invalid),
.brand-combobox:not(.is-open):not(.is-focused):not(.is-filled) .js-brand-input:not(:focus):not(.is-invalid){
  border-color: var(--round22-input-border, var(--ds-input-border, #D5D9DE)) !important;
  background: var(--round22-input-bg, var(--ds-input-bg, #FFFFFF)) !important;
  box-shadow: none !important;
}

/* 3) the ONLY visible hover source: the real interactive hotspot */
@media (hover: hover) and (pointer: fine){
  .floating-field > .form-control:hover:not(.is-invalid),
  .floating-field > .form-select:hover:not(.is-invalid),
  .floating-field > input:hover:not(.is-invalid),
  .floating-field > textarea:hover:not(.is-invalid),
  .modal .floating-field > .form-control:hover:not(.is-invalid),
  .modal .floating-field > .form-select:hover:not(.is-invalid),
  .modal .floating-field > input:hover:not(.is-invalid),
  .modal .floating-field > textarea:hover:not(.is-invalid),
  .static-picker .js-static-picker-input:hover:not(.is-invalid),
  .brand-combobox .js-brand-input:hover:not(.is-invalid),
  .floating-field.floating-field--password:has(.password-toggle:hover) > .form-control:not(.is-invalid),
  .floating-field.floating-field--password:has(.password-toggle:hover) > input:not(.is-invalid),
  .static-picker:has(.static-picker__chevron:hover) .js-static-picker-input:not(.is-invalid),
  .brand-combobox:has(.brand-combobox__chevron:hover) .js-brand-input:not(.is-invalid){
    border-color:#1C2126 !important;
    background:#FFFFFF !important;
    box-shadow:none !important;
  }
}

/* 4) CTA textarea: make it visually 4x taller than a 48px input */
#cta .floating-field--textarea > textarea,
#cta .floating-field--textarea > .form-control{
  min-height:192px !important;
  height:192px !important;
}


/* =========================================================
   ROUND 29 — cabinet/admin UI fixes + clean icon chips
   ========================================================= */
:root{
  --round29-icon-chip-size:48px;
  --round29-icon-size:24px;
  --round29-icon-chip-bg:#F4F5F6;
  --round29-field-radius:16px;
}

/* Main page: one predictable icon model for #solutions and #equipment */
.home-page #solutions .solution-card .card-body,
.home-page #equipment .equipment-card .card-body{
  display:grid !important;
  grid-template-columns:var(--round29-icon-chip-size) minmax(0,1fr) !important;
  grid-template-areas:"icon title" "icon text" !important;
  column-gap:16px !important;
  row-gap:8px !important;
  align-items:start !important;
  text-align:left !important;
}
.home-page #solutions .solution-card .icon-chip,
.home-page #equipment .equipment-card .icon-chip{
  grid-area:icon !important;
  width:var(--round29-icon-chip-size) !important;
  height:var(--round29-icon-chip-size) !important;
  min-width:var(--round29-icon-chip-size) !important;
  min-height:var(--round29-icon-chip-size) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:16px !important;
  background:var(--round29-icon-chip-bg) !important;
  box-shadow:none !important;
  color:var(--vi-text-secondary, #767D83) !important;
}
.home-page #solutions .solution-card .icon-chip .vi-icon,
.home-page #solutions .solution-card .icon-chip .vi-icon-file,
.home-page #equipment .equipment-card .icon-chip .vi-icon,
.home-page #equipment .equipment-card .icon-chip .vi-icon-file{
  width:var(--round29-icon-size) !important;
  height:var(--round29-icon-size) !important;
  flex:0 0 var(--round29-icon-size) !important;
  color:var(--vi-text-secondary, #767D83) !important;
  object-fit:contain !important;
}
.home-page #solutions .solution-card h3,
.home-page #solutions .solution-card .h6,
.home-page #solutions .solution-card .fw-semibold,
.home-page #equipment .equipment-card h3,
.home-page #equipment .equipment-card .h6,
.home-page #equipment .equipment-card .fw-semibold{
  grid-area:title !important;
  margin:0 !important;
  text-align:left !important;
}
.home-page #solutions .solution-card p,
.home-page #solutions .solution-card .small,
.home-page #solutions .solution-card .text-secondary,
.home-page #equipment .equipment-card p,
.home-page #equipment .equipment-card .small,
.home-page #equipment .equipment-card .text-secondary{
  grid-area:text !important;
  margin:0 !important;
  text-align:left !important;
}
@media (max-width: 767.98px){
  .home-page #solutions .solution-card .card-body,
  .home-page #equipment .equipment-card .card-body{
    grid-template-columns:44px minmax(0,1fr) !important;
    column-gap:14px !important;
  }
  .home-page #solutions .solution-card .icon-chip,
  .home-page #equipment .equipment-card .icon-chip{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
  }
  .home-page #solutions .solution-card .icon-chip .vi-icon,
  .home-page #solutions .solution-card .icon-chip .vi-icon-file,
  .home-page #equipment .equipment-card .icon-chip .vi-icon,
  .home-page #equipment .equipment-card .icon-chip .vi-icon-file{
    width:22px !important;
    height:22px !important;
    flex-basis:22px !important;
  }
}

/* Cabinet/Admin selectors: same radius as fields + corporate chevron */
.cabinet-page .vi-select-shell,
.admin-page .vi-select-shell,
.settings-page .vi-select-shell,
.cabinet-page .static-picker,
.admin-page .static-picker,
.cabinet-page .brand-combobox,
.admin-page .brand-combobox{
  position:relative;
}
.cabinet-page .form-select,
.admin-page .form-select,
.settings-page .form-select,
.cabinet-page .static-picker .js-static-picker-input,
.admin-page .static-picker .js-static-picker-input,
.cabinet-page .brand-combobox .js-brand-input,
.admin-page .brand-combobox .js-brand-input{
  min-height:52px !important;
  border-radius:var(--round29-field-radius) !important;
  padding-right:46px !important;
  background-image:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
}
.cabinet-page .vi-select-shell::after,
.admin-page .vi-select-shell::after,
.settings-page .vi-select-shell::after{
  content:'' !important;
  position:absolute;
  right:16px;
  top:50%;
  width:18px;
  height:12px;
  transform:translateY(-50%);
  pointer-events:none;
  background:no-repeat center / 18px 12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='351 179 18 12' fill='none'%3E%3Cpath d='M366.28 181.528C366.108 181.356 365.904 181.27 365.668 181.27C365.433 181.27 365.229 181.356 365.057 181.528L360.009 186.576L354.943 181.511C354.783 181.35 354.582 181.27 354.34 181.27C354.099 181.27 353.892 181.356 353.72 181.528C353.548 181.701 353.462 181.905 353.462 182.14C353.462 182.376 353.548 182.579 353.72 182.752L359.526 188.54C359.595 188.609 359.67 188.658 359.75 188.687C359.831 188.716 359.917 188.73 360.009 188.73C360.1 188.73 360.187 188.716 360.267 188.687C360.347 188.658 360.422 188.609 360.491 188.54L366.297 182.734C366.458 182.574 366.538 182.376 366.538 182.14C366.538 181.905 366.452 181.701 366.28 181.528Z' fill='%23767D83'/%3E%3C/svg%3E") !important;
}
.static-picker__chevron,
.brand-combobox__chevron{
  position:absolute !important;
  right:16px !important;
  top:50% !important;
  width:18px !important;
  height:18px !important;
  transform:translateY(-50%) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  pointer-events:none !important;
  color:var(--vi-text-secondary, #767D83) !important;
  transition:transform .16s ease !important;
}
.static-picker__chevron .vi-icon,
.brand-combobox__chevron .vi-icon{
  width:18px !important;
  height:18px !important;
  color:currentColor !important;
}
.static-picker.is-open .static-picker__chevron,
.brand-combobox.is-open .brand-combobox__chevron{
  transform:translateY(-50%) rotate(180deg) !important;
}
.cabinet-page .static-picker .brand-dropdown__item,
.cabinet-page .brand-combobox .brand-dropdown__item,
.admin-page .brand-dropdown__item{
  min-height:44px !important;
  padding:10px 12px !important;
  border-radius:12px !important;
  background:transparent !important;
  color:var(--vi-text, #1C2126) !important;
}
.cabinet-page .static-picker .brand-dropdown__item:hover,
.cabinet-page .static-picker .brand-dropdown__item:focus-visible,
.cabinet-page .brand-combobox .brand-dropdown__item:hover,
.cabinet-page .brand-combobox .brand-dropdown__item:focus-visible,
.admin-page .brand-dropdown__item:hover,
.admin-page .brand-dropdown__item:focus-visible{
  background:#F4F5F6 !important;
  color:var(--vi-text, #1C2126) !important;
  outline:none !important;
}

/* Cabinet: remove legacy section headers above request tables */
.cabinet-page .panel-title-row{display:none !important;}
.cab-table-card > .p-3.border-bottom{display:none !important;}

/* Cabinet overview KPI cards */
.cabinet-page .cab-overview-kpis .cab-kpi-card,
.cabinet-page #tab-overview .cab-overview-kpis .kpi{
  min-height:88px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:16px !important;
  padding:20px 22px !important;
  border-radius:24px !important;
}
.cabinet-page .cab-overview-kpis .kpi-title{
  font-size:18px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  color:var(--vi-text, #1C2126) !important;
}
.cabinet-page .cab-overview-kpis .kpi-value{
  font-size:32px !important;
  line-height:1 !important;
  font-weight:600 !important;
  color:var(--vi-text, #1C2126) !important;
  text-align:right !important;
}
.cabinet-page .cab-overview-kpis .kpi-sub{display:none !important;}

/* Cabinet tables: mobile should scroll instead of clipping cells */
.cabinet-page .table-responsive,
.admin-page .table-responsive{
  overflow-x:auto !important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.cabinet-page .cab-fixed-table,
.cabinet-page .requests-compact-table,
.admin-page .admin-table{
  table-layout:auto !important;
}
.cabinet-page .cab-fixed-table th,
.cabinet-page .cab-fixed-table td,
.cabinet-page .requests-compact-table th,
.cabinet-page .requests-compact-table td,
.admin-page .admin-table th,
.admin-page .admin-table td{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  word-break:normal;
  overflow-wrap:anywhere;
}
@media (max-width: 767.98px){
  .cabinet-page .cab-fixed-table,
  .cabinet-page .requests-compact-table{min-width:560px !important;}
  .admin-page .admin-table{min-width:760px !important;}
  .cabinet-page .table > :not(caption) > * > *,
  .admin-page .table > :not(caption) > * > *{padding:12px !important;}
  .cabinet-page .cab-overview-kpis .cab-kpi-card,
  .cabinet-page #tab-overview .cab-overview-kpis .kpi{
    min-height:76px !important;
    padding:16px 18px !important;
  }
  .cabinet-page .cab-overview-kpis .kpi-title{font-size:16px !important;}
  .cabinet-page .cab-overview-kpis .kpi-value{font-size:28px !important;}
}

/* Parts request row: remove button stays inside the item */
.parts-item-row{position:relative !important;overflow:visible !important;}
.parts-item-row__fields{
  display:grid !important;
  grid-template-columns:minmax(145px,.9fr) minmax(180px,1.1fr) minmax(136px,.8fr) 44px !important;
  gap:16px !important;
  align-items:end !important;
}
.parts-item-field{min-width:0;}
.parts-item-remove{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:flex-end !important;
  min-width:44px;
}
.parts-item-remove [data-remove-item]{
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  border-radius:14px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
@media (max-width: 767.98px){
  .parts-item-row{padding:16px !important;}
  .parts-item-row__fields{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .parts-item-field--brand{padding-right:56px;}
  .parts-item-remove{
    position:absolute !important;
    top:16px !important;
    right:16px !important;
    z-index:2;
  }
}

/* Admin manager assignment polish */
.admin-manager-shell{max-width:980px !important;}
.admin-topic-grid{grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)) !important;}
.admin-check-card{
  min-width:0;
  border-color:var(--vi-stroke, #E5E7E8) !important;
  transition:background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.admin-check-card:hover,
.admin-check-card:focus-within{
  background:#F8F9FA !important;
  border-color:#DADCDE !important;
}
.admin-check-card input[type="checkbox"],
.admin-check-card input[type="radio"]{
  accent-color:var(--vi-primary, #D60000);
}
.admin-check-card--user span{min-width:0;}
.admin-check-card--user small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-assignee-list{
  max-height:560px !important;
  border:1px solid var(--vi-stroke, #E5E7E8);
  border-radius:18px;
  padding:10px !important;
  background:#FAFBFC;
}
.admin-page .admin-filter-form{align-items:end;}
.admin-page .admin-panel-block{overflow:hidden;}
@media (max-width: 767.98px){
  .admin-assignee-list{max-height:none !important;}
  .admin-check-card--user small{white-space:normal;}
}


/* =========================================================
   ROUND 31 — select icon / modal spacing / cabinet table flatten
   ========================================================= */
:root{
  --round31-field-radius: 16px;
  --round31-select-icon-size: 24px;
}

/* Corporate dropdown icon everywhere */
.vi-icon-select,
.static-picker__chevron .vi-icon-select,
.brand-combobox__chevron .vi-icon-select,
.vi-select-shell__chevron .vi-icon-select{
  width: var(--round31-select-icon-size) !important;
  height: var(--round31-select-icon-size) !important;
  min-width: var(--round31-select-icon-size) !important;
  min-height: var(--round31-select-icon-size) !important;
  flex: 0 0 var(--round31-select-icon-size) !important;
  color: #93999E !important;
  display: block !important;
}

.static-picker__chevron,
.brand-combobox__chevron,
.vi-select-shell__chevron{
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  width: var(--round31-select-icon-size) !important;
  height: var(--round31-select-icon-size) !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #93999E !important;
  pointer-events: none !important;
  transition: transform .16s ease !important;
  z-index: 2;
}
.static-picker.is-open .static-picker__chevron,
.brand-combobox.is-open .brand-combobox__chevron,
.vi-select-shell.is-open .vi-select-shell__chevron,
.vi-select-shell:focus-within .vi-select-shell__chevron{
  transform: translateY(-50%) rotate(180deg) !important;
}
.vi-select-shell::after{
  content: none !important;
  display: none !important;
}
.vi-select-shell,
.static-picker,
.brand-combobox,
.vi-select-combobox{
  position: relative !important;
}
select.vi-select,
.vi-select-shell .form-select,
.cta-form-glass .vi-select,
.cabinet-page .vi-select,
.admin-page .vi-select,
.settings-page .vi-select,
.static-picker .js-static-picker-input,
.brand-combobox .js-brand-input{
  border-radius: var(--round31-field-radius) !important;
  padding-right: 52px !important;
  background-image: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
}

/* CTA policy: baseline aligns with checkbox */
#cta .policy,
.cta-form-glass .policy{
  align-items: center !important;
}
#cta .policy__control,
.cta-form-glass .policy__control{
  margin-top: 0 !important;
}
#cta .policy__text,
#cta .policy__meta,
.cta-form-glass .policy__text,
.cta-form-glass .policy__meta{
  line-height: 20px !important;
}

/* Modal headers: no title icons for auth/status + exact spacing */
#authModal .modal-title-icon{
  display: none !important;
}
#authModal .modal-header,
#forgotPasswordModal .modal-header{
  padding-bottom: 0 !important;
}
#authModal .modal-body,
#forgotPasswordModal .modal-body{
  padding-top: 16px !important;
}
#authModal .modal-title-row{
  gap: 0 !important;
}

/* Auth modal tabs: full-width base line, active underline only under text */
#authModal .nav-tabs{
  width: 100% !important;
  display: flex !important;
  gap: 28px !important;
  border-bottom: 1px solid #D5D9DE !important;
  margin: 0 0 16px !important;
}
#authModal .nav-tabs .nav-item{
  display: inline-flex !important;
  flex: 0 0 auto !important;
}
#authModal .nav-tabs .nav-link{
  position: relative !important;
  display: inline-flex !important;
  width: auto !important;
  min-height: auto !important;
  padding: 0 0 10px !important;
  margin: 0 0 -1px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #767D83 !important;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: 450 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
}
#authModal .nav-tabs .nav-link::after{
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 0 !important;
  border-radius: 2px !important;
  background: transparent !important;
}
#authModal .nav-tabs .nav-link.active{
  color: #1C2126 !important;
  font-weight: 450 !important;
}
#authModal .nav-tabs .nav-link.active::after{
  height: 2px !important;
  background: #1C2126 !important;
}

/* Details card: information is always visible, no mobile toggle */
#cabRequestDetailsCollapse{
  display: block !important;
}
[data-request-details-toggle]{
  display: none !important;
}

/* Cabinet/Admin: flatten legacy external table cards; table-responsive becomes the surface */
.cabinet-page .table-clean.cab-table-card,
.cabinet-page .requests-side-table{
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.cabinet-page .cab-table-responsive,
.cabinet-page .requests-side-table__table,
.cabinet-page .table-responsive:has(.cab-fixed-table),
.admin-page .table-responsive:has(.admin-table){
  width: 100% !important;
  border: 1px solid var(--vi-stroke, #E5E7E8) !important;
  border-radius: 24px !important;
  background: #fff !important;
  box-shadow: var(--vi-shadow-card, 0 12px 34px rgba(28,33,38,.06)) !important;
}
.cabinet-page .cab-side-table-block{
  display: grid;
  align-content: start;
  gap: 0;
}
.cabinet-page .table-responsive table,
.admin-page .table-responsive table{
  margin-bottom: 0 !important;
}
.cabinet-page .pagination-wrap,
.admin-page .pagination-wrap{
  border-top: 0 !important;
  padding: 14px 0 0 !important;
}

/* Parts remove button: inside row next to quantity; mobile top-right */
.parts-item-row{
  position: relative !important;
  overflow: hidden !important;
}
.parts-item-row__fields{
  display: grid !important;
  grid-template-columns: minmax(145px,.9fr) minmax(180px,1.1fr) minmax(132px,.7fr) 44px !important;
  gap: 16px !important;
  align-items: end !important;
}
.parts-item-remove{
  position: static !important;
  display: flex !important;
  align-items: end !important;
  justify-content: flex-end !important;
  min-width: 44px !important;
  width: 44px !important;
}
.parts-item-remove [data-remove-item]{
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  padding: 0 !important;
  border-radius: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
@media (max-width: 767.98px){
  .parts-item-row{
    padding: 16px !important;
    overflow: hidden !important;
  }
  .parts-item-row__fields{
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .parts-item-field--brand{
    padding-right: 56px !important;
  }
  .parts-item-remove{
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    z-index: 3;
    width: 44px !important;
  }
}

/* =========================================================
   ROUND 32 — modal tabs spacing / select dropdown overflow / field notes
   ========================================================= */

/* Modal title -> body rhythm */
#authModal .modal-body{
  padding-top: 24px !important;
}

/* Auth modal tabs: full-width baseline, wider item hit-zone, active underline wider and heavier */
#authModal .nav-tabs{
  width: 100% !important;
  display: flex !important;
  gap: 24px !important;
  border-bottom: 1px solid #D5D9DE !important;
  margin: 0 0 16px !important;
}

#authModal .nav-tabs .nav-item{
  display: inline-flex !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

#authModal .nav-tabs .nav-link{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: auto !important;
  padding: 0 12px 10px !important;
  margin: 0 0 -1px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #767D83 !important;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: 450 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
}

#authModal .nav-tabs .nav-link::after{
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -1px !important;
  height: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
}

#authModal .nav-tabs .nav-link.active{
  color: #1C2126 !important;
  font-weight: 450 !important;
}

#authModal .nav-tabs .nav-link.active::after{
  height: 3px !important;
  background: #1C2126 !important;
}

/* Notes under floating fields: exact 4px distance from field */
.field-group--float .floating-field + .vi-field-note,
.floating-field + .vi-field-note,
.field-group--float > .vi-field-note{
  margin-top: 4px !important;
}

/* Native and custom selectors: one DS visual model across main/cabinet/admin */
.vi-select-shell,
.static-picker,
.brand-combobox,
.vi-select-combobox{
  position: relative !important;
  overflow: visible !important;
}

.vi-select-shell .form-select,
select.vi-select,
.static-picker .js-static-picker-input,
.brand-combobox .js-brand-input{
  min-height: 52px !important;
  border-radius: 16px !important;
  padding-right: 52px !important;
  background-image: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
}

.static-picker__chevron,
.brand-combobox__chevron,
.vi-select-shell__chevron{
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: transparent !important;
  color: #93999E !important;
  pointer-events: none !important;
  transition: transform .16s ease, color .16s ease !important;
  z-index: 3 !important;
}

.static-picker__chevron::before,
.static-picker__chevron::after,
.brand-combobox__chevron::before,
.brand-combobox__chevron::after,
.vi-select-shell__chevron::before,
.vi-select-shell__chevron::after{
  display: none !important;
  content: none !important;
}

.static-picker__chevron .vi-icon,
.brand-combobox__chevron .vi-icon,
.vi-select-shell__chevron .vi-icon,
.static-picker__chevron .vi-icon-select,
.brand-combobox__chevron .vi-icon-select,
.vi-select-shell__chevron .vi-icon-select{
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  flex: 0 0 24px !important;
  color: currentColor !important;
}

.static-picker.is-open .static-picker__chevron,
.brand-combobox.is-open .brand-combobox__chevron,
.vi-select-shell.is-open .vi-select-shell__chevron{
  transform: translateY(-50%) rotate(180deg) !important;
}

.vi-select-shell::after{
  display: none !important;
  content: none !important;
}

/* Dropdown lists must never be clipped by form/card containers */
.cabinet-page .cab-main,
.cabinet-page .tab-content,
.cabinet-page .tab-pane,
.cabinet-page .panel,
.cabinet-page .panel-soft,
.admin-page .panel,
.admin-page .admin-panel-block,
.settings-page .panel{
  overflow: visible !important;
}

.cabinet-page .static-picker,
.cabinet-page .brand-combobox,
.admin-page .static-picker,
.admin-page .brand-combobox,
.admin-page .vi-select-shell,
.settings-page .static-picker,
.settings-page .brand-combobox{
  z-index: 20 !important;
}

.cabinet-page .static-picker.is-open,
.cabinet-page .brand-combobox.is-open,
.admin-page .static-picker.is-open,
.admin-page .brand-combobox.is-open,
.admin-page .vi-select-shell.is-open,
.settings-page .static-picker.is-open,
.settings-page .brand-combobox.is-open{
  z-index: 1200 !important;
}

.static-picker .brand-dropdown,
.static-picker-dropdown,
.brand-combobox .brand-dropdown{
  z-index: 1300 !important;
  border-radius: 16px !important;
  border: 1px solid var(--vi-stroke, #E5E7E8) !important;
  background: #fff !important;
  box-shadow: 0 18px 32px rgba(28,33,38,.12) !important;
  padding: 8px !important;
}

.static-picker .brand-dropdown__item,
.brand-combobox .brand-dropdown__item{
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 44px !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: var(--vi-text, #1C2126) !important;
  font-size: 14px !important;
  line-height: 20px !important;
  text-align: left !important;
  box-shadow: none !important;
}

.static-picker .brand-dropdown__item:hover,
.static-picker .brand-dropdown__item:focus-visible,
.brand-combobox .brand-dropdown__item:hover,
.brand-combobox .brand-dropdown__item:focus-visible{
  background: #F4F5F6 !important;
  color: var(--vi-text, #1C2126) !important;
  outline: none !important;
}

/* Keep table scrolling surfaces clipped only where tables need it */
.cabinet-page .table-responsive,
.admin-page .table-responsive{
  overflow-x: auto !important;
  overflow-y: visible !important;
}
/* =========================================================
   ROUND 33 — selector icon / auth tabs / status feature disabled
   ========================================================= */

/* Selector chevron: corporate drop-down icon, strict 24x24 everywhere */
.static-picker__chevron,
.brand-combobox__chevron,
.vi-select-shell__chevron{
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  flex: 0 0 24px !important;
}
.static-picker__chevron .vi-icon,
.brand-combobox__chevron .vi-icon,
.vi-select-shell__chevron .vi-icon,
.static-picker__chevron .vi-icon-select,
.brand-combobox__chevron .vi-icon-select,
.vi-select-shell__chevron .vi-icon-select{
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  flex: 0 0 24px !important;
  display: block !important;
}

/* Auth modal tabs: no gap between nav items, full baseline, active line overlays baseline */
#authModal .nav-tabs{
  gap: 0 !important;
  column-gap: 0 !important;
  border-bottom: 1px solid #D5D9DE !important;
  margin: 0 0 16px !important;
}
#authModal .nav-tabs .nav-item{
  margin: 0 !important;
  padding: 0 !important;
}
#authModal .nav-tabs .nav-link{
  font-size: 14px !important;
  line-height: 20px !important;
  padding: 0 16px 10px !important;
  margin: 0 0 -1px !important;
  box-shadow: none !important;
  border: 0 !important;
  border-bottom: 0 !important;
}
#authModal .nav-tabs .nav-link::after{
  bottom: -1px !important;
  height: 0 !important;
  border-radius: 999px !important;
}
#authModal .nav-tabs .nav-link.active{
  box-shadow: none !important;
  border: 0 !important;
  border-bottom: 0 !important;
}
#authModal .nav-tabs .nav-link.active::after{
  height: 3px !important;
  background: #1C2126 !important;
}

/* Status check UI is temporarily disabled;

/* =========================================================
   ROUND 34 — auth tabs overlay + CTA policy alignment
   ========================================================= */

#authModal .nav-tabs{
  position: relative !important;
  gap: 0 !important;
  column-gap: 0 !important;
  border-bottom: 0 !important;
  margin: 0 0 16px !important;
  padding-bottom: 0 !important;
}
#authModal .nav-tabs::before{
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 1px !important;
  background: #D5D9DE !important;
  border-radius: 999px !important;
  z-index: 0 !important;
  pointer-events: none !important;
}
#authModal .nav-tabs .nav-item{
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#authModal .nav-tabs .nav-link{
  position: relative !important;
  z-index: 1 !important;
  padding: 0 16px 10px !important;
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  font-size: 14px !important;
  line-height: 20px !important;
}
#authModal .nav-tabs .nav-link::after{
  content: "" !important;
  position: absolute !important;
  left: 16px !important;
  right: 16px !important;
  bottom: 0 !important;
  height: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  z-index: 2 !important;
  pointer-events: none !important;
}
#authModal .nav-tabs .nav-link.active::after{
  height: 4px !important;
  background: #1C2126 !important;
}

#cta .field-group--policy .policy,
#cta .policy,
.cta-form-glass .policy{
  grid-template-columns: 20px minmax(0, 1fr) !important;
  align-items: start !important;
  column-gap: 12px !important;
}
#cta .field-group--policy .policy__control,
#cta .policy__control,
.cta-form-glass .policy__control{
  align-self: start !important;
  margin-top: 0 !important;
  transform: none !important;
}
#cta .field-group--policy .policy__text,
#cta .policy__text,
.cta-form-glass .policy__text{
  display: block !important;
  margin: 0 !important;
  padding-top: 0 !important;
  line-height: 20px !important;
}
#cta .field-group--policy .policy__meta,
#cta .policy__meta,
.cta-form-glass .policy__meta{
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 20px !important;
  vertical-align: top !important;
}
#cta .policy__required,
.cta-form-glass .policy__required{
  display: none !important;
}

/* =========================================================
   PATCH — Brands showcase media: 3 separate image panels
   ========================================================= */
#brands .brands-image-wrap.brands-showcase__media{
  width:min(100%, 1180px) !important;
  margin:0 auto 24px !important;
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  align-items:stretch;
  justify-content:center;
  overflow:visible !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#brands .brands-image-wrap.brands-showcase__media::before,
#brands .brands-image-wrap.brands-showcase__media::after{
  display:none !important;
}

#brands .brands-image-wrap.brands-showcase__media .brands-image{
  display:block !important;
  width:100% !important;
  height:220px !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover;
  object-position:center;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:none !important;
  filter:none !important;
  background:#F5F6F7;
}

@media (max-width: 991.98px){
  #brands .brands-image-wrap.brands-showcase__media{
    grid-template-columns:1fr;
    gap:12px;
  }

  #brands .brands-image-wrap.brands-showcase__media .brands-image{
    height:180px !important;
  }
}

@media (max-width: 575.98px){
  #brands .brands-image-wrap.brands-showcase__media{
    margin-bottom:18px !important;
  }

  #brands .brands-image-wrap.brands-showcase__media .brands-image{
    height:150px !important;
    border-radius:16px !important;
  }
}

/* =========================================================
   FINAL PATCH — Brands tools images exact 1344px row
   Требование: внешние края трёх tools-картинок = 1344px,
   боковых внутренних отступов нет, отступы только между картинками.
   ========================================================= */

#brands .brands-showcase{
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#brands .brands-image-wrap.brands-showcase__media{
  width: 1344px !important;
  max-width: min(1344px, calc(100vw - 32px)) !important;
  margin: 0 auto 24px !important;

  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;

  padding: 0 !important;
  min-height: 0 !important;
  align-items: stretch !important;
  justify-content: stretch !important;

  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

#brands .brands-image-wrap.brands-showcase__media::before,
#brands .brands-image-wrap.brands-showcase__media::after{
  content: none !important;
  display: none !important;
}

#brands .brands-image-wrap.brands-showcase__media > .brands-image{
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;

  height: 220px !important;
  max-height: none !important;

  object-fit: cover !important;
  object-position: center !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  filter: none !important;
  background: #F5F6F7 !important;
  box-sizing: border-box !important;
}

@media (max-width: 991.98px){
  #brands .brands-image-wrap.brands-showcase__media{
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  #brands .brands-image-wrap.brands-showcase__media > .brands-image{
    height: 180px !important;
  }
}

@media (max-width: 575.98px){
  #brands .brands-image-wrap.brands-showcase__media{
    margin-bottom: 18px !important;
  }

  #brands .brands-image-wrap.brands-showcase__media > .brands-image{
    height: 150px !important;
    border-radius: 16px !important;
  }
}

/* CSP style-src hardening utilities */
.vi-z-toast { z-index: 1080; }
.vi-auth-narrow { max-width: 520px; }
.vi-card-rounded-16 { border-radius: 16px; }
.vi-text-13 { font-size: 13px; }
.vi-text-14 { font-size: 14px; }
.vi-w-auto { width: auto; }

.pl-delay-0 { --i: 0; }
.pl-delay-1 { --i: 1; }
.pl-delay-2 { --i: 2; }
.pl-delay-3 { --i: 3; }
.pl-delay-4 { --i: 4; }
.pl-delay-5 { --i: 5; }

.vi-col-8 { width: 8%; }
.vi-col-12 { width: 12%; }
.vi-col-14 { width: 14%; }
.vi-col-15 { width: 15%; }
.vi-col-16 { width: 16%; }
.vi-col-18 { width: 18%; }
.vi-col-19 { width: 19%; }
.vi-col-22 { width: 22%; }
.vi-col-26 { width: 26%; }
.vi-col-28 { width: 28%; }

.vi-honeypot-field {
  position: absolute;
  left: -9999px;
  top: -9999px;
  height: 1px;
  width: 1px;
  opacity: 0;
  pointer-events: none;
}

/* =========================================================
   DESIGN FIXES — header shadow / frameless brands + CTA / grey footer
   Request: 2026-06-04
   ========================================================= */

/* 1) Header: легкая мягкая тень без тяжелой “полки” */
.site-header{
  box-shadow:
    0 10px 30px rgba(28, 33, 38, .075),
    0 1px 0 rgba(28, 33, 38, .045) !important;
}

.site-header__topbar,
.site-header__nav{
  background: rgba(255,255,255,.97) !important;
}

/* 2) Brands: список без рамки, ширина уходит в полезный контент */
#brands .brands-showcase__panel,
#brands .brands-panel{
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: clamp(4px, .8vw, 10px) 0 0 !important;
}

#brands .brands-directory--triple{
  width: 100% !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px 40px !important;
  align-items: start !important;
}

#brands .brands-directory--triple .brand-group,
#brands .brand-group--stacked{
  min-width: 0 !important;
}

#brands .brands-directory--triple .brand-group__items,
#brands .brands-directory--triple .brand-group__items--stacked{
  gap: 5px 12px !important;
}

/* 3) CTA: убираем рамку вокруг карточки и отдаём место содержимому */
#cta .cta-glass-inner,
.cta-glass-inner{
  border: 0 !important;
  padding: clamp(24px, 2.65vw, 34px) !important;
  box-shadow: 0 26px 70px rgba(28,33,38,.075) !important;
}

@media (min-width: 992px){
  #cta .cta-glass-inner,
  .cta-glass-inner{
    grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr) !important;
    gap: clamp(28px, 2.8vw, 42px) !important;
  }
}

/* 4) Footer: мягкий серый фон вместо белого */
.site-footer,
.site-footer.bg-white{
  background:
    linear-gradient(180deg, #F5F6F7 0%, #EEF0F2 100%) !important;
  border-top: 1px solid rgba(28,33,38,.08) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75) !important;
}

/* Мобилка: сохраняем компактность после расширения desktop-сетки */
@media (max-width: 991.98px){
  #brands .brands-directory--triple{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 22px !important;
  }
}

@media (max-width: 575.98px){
  #brands .brands-directory--triple{
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  #cta .cta-glass-inner,
  .cta-glass-inner{
    padding: 22px 18px !important;
  }
}


/* =========================================================
   ROUND 2 DESIGN FIXES — header bottom shadow + frameless CTA
   Request: 2026-06-04
   ========================================================= */

/* Header: shadow is rendered strictly below the fixed header */
.site-header{
  box-shadow: none !important;
  overflow: visible !important;
}

.site-header::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -18px;
  height: 18px;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(28, 33, 38, .105) 0%,
    rgba(28, 33, 38, .055) 42%,
    rgba(28, 33, 38, 0) 100%
  );
  opacity: .9;
}

/* CTA: remove the visible main container completely, leave only content */
#cta .cta-container,
.cta-container{
  max-width: 1320px !important;
}

#cta .cta-glass-inner,
.cta-glass-inner{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

@media (min-width: 992px){
  #cta .cta-glass-inner,
  .cta-glass-inner{
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, .88fr) !important;
    gap: clamp(42px, 5vw, 72px) !important;
    align-items: center !important;
  }

  #cta .cta-info,
  .cta-info{
    min-width: 0 !important;
  }

  #cta .cta-form-glass,
  .cta-form-glass{
    padding-top: 0 !important;
    align-self: center !important;
    justify-content: center !important;
    min-width: 0 !important;
  }
}

@media (max-width: 991.98px){
  #cta.cta-glass,
  .cta-glass{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  #cta .cta-glass-inner,
  .cta-glass-inner{
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    align-items: start !important;
  }

  #cta .cta-form-glass,
  .cta-form-glass{
    padding-top: 0 !important;
    align-self: stretch !important;
  }
}

@media (max-width: 575.98px){
  #cta.cta-glass,
  .cta-glass{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* =========================================================
   ROUND 3 DESIGN FIX — header border instead of shadow
   Request: 2026-06-04
   ========================================================= */

.site-header{
  box-shadow: none !important;
  border-bottom: 1px solid rgba(28,33,38,.08) !important;
}

.site-header::after{
  content: none !important;
  display: none !important;
}
/* =========================================================
   VI Service catalogue / parts sale / admin compact pass
   Request: 2026-06-10
   ========================================================= */
.parts-sale-section{
  background:#fff;
}
.parts-sale-container{
  max-width:1320px;
}
.parts-sale-card{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.72fr);
  gap:clamp(24px,4vw,56px);
  align-items:center;
  padding:clamp(22px,3.6vw,48px);
  overflow:hidden;
}
.parts-sale-copy{min-width:0;}
.parts-sale-lead{max-width:760px;font-size:clamp(1rem,1.35vw,1.12rem);}
.parts-sale-audience-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.parts-sale-audience-card{
  border:1px solid rgba(28,33,38,.08);
  border-radius:22px;
  background:linear-gradient(180deg,#fff 0%,#F8FAFC 100%);
  padding:18px;
  min-width:0;
}
.parts-sale-audience-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.parts-sale-audience-card h3{
  margin:0;
  font-size:1.05rem;
  font-weight:700;
}
.parts-sale-avito-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:92px;
  max-width:118px;
  padding:6px 8px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(28,33,38,.08);
  transition:transform .18s ease, box-shadow .18s ease;
}
.parts-sale-avito-link:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(28,33,38,.08);
}
.parts-sale-avito-logo{display:block;width:100%;height:auto;}
.parts-sale-visual{
  min-width:0;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
}
.parts-sale-visual__img{
  width:min(100%,440px);
  aspect-ratio:5/4;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 28px 70px rgba(28,33,38,.14);
  background:#EEF2F6;
}
@media (max-width:991.98px){
  .parts-sale-card{grid-template-columns:1fr;padding:22px;gap:22px;}
  .parts-sale-visual{order:-1;}
  .parts-sale-visual__img{width:100%;max-height:340px;}
}
@media (max-width:575.98px){
  .parts-sale-section{padding-left:14px;padding-right:14px;}
  .parts-sale-card{padding:18px;border-radius:24px;}
  .parts-sale-audience-grid{grid-template-columns:1fr;}
  .parts-sale-audience-card__head{align-items:flex-start;}
  .parts-sale-avito-link{min-width:84px;}
}

.catalogue-page{
  min-height:100vh;
  background:linear-gradient(180deg,#F7F8FA 0%,#EEF1F4 100%);
}
.catalogue-shell{max-width:1320px;}
.catalogue-topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.catalogue-title{
  font-size:clamp(2rem,4vw,3.6rem);
  font-weight:750;
  letter-spacing:-.035em;
}
.catalogue-filter{border-radius:26px;}
.catalogue-filter__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.catalogue-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:22px;
  align-items:start;
}
.catalogue-results{min-width:0;}
.catalogue-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.catalogue-card{
  display:grid;
  grid-template-rows:auto 1fr;
  overflow:hidden;
  min-width:0;
}
.catalogue-card__media{
  aspect-ratio:5/4;
  background:#EEF2F6;
  border-radius:22px;
  overflow:hidden;
}
.catalogue-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.catalogue-card__body{padding:16px;display:grid;gap:10px;}
.catalogue-card__title{font-weight:700;line-height:1.18;min-height:2.36em;}
.catalogue-card__meta{display:grid;gap:3px;color:#6C757D;font-size:.9rem;}
.catalogue-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;}
.catalogue-price{font-weight:800;font-size:1.05rem;white-space:nowrap;}
.catalogue-cart-panel{position:sticky;top:96px;border-radius:26px;}
.catalogue-cart-list{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:2px;}
.catalogue-cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid rgba(28,33,38,.08);border-radius:18px;background:#fff;}
.catalogue-cart-item__title{font-weight:700;line-height:1.2;}
.catalogue-cart-item__meta{font-size:.82rem;color:#6C757D;}
.catalogue-cart-item__controls{display:flex;align-items:center;gap:6px;}
.catalogue-cart-item__qty{width:64px;text-align:center;}
.catalogue-cart-total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(28,33,38,.08);padding-top:14px;margin-top:14px;}
.catalogue-order-list{display:grid;gap:8px;margin-bottom:14px;}
.catalogue-order-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 12px;border-radius:16px;background:#F7F8FA;border:1px solid rgba(28,33,38,.07);}
.catalogue-order-item__name{font-weight:700;line-height:1.2;}
.catalogue-order-item__meta{font-size:.84rem;color:#6C757D;}
.catalogue-order-item__sum{font-weight:800;white-space:nowrap;}
@media (max-width:1199.98px){.catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:991.98px){
  .catalogue-layout{grid-template-columns:1fr;}
  .catalogue-cart-panel{position:static;}
  .catalogue-topbar{align-items:stretch;}
}
@media (max-width:575.98px){
  .catalogue-shell{padding-left:14px;padding-right:14px;}
  .catalogue-topbar{display:grid;}
  .catalogue-grid{grid-template-columns:1fr;}
  .catalogue-card__bottom{align-items:stretch;display:grid;}
  .catalogue-filter__footer{align-items:stretch;}
}

.request-items-compact{display:grid;gap:8px;}
.request-item-compact{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
  padding:10px 12px;
  border:1px solid rgba(28,33,38,.08);
  border-radius:16px;
  background:#fff;
}
.request-item-compact__main{min-width:0;}
.request-item-compact__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.86rem;white-space:nowrap;}
.admin-price-grid{display:grid;gap:8px;}
.admin-price-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:8px;align-items:center;font-size:.9rem;}
.admin-price-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-section-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.admin-shell{max-width:1500px;}
.admin-panel-block{overflow:hidden;}
.admin-table{font-size:.88rem;}
.admin-table td,.admin-table th{vertical-align:middle;}
.admin-compact-name{max-width:340px;}
@media (min-width:992px){
  .admin-table td,.admin-table th{white-space:nowrap;}
  .admin-table .admin-request-details,.admin-table .admin-request-details *{white-space:normal;}
}

.chat-composer__files{display:flex;gap:6px;flex-wrap:wrap;min-height:28px;align-items:center;}
.chat-file-chip{display:inline-flex;max-width:190px;padding:4px 8px;border-radius:999px;background:#F0F3F6;border:1px solid rgba(28,33,38,.08);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

@media (max-width:767.98px){
  .table-responsive{overflow-x:visible;}
  .vi-responsive-table,.vi-responsive-table thead,.vi-responsive-table tbody,.vi-responsive-table tr,.vi-responsive-table th,.vi-responsive-table td{display:block;width:100%;}
  .vi-responsive-table thead{display:none;}
  .vi-responsive-table tr{border:1px solid rgba(28,33,38,.08);border-radius:18px;background:#fff;margin-bottom:12px;padding:10px;box-shadow:0 10px 24px rgba(28,33,38,.04);}
  .vi-responsive-table td{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;border:0!important;padding:7px 4px!important;white-space:normal!important;}
  .vi-responsive-table td::before{content:attr(data-label);font-weight:700;color:#6C757D;font-size:.8rem;}
  .request-item-compact{grid-template-columns:1fr;}
  .request-item-compact__meta{align-items:flex-start;flex-direction:row;flex-wrap:wrap;}
  .admin-price-row{grid-template-columns:1fr;}
}
.catalogue-cart{position:sticky;top:96px;border-radius:26px;padding:18px;}
.catalogue-cart__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.catalogue-cart__items{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:2px;}
.catalogue-cart__footer{display:grid;gap:10px;border-top:1px solid rgba(28,33,38,.08);padding-top:14px;margin-top:14px;}
.catalogue-cart__total{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.catalogue-checkout-list{display:grid;gap:8px;}
.catalogue-checkout-modal{border:0;border-radius:28px;overflow:hidden;}
@media (max-width:991.98px){.catalogue-cart{position:static;}}
.catalogue-cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(28,33,38,.08);border-radius:18px;background:#fff;}
.catalogue-cart-row__main{min-width:0;}
.catalogue-cart-row__title{font-weight:700;line-height:1.18;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.catalogue-cart-row__meta{font-size:.82rem;color:#6C757D;line-height:1.25;}
.catalogue-cart-row__controls{display:flex;align-items:center;gap:6px;}
.catalogue-cart-row__controls input{width:68px;text-align:center;}
.catalogue-cart-row__sum{font-weight:800;white-space:nowrap;}
@media (max-width:575.98px){.catalogue-cart-row{grid-template-columns:1fr;}.catalogue-cart-row__controls{justify-content:space-between;}}

/* Security/UI helper: CSRF-protected POST actions styled as links/buttons. */
.vi-inline-form {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.vi-link-button {
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.vi-link-button:hover,
.vi-link-button:focus-visible {
  text-decoration: underline;
}

/* =========================================================
   VI Service companies / landing clean-up
   Request: 2026-06-23
   ========================================================= */
.cab-topbar-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:10px;
}

.parts-sale-section{
  background:#fff !important;
}
.parts-sale-section .container{
  max-width:1140px;
}
.parts-sale-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);
  gap:clamp(24px,4vw,48px);
  align-items:center;
}
.parts-sale-layout .parts-sale-copy{
  min-width:0;
}
.parts-sale-layout .parts-sale-lead{
  max-width:680px;
  font-size:clamp(1rem,1.25vw,1.12rem);
}
.parts-sale-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-bottom:16px;
}
.parts-sale-action{
  min-width:184px;
  justify-content:center;
}
.parts-sale-note{
  max-width:620px;
  font-size:14px;
  line-height:1.55;
}
.parts-sale-layout .parts-sale-visual{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.parts-sale-layout .parts-sale-visual__img{
  width:min(100%,420px);
  height:auto;
  max-height:360px;
  aspect-ratio:auto;
  object-fit:contain;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

.service-center-card--single{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(320px,.8fr);
  align-items:stretch;
  max-width:1040px;
  margin:0 auto;
}
.service-center-card--single .service-center-card__media{
  aspect-ratio:auto;
  min-height:320px;
}
.service-center-card--single .service-center-card__body{
  align-content:center;
  padding:clamp(24px,4vw,42px);
}
.service-center-card--single .service-center-card__actions{
  margin-top:12px;
}

@media (max-width:991.98px){
  .cab-topbar-actions{width:100%;}
  .cab-topbar-actions .btn{width:100%;}
  .parts-sale-layout{grid-template-columns:1fr;}
  .parts-sale-layout .parts-sale-visual{order:-1;}
  .parts-sale-layout .parts-sale-visual__img{max-height:300px;}
  .service-center-card--single{grid-template-columns:1fr;}
  .service-center-card--single .service-center-card__media{min-height:240px;aspect-ratio:16/9;}
}

@media (max-width:575.98px){
  .parts-sale-action{width:100%;min-width:0;}
  .parts-sale-actions{gap:10px;}
}

/* =========================================================
   ROUND 31 — dashboard catalogue, company form, landing polish
   Request: 2026-06-23
   ========================================================= */
.cab-brand--link{
  color:inherit !important;
  text-decoration:none !important;
}
.cab-brand--link:hover,
.cab-brand--link:focus-visible{
  color:inherit !important;
  text-decoration:none !important;
}

#parts-sale > .container,
#parts-sale .parts-sale-container,
#service-centers > .container{
  width:100% !important;
  max-width:var(--vi-section-width) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:var(--vi-section-padding-x, var(--bs-gutter-x, .75rem)) !important;
  padding-right:var(--vi-section-padding-x, var(--bs-gutter-x, .75rem)) !important;
  box-sizing:border-box !important;
}
.parts-sale-section .container{
  max-width:var(--vi-section-width) !important;
}
.parts-sale-panel{
  border:1px solid rgba(28,33,38,.10);
  border-radius:32px;
  padding:clamp(22px,3.4vw,44px);
  background:linear-gradient(180deg,#fff 0%,#FAFBFC 100%);
  box-shadow:none !important;
}
.parts-sale-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.parts-sale-action{
  min-width:190px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.parts-sale-action--avito{
  min-width:142px;
  padding-left:18px !important;
  padding-right:18px !important;
  background:#fff !important;
}
.parts-sale-action__logo{
  display:block;
  width:92px;
  height:auto;
  max-height:28px;
}
.parts-sale-visual-frame{
  width:min(100%,440px);
  aspect-ratio:5/4;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:28px;
  background:#F2F5F7;
  border:1px solid rgba(28,33,38,.08);
}
.parts-sale-layout .parts-sale-visual__img,
.parts-sale-visual__img{
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  object-fit:cover !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

.service-center-card--single{
  max-width:none !important;
  width:100%;
  grid-template-columns:minmax(0,.92fr) minmax(360px,.78fr);
  border-radius:32px !important;
}
.service-center-card--single .service-center-card__media{
  min-height:360px;
}
.service-center-card__content{
  display:grid;
  gap:14px;
}
.service-center-card__meta{
  display:grid;
  gap:8px;
  margin-top:4px;
  color:var(--vi-text-secondary);
  font-size:14px;
  line-height:1.45;
}
.service-center-card__meta span{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.service-center-card__meta span::before{
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--vi-primary);
  flex:0 0 auto;
  margin-top:.55em;
}
.service-center-card--single .service-center-card__body{
  justify-content:center;
  align-content:center;
  gap:24px;
}
.service-center-card--single .service-center-card__actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:0;
}
.service-center-card__btn{
  min-height:48px;
  border-radius:16px;
  padding:0 18px;
}
.service-center-card__btn--primary{
  background:var(--vi-primary) !important;
  border-color:var(--vi-primary) !important;
  color:#fff !important;
}
.service-center-card__btn--primary:hover,
.service-center-card__btn--primary:focus-visible{
  background:var(--vi-primary-dark, var(--vi-primary)) !important;
  border-color:var(--vi-primary-dark, var(--vi-primary)) !important;
  color:#fff !important;
}

.admin-catalogue-thumb{
  width:52px;
  height:52px;
  border-radius:14px;
  object-fit:cover;
  background:#EEF2F6;
  border:1px solid rgba(28,33,38,.08);
  flex:0 0 auto;
}
.catalogue-admin-preview{
  width:100%;
  aspect-ratio:5/4;
  border-radius:22px;
  overflow:hidden;
  background:#EEF2F6;
  border:1px solid rgba(28,33,38,.08);
}
.catalogue-admin-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.admin-catalogue-table .admin-compact-name{max-width:420px;}

@media (max-width:991.98px){
  .parts-sale-panel{border-radius:26px;padding:20px;}
  .parts-sale-visual-frame{width:100%;max-height:320px;}
  .service-center-card--single{grid-template-columns:1fr;}
  .service-center-card--single .service-center-card__media{min-height:240px;aspect-ratio:16/9;}
  .service-center-card--single .service-center-card__actions{grid-template-columns:1fr;}
}
@media (max-width:575.98px){
  .parts-sale-action{width:100%;min-width:0;}
  .parts-sale-action--avito{justify-content:center;}
}

/* =========================================================
   ROUND 33 — manager/catalogue/status polish
   Request: 2026-06-23 fix3
   ========================================================= */
.admin-page .form-control,
.admin-page .form-select,
.settings-page .form-control,
.settings-page .form-select,
.catalogue-page .form-control,
.catalogue-page .form-select{
  min-height:48px;
  border-radius:16px !important;
  border-color:rgba(28,33,38,.12) !important;
  background-color:#fff !important;
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease, transform .16s ease;
}
.admin-page .form-control:focus,
.admin-page .form-select:focus,
.settings-page .form-control:focus,
.settings-page .form-select:focus,
.catalogue-page .form-control:focus,
.catalogue-page .form-select:focus{
  border-color:rgba(214,0,0,.42) !important;
  box-shadow:0 0 0 4px rgba(214,0,0,.08) !important;
}
.admin-page .form-control::placeholder,
.settings-page .form-control::placeholder,
.catalogue-page .form-control::placeholder{
  color:#8A9299;
  opacity:1;
}
.admin-page .vi-select-shell,
.settings-page .vi-select-shell,
.catalogue-page .vi-select-shell{
  position:relative;
}
.admin-page .vi-select-shell::before,
.settings-page .vi-select-shell::before,
.catalogue-page .vi-select-shell::before{
  content:'';
  position:absolute;
  right:18px;
  top:50%;
  width:9px;
  height:9px;
  border-right:2px solid #8A9299;
  border-bottom:2px solid #8A9299;
  transform:translateY(-62%) rotate(45deg);
  pointer-events:none;
  z-index:3;
  transition:transform .16s ease, border-color .16s ease;
}
.admin-page .vi-select-shell:focus-within::before,
.settings-page .vi-select-shell:focus-within::before,
.catalogue-page .vi-select-shell:focus-within::before{
  transform:translateY(-35%) rotate(225deg);
  border-color:var(--vi-primary, #D60000);
}
.admin-page select.vi-select,
.settings-page select.vi-select,
.catalogue-page select.vi-select{
  padding-right:48px !important;
}
.admin-corporate-form .form-label,
.admin-page .form-label,
.catalogue-filter .form-label{
  font-size:13px;
  font-weight:650;
  color:#4B535A;
  margin-bottom:7px;
}
.settings-contact-grid .settings-card{
  display:flex;
  flex-direction:column;
}
.settings-contact-grid .settings-card form{
  flex:0 0 auto;
}
.parts-item-row.panel.panel-soft{
  border:0 !important;
  box-shadow:none !important;
  background:#F8FAFC !important;
  border-radius:20px !important;
  padding:14px !important;
  max-width:100%;
}
.parts-item-row__fields{
  max-width:100%;
  min-width:0;
  grid-template-columns:minmax(130px,.85fr) minmax(150px,1.2fr) minmax(96px,.55fr) 44px !important;
  gap:12px !important;
}
.parts-item-field,
.parts-item-field .brand-combobox,
.parts-item-field .form-control{
  min-width:0;
}
@media (max-width:767.98px){
  .parts-item-row.panel.panel-soft{padding:12px !important;}
  .parts-item-row__fields{grid-template-columns:1fr !important;}
}
.catalogue-page,
.catalogue-page.bg-body{
  min-height:100vh !important;
  background:linear-gradient(180deg,#F7F8FA 0%,#EEF1F4 100%) fixed !important;
}
.catalogue-shell{
  max-width:1368px !important;
  min-height:100vh;
}
.catalogue-filter{
  border:1px solid rgba(28,33,38,.08) !important;
  box-shadow:0 12px 34px rgba(28,33,38,.055) !important;
}
.catalogue-filter .row{
  align-items:center !important;
}
.catalogue-table-card{
  padding:10px !important;
  border-radius:24px !important;
  border:1px solid rgba(28,33,38,.08) !important;
}
.catalogue-table th{
  color:#6C757D;
  font-size:.78rem;
  font-weight:700;
  text-transform:none;
  border-bottom-color:rgba(28,33,38,.08) !important;
}
.catalogue-table td{
  padding-top:12px !important;
  padding-bottom:12px !important;
}
.catalogue-add-btn{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-radius:14px !important;
  min-height:38px;
  padding-inline:14px !important;
  white-space:nowrap;
}
.catalogue-card.panel{
  border:1px solid rgba(28,33,38,.08) !important;
  border-radius:22px !important;
  box-shadow:0 10px 26px rgba(28,33,38,.05) !important;
}
.catalogue-card__body{
  padding:14px !important;
  gap:8px !important;
}
.catalogue-card__media{
  margin:10px 10px 0;
  border-radius:18px !important;
}
.catalogue-card__bottom{
  gap:10px !important;
}
.catalogue-cart-bubble{
  display:none;
  position:fixed;
  top:18px;
  right:18px;
  z-index:1050;
  width:52px;
  height:52px;
  border:0;
  border-radius:999px;
  background:var(--vi-primary, #D60000);
  color:#fff;
  box-shadow:0 16px 36px rgba(214,0,0,.28);
  align-items:center;
  justify-content:center;
}
.catalogue-cart-bubble i{font-size:1.25rem;line-height:1;}
.catalogue-cart-bubble span{
  position:absolute;
  right:-4px;
  top:-5px;
  min-width:22px;
  height:22px;
  border-radius:999px;
  background:#1C2126;
  color:#fff;
  border:2px solid #fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 5px;
  font-size:11px;
  font-weight:800;
}
@media (max-width:991.98px){
  .catalogue-layout{grid-template-columns:1fr !important;}
  .catalogue-layout > .catalogue-cart{display:none !important;}
  .catalogue-cart-bubble{display:inline-flex;}
  .catalogue-topbar{padding-right:58px;}
}
@media (max-width:767.98px){
  .catalogue-table-card{padding:0 !important;border:0 !important;background:transparent !important;box-shadow:none !important;}
  .catalogue-table.vi-responsive-table tr{border-radius:20px !important;}
  .catalogue-table .catalogue-add-btn{width:100%;}
}
#parts-sale > .container,
#parts-sale .parts-sale-container,
#service-centers > .container{
  max-width:var(--vi-section-width) !important;
}
.parts-sale-panel{
  border:1px solid rgba(28,33,38,.12) !important;
}
.service-center-card--single .service-center-card__body{
  padding:clamp(24px,4vw,48px) !important;
}
.service-center-card--single .service-center-card__actions .btn,
.service-center-card__btn{
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
}

/* =========================================================
   ROUND 34 — catalogue cards, admin mobile, select parity
   Request: 2026-06-23 fix4
   ========================================================= */
html{
  overflow-y:scroll;
  scrollbar-gutter:stable;
}
body.home-page{
  overflow-x:hidden;
  overflow-y:visible;
}

/* Selects: one corporate arrow only, close to CTA static picker style */
.vi-select-shell::after,
.admin-page .vi-select-shell::after,
.settings-page .vi-select-shell::after,
.catalogue-page .vi-select-shell::after,
.modal .vi-select-shell::after{
  content:none !important;
  display:none !important;
}
.admin-page .vi-select-shell,
.settings-page .vi-select-shell,
.catalogue-page .vi-select-shell,
.modal .vi-select-shell{
  position:relative !important;
  display:block !important;
  width:100% !important;
}
.admin-page .vi-select-shell::before,
.settings-page .vi-select-shell::before,
.catalogue-page .vi-select-shell::before,
.modal .vi-select-shell::before{
  content:'' !important;
  position:absolute !important;
  right:18px !important;
  top:50% !important;
  width:16px !important;
  height:16px !important;
  border:0 !important;
  transform:translateY(-50%) !important;
  background:no-repeat center/16px 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='351 179 18 12' fill='none'%3E%3Cpath d='M366.28 181.528C366.108 181.356 365.904 181.27 365.668 181.27C365.433 181.27 365.229 181.356 365.057 181.528L360.009 186.576L354.943 181.511C354.783 181.35 354.582 181.27 354.34 181.27C354.099 181.27 353.892 181.356 353.72 181.528C353.548 181.701 353.462 181.905 353.462 182.14C353.462 182.376 353.548 182.579 353.72 182.752L359.526 188.54C359.595 188.609 359.67 188.658 359.75 188.687C359.831 188.716 359.917 188.73 360.009 188.73C360.1 188.73 360.187 188.716 360.267 188.687C360.347 188.658 360.422 188.609 360.491 188.54L366.297 182.734C366.458 182.574 366.538 182.376 366.538 182.14C366.538 181.905 366.452 181.701 366.28 181.528Z' fill='%23767D83'/%3E%3C/svg%3E") !important;
  pointer-events:none !important;
  z-index:4 !important;
  transition:filter .16s ease, opacity .16s ease !important;
}
.admin-page .vi-select-shell:focus-within::before,
.settings-page .vi-select-shell:focus-within::before,
.catalogue-page .vi-select-shell:focus-within::before,
.modal .vi-select-shell:focus-within::before{
  filter:brightness(.72) sepia(1) saturate(3) hue-rotate(320deg) !important;
}
.admin-page select.form-select,
.settings-page select.form-select,
.catalogue-page select.form-select,
.modal select.form-select,
.admin-page select.vi-select,
.settings-page select.vi-select,
.catalogue-page select.vi-select,
.modal select.vi-select{
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  background-image:none !important;
  padding-right:50px !important;
  cursor:pointer !important;
}
.admin-page .form-control,
.admin-page .form-select,
.settings-page .form-control,
.settings-page .form-select,
.catalogue-page .form-control,
.catalogue-page .form-select{
  color:var(--vi-text, #1C2126) !important;
}

/* Public catalogue: return compact cards with safe SVG placeholders */
.catalogue-page,
.catalogue-page.bg-body{
  min-height:100vh !important;
  background:linear-gradient(180deg,#F7F8FA 0%,#EEF1F4 100%) fixed !important;
}
.catalogue-shell{
  max-width:1368px !important;
  min-height:100vh !important;
}
.catalogue-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(236px, 1fr)) !important;
  gap:16px !important;
}
.catalogue-card.panel{
  display:grid !important;
  grid-template-rows:auto 1fr !important;
  min-width:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(28,33,38,.08) !important;
  border-radius:24px !important;
  background:#fff !important;
  box-shadow:0 12px 30px rgba(28,33,38,.055) !important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}
.catalogue-card.panel:hover,
.catalogue-card.panel:focus-within{
  transform:translateY(-2px) !important;
  border-color:rgba(214,0,0,.18) !important;
  box-shadow:0 16px 36px rgba(28,33,38,.08) !important;
}
.catalogue-card__media{
  margin:12px 12px 0 !important;
  aspect-ratio:4/3 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:20px !important;
  background:linear-gradient(180deg,#F6F8FA 0%,#EEF2F5 100%) !important;
  border:1px solid rgba(28,33,38,.06) !important;
  overflow:hidden !important;
  padding:20px !important;
}
.catalogue-card__media img,
.catalogue-admin-preview img,
.admin-catalogue-thumb{
  object-fit:contain !important;
  object-position:center !important;
}
.catalogue-card__media img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  display:block !important;
}
.catalogue-card__body{
  display:grid !important;
  grid-template-rows:auto auto 1fr auto !important;
  gap:10px !important;
  padding:14px !important;
}
.catalogue-card__head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  min-width:0 !important;
}
.catalogue-card__brand,
.catalogue-card__stock{
  display:inline-flex !important;
  align-items:center !important;
  min-height:26px !important;
  border-radius:999px !important;
  padding:4px 9px !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:700 !important;
}
.catalogue-card__brand{
  max-width:58% !important;
  color:#1C2126 !important;
  background:#F1F3F5 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.catalogue-card__stock{
  color:#59636C !important;
  background:#fff !important;
  border:1px solid rgba(28,33,38,.08) !important;
  white-space:nowrap !important;
}
.catalogue-card__title{
  margin:0 !important;
  min-height:2.45em !important;
  font-size:1rem !important;
  line-height:1.22 !important;
  font-weight:750 !important;
  color:#1C2126 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.catalogue-card__meta{
  display:grid !important;
  gap:4px !important;
  min-width:0 !important;
  color:#6C757D !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.catalogue-card__meta span,
.catalogue-card__meta b{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.catalogue-card__bottom{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  align-items:stretch !important;
  margin-top:2px !important;
}
.catalogue-price{
  font-size:1.12rem !important;
  line-height:1.15 !important;
  font-weight:850 !important;
  color:#1C2126 !important;
}
.catalogue-add-btn{
  min-height:44px !important;
  border-radius:16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  width:100% !important;
  font-weight:750 !important;
}
.catalogue-filter.panel{
  border:1px solid rgba(28,33,38,.08) !important;
  border-radius:24px !important;
  background:#fff !important;
  box-shadow:0 12px 34px rgba(28,33,38,.055) !important;
}
@media (max-width:767.98px){
  .catalogue-grid{grid-template-columns:repeat(2, minmax(0, 1fr)) !important;gap:12px !important;}
  .catalogue-card__media{margin:10px 10px 0 !important;padding:14px !important;border-radius:18px !important;}
  .catalogue-card__body{padding:12px !important;gap:8px !important;}
  .catalogue-card__head{display:grid !important;align-items:start !important;}
  .catalogue-card__brand{max-width:100% !important;}
  .catalogue-card__stock{justify-content:center !important;}
  .catalogue-card__title{font-size:.94rem !important;}
}
@media (max-width:430px){
  .catalogue-grid{grid-template-columns:1fr !important;}
}

/* Admin catalogue preview: contain SVGs, no overflow */
.catalogue-admin-preview{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:22px !important;
  background:linear-gradient(180deg,#F6F8FA 0%,#EEF2F5 100%) !important;
}
.catalogue-admin-preview img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
}
.admin-catalogue-thumb{
  padding:6px !important;
  background:#F3F6F8 !important;
}

/* Admin dashboard: compact responsive layout */
.admin-shell{
  width:100% !important;
  max-width:1368px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:clamp(12px,2vw,24px) !important;
  padding-right:clamp(12px,2vw,24px) !important;
}
.admin-dashboard-page .kpi{
  min-height:104px !important;
  padding:18px !important;
  border-radius:22px !important;
}
.admin-dashboard-page .kpi-value{
  font-size:clamp(1.8rem,3.6vw,2.5rem) !important;
  line-height:1 !important;
}
.admin-section-tabs{
  gap:8px !important;
  border-radius:22px !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
}
.admin-section-tabs .btn{
  white-space:nowrap !important;
  min-height:42px !important;
  border-radius:14px !important;
}
.admin-page .panel,
.admin-page .admin-panel-block,
.admin-page .table-responsive,
.admin-page .admin-table,
.admin-page form{
  min-width:0 !important;
}
.admin-page .admin-panel-block{
  border-radius:24px !important;
}
.admin-page .admin-table{
  font-size:.86rem !important;
}
@media (max-width:767.98px){
  .admin-shell{padding-top:14px !important;}
  .admin-dashboard-page > .d-flex:first-child,
  .admin-shell > .d-flex:first-child{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin-bottom:16px !important;
  }
  .admin-shell > .d-flex:first-child .btn,
  .admin-shell > .d-flex:first-child form,
  .admin-shell > .d-flex:first-child form button{
    width:100% !important;
  }
  .admin-dashboard-page .row.g-3.mb-3 > [class*="col-"]{
    width:50% !important;
    flex:0 0 50% !important;
  }
  .admin-dashboard-page .kpi{min-height:88px !important;padding:14px !important;}
  .admin-dashboard-page .kpi-title{font-size:.82rem !important;}
  .admin-dashboard-page .kpi-value{font-size:1.75rem !important;}
  .admin-section-tabs{
    flex-wrap:nowrap !important;
    padding:8px !important;
    margin-left:-2px !important;
    margin-right:-2px !important;
  }
  .admin-section-tabs .btn{flex:0 0 auto !important;padding-inline:14px !important;}
  .admin-page .panel.p-3{padding:14px !important;}
  .admin-page .table-responsive:has(.admin-table){border:0 !important;box-shadow:none !important;background:transparent !important;border-radius:0 !important;}
  .admin-page .vi-responsive-table tr{border-radius:18px !important;padding:10px !important;}
  .admin-page .vi-responsive-table td{grid-template-columns:104px minmax(0,1fr) !important;font-size:.88rem !important;}
}
@media (max-width:430px){
  .admin-dashboard-page .row.g-3.mb-3 > [class*="col-"]{width:100% !important;flex:0 0 100% !important;}
}

/* Manager/company large assignment lists */
.admin-assignee-list--compact{
  max-height:380px !important;
  overflow:auto !important;
  padding:8px !important;
  border:1px solid rgba(28,33,38,.08) !important;
  border-radius:20px !important;
  background:#F8FAFC !important;
  display:grid !important;
  gap:8px !important;
}
.admin-assignee-list--compact .admin-check-card{
  margin:0 !important;
  padding:10px 12px !important;
  border-radius:16px !important;
  background:#fff !important;
  border:1px solid rgba(28,33,38,.07) !important;
  box-shadow:none !important;
}
.admin-assignee-list--compact .admin-check-card span{
  min-width:0 !important;
}
.admin-assignee-list--compact .admin-check-card strong,
.admin-assignee-list--compact .admin-check-card small{
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.admin-assignee-list--compact .admin-check-card small{
  color:#6C757D !important;
  margin-top:2px !important;
}
.admin-assignee-list--compact .admin-check-card input[type="checkbox"]{
  margin-top:2px !important;
}
.company-user-option.is-muted{
  opacity:.82 !important;
}
@media (max-width:767.98px){
  .admin-assignee-list--compact{max-height:320px !important;padding:6px !important;border-radius:18px !important;}
  .admin-assignee-list--compact .admin-check-card{padding:10px !important;}
  .company-user-search .input-group{display:grid !important;grid-template-columns:1fr !important;gap:8px !important;}
  .company-user-search .input-group > *{width:100% !important;border-radius:14px !important;}
}
/* =========================================================
   ROUND 35 — admin fields, KPI parity, home scrollbar, price link
   Request: 2026-06-23 fix5
   ========================================================= */

/* Main page scrollbar: use one document scrollbar, no ghost/body scrollbar */
html{
  height:auto !important;
  overflow-y:auto !important;
  scrollbar-gutter:stable !important;
}
body.home-page{
  height:auto !important;
  min-height:100vh !important;
  overflow-x:hidden !important;
  overflow-y:visible !important;
}

/* KPI cards: no secondary helper text, equal compact height */
.admin-dashboard-page .kpi{
  min-height:88px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:8px !important;
}
.admin-dashboard-page .kpi .admin-subnote,
.admin-dashboard-page .kpi .text-secondary{
  display:none !important;
}

/* Corporate admin fields/selects — visual parity with landing CTA inputs */
.admin-page .field-group--float,
.settings-page .field-group--float,
.cabinet-page .field-group--float{
  min-width:0 !important;
}
.admin-page .floating-field,
.settings-page .floating-field,
.cabinet-page .floating-field{
  min-width:0 !important;
}
.admin-page .floating-field .form-control,
.admin-page .floating-field .form-select,
.admin-page .floating-field textarea,
.admin-page .floating-field input,
.admin-page .vi-select-shell .form-select,
.admin-page .form-control,
.admin-page .form-select,
.settings-page .floating-field .form-control,
.settings-page .floating-field .form-select,
.settings-page .vi-select-shell .form-select,
.cabinet-page .floating-field .form-control,
.cabinet-page .floating-field .form-select,
.cabinet-page .vi-select-shell .form-select{
  min-height:52px !important;
  height:52px !important;
  border-radius:20px !important;
  border:1px solid #D5D9DE !important;
  background:#FFFFFF !important;
  color:var(--vi-text, #1C2126) !important;
  box-shadow:none !important;
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}
.admin-page textarea.form-control,
.admin-page .floating-field textarea,
.settings-page textarea.form-control,
.cabinet-page textarea.form-control{
  height:auto !important;
  min-height:116px !important;
}
.admin-page .form-control::placeholder,
.admin-page .form-select::placeholder,
.settings-page .form-control::placeholder,
.cabinet-page .form-control::placeholder{
  color:#8A9199 !important;
  opacity:1 !important;
}
.admin-page .form-control:hover,
.admin-page .form-select:hover,
.admin-page .vi-select-shell:hover .form-select,
.settings-page .form-control:hover,
.settings-page .form-select:hover,
.settings-page .vi-select-shell:hover .form-select,
.cabinet-page .form-control:hover,
.cabinet-page .form-select:hover,
.cabinet-page .vi-select-shell:hover .form-select{
  border-color:#1C2126 !important;
}
.admin-page .form-control:focus,
.admin-page .form-select:focus,
.admin-page .vi-select-shell:focus-within .form-select,
.settings-page .form-control:focus,
.settings-page .form-select:focus,
.settings-page .vi-select-shell:focus-within .form-select,
.cabinet-page .form-control:focus,
.cabinet-page .form-select:focus,
.cabinet-page .vi-select-shell:focus-within .form-select{
  border-color:#1C2126 !important;
  background:#F4F5F6 !important;
  box-shadow:none !important;
  outline:0 !important;
}
.admin-page .floating-label,
.settings-page .floating-label,
.cabinet-page .floating-label{
  color:#8A9199 !important;
  font-weight:450 !important;
}
.admin-page .floating-field.is-focused .floating-label,
.admin-page .floating-field.is-filled .floating-label,
.settings-page .floating-field.is-focused .floating-label,
.settings-page .floating-field.is-filled .floating-label,
.cabinet-page .floating-field.is-focused .floating-label,
.cabinet-page .floating-field.is-filled .floating-label{
  color:#8A9199 !important;
}

/* Selects: only one corporate chevron; remove native/bootstrap/pseudo arrows */
.admin-page .vi-select-shell,
.settings-page .vi-select-shell,
.cabinet-page .vi-select-shell,
.catalogue-page .vi-select-shell,
.modal .vi-select-shell{
  position:relative !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
}
.admin-page .vi-select-shell::before,
.admin-page .vi-select-shell::after,
.settings-page .vi-select-shell::before,
.settings-page .vi-select-shell::after,
.cabinet-page .vi-select-shell::before,
.cabinet-page .vi-select-shell::after,
.catalogue-page .vi-select-shell::before,
.catalogue-page .vi-select-shell::after,
.modal .vi-select-shell::before,
.modal .vi-select-shell::after,
.admin-page .floating-field--select::after,
.settings-page .floating-field--select::after,
.cabinet-page .floating-field--select::after,
.catalogue-page .floating-field--select::after,
.modal .floating-field--select::after{
  content:none !important;
  display:none !important;
}
.admin-page select.form-select,
.admin-page select.vi-select,
.settings-page select.form-select,
.settings-page select.vi-select,
.cabinet-page select.form-select,
.cabinet-page select.vi-select,
.catalogue-page select.form-select,
.catalogue-page select.vi-select,
.modal select.form-select,
.modal select.vi-select{
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  background-image:none !important;
  padding-right:54px !important;
  cursor:pointer !important;
}
.admin-page .vi-select-shell__chevron,
.settings-page .vi-select-shell__chevron,
.cabinet-page .vi-select-shell__chevron,
.catalogue-page .vi-select-shell__chevron,
.modal .vi-select-shell__chevron{
  position:absolute !important;
  right:16px !important;
  top:50% !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  transform:translateY(-50%) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#93999E !important;
  background:transparent !important;
  border:0 !important;
  pointer-events:none !important;
  transition:transform .16s ease, color .16s ease !important;
  z-index:4 !important;
}
.admin-page .vi-select-shell.is-open .vi-select-shell__chevron,
.settings-page .vi-select-shell.is-open .vi-select-shell__chevron,
.cabinet-page .vi-select-shell.is-open .vi-select-shell__chevron,
.catalogue-page .vi-select-shell.is-open .vi-select-shell__chevron,
.modal .vi-select-shell.is-open .vi-select-shell__chevron{
  transform:translateY(-50%) rotate(180deg) !important;
  color:#1C2126 !important;
}
.admin-page .vi-select-shell__chevron::before,
.admin-page .vi-select-shell__chevron::after,
.settings-page .vi-select-shell__chevron::before,
.settings-page .vi-select-shell__chevron::after,
.cabinet-page .vi-select-shell__chevron::before,
.cabinet-page .vi-select-shell__chevron::after,
.catalogue-page .vi-select-shell__chevron::before,
.catalogue-page .vi-select-shell__chevron::after,
.modal .vi-select-shell__chevron::before,
.modal .vi-select-shell__chevron::after{
  content:none !important;
  display:none !important;
}

/* Filter actions: the reset button is text, not a compact cross */
.admin-filter-form .admin-reset-btn,
.admin-page .admin-filter-form .btn-outline-dark{
  min-width:96px !important;
  white-space:nowrap !important;
}
.admin-filter-form .btn{
  min-height:52px !important;
}

/* Service-center copy and layout polish */
.section-title__link{
  color:inherit !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(214,0,0,.38) !important;
  transition:color .16s ease, border-color .16s ease !important;
}
.section-title__link:hover,
.section-title__link:focus-visible{
  color:var(--vi-primary, #D60000) !important;
  border-bottom-color:currentColor !important;
}
.service-center-card__meta--list{
  display:grid !important;
  gap:10px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.service-center-card__meta--list li{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  color:var(--vi-text, #1C2126) !important;
  font-size:16px !important;
  line-height:1.5 !important;
}
.service-center-card__meta--list li::before{
  content:'' !important;
  width:7px !important;
  height:7px !important;
  margin-top:.62em !important;
  border-radius:999px !important;
  background:var(--vi-primary, #D60000) !important;
  flex:0 0 7px !important;
}
/* fix6 — corporate admin pickers and searchable selectors */
.admin-page .admin-static-picker,
.admin-page .admin-autocomplete-combobox,
.settings-page .admin-static-picker,
.settings-page .admin-autocomplete-combobox{
  width:100%;
  position:relative;
}
.admin-page .admin-static-picker .js-static-picker-input,
.admin-page .admin-autocomplete-combobox .js-admin-combobox-input,
.settings-page .admin-static-picker .js-static-picker-input,
.settings-page .admin-autocomplete-combobox .js-admin-combobox-input{
  min-height:52px !important;
  width:100%;
  border:1px solid var(--vi-stroke) !important;
  border-radius:16px !important;
  background:#fff !important;
  padding:14px 52px 14px 16px !important;
  color:var(--vi-text) !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.admin-page .admin-static-picker .js-static-picker-input:focus,
.admin-page .admin-static-picker.is-focused .js-static-picker-input,
.admin-page .admin-static-picker.is-open .js-static-picker-input,
.admin-page .admin-autocomplete-combobox .js-admin-combobox-input:focus,
.admin-page .admin-autocomplete-combobox.is-focused .js-admin-combobox-input,
.admin-page .admin-autocomplete-combobox.is-open .js-admin-combobox-input,
.settings-page .admin-static-picker .js-static-picker-input:focus,
.settings-page .admin-autocomplete-combobox .js-admin-combobox-input:focus{
  border-color:rgba(214,0,0,.28) !important;
  box-shadow:0 0 0 4px rgba(214,0,0,.08) !important;
  outline:none !important;
}
.admin-page .admin-static-picker .floating-label,
.settings-page .admin-static-picker .floating-label{
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  padding:0 4px;
  background:#fff;
  color:var(--vi-note);
  font-size:14px;
  line-height:1;
  pointer-events:none;
  transition:transform .16s ease, font-size .16s ease, color .16s ease, top .16s ease;
}
.admin-page .admin-static-picker.is-focused .floating-label,
.admin-page .admin-static-picker.is-open .floating-label,
.admin-page .admin-static-picker.is-filled .floating-label,
.settings-page .admin-static-picker.is-focused .floating-label,
.settings-page .admin-static-picker.is-open .floating-label,
.settings-page .admin-static-picker.is-filled .floating-label{
  top:0;
  transform:translateY(-45%);
  font-size:12px;
  color:var(--vi-primary);
}
.admin-page .admin-static-picker .brand-dropdown,
.admin-page .admin-autocomplete-combobox .brand-dropdown,
.settings-page .admin-static-picker .brand-dropdown,
.settings-page .admin-autocomplete-combobox .brand-dropdown{
  top:calc(100% + 8px) !important;
  z-index:1050 !important;
  max-height:260px;
  overflow:auto;
  border:1px solid var(--vi-stroke) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 18px 32px rgba(28,33,38,.12) !important;
  padding:8px !important;
}
.admin-page .admin-static-picker .brand-dropdown__item,
.admin-page .admin-autocomplete-combobox .brand-dropdown__item,
.settings-page .admin-static-picker .brand-dropdown__item,
.settings-page .admin-autocomplete-combobox .brand-dropdown__item{
  min-height:42px;
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
  color:var(--vi-text);
}
.admin-page .admin-static-picker .brand-dropdown__item:hover,
.admin-page .admin-autocomplete-combobox .brand-dropdown__item:hover,
.settings-page .admin-static-picker .brand-dropdown__item:hover,
.settings-page .admin-autocomplete-combobox .brand-dropdown__item:hover{
  background:#F4F5F6;
}
.admin-page .admin-autocomplete-combobox .brand-combobox__chevron,
.admin-page .admin-static-picker .static-picker__chevron,
.settings-page .admin-autocomplete-combobox .brand-combobox__chevron,
.settings-page .admin-static-picker .static-picker__chevron{
  right:16px !important;
}
.admin-page .admin-filter-form .admin-static-picker .js-static-picker-input{
  min-height:44px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
}
.admin-page .admin-filter-form .admin-static-picker .floating-label{
  font-size:13px;
}
.admin-page .admin-filter-form .admin-static-picker.is-focused .floating-label,
.admin-page .admin-filter-form .admin-static-picker.is-open .floating-label,
.admin-page .admin-filter-form .admin-static-picker.is-filled .floating-label{
  font-size:11px;
}

/* =========================================================
   ROUND 36 — catalogue brand picker, admin mobile tabs/rows, loader timing
   Request: 2026-06-23 fix7
   ========================================================= */

/* Public catalogue brand selector: same visual/search model as cabinet ZIP request and admin part card. */
.catalogue-page .catalogue-brand-combobox{
  width:100% !important;
  position:relative !important;
}
.catalogue-page .catalogue-brand-combobox .js-brand-input{
  width:100% !important;
  min-height:52px !important;
  height:52px !important;
  border-radius:16px !important;
  border:1px solid var(--vi-stroke, #D5D9DE) !important;
  background:#fff !important;
  padding:14px 52px 14px 16px !important;
  color:var(--vi-text, #1C2126) !important;
  box-shadow:none !important;
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}
.catalogue-page .catalogue-brand-combobox .js-brand-input::placeholder{
  color:#8A9199 !important;
  opacity:1 !important;
}
.catalogue-page .catalogue-brand-combobox:hover .js-brand-input:not(:focus){
  border-color:#1C2126 !important;
}
.catalogue-page .catalogue-brand-combobox.is-focused .js-brand-input,
.catalogue-page .catalogue-brand-combobox.is-open .js-brand-input,
.catalogue-page .catalogue-brand-combobox .js-brand-input:focus{
  border-color:#1C2126 !important;
  background:#F4F5F6 !important;
  outline:0 !important;
  box-shadow:none !important;
}
.catalogue-page .catalogue-brand-combobox .brand-combobox__chevron{
  right:16px !important;
  width:24px !important;
  height:24px !important;
  color:#93999E !important;
}
.catalogue-page .catalogue-brand-combobox .brand-dropdown{
  top:calc(100% + 8px) !important;
  z-index:1060 !important;
  max-height:260px !important;
  overflow:auto !important;
  border:1px solid var(--vi-stroke, #D5D9DE) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 18px 32px rgba(28,33,38,.12) !important;
  padding:8px !important;
}
.catalogue-page .catalogue-brand-combobox .brand-dropdown__item{
  min-height:42px !important;
  border-radius:12px !important;
  padding:10px 12px !important;
  font-size:14px !important;
  line-height:20px !important;
  color:var(--vi-text, #1C2126) !important;
}
.catalogue-page .catalogue-brand-combobox .brand-dropdown__item:hover,
.catalogue-page .catalogue-brand-combobox .brand-dropdown__item:focus-visible{
  background:#F4F5F6 !important;
  color:var(--vi-text, #1C2126) !important;
}

/* Admin dashboard tabs and rows: compact responsive layout for phones. */
.admin-section-tabs{
  scrollbar-width:thin !important;
}
.admin-section-tabs .btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1.15 !important;
}
.admin-page .admin-table td,
.admin-page .admin-table th{
  line-height:1.35 !important;
}
.admin-page .admin-click-row{
  cursor:pointer !important;
}
.admin-page .admin-catalogue-thumb{
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  border-radius:14px !important;
}

@media (max-width:767.98px){
  .admin-section-tabs{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:8px !important;
    overflow:visible !important;
    padding:8px !important;
    border-radius:18px !important;
  }
  .admin-section-tabs .btn{
    width:100% !important;
    min-height:38px !important;
    padding:9px 10px !important;
    border-radius:13px !important;
    font-size:13px !important;
    white-space:normal !important;
    text-align:center !important;
  }
  .admin-page .vi-responsive-table tr{
    margin-bottom:8px !important;
    padding:8px !important;
    border-radius:16px !important;
    box-shadow:0 8px 20px rgba(28,33,38,.045) !important;
  }
  .admin-page .vi-responsive-table td{
    grid-template-columns:92px minmax(0,1fr) !important;
    gap:8px !important;
    min-height:0 !important;
    padding:5px 2px !important;
    font-size:.84rem !important;
    line-height:1.32 !important;
  }
  .admin-page .vi-responsive-table td::before{
    font-size:.72rem !important;
    line-height:1.25 !important;
    letter-spacing:.01em !important;
  }
  .admin-page .vi-responsive-table .fw-semibold{
    line-height:1.25 !important;
  }
  .admin-page .vi-responsive-table .small{
    font-size:.76rem !important;
    line-height:1.3 !important;
  }
  .admin-page .vi-responsive-table .badge{
    white-space:normal !important;
    text-align:center !important;
  }
  .admin-page .admin-catalogue-table td[data-label="Запчасть"] > .d-flex{
    gap:10px !important;
    align-items:center !important;
  }
  .admin-page .admin-catalogue-thumb{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    border-radius:12px !important;
    padding:5px !important;
  }
  .admin-page .admin-compact-name{
    max-width:100% !important;
  }
  .admin-page .admin-filter-form{
    gap:8px !important;
  }
  .admin-page .admin-filter-form .btn{
    min-height:42px !important;
    border-radius:14px !important;
  }
}
@media (max-width:360px){
  .admin-section-tabs{
    grid-template-columns:1fr !important;
  }
  .admin-page .vi-responsive-table td{
    grid-template-columns:82px minmax(0,1fr) !important;
    gap:7px !important;
  }
}
@media (max-width:767.98px){
  .admin-page .vi-responsive-table td[colspan]{
    display:block !important;
    padding:12px !important;
    font-size:.86rem !important;
  }
  .admin-page .vi-responsive-table td[colspan]::before{
    content:none !important;
    display:none !important;
  }
}

/* =========================================================
   ROUND 38 — stable copy-coordinates button width
   Request: 2026-06-23 fix8
   ========================================================= */
.service-center-card__btn.js-copy-coords{
  min-width:238px !important;
  min-inline-size:238px !important;
}
.service-center-card__btn.js-copy-coords .sc-btn__label{
  display:inline-block !important;
  min-width:178px !important;
  min-inline-size:178px !important;
  text-align:center !important;
  white-space:nowrap !important;
}
@media (max-width:991.98px){
  .service-center-card__btn.js-copy-coords{
    width:100% !important;
    min-width:0 !important;
    min-inline-size:0 !important;
  }
  .service-center-card__btn.js-copy-coords .sc-btn__label{
    min-width:178px !important;
    min-inline-size:178px !important;
  }
}
@media (max-width:360px){
  .service-center-card__btn.js-copy-coords .sc-btn__label{
    min-width:0 !important;
    min-inline-size:0 !important;
  }
}

/* =========================================================
   ROUND 39 — compact stable service-center buttons
   Request: 2026-06-23 fix9
   ========================================================= */
#service-centers .service-center-card--single .service-center-card__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
}
#service-centers .service-center-card__btn,
#service-centers .service-center-card--single .service-center-card__actions .btn{
  width:auto !important;
  min-width:0 !important;
  min-inline-size:0 !important;
  flex:0 0 auto !important;
  min-height:42px !important;
  height:42px !important;
  padding:0 14px !important;
  border-radius:14px !important;
  font-size:14px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
#service-centers .service-center-card__btn .vi-icon{
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
}
#service-centers .service-center-card__btn.js-copy-coords,
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label{
  min-width:0 !important;
  min-inline-size:0 !important;
}
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label{
  display:inline-block !important;
  width:auto !important;
  text-align:center !important;
  white-space:nowrap !important;
}
@media (max-width:575.98px){
  #service-centers .service-center-card--single .service-center-card__actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  #service-centers .service-center-card__btn,
  #service-centers .service-center-card--single .service-center-card__actions .btn{
    width:100% !important;
    min-height:42px !important;
    height:42px !important;
  }
}

/* =========================================================
   ROUND 40 — no-layout-shift copy coordinates state
   Request: 2026-06-23 fix10
   ========================================================= */
#service-centers .service-center-card__btn.js-copy-coords{
  inline-size:auto !important;
  min-inline-size:0 !important;
  width:auto !important;
}
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label{
  display:grid !important;
  align-items:center !important;
  justify-items:center !important;
  width:auto !important;
  min-width:0 !important;
  min-inline-size:0 !important;
  overflow:hidden !important;
}
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label-default,
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label-copied{
  grid-area:1 / 1 !important;
  white-space:nowrap !important;
  transition:opacity .14s ease !important;
}
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label-default{
  opacity:1 !important;
}
#service-centers .service-center-card__btn.js-copy-coords .sc-btn__label-copied{
  opacity:0 !important;
  pointer-events:none !important;
}
#service-centers .service-center-card__btn.js-copy-coords.is-copied .sc-btn__label-default{
  opacity:0 !important;
}
#service-centers .service-center-card__btn.js-copy-coords.is-copied .sc-btn__label-copied{
  opacity:1 !important;
}
@media (max-width:575.98px){
  #service-centers .service-center-card__btn.js-copy-coords{
    width:100% !important;
  }
}
/* =========================================================
   ROUND 41 — two-step destructive actions + brand/model cards
   ========================================================= */
.btn.confirm-pending,
button.confirm-pending{
  border-color:rgba(214,0,0,.72) !important;
  color:#fff !important;
  background:#d60000 !important;
  box-shadow:0 0 0 4px rgba(214,0,0,.12), 0 12px 28px rgba(214,0,0,.22) !important;
}

form.is-confirm-pending{
  position:relative;
}

.admin-brand-page .catalogue-admin-preview,
.admin-model-page .catalogue-admin-preview,
.admin-catalogue-page .catalogue-admin-preview{
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.admin-brand-page .catalogue-admin-preview img,
.admin-model-page .catalogue-admin-preview img,
.admin-catalogue-page .catalogue-admin-preview img{
  max-width:100%;
  max-height:220px;
  width:100%;
  height:100%;
  object-fit:contain;
}

@media (max-width:575.98px){
  .admin-section-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .admin-section-tabs .btn{
    min-height:40px;
    padding:.55rem .65rem;
    font-size:.86rem;
  }
}

/* =========================================================
   ROUND 42 — admin polish, file inputs, request parts/chat
   Request: 2026-06-24 UI/mail fixes
   ========================================================= */
.admin-file-native-input{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
}
.admin-file-picker{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 14px 0 16px;
  border:1px solid rgba(27,31,36,.14);
  border-radius:16px;
  color:#6a7178;
  background:linear-gradient(180deg,#fff,#f8f9fa);
  box-shadow:0 10px 24px rgba(28,33,38,.045);
  text-align:left;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, color .18s ease;
}
.admin-file-picker:hover,
.admin-file-native-input:focus + .admin-file-picker{
  border-color:rgba(214,0,0,.42);
  color:#1f252b;
  box-shadow:0 0 0 4px rgba(214,0,0,.08), 0 14px 30px rgba(28,33,38,.07);
}
.admin-file-picker.is-invalid{
  border-color:#d60000;
  box-shadow:0 0 0 4px rgba(214,0,0,.1);
}
.admin-file-picker:active{
  transform:translateY(1px);
}
.admin-file-picker.has-file{
  color:#1f252b;
  border-color:rgba(27,31,36,.22);
}
.admin-file-picker__text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-file-picker__icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  order:2;
  border-radius:12px;
  color:#d60000;
  background:rgba(214,0,0,.08);
  font-size:17px;
  line-height:1;
}

.chat-composer__surface{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:10px !important;
  align-items:stretch !important;
}
.chat-composer__textarea{
  min-height:128px !important;
  resize:vertical;
}
.chat-composer__toolbar{
  display:grid !important;
  grid-template-columns:auto auto !important;
  grid-template-areas:"attach send" "files files" !important;
  align-content:end !important;
  align-items:end !important;
  justify-content:end !important;
  gap:8px !important;
  min-width:168px;
}
.chat-composer__left{
  display:contents !important;
}
.chat-attach-trigger{
  grid-area:attach;
  width:44px;
  height:44px;
  display:grid !important;
  place-items:center;
  padding:0 !important;
}
.chat-composer__actions{
  grid-area:send;
  display:flex !important;
  justify-content:flex-end !important;
}
.chat-composer__actions .btn{
  min-height:44px;
}
.chat-composer__files{
  grid-area:files;
  justify-content:flex-end;
  max-width:220px;
}
@media (max-width:767.98px){
  .chat-composer__surface{
    grid-template-columns:1fr !important;
  }
  .chat-composer__toolbar{
    min-width:0;
    width:100%;
  }
  .chat-composer__files{
    max-width:100%;
  }
}

.admin-request-parts-panel{
  overflow:hidden;
}
.admin-request-parts-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:-2px 0 12px;
  cursor:pointer;
  list-style:none;
  font-weight:700;
}
.admin-request-parts-summary::-webkit-details-marker{
  display:none;
}
.admin-request-parts-summary::after{
  content:"";
  width:10px;
  height:10px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .18s ease;
  opacity:.6;
}
.admin-request-parts-panel[open] .admin-request-parts-summary::after{
  transform:rotate(225deg);
}
.admin-request-parts-list{
  display:grid;
  gap:8px;
}
.admin-request-part-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 92px 116px minmax(90px,.45fr);
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid rgba(27,31,36,.08);
  border-radius:14px;
  background:#fff;
}
.admin-request-part-row__main{
  min-width:0;
}
.admin-request-part-row__main .fw-semibold,
.admin-request-part-row__main .small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-request-part-row__field{
  display:grid;
  gap:4px;
  margin:0;
}
.admin-request-part-row__field span,
.admin-request-part-row__sum span{
  color:#7a828a;
  font-size:.72rem;
}
.admin-request-part-row__sum{
  display:grid;
  gap:5px;
  min-width:0;
  font-size:.86rem;
}
.admin-inline-control-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}
.admin-inline-control-form__field{
  min-width:0;
}
.admin-inline-control-form .btn{
  min-height:46px;
  padding-inline:18px;
}
@media (max-width:575.98px){
  .admin-request-part-row{
    grid-template-columns:1fr 1fr;
  }
  .admin-request-part-row__main{
    grid-column:1 / -1;
  }
  .admin-inline-control-form{
    grid-template-columns:1fr;
  }
}

.cabinet-page .parts-item-row.panel.panel-soft{
  max-width:100% !important;
  width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
}
.cabinet-page .parts-item-row__fields{
  max-width:100% !important;
  min-width:0 !important;
  grid-template-columns:minmax(180px,1.15fr) minmax(150px,1fr) minmax(96px,.42fr) auto !important;
}
.cabinet-page .parts-item-field,
.cabinet-page .parts-item-field .brand-combobox,
.cabinet-page .parts-item-field .form-control{
  min-width:0 !important;
}
@media (max-width:1199.98px){
  .cabinet-page .parts-item-row__fields{
    grid-template-columns:1fr 1fr !important;
  }
}
@media (max-width:575.98px){
  .cabinet-page .parts-item-row__fields{
    grid-template-columns:1fr !important;
  }
}

.admin-dashboard-page .kpi{
  min-height:58px !important;
  padding:12px 16px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}
.admin-dashboard-page .kpi-title{
  margin:0 !important;
  font-size:.92rem !important;
  line-height:1.25 !important;
}
.admin-dashboard-page .kpi-value{
  font-size:1.18rem !important;
  line-height:1 !important;
  margin:0 !important;
  white-space:nowrap !important;
}
@media (min-width:992px){
  .admin-dashboard-page .admin-section-tabs{
    display:grid !important;
    grid-template-columns:repeat(auto-fit,minmax(132px,1fr)) !important;
    gap:10px !important;
    padding:10px !important;
  }
  .admin-dashboard-page .admin-section-tabs .btn{
    width:100% !important;
    min-height:48px !important;
    padding:.72rem .9rem !important;
    font-size:.98rem !important;
  }
}
.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3 > div:first-child{
  display:none !important;
}
.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3{
  justify-content:flex-end !important;
  margin-bottom:12px !important;
}

.admin-brand-placeholder-card .catalogue-admin-preview{
  min-height:118px !important;
  max-height:150px !important;
}
.admin-brand-placeholder-card .catalogue-admin-preview img{
  max-height:132px !important;
}

/* =========================================================
   ROUND 43 — pagination, searchable pickers, compact admin
   Request: 2026-06-24 pagination/autocomplete/reset UI
   ========================================================= */
.vi-pagination-wrap{
  display:flex;
  justify-content:center;
}
.vi-pagination{
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.vi-pagination .page-item + .page-item{
  margin-left:0 !important;
}
.vi-pagination .page-link{
  width:28px;
  height:28px;
  min-width:28px !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:999px !important;
  color:#0f1f33 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-weight:500 !important;
  font-size:14px !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.vi-pagination .page-item.active .page-link{
  width:32px;
  height:32px;
  min-width:32px !important;
  color:#fff !important;
  background:#d60000 !important;
  box-shadow:0 8px 18px rgba(214,0,0,.22) !important;
}
.vi-pagination .page-link:hover,
.vi-pagination .page-link:focus-visible{
  color:#d60000 !important;
  background:rgba(214,0,0,.07) !important;
}
.vi-pagination .vi-page-arrow .page-link{
  font-size:24px !important;
  font-weight:400 !important;
}
.vi-pagination .vi-page-ellipsis .page-link{
  pointer-events:none;
  color:#0f1f33 !important;
  background:transparent !important;
}
@media (max-width:420px){
  .vi-pagination{ gap:6px; }
  .vi-pagination .page-link{
    width:26px;
    min-width:26px !important;
    font-size:13px !important;
  }
}

.static-picker .brand-dropdown__item.is-hidden,
.brand-combobox .brand-dropdown__item.is-hidden{
  display:none !important;
}

.admin-request-parts-table-wrap{
  border:1px solid rgba(27,31,36,.08);
  border-radius:16px;
  background:#fff;
}
.admin-request-parts-table{
  font-size:.86rem;
}
.admin-request-parts-table thead th{
  padding:10px 12px;
  border-bottom:1px solid rgba(27,31,36,.08);
  color:#7a828a;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  background:#f8f9fa;
  white-space:nowrap;
}
.admin-request-parts-table td,
.admin-request-parts-table tfoot td{
  padding:8px 12px;
  border-bottom:1px solid rgba(27,31,36,.06);
}
.admin-request-parts-table tbody tr:last-child td{
  border-bottom:0;
}
.admin-request-parts-table tfoot td{
  border-top:1px solid rgba(27,31,36,.12);
  background:#fbfcfd;
}
.admin-request-parts-table .form-control-sm{
  min-height:34px;
  padding:.3rem .5rem;
  border-radius:10px;
}
.admin-request-parts-table__num{
  width:86px;
}
.admin-request-parts-table__price{
  width:120px;
}
@media (max-width:767.98px){
  .admin-request-parts-table thead{
    display:none;
  }
  .admin-request-parts-table,
  .admin-request-parts-table tbody,
  .admin-request-parts-table tfoot,
  .admin-request-parts-table tr,
  .admin-request-parts-table td{
    display:block;
    width:100%;
  }
  .admin-request-parts-table tbody tr{
    padding:10px;
    border-bottom:1px solid rgba(27,31,36,.08);
  }
  .admin-request-parts-table td{
    display:grid;
    grid-template-columns:104px minmax(0,1fr);
    gap:10px;
    padding:5px 0;
    border:0;
    text-align:left !important;
  }
  .admin-request-parts-table td::before{
    content:attr(data-label);
    color:#7a828a;
    font-size:.75rem;
  }
  .admin-request-parts-table tfoot td{
    display:block;
    padding:8px 10px;
    text-align:left !important;
  }
}

.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-bottom:10px !important;
}
.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3 > .d-flex{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  width:auto !important;
}
.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3 .badge{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.35rem .65rem;
}
.admin-dashboard-page .admin-panel-block > .d-flex.align-items-start.justify-content-between.gap-2.flex-wrap.mb-3 .btn-sm{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  padding:.38rem .7rem;
}
.admin-dashboard-page .kpi{
  min-height:52px !important;
  padding:10px 14px !important;
  flex-direction:row !important;
}
.admin-dashboard-page .kpi-title{
  flex:1 1 auto;
  min-width:0;
}
.admin-dashboard-page .kpi-value{
  margin-left:auto !important;
  text-align:right !important;
}

.form-check-input[type="radio"]{
  border-color:rgba(27,31,36,.25);
}
.form-check-input[type="radio"]:checked{
  background-color:#d60000;
  border-color:#d60000;
}
.form-check-input[type="radio"]:focus{
  border-color:#d60000;
  box-shadow:0 0 0 .22rem rgba(214,0,0,.12);
}

.reset-password-page{
  min-height:100vh;
  color:#1f252b;
  background:
    radial-gradient(circle at 18% 12%, rgba(214,0,0,.08), transparent 28%),
    linear-gradient(180deg,#fff 0%,#f6f7f9 100%);
}
.reset-password-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px 16px;
}
.reset-password-card{
  width:min(100%,460px);
  padding:28px;
  border:1px solid rgba(27,31,36,.08);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 24px 60px rgba(28,33,38,.1);
}
.reset-password-logo{
  width:132px;
  display:inline-flex;
  margin-bottom:22px;
}
.reset-password-logo img{
  width:100%;
  height:auto;
}
.reset-password-card__head h1{
  margin:0 0 8px;
  font-size:1.55rem;
  font-weight:750;
  letter-spacing:0;
}
.reset-password-card__head p{
  margin:0 0 20px;
  color:#6f7780;
  line-height:1.5;
}
.reset-password-form{
  display:grid;
  gap:14px;
}
.reset-password-form .btn{
  min-height:48px;
  border-radius:16px;
  margin-top:4px;
}
@media (max-width:575.98px){
  .reset-password-card{
    padding:22px;
    border-radius:18px;
  }
}

/* =========================================================
   ROUND 44 — short polish fixes
   Request: 2026-06-24 catalogue/admin finishing details
   ========================================================= */
.vi-pagination .vi-page-ellipsis .page-link{
  pointer-events:auto !important;
  color:#0f1f33 !important;
  cursor:pointer;
}
.vi-pagination .vi-page-ellipsis .page-link:hover,
.vi-pagination .vi-page-ellipsis .page-link:focus-visible{
  color:#d60000 !important;
  background:rgba(214,0,0,.07) !important;
}
.admin-request-part-name{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.25;
  max-height:2.5em;
}
.model-combobox .js-model-input{
  padding-right:46px !important;
  min-height:52px;
  border-radius:16px;
  border:1px solid var(--vi-stroke, rgba(27,31,36,.12)) !important;
  background:#fff;
}
.catalogue-page .catalogue-model-combobox .js-model-input{
  min-height:44px;
  border-radius:14px;
}
.model-dropdown__item{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start !important;
  gap:2px;
}
.model-dropdown__name{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.model-dropdown__meta{
  color:#7a828a;
  font-size:.76rem;
  line-height:1.2;
}
.admin-related-tools-table{
  font-size:.86rem;
}
.catalogue-footer{
  margin-top:32px;
  padding:24px 0;
  border-top:1px solid rgba(27,31,36,.08);
  background:#fff;
}
.catalogue-footer__disclaimer{
  max-width:420px;
}
@media (max-width:767.98px){
  .catalogue-footer{
    margin-top:24px;
    padding:20px 0;
  }
}

/* =========================================================
   ROUND 45 — final small UX fixes
   Request: 2026-06-24 request parts/user filters/model back
   ========================================================= */
@media (min-width:768px){
  .admin-request-parts-table{
    table-layout:fixed;
  }
  .admin-request-parts-table thead th:nth-child(1){width:31%;}
  .admin-request-parts-table thead th:nth-child(2){width:19%;}
  .admin-request-parts-table thead th:nth-child(3){width:122px;}
  .admin-request-parts-table thead th:nth-child(4){width:154px;}
  .admin-request-parts-table thead th:nth-child(5){width:126px;}
}
.admin-request-parts-table .form-control-sm{
  min-height:30px !important;
  height:30px;
  padding:.18rem .58rem;
  border-radius:9px;
  font-size:.88rem;
}
.admin-request-parts-table__num{
  width:122px;
}
.admin-request-parts-table__price{
  width:154px;
}
.admin-request-parts-table__num .form-control,
.admin-request-parts-table__price .form-control{
  width:100%;
  min-width:0;
}
.admin-user-page .admin-user-requests-filter{
  align-items:end;
}
.admin-user-page .admin-user-requests-filter .admin-static-picker,
.admin-user-page .admin-user-requests-filter .static-picker,
.admin-user-page .admin-user-requests-filter .form-control{
  width:100%;
}
.admin-user-page .admin-filter-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.admin-user-page .admin-filter-actions .btn{
  min-width:104px;
  padding-left:.85rem;
  padding-right:.85rem;
}
.admin-user-page .admin-filter-actions .admin-reset-btn{
  min-width:124px;
}
@media (max-width:991.98px){
  .admin-user-page .admin-filter-actions{
    justify-content:stretch;
  }
  .admin-user-page .admin-filter-actions .btn{
    flex:1 1 0;
  }
}

/* =========================================================
   ROUND 46 — request layout and user filters
   Request: 2026-06-24 positions below chat
   ========================================================= */
.admin-request-layout__side .request-detail-list{
  font-size:.92rem;
}
.admin-request-layout__side .request-detail-list > div{
  overflow-wrap:anywhere;
}
.admin-request-layout__main > .panel:first-child,
.admin-request-chat-panel{
  min-height:0;
  height:auto !important;
}
.admin-page .chat-composer__textarea{
  min-height:156px !important;
  max-height:260px;
  line-height:1.45;
}
.admin-request-layout__main .admin-request-parts-panel{
  margin-top:10px !important;
  margin-bottom:0;
}
.admin-request-layout__main .admin-request-parts-table{
  table-layout:fixed;
  font-size:.84rem;
}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(1){width:34%;}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(2){width:16%;}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(3){width:118px;}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(4){width:152px;}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(5){width:118px;}
.admin-request-layout__main .admin-request-parts-table td,
.admin-request-layout__main .admin-request-parts-table tfoot td{
  padding:7px 10px;
}
.admin-request-layout__main .admin-request-parts-table__num{
  width:118px;
}
.admin-request-layout__main .admin-request-parts-table__price{
  width:152px;
}
.admin-request-layout__main .admin-request-parts-table .form-control-sm{
  height:30px;
  min-height:30px !important;
  padding:.16rem .58rem;
}
.admin-user-page .admin-user-card-layout__side .panel{
  padding:14px !important;
}
.admin-user-page .admin-user-card-layout__side .request-detail-list{
  font-size:.92rem;
}
.admin-user-page .admin-user-requests-filter{
  align-items:end;
}
.admin-user-page .admin-user-requests-filter > [class*="col-"]{
  min-width:0;
}
.admin-user-page .admin-user-requests-filter .static-picker .js-static-picker-input,
.admin-user-page .admin-user-requests-filter .form-control{
  min-height:44px !important;
  height:44px;
  font-size:.9rem;
}
.admin-user-page .admin-user-requests-filter .static-picker .floating-label{
  max-width:calc(100% - 42px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-user-page .admin-filter-actions{
  height:44px;
}
.admin-user-page .admin-filter-actions .btn{
  min-width:0;
  height:44px;
  flex:1 1 0;
  white-space:nowrap;
}
.admin-user-page .admin-filter-actions .admin-reset-btn{
  flex:1.35 1 0;
}
@media (max-width:1199.98px) and (min-width:992px){
  .admin-user-page .admin-user-requests-filter .static-picker .js-static-picker-input,
  .admin-user-page .admin-user-requests-filter .form-control{
    font-size:.84rem;
    padding-left:12px !important;
    padding-right:36px !important;
  }
  .admin-user-page .admin-filter-actions .btn{
    padding-left:.5rem;
    padding-right:.5rem;
    font-size:.86rem;
  }
}
@media (max-width:991.98px){
  .admin-request-layout__side,
  .admin-request-layout__main,
  .admin-user-card-layout__side,
  .admin-user-card-layout__main{
    width:100%;
  }
  .admin-user-page .admin-filter-actions{
    height:auto;
  }
}
/* =========================================================
   ROUND 47 — MVP service subscription and process simplification
   Request: 2026-06-29 subscription tariffs, parts-only chat/status
   ========================================================= */
.subscription-mvp{
  display:grid;
  gap:16px;
}
.subscription-hero{
  position:relative;
  overflow:hidden;
}
.subscription-hero::after{
  content:"";
  position:absolute;
  inset:auto -80px -120px auto;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(214,0,0,.08);
  pointer-events:none;
}
.subscription-hero > *{
  position:relative;
  z-index:1;
}
.subscription-tariffs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.subscription-tariff-card{
  position:relative;
  min-width:0;
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
  border-radius:22px;
  box-shadow:0 16px 34px rgba(17,24,39,.07);
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.subscription-tariff-card--recommended{
  border-color:rgba(214,0,0,.34);
  box-shadow:0 18px 44px rgba(214,0,0,.10),0 16px 34px rgba(17,24,39,.06);
}
.subscription-tariff-card__badge{
  align-self:flex-start;
  border-radius:999px;
  background:rgba(214,0,0,.10);
  color:#b00000;
  padding:5px 10px;
  font-weight:700;
  font-size:.78rem;
}
.subscription-tariff-card__top{
  display:grid;
  gap:4px;
}
.subscription-tariff-card__name{
  font-size:1.1rem;
  font-weight:800;
  color:#111827;
}
.subscription-tariff-card__scope,
.subscription-tariff-card__year{
  color:#6b7280;
  font-size:.92rem;
}
.subscription-tariff-card__price{
  font-size:1.55rem;
  font-weight:850;
  color:#111827;
  letter-spacing:-.03em;
}
.subscription-tariff-card ul{
  padding-left:1.1rem;
  margin:0;
  color:#374151;
  display:grid;
  gap:7px;
}
.subscription-compare-panel .table-responsive{
  border:1px solid rgba(17,24,39,.08);
  border-radius:16px;
  overflow:auto;
}
.subscription-compare-table{
  min-width:760px;
  font-size:.92rem;
}
.subscription-compare-table thead th{
  background:#f8f9fb;
  font-weight:800;
  color:#111827;
}
.subscription-compare-table td:first-child,
.subscription-compare-table th:first-child{
  width:32%;
  font-weight:700;
}
.subscription-request-panel .static-picker,
.subscription-request-panel .form-control{
  min-height:48px;
}
.admin-request-layout__main .admin-request-parts-table thead th:nth-child(6){width:92px;}
.admin-request-layout__main .admin-request-parts-table .form-check-input{
  cursor:pointer;
}
@media (max-width:1199.98px){
  .subscription-tariffs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .subscription-tariff-card--recommended{
    order:-1;
  }
}
@media (max-width:767.98px){
  .subscription-tariffs{
    grid-template-columns:1fr;
  }
  .subscription-hero,
  .subscription-tariff-card{
    border-radius:18px;
  }
  .subscription-tariff-card__price{
    font-size:1.34rem;
  }
}

/* =========================================================
   ROUND 48 — cabinet subscription polish and role editor fixes
   Request: 2026-06-29 topbar meta, subscription mobile, red role checks
   ========================================================= */
.admin-role-page .form-check-input[type="checkbox"]{
  border-color:rgba(214,0,0,.38);
  cursor:pointer;
}
.admin-role-page .form-check-input[type="checkbox"]:checked{
  background-color:#d60000;
  border-color:#d60000;
}
.admin-role-page .form-check-input[type="checkbox"]:focus{
  border-color:#d60000;
  box-shadow:0 0 0 .22rem rgba(214,0,0,.13);
}
.admin-role-users{
  max-height:420px;
  overflow:auto;
  padding-right:2px;
}
.admin-role-user{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:16px;
  color:inherit;
  text-decoration:none;
  background:linear-gradient(180deg,#fff,#fafafa);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.admin-role-user:hover{
  transform:translateY(-1px);
  border-color:rgba(214,0,0,.24);
  box-shadow:0 12px 26px rgba(17,24,39,.08);
  color:inherit;
}
.admin-role-user__avatar{
  width:34px;
  height:34px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(214,0,0,.09);
  color:#b00000;
  font-weight:800;
}
.admin-role-user__body{
  display:grid;
  min-width:0;
}
.admin-role-user__name{
  font-weight:700;
  line-height:1.2;
}
.admin-role-user__email{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#6b7280;
  font-size:.86rem;
}
.subscription-hero{
  background:
    radial-gradient(circle at 88% 20%, rgba(214,0,0,.13), transparent 28%),
    linear-gradient(135deg,#fff 0%,#fbfbfc 58%,#fff5f5 100%);
  border-color:rgba(214,0,0,.10)!important;
}
.subscription-hero__content{
  max-width:760px;
}
.subscription-hero__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.subscription-hero__chips span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(214,0,0,.12);
  background:rgba(255,255,255,.78);
  color:#303740;
  font-weight:700;
  font-size:.88rem;
  box-shadow:0 10px 24px rgba(17,24,39,.06);
}
.subscription-hero__chips .vi-icon{
  color:#d60000;
}
.subscription-tariff-card{
  border-color:rgba(17,24,39,.07);
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.94)),
    radial-gradient(circle at 90% 12%,rgba(214,0,0,.08),transparent 26%);
}
.subscription-tariff-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.subscription-tariff-card__top{
  display:flex;
  align-items:center;
  gap:12px;
}
.subscription-tariff-card__icon{
  width:42px;
  height:42px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(214,0,0,.09);
  color:#d60000;
}
.subscription-tariff-card--recommended .subscription-tariff-card__icon{
  background:#d60000;
  color:#fff;
  box-shadow:0 12px 28px rgba(214,0,0,.18);
}
.subscription-tariff-card li{
  list-style:none;
  position:relative;
  padding-left:1.35rem;
}
.subscription-tariff-card li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02rem;
  color:#d60000;
  font-weight:900;
}
.subscription-block-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.subscription-block-title .vi-icon{
  color:#d60000;
}
.subscription-compare-table tbody td:not(:first-child){
  color:#374151;
}
.subscription-compare-table tbody td:not(:first-child):not(:empty){
  font-weight:600;
}
.subscription-compare-table td{
  vertical-align:middle;
}
.subscription-request-panel{
  background:
    linear-gradient(135deg,#fff 0%,#fff 62%,rgba(214,0,0,.045) 100%);
}
@media (max-width:991.98px){
  .subscription-hero{
    padding:22px!important;
  }
  .subscription-tariffs{
    gap:14px;
  }
  .subscription-request-panel .row > [class*="col-"]{
    min-width:0;
  }
}
@media (max-width:767.98px){
  .subscription-mvp{
    gap:14px;
  }
  .subscription-hero{
    padding:18px!important;
  }
  .subscription-hero__chips{
    gap:7px;
  }
  .subscription-hero__chips span{
    width:100%;
    justify-content:flex-start;
  }
  .subscription-tariff-card{
    padding:18px;
  }
  .subscription-tariff-card__top{
    align-items:flex-start;
  }
  .subscription-tariff-card__icon{
    width:38px;
    height:38px;
    border-radius:13px;
  }
  .subscription-compare-panel{
    padding:14px!important;
  }
  .subscription-compare-panel .table-responsive{
    overflow:visible;
    border:0;
    border-radius:0;
  }
  .subscription-compare-table{
    min-width:0;
    display:block;
    font-size:.9rem;
  }
  .subscription-compare-table thead{
    display:none;
  }
  .subscription-compare-table tbody{
    display:grid;
    gap:10px;
  }
  .subscription-compare-table tr{
    display:grid;
    border:1px solid rgba(17,24,39,.08);
    border-radius:16px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(17,24,39,.05);
  }
  .subscription-compare-table td{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:0;
    padding:9px 12px;
    min-height:38px;
  }
  .subscription-compare-table td:first-child{
    width:100%;
    display:block;
    background:#f8f9fb;
    color:#111827;
    font-size:.94rem;
  }
  .subscription-compare-table td:nth-child(2)::before,
  .subscription-compare-table td:nth-child(3)::before,
  .subscription-compare-table td:nth-child(4)::before{
    color:#6b7280;
    font-weight:700;
  }
  .subscription-compare-table td:nth-child(2)::before{content:"Базовый";}
  .subscription-compare-table td:nth-child(3)::before{content:"Парк";}
  .subscription-compare-table td:nth-child(4)::before{content:"Без простоя";}
  .subscription-request-panel{
    padding:16px!important;
  }
  .subscription-request-panel .btn{
    min-height:46px;
  }
}

/* =========================================================
   ROUND 49 — subscription tariff interaction polish
   Request: remove subscription icons, inline recommended badge, hover and table highlight
   ========================================================= */
.subscription-tariff-card[data-subscription-tariff]{
  cursor:pointer;
  isolation:isolate;
  transform:translateY(0);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease,
    background .22s ease;
}
.subscription-tariff-card[data-subscription-tariff]::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(214,0,0,.10),transparent 42%,rgba(214,0,0,.035));
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  z-index:0;
}
.subscription-tariff-card[data-subscription-tariff] > *{
  position:relative;
  z-index:1;
}
.subscription-tariff-card[data-subscription-tariff]:hover{
  transform:translateY(-5px);
  border-color:rgba(214,0,0,.24);
  box-shadow:0 22px 46px rgba(17,24,39,.11),0 10px 28px rgba(214,0,0,.08);
}
.subscription-tariff-card[data-subscription-tariff]:hover::before,
.subscription-tariff-card[data-subscription-tariff].is-selected::before{
  opacity:1;
}
.subscription-tariff-card[data-subscription-tariff]:focus-visible{
  outline:3px solid rgba(214,0,0,.18);
  outline-offset:3px;
}
.subscription-tariff-card[data-subscription-tariff].is-selected{
  border-color:rgba(214,0,0,.42);
  box-shadow:0 24px 52px rgba(214,0,0,.12),0 16px 34px rgba(17,24,39,.08);
}
.subscription-tariff-card__top{
  display:grid;
  gap:4px;
  align-items:start;
}
.subscription-tariff-card__name-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.subscription-tariff-card__name-row .subscription-tariff-card__name{
  min-width:0;
}
.subscription-tariff-card__badge{
  flex:0 0 auto;
  align-self:center;
  white-space:nowrap;
  margin-left:auto;
}
.subscription-hero__chips span::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#d60000;
  box-shadow:0 0 0 4px rgba(214,0,0,.10);
}
.subscription-block-title{
  position:relative;
  padding-left:14px;
}
.subscription-block-title::before{
  content:"";
  position:absolute;
  left:0;
  top:.32em;
  bottom:.22em;
  width:4px;
  border-radius:999px;
  background:#d60000;
}
.subscription-compare-table th[data-tariff],
.subscription-compare-table td[data-tariff]{
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.subscription-compare-table th.is-highlighted{
  background:linear-gradient(180deg,rgba(214,0,0,.12),rgba(214,0,0,.08));
  color:#9a0000;
}
.subscription-compare-table td.is-highlighted{
  background:rgba(214,0,0,.075);
  color:#9a0000;
  box-shadow:inset 0 0 0 1px rgba(214,0,0,.10);
}
@media (hover:none){
  .subscription-tariff-card[data-subscription-tariff]:hover{
    transform:none;
  }
}
@media (max-width:767.98px){
  .subscription-tariff-card__name-row{
    align-items:flex-start;
  }
  .subscription-tariff-card__badge{
    font-size:.72rem;
    padding:4px 8px;
  }
  .subscription-compare-table td.is-highlighted{
    background:rgba(214,0,0,.065);
    border-left:3px solid rgba(214,0,0,.48);
    box-shadow:none;
  }
}

/* =========================================================
   ROUND 50 — subscription inline request CTA
   Request: choose tariff by price, anchor to comparison table, create request below table
   ========================================================= */
.subscription-tariff-card__price{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:1.45rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.02em;
  padding:0;
  margin:0;
  text-align:left;
  cursor:pointer;
  border-radius:12px;
  transition:color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.subscription-tariff-card__price:hover,
.subscription-tariff-card__price:focus-visible{
  color:#b40000;
  background:rgba(214,0,0,.06);
  box-shadow:0 0 0 8px rgba(214,0,0,.06);
  outline:none;
}
.subscription-tariff-card__price:active{
  transform:translateY(1px);
}
.subscription-inline-request{
  margin-top:18px;
  padding:16px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(248,249,250,.96),rgba(255,255,255,.92));
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
.subscription-inline-request__summary{
  color:#6b7280;
  font-size:.95rem;
  line-height:1.45;
}
.subscription-submit-btn{
  min-width:190px;
  white-space:nowrap;
}
.subscription-submit-btn:disabled{
  opacity:.72;
  cursor:not-allowed;
  background:#e5e7eb;
  border-color:#d1d5db;
  color:#6b7280;
}
@media (max-width:767.98px){
  .subscription-tariff-card__price{
    font-size:1.28rem;
  }
  .subscription-inline-request{
    grid-template-columns:1fr;
    padding:14px;
  }
  .subscription-submit-btn{
    width:100%;
    min-width:0;
  }
}

/* =========================================================
   ROUND 51 — subscription landing and B2B cooperation MVP
   Request: public subscription page, clickable service card, subscription chat
   ========================================================= */
.solution-card--link{
  width:100%;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.solution-card--link:hover,
.solution-card--link:focus-visible{
  color:inherit;
  transform:translateY(-4px);
  border-color:rgba(214,0,0,.24);
  box-shadow:0 22px 48px rgba(17,24,39,.11),0 10px 24px rgba(214,0,0,.08);
  outline:none;
}
.solution-card--link .solution-card__hint{
  color:#d60000;
  font-weight:800;
  font-size:.86rem;
}
.solution--subscription .icon-chip{
  background:rgba(214,0,0,.09);
  color:#d60000;
}
.subscription-page{
  overflow-x:hidden;
}
.subscription-landing-hero{
  position:relative;
  padding:56px 0 34px;
  background:
    radial-gradient(circle at 82% 8%,rgba(214,0,0,.12),transparent 30%),
    linear-gradient(135deg,#fff 0%,#fafbfc 58%,#fff4f4 100%);
  border-bottom:1px solid rgba(17,24,39,.06);
}
.subscription-landing-hero::after{
  content:"";
  position:absolute;
  inset:auto -120px -160px auto;
  width:360px;
  height:360px;
  border-radius:999px;
  background:rgba(214,0,0,.075);
  pointer-events:none;
}
.subscription-landing-hero__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  align-items:stretch;
  gap:24px;
}
.subscription-landing-hero__copy h1{
  max-width:780px;
  margin:0 0 16px;
  font-size:clamp(2.2rem,5vw,4.7rem);
  line-height:.95;
  letter-spacing:-.055em;
  font-weight:900;
  color:#111827;
}
.subscription-landing-hero__copy .lead{
  max-width:720px;
}
.subscription-landing-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.subscription-landing-hero__panel{
  padding:22px;
  display:grid;
  gap:12px;
  align-self:stretch;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  border-color:rgba(214,0,0,.10)!important;
}
.subscription-landing-hero__metric{
  padding:16px;
  border:1px solid rgba(17,24,39,.07);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fbfbfc);
}
.subscription-landing-hero__metric b{
  display:block;
  font-size:1.35rem;
  color:#d60000;
  letter-spacing:-.03em;
}
.subscription-landing-hero__metric span{
  display:block;
  color:#6b7280;
  font-size:.92rem;
  margin-top:3px;
}
.subscription-section{
  padding-top:54px;
  padding-bottom:54px;
}
.subscription-section--soft{
  background:#f6f7f9;
}
.subscription-section__head{
  max-width:760px;
  margin-bottom:22px;
}
.subscription-section__head h2{
  margin:0 0 10px;
  font-size:clamp(1.55rem,3vw,2.35rem);
  line-height:1.05;
  letter-spacing:-.035em;
  font-weight:850;
  color:#111827;
}
.subscription-section__head--row{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,420px);
  align-items:end;
  gap:18px;
}
.subscription-pain-grid,
.subscription-solution-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.subscription-pain-card{
  padding:20px;
  min-height:190px;
  background:linear-gradient(180deg,#fff,#fbfbfc);
}
.subscription-pain-card__icon{
  width:42px;
  height:42px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(214,0,0,.08);
  color:#d60000;
  margin-bottom:16px;
}
.subscription-pain-card h3{
  font-size:1.05rem;
  font-weight:800;
  margin:0 0 8px;
}
.subscription-pain-card p{
  margin:0;
  color:#6b7280;
}
.subscription-solution-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.subscription-solution-grid article{
  min-height:150px;
  padding:18px;
  border:1px solid rgba(17,24,39,.07);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 28px rgba(17,24,39,.05);
}
.subscription-solution-grid b{
  display:block;
  margin-bottom:8px;
  color:#111827;
}
.subscription-solution-grid span{
  color:#6b7280;
  font-size:.9rem;
  line-height:1.45;
}
.subscription-tariffs--landing .subscription-tariff-card{
  min-height:100%;
}
.subscription-tariff-card__price-static{
  font-size:1.5rem;
  font-weight:900;
  color:#111827;
  letter-spacing:-.035em;
}
.subscription-compare-panel--landing{
  background:#fff;
}
.subscription-section--premium{
  background:linear-gradient(135deg,#111827,#202632);
  color:#fff;
}
.subscription-section--premium .text-secondary,
.subscription-section--premium .eyebrow{
  color:rgba(255,255,255,.72)!important;
}
.subscription-premium{
  padding:28px;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.06));
  border-color:rgba(255,255,255,.16)!important;
  box-shadow:0 22px 60px rgba(0,0,0,.22);
}
.subscription-premium h2{
  max-width:820px;
  margin:0 0 12px;
  font-weight:850;
  letter-spacing:-.035em;
}
.subscription-premium__list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:22px 0;
}
.subscription-premium__list span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  border-radius:999px;
  padding:7px 12px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.15);
  color:#fff;
  font-weight:700;
  font-size:.9rem;
}
.subscription-brands{
  line-height:1.6;
}
.subscription-final-cta{
  padding:26px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  background:
    radial-gradient(circle at 95% 0%,rgba(214,0,0,.12),transparent 28%),
    linear-gradient(135deg,#fff,#fbfbfc);
}
.subscription-final-cta h2{
  margin:0 0 8px;
  font-weight:850;
  letter-spacing:-.03em;
}
.cooperation-mvp{
  display:grid;
  gap:16px;
}
.cooperation-hero{
  background:
    radial-gradient(circle at 90% 10%,rgba(214,0,0,.10),transparent 26%),
    linear-gradient(135deg,#fff,#fbfbfc);
  border-color:rgba(214,0,0,.10)!important;
}
.cooperation-benefits,
.cooperation-doc-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.cooperation-benefit{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.cooperation-benefit__icon{
  width:38px;
  height:38px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(214,0,0,.08);
  color:#d60000;
}
.cooperation-access-card,
.cooperation-company-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  background:linear-gradient(135deg,#fff,#fbfbfc 68%,rgba(214,0,0,.045));
}
.cooperation-access-card__form{
  min-width:260px;
}
.cooperation-doc-card{
  background:linear-gradient(180deg,#fff,#fbfbfc);
}
.cooperation-doc-card__tag{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  margin-bottom:10px;
  border-radius:999px;
  background:rgba(214,0,0,.08);
  color:#b00000;
  font-size:.78rem;
  font-weight:800;
}
@media (max-width:1199.98px){
  .subscription-solution-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:991.98px){
  .subscription-landing-hero__grid,
  .subscription-section__head--row,
  .subscription-final-cta,
  .cooperation-access-card,
  .cooperation-company-card{
    grid-template-columns:1fr;
  }
  .subscription-pain-grid,
  .cooperation-benefits,
  .cooperation-doc-grid{
    grid-template-columns:1fr;
  }
  .subscription-landing-hero{
    padding-top:34px;
  }
}
@media (max-width:767.98px){
  .solution-card--link:hover{
    transform:none;
  }
  .subscription-section{
    padding-top:38px;
    padding-bottom:38px;
  }
  .subscription-landing-hero__actions,
  .subscription-final-cta .btn{
    width:100%;
  }
  .subscription-landing-hero__actions .btn{
    width:100%;
  }
  .subscription-solution-grid{
    grid-template-columns:1fr;
  }
  .subscription-premium,
  .subscription-final-cta{
    padding:20px;
  }
  .cooperation-access-card__form{
    min-width:0;
  }
  .cooperation-access-card__form .btn{
    width:100%;
  }
}
/* =========================================================
   ROUND 52 — compact subscription, request type editor, admin UX fixes
   ========================================================= */
:root{ --header-h: 72px; }
.home-page{ padding-top: var(--header-h) !important; }
.home-page .site-header,
.site-header{ min-height:72px; height:auto !important; }
.site-header__topbar{ display:none !important; }
.site-header__nav .container{ min-height:64px !important; padding-top:.45rem !important; padding-bottom:.45rem !important; }
.site-header__brand-link .logo,
.site-header .navbar .logo{ height:32px !important; }
.site-header .nav-link{ font-size:13.5px; }
.site-header .site-header__cta-link,
.site-header .header-login-btn--nav{ min-height:38px; padding:.52rem .9rem !important; }
.subscription-page{ padding-top:var(--header-h) !important; }
.subscription-page .site-header{ position:fixed; top:0; left:0; right:0; z-index:1030; }

.solution-card--link .card-body{ display:flex; flex-direction:column; }
.solution-card--link .solution-card__hint{
  display:inline-flex;
  align-self:flex-start;
  margin-top:8px !important;
  min-height:24px;
  align-items:center;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(214,0,0,.07);
  color:#c40000;
  font-size:.78rem;
  line-height:1;
  letter-spacing:.01em;
  white-space:nowrap;
}

.subscription-landing-hero{ padding:42px 0 28px !important; }
.subscription-landing-hero__grid{ grid-template-columns:minmax(0,1fr) minmax(260px,360px); gap:18px; }
.subscription-landing-hero__copy h1{ font-size:clamp(2rem,4.4vw,3.75rem) !important; margin-bottom:12px; }
.subscription-landing-hero__copy .lead{ max-width:680px; font-size:1.03rem; }
.subscription-landing-hero__panel{ padding:16px; gap:10px; }
.subscription-landing-hero__metric{ padding:12px 14px; border-radius:16px; }
.subscription-landing-hero__metric b{ font-size:1.1rem; }
.subscription-section{ padding-top:34px !important; padding-bottom:34px !important; }
.subscription-section__head{ margin-bottom:16px; }
.subscription-section__head h2{ font-size:clamp(1.35rem,2.5vw,2rem) !important; }
.subscription-section__head--row{ grid-template-columns:1fr; }
.subscription-solution-grid article{ min-height:116px; padding:15px; border-radius:18px; }
.subscription-solution-grid span{ font-size:.86rem; }
.subscription-tariffs--landing{ gap:14px; }
.subscription-tariffs--landing .subscription-tariff-card{ padding:18px; }
.subscription-tariff-card__price-static{ font-size:1.34rem; }
.subscription-tariff-card__year{ display:none !important; }
.subscription-compare-panel--plain{ border:0 !important; box-shadow:none !important; background:transparent !important; padding:0 !important; }
.subscription-compare-panel--plain .table-responsive{ border:1px solid rgba(17,24,39,.08); border-radius:22px; background:#fff; box-shadow:0 14px 36px rgba(17,24,39,.06); }
.subscription-final-cta{ padding:22px; }
.cooperation-hero__icon{ width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:16px; background:rgba(214,0,0,.08); color:#d60000; flex:0 0 auto; }
.cooperation-benefits{ display:none !important; }
.admin-role-page input[data-role-section-view][disabled]{ opacity:.55; cursor:not-allowed; background-color:#eef0f2; border-color:#d1d5db; }
.admin-request-parts-table .btn-outline-danger.btn-sm{ border-radius:999px; padding:.28rem .65rem; font-size:.78rem; }

@media (max-width:991.98px){
  :root{ --header-h: 112px; }
  .home-page,.subscription-page{ padding-top:var(--header-h) !important; }
  .subscription-landing-hero__grid{ grid-template-columns:1fr; }
  .subscription-landing-hero__panel{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:767.98px){
  :root{ --header-h: 116px; }
  .subscription-landing-hero{ padding-top:28px !important; }
  .subscription-landing-hero__panel{ grid-template-columns:1fr; }
  .subscription-solution-grid{ grid-template-columns:1fr; }
  .solution-card--link .solution-card__hint{ white-space:normal; }
}

/* =========================================================
   ROUND 53 — repair split + compact service cards
   ========================================================= */
.home-page #solutions .row{
  align-items:stretch;
}
.home-page #solutions .solution-card,
.home-page #solutions .solution-card.card-clean{
  width:100%;
  min-height:150px;
}
.home-page #solutions .solution-card .card-body{
  padding:20px !important;
  min-height:150px;
  row-gap:6px !important;
}
.home-page #solutions .solution-card h3,
.home-page #solutions .solution-card .h6{
  line-height:1.18 !important;
}
.home-page #solutions .solution-card p,
.home-page #solutions .solution-card .text-secondary{
  font-size:.94rem !important;
  line-height:1.42 !important;
  max-width:100%;
}
.home-page #solutions .solution-card--link .card-body{
  grid-template-areas:"icon title" "icon text" "icon hint" !important;
}
.home-page #solutions .solution-card--link .solution-card__hint{
  grid-area:hint !important;
  justify-self:start;
  align-self:start;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  width:auto;
  max-width:100%;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(214,0,0,.09);
  border:1px solid rgba(214,0,0,.14);
  color:#b00000;
  font-size:.78rem;
  line-height:1.2;
  font-weight:850;
  white-space:nowrap;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
@media (max-width:767.98px){
  .home-page #solutions .solution-card,
  .home-page #solutions .solution-card.card-clean,
  .home-page #solutions .solution-card .card-body{
    min-height:132px;
  }
  .home-page #solutions .solution-card .card-body{
    padding:18px !important;
  }
  .home-page #solutions .solution-card--link .solution-card__hint{
    white-space:normal;
  }
}

/* =========================================================
   ROUND 54 — landing services + service price page
   ========================================================= */
.site-header .site-header__cta-link:not(.header-login-btn--nav){ display:none !important; }

.home-page #solutions .section-title__link{ color:inherit; text-decoration:none; pointer-events:none; }
.home-page #solutions .row{ align-items:stretch; }
.home-page #solutions .solution-card{
  text-decoration:none;
  color:inherit;
}
.home-page #solutions .solution-card .card-body{
  display:grid !important;
  grid-template-columns:52px minmax(0,1fr);
  grid-template-areas:"icon title" "icon text" "icon hint";
  align-content:center;
  align-items:center;
  column-gap:14px;
  row-gap:4px !important;
  min-height:138px !important;
  padding:18px 20px !important;
}
.home-page #solutions .solution-card .icon-chip{ grid-area:icon; margin:0 !important; }
.home-page #solutions .solution-card h3{ grid-area:title; margin:0 !important; }
.home-page #solutions .solution-card p{ grid-area:text; margin:0 !important; }
.home-page #solutions .solution-card__hint{
  grid-area:hint;
  justify-self:start;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 10px !important;
  border-radius:999px;
  background:#fff1f1 !important;
  border:1px solid rgba(214,0,0,.14) !important;
  color:#b00000 !important;
  font-size:.76rem !important;
  line-height:1 !important;
  font-weight:800;
  white-space:nowrap !important;
  box-decoration-break:slice !important;
  -webkit-box-decoration-break:slice !important;
}
.home-page #solutions .solution-card:hover .solution-card__hint,
.home-page #solutions .solution-card:focus-visible .solution-card__hint{
  background:#d60000 !important;
  border-color:#d60000 !important;
  color:#fff !important;
}
.solution--parts .icon-chip{ background:rgba(214,0,0,.08); color:#d60000; }
@media (max-width:767.98px){
  .home-page #solutions .solution-card .card-body{
    grid-template-columns:46px minmax(0,1fr);
    min-height:124px !important;
    padding:16px !important;
  }
  .home-page #solutions .solution-card p{ font-size:.88rem !important; }
}

.service-prices-page{ padding-top:var(--header-h) !important; }
.service-prices-page .site-header{ position:fixed; top:0; left:0; right:0; z-index:1030; }
.service-price-hero{
  padding:42px 0 28px;
  background:
    radial-gradient(circle at 14% 0%, rgba(214,0,0,.10), transparent 28%),
    linear-gradient(180deg,#fff 0%,#f7f8fa 100%);
}
.service-price-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,360px);
  gap:22px;
  align-items:stretch;
}
.service-price-kicker{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(214,0,0,.08);
  color:#b00000;
  font-weight:800;
  font-size:.82rem;
  margin-bottom:14px;
}
.service-price-hero h1{
  max-width:820px;
  font-size:clamp(2rem,4vw,3.6rem);
  line-height:1.05;
  font-weight:850;
  letter-spacing:-.045em;
  margin-bottom:14px;
}
.service-price-hero .lead{ max-width:860px; font-size:1.05rem; }
.service-price-note{
  display:grid;
  gap:12px;
  align-content:start;
  padding:20px;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
  box-shadow:0 18px 48px rgba(17,24,39,.08);
}
.service-price-note b{ font-size:1.05rem; }
.service-price-note span{ color:#6c757d; line-height:1.45; }
.service-price-note .btn{ justify-self:start; }
.service-price-section{ padding:38px 0; }
.service-price-section--soft{ background:#f7f8fa; }
.service-price-section__head{ display:grid; gap:8px; margin-bottom:16px; max-width:900px; }
.service-price-section__head h2{ font-size:clamp(1.45rem,2.8vw,2.25rem); font-weight:850; letter-spacing:-.025em; margin:0; }
.service-price-section__head p{ margin:0; }
.price-table-wrap{
  overflow:auto;
  border-radius:24px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  box-shadow:0 16px 42px rgba(17,24,39,.06);
}
.price-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:820px;
  margin:0;
}
.price-table th{
  background:#d60000;
  color:#fff;
  font-weight:850;
  padding:14px 16px;
  font-size:.9rem;
  vertical-align:middle;
}
.price-table th:first-child{ width:62%; }
.price-table th:not(:first-child){ width:19%; text-align:center; }
.price-table td{
  padding:13px 16px;
  border-bottom:1px solid rgba(17,24,39,.08);
  vertical-align:top;
  color:#1c2126;
}
.price-table tbody tr:last-child td{ border-bottom:0; }
.price-table td strong{ display:block; margin-bottom:4px; }
.price-table td span{ display:block; color:#5f6872; line-height:1.45; }
.price-table td:not(:first-child){ text-align:center; font-weight:800; white-space:nowrap; }
.price-table--additional th:first-child{ width:32%; }
.price-table--additional th:nth-child(2){ width:52%; text-align:left; }
.price-table--additional th:nth-child(3){ width:16%; }
.price-table--additional td:nth-child(2){ text-align:left; font-weight:500; white-space:normal; color:#5f6872; }
.service-price-footnotes{
  display:grid;
  gap:12px;
  margin-top:18px;
}
.service-price-footnotes > div{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
}
.service-price-footnotes > div span{ font-weight:850; white-space:nowrap; }
.service-price-footnotes p{ color:#6c757d; margin:2px 0 0; line-height:1.5; }
.service-price-cta{ padding:20px 0 48px; background:#f7f8fa; }
.service-price-cta__panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
  box-shadow:0 18px 48px rgba(17,24,39,.08);
}
.service-price-cta__panel h2{ font-weight:850; margin:0 0 6px; }
@media (max-width:991.98px){
  .service-prices-page{ padding-top:var(--header-h) !important; }
  .service-price-hero__grid{ grid-template-columns:1fr; }
  .service-price-note .btn{ width:100%; }
  .service-price-cta__panel{ display:grid; }
  .service-price-cta__panel .btn{ width:100%; }
}
@media (max-width:575.98px){
  .service-price-hero{ padding:28px 0 22px; }
  .service-price-section{ padding:28px 0; }
  .price-table{ min-width:760px; }
  .service-price-footnotes > div{ display:grid; }
}

/* ROUND 55 — admin chat hub */
.admin-chat-hub{position:fixed;right:22px;bottom:22px;z-index:1080;font-family:inherit}.admin-chat-hub__bubble{width:58px;height:58px;border:0;border-radius:22px;background:#1f2937;color:#fff;box-shadow:0 18px 42px rgba(15,23,42,.22);display:inline-flex;align-items:center;justify-content:center;position:relative;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.admin-chat-hub__bubble:hover{transform:translateY(-2px);box-shadow:0 24px 54px rgba(15,23,42,.28);background:#111827}.admin-chat-hub--unread .admin-chat-hub__bubble{background:#d60000;box-shadow:0 0 0 8px rgba(214,0,0,.10),0 18px 44px rgba(214,0,0,.30);animation:adminChatAura 1.8s ease-in-out infinite}.admin-chat-hub__bubble-icon{font-size:1.35rem;line-height:1}.admin-chat-hub__badge{position:absolute;top:-6px;right:-6px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#fff;color:#d60000;border:2px solid #d60000;font-size:.76rem;font-weight:850;display:inline-flex;align-items:center;justify-content:center}.admin-chat-hub__panel{position:absolute;right:0;bottom:74px;width:min(920px,calc(100vw - 32px));height:min(660px,calc(100vh - 120px));background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:28px;box-shadow:0 28px 90px rgba(15,23,42,.26);overflow:hidden}.admin-chat-hub__header{height:72px;padding:16px 18px;border-bottom:1px solid rgba(15,23,42,.08);display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#fff,#fafafa)}.admin-chat-hub__title{font-weight:850;font-size:1.04rem;color:#111827}.admin-chat-hub__subtitle{font-size:.84rem;color:#6b7280}.admin-chat-hub__header-actions{display:flex;align-items:center;gap:8px}.admin-chat-hub__notify,.admin-chat-hub__close{width:34px;height:34px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;font-weight:800;line-height:1}.admin-chat-hub__notify.is-enabled{border-color:rgba(214,0,0,.22);color:#d60000;background:rgba(214,0,0,.06)}.admin-chat-hub__close{font-size:1.25rem}.admin-chat-hub__body{display:grid;grid-template-columns:310px minmax(0,1fr);height:calc(100% - 72px);min-height:0}.admin-chat-hub__list{border-right:1px solid rgba(15,23,42,.08);background:#f7f8fa;overflow:auto;padding:10px}.admin-chat-hub__item{width:100%;border:1px solid transparent;background:#fff;text-align:left;border-radius:18px;padding:12px 12px;margin-bottom:8px;display:grid;gap:4px;color:#111827;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.admin-chat-hub__item:hover{transform:translateY(-1px);border-color:rgba(214,0,0,.18);box-shadow:0 12px 30px rgba(15,23,42,.08)}.admin-chat-hub__item.is-active{border-color:rgba(214,0,0,.38);box-shadow:0 0 0 3px rgba(214,0,0,.08);background:#fff}.admin-chat-hub__item.has-unread .admin-chat-hub__item-title{color:#d60000}.admin-chat-hub__item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-chat-hub__item-title{font-weight:850}.admin-chat-hub__item-badge{min-width:22px;height:22px;border-radius:999px;background:#d60000;color:#fff;font-size:.74rem;font-weight:850;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.admin-chat-hub__item-topic{font-size:.78rem;color:#6b7280}.admin-chat-hub__item-text{font-size:.86rem;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-chat-hub__chat{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}.admin-chat-hub__chat-head{padding:14px 18px;border-bottom:1px solid rgba(15,23,42,.08);display:flex;align-items:center;justify-content:space-between}.admin-chat-hub__request-link{font-weight:850;color:#111827;text-decoration:none}.admin-chat-hub__request-link:hover{color:#d60000}.admin-chat-hub__request-topic{font-size:.84rem;color:#6b7280}.admin-chat-hub__messages{min-height:0;overflow:auto;padding:16px 18px;background:linear-gradient(180deg,#fff,#fafafa)}.admin-chat-hub__composer{border-top:1px solid rgba(15,23,42,.08);padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;background:#fff}.admin-chat-hub__composer textarea{width:100%;resize:none;border:1px solid rgba(15,23,42,.14);border-radius:16px;padding:10px 12px;font:inherit;outline:none}.admin-chat-hub__composer textarea:focus{border-color:#d60000;box-shadow:0 0 0 3px rgba(214,0,0,.10)}.admin-chat-hub__feedback{grid-column:1/-1;color:#d60000;font-size:.84rem;min-height:1em}.admin-chat-hub__placeholder,.admin-chat-hub__empty{padding:18px;color:#6b7280}.admin-chat-hub__placeholder{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.admin-chat-hub__placeholder--error{color:#d60000}@keyframes adminChatAura{0%,100%{box-shadow:0 0 0 7px rgba(214,0,0,.10),0 18px 44px rgba(214,0,0,.28)}50%{box-shadow:0 0 0 14px rgba(214,0,0,.04),0 18px 44px rgba(214,0,0,.34)}}@media (max-width:768px){.admin-chat-hub{right:14px;bottom:14px}.admin-chat-hub__panel{right:-2px;bottom:70px;width:calc(100vw - 24px);height:min(720px,calc(100vh - 96px));border-radius:22px}.admin-chat-hub__body{grid-template-columns:1fr;grid-template-rows:220px minmax(0,1fr)}.admin-chat-hub__list{border-right:0;border-bottom:1px solid rgba(15,23,42,.08)}.admin-chat-hub__composer{grid-template-columns:1fr}.admin-chat-hub__composer .btn{width:100%}}

/* ROUND 55 — service prices cleanup */
.service-price-hero__grid{align-items:center}.service-price-note{min-height:auto}.service-price-footnotes--summary{margin-top:18px}.service-price-footnotes__notice{grid-column:1/-1;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;align-items:center;border-color:rgba(214,0,0,.14)!important;background:linear-gradient(135deg,rgba(214,0,0,.045),#fff)!important}.service-price-footnotes__notice b{color:#111827}.service-price-footnotes__notice p{grid-column:1/2;margin:0!important;color:#6c757d;line-height:1.55}.service-price-footnotes__notice .btn{grid-row:1/3;grid-column:2/3;white-space:nowrap}@media (max-width:768px){.service-price-footnotes__notice{grid-template-columns:1fr}.service-price-footnotes__notice p,.service-price-footnotes__notice .btn{grid-column:1;grid-row:auto}.service-price-footnotes__notice .btn{width:100%}}

/* ROUND 56 — chat hub polish, closed chats, floating textarea UX */
.chat-closed-note{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:14px 16px;
  background:linear-gradient(180deg,#f8f9fa 0%,#fff 100%);
  color:#6b7280;
  font-weight:700;
  text-align:center;
}
.admin-chat-hub__bubble[hidden]{display:none!important;}
.admin-chat-hub__panel{
  max-height:calc(100vh - 104px)!important;
}
.admin-chat-hub__body,
.admin-chat-hub__chat{
  min-height:0!important;
  overflow:hidden!important;
}
.admin-chat-hub__chat{
  height:100%!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
}
.admin-chat-hub__messages{
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  overscroll-behavior:contain;
}
.admin-chat-hub__messages .chat-msg{
  margin:0!important;
  max-width:min(78%, 560px)!important;
}
.admin-chat-hub__messages .chat-msg--mine{
  align-self:flex-end!important;
}
.admin-chat-hub__messages .chat-msg--theirs{
  align-self:flex-start!important;
}
.admin-chat-hub__composer{
  min-height:0!important;
  grid-template-columns:1fr!important;
  gap:6px!important;
  flex:0 0 auto!important;
}
.admin-chat-hub__composer-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
}
.admin-chat-hub__attach{
  width:38px;
  height:38px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.14);
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  margin:0;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}
.admin-chat-hub__attach:hover{
  border-color:rgba(214,0,0,.32);
  background:rgba(214,0,0,.05);
  transform:translateY(-1px);
}
.admin-chat-hub__attach:has(input:disabled){
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}
.admin-chat-hub__files{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  min-height:0;
}
.admin-chat-hub__item-text.is-attachment{
  font-style:italic;
  color:#6b7280;
}
.admin-chat-hub__item.is-closed{
  opacity:.82;
}
.admin-chat-hub__item.is-closed .admin-chat-hub__item-title::after{
  content:'закрыта';
  display:inline-flex;
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  background:#eef0f2;
  color:#6b7280;
  font-size:.68rem;
  font-weight:800;
  vertical-align:middle;
}
.admin-chat-hub__composer textarea:disabled{
  background:#f4f5f6!important;
  color:#8a9199!important;
}
.floating-field--textarea.is-filled .floating-label{
  opacity:0!important;
  visibility:hidden!important;
}
.floating-field--textarea textarea{
  overflow-y:hidden;
  resize:none!important;
  max-height:168px;
}
@media (max-width:768px){
  .admin-chat-hub__composer-row{grid-template-columns:auto minmax(0,1fr);}
  .admin-chat-hub__composer-row .btn{grid-column:1/-1;width:100%;}
  .admin-chat-hub__messages .chat-msg{max-width:92%!important;}
}
