    :root {
      --ink: #14212b;
      --muted: #6b7c8a;
      --line: #e4e9ee;
      --bg: #f4f6f8;
      --card: #fff;
      --brand: #1a6bb5;
      --ok: #15803d;
      --warn: #b45309;
      --safe-top: env(safe-area-inset-top, 0px);
      --safe-bottom: env(safe-area-inset-bottom, 0px);
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      font: 15px/1.4 system-ui, -apple-system, Segoe UI, sans-serif;
      color: var(--ink);
      background: var(--bg);
      padding-bottom: var(--safe-bottom);
      overflow-x: hidden;
    }
    html.office-pwa-standalone body {
      padding-top: var(--safe-top);
      min-height: 100dvh;
    }
    html.office-pwa-standalone header {
      padding-top: max(12px, var(--safe-top));
    }
    /*
      PWA (домашний экран) — шапка: Транспорт · Детали · Финансы · События справа.
      PROD и чип клиента скрыты. Десктоп / браузер не трогаем.
    */
    html.office-pwa-standalone .filters {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 4px 6px;
      padding: 8px 10px;
      padding-top: max(8px, env(safe-area-inset-top, 0px));
      width: 100%;
      box-sizing: border-box;
    }
    html.office-pwa-standalone .filters-tabs {
      display: flex;
      flex-wrap: nowrap;
      flex: 1 1 auto;
      align-items: center;
      gap: 2px 4px;
      min-width: 0;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    html.office-pwa-standalone .filters-tabs::-webkit-scrollbar {
      display: none;
    }
    html.office-pwa-standalone .filters-side {
      margin-left: 0;
      flex: 1 1 auto;
      width: 100%;
      flex-wrap: nowrap;
      gap: 8px;
      justify-content: space-between;
    }
    html.office-pwa-standalone .filters-side .env-release,
    html.office-pwa-standalone .filters-side .pill {
      display: none !important;
    }
    html.office-pwa-standalone .filt {
      flex: 0 0 auto;
      white-space: nowrap;
      font-size: 0.7rem;
      letter-spacing: 0.02em;
      padding: 6px 7px;
    }
    html.office-pwa-standalone .finance-btn,
    html.office-pwa-standalone .events-btn,
    html.office-pwa-standalone .logout-btn {
      flex: 0 0 auto;
      white-space: nowrap;
      font-size: 0.62rem;
      font-weight: 750;
      letter-spacing: 0.02em;
      padding: 4px 7px;
      gap: 4px;
      border-radius: 8px;
      display: inline-flex;
    }
    html.office-pwa-standalone .events-btn .events-count {
      font-size: 0.58rem;
      min-width: 1.1rem;
      padding: 0 4px;
    }
    /* Десктопный блок «Финансы» на PWA — показываем, когда выбран чип Финансы */
    html.office-pwa-standalone .finance-panel.is-tab-mode:not([hidden]) {
      display: block !important;
    }
    html.office-pwa-standalone .finance-panel.is-tab-mode[hidden] {
      display: none !important;
    }
    /* PWA список: дата слева · название справа → фото+мета → остальные чипы */
    html.office-pwa-standalone .cars-table.is-vehicle-goods tbody tr.car-row td:nth-child(1),
    html.office-pwa-standalone .cars-table.is-vehicle-goods tbody tr.car-row td:nth-child(3),
    html.office-pwa-standalone .cars-table.is-parts-goods tbody tr.car-row td:nth-child(1),
    html.office-pwa-standalone .cars-table.is-parts-goods tbody tr.car-row td:nth-child(3) {
      width: 100% !important;
      max-width: 100% !important;
      display: block;
      box-sizing: border-box;
      white-space: normal !important;
    }
    /* Отдельный столбец «Фото» на телефоне не нужен — превью внутри карточки */
    html.office-pwa-standalone .cars-table th.th-part-photo,
    html.office-pwa-standalone .cars-table td.cell-part-photo {
      display: none !important;
    }
    html.office-pwa-standalone .cars-table .cell-date--head {
      display: flex !important;
      flex-direction: row;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      width: 100% !important;
      max-width: 100% !important;
      /* слева как у цены/фото (cell-car), справа как у статуса */
      padding: 2px 12px 2px 2px !important;
      box-sizing: border-box;
    }
    html.office-pwa-standalone .cars-table .cell-date-added {
      flex: 0 0 auto;
      color: var(--muted);
      font-size: 0.82rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
    html.office-pwa-standalone .cars-table .cell-date-name {
      flex: 1 1 auto;
      min-width: 0;
      text-align: right;
      color: var(--ink);
      font-size: 0.95rem;
      font-weight: 750;
      line-height: 1.3;
      white-space: normal;
      word-break: normal;
      overflow-wrap: anywhere;
    }
    html.office-pwa-standalone .cars-table .cell-car {
      display: block;
      width: 100% !important;
      max-width: 100% !important;
      padding: 2px 12px 2px 2px !important;
    }
    html.office-pwa-standalone .cars-table .cell-car .cell-title,
    html.office-pwa-standalone .cars-table .cell-car .cell-vin,
    html.office-pwa-standalone .cars-table .cell-vin {
      display: none !important;
    }
    html.office-pwa-standalone .cars-table .cell-car img,
    html.office-pwa-standalone .cars-table .cell-car .car-ph {
      width: 96px;
      max-width: 96px;
      height: 72px;
      aspect-ratio: auto;
      border-radius: 8px;
      object-fit: cover;
      display: block;
    }
    /* PWA: фото + справа 3 строки ровно в высоту фото (72px) */
    html.office-pwa-standalone .pwa-car-main {
      display: flex;
      flex-direction: row;
      align-items: flex-start;
      gap: 10px;
      width: 100%;
    }
    html.office-pwa-standalone .pwa-car-media {
      flex: 0 0 auto;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }
    html.office-pwa-standalone .pwa-car-side {
      flex: 1 1 auto;
      min-width: 0;
      height: 72px;
      max-height: 72px;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: space-between;
      gap: 0;
      padding-top: 0;
      box-sizing: border-box;
    }
    html.office-pwa-standalone .pwa-car-side-row {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 5px;
      min-width: 0;
      width: 100%;
      min-height: 0;
      line-height: 1.15;
    }
    html.office-pwa-standalone .pwa-car-side .badge {
      font-size: 0.68rem;
      font-weight: 800;
      padding: 1px 6px;
      border-radius: 5px;
      letter-spacing: 0.02em;
      line-height: 1.15;
    }
    html.office-pwa-standalone .pwa-lot {
      font-size: 0.88rem;
      font-weight: 500;
      color: var(--ink);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      line-height: 1.15;
    }
    html.office-pwa-standalone .pwa-auction {
      font-size: 0.74rem;
      font-weight: 750;
      letter-spacing: 0.04em;
      line-height: 1.15;
      white-space: nowrap;
      background: none;
      border: 0;
      padding: 0;
      border-radius: 0;
    }
    html.office-pwa-standalone .pwa-auction--copart {
      color: #1a5fb4;
    }
    html.office-pwa-standalone .pwa-auction--iaai {
      color: #b91c1c;
    }
    html.office-pwa-standalone .pwa-vin {
      font-family: ui-monospace, Menlo, monospace;
      font-size: 0.72rem;
      font-weight: 650;
      color: var(--ink);
      letter-spacing: 0.02em;
      word-break: break-all;
      line-height: 1.15;
    }
    html.office-pwa-standalone .pwa-vin-row {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-width: 0;
      max-width: 100%;
    }
    html.office-pwa-standalone .pwa-vin-row .vin-copy {
      flex: 0 0 auto;
      width: 14px;
      height: 14px;
      border-radius: 4px;
      border-width: 0;
      background: transparent;
      color: var(--muted);
    }
    html.office-pwa-standalone .pwa-vin-row .vin-copy svg {
      width: 10px;
      height: 10px;
    }
    html.office-pwa-standalone .pwa-car-side-row--auction,
    html.office-pwa-standalone .pwa-car-side-row--vin {
      width: 100%;
      flex-wrap: nowrap;
    }
    html.office-pwa-standalone .pwa-car-side-row--vin .pwa-vin-row {
      flex: 1 1 auto;
      min-width: 0;
    }
    /* правый столбец иконок: камера и карта разбора в одну вертикаль */
    html.office-pwa-standalone .pwa-side-trail {
      display: grid;
      grid-template-columns: auto 1.35rem;
      align-items: center;
      justify-items: end;
      column-gap: 3px;
      margin-left: auto;
      flex: 0 0 auto;
      color: #15803d;
      font-size: 0.78rem;
      font-weight: 750;
      font-variant-numeric: tabular-nums;
      line-height: 1;
    }
    html.office-pwa-standalone .pwa-side-trail--ico {
      grid-template-columns: 1.35rem;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-photos-n {
      text-align: right;
      line-height: 1;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-side-ico,
    html.office-pwa-standalone .pwa-side-trail .card-ico {
      width: 1.35rem;
      height: 1.35rem;
      margin: 0;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      justify-self: end;
      flex: 0 0 auto;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-side-ico {
      color: #dc2626;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-side-ico.is-ok {
      color: #16a34a;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-side-ico.is-miss {
      color: #dc2626;
    }
    html.office-pwa-standalone .pwa-side-trail .pwa-side-ico svg,
    html.office-pwa-standalone .pwa-side-trail .card-ico svg {
      width: 15px;
      height: 15px;
      display: block;
    }
    html.office-pwa-standalone .pwa-car-side-row--yard {
      width: 100%;
      flex-wrap: nowrap;
      gap: 5px;
    }
    html.office-pwa-standalone .pwa-car-side-row--yard .pwa-container {
      margin-left: auto;
      flex: 0 1 auto;
      max-width: 48%;
      text-align: right;
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--muted);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      min-width: 0;
      line-height: 1.15;
    }
    html.office-pwa-standalone .pwa-car-foot {
      display: grid;
      grid-template-columns: 96px minmax(0, 1fr) auto;
      column-gap: 10px;
      align-items: center;
      width: 100%;
      margin-top: 3px;
      padding-right: 0;
      box-sizing: border-box;
    }
    html.office-pwa-standalone .pwa-car-foot .pwa-car-price {
      grid-column: 1;
      justify-self: start;
    }
    html.office-pwa-standalone .pwa-car-foot .pwa-car-status {
      grid-column: 3;
      margin-left: 0;
      text-align: right;
      max-width: none;
    }
    html.office-pwa-standalone .pwa-car-price {
      flex: 0 0 auto;
      font-size: 1rem;
      font-weight: 800;
      color: #15803d;
      font-variant-numeric: tabular-nums;
      line-height: 1.2;
    }
    html.office-pwa-standalone .pwa-car-status {
      flex: 0 1 auto;
      margin-left: auto;
      text-align: right;
      max-width: 55%;
    }
    html.office-pwa-standalone .pwa-car-status .badge {
      display: inline-block;
      box-sizing: border-box;
      vertical-align: middle;
      font-size: 0.72rem;
      line-height: 1.25;
      white-space: normal;
      text-align: right;
    }
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-lot,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-yard,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-code,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-container,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-money,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-meta,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-dc,
    html.office-pwa-standalone .cars-table tbody tr.car-row td.cell-status {
      display: none !important;
    }
    /* PWA: каждая машина — отдельная карточка, не общая белая простыня */
    html.office-pwa-standalone .table-wrap {
      padding: 6px 6px 24px;
      background: #e8eef4;
    }
    html.office-pwa-standalone .cars-table {
      width: 100% !important;
      max-width: 100%;
      background: transparent;
      border: 0;
      border-radius: 0;
      overflow: visible;
      border-spacing: 0;
      border-collapse: separate;
    }
    html.office-pwa-standalone .cars-table thead {
      display: none;
    }
    html.office-pwa-standalone .cars-table tbody {
      display: block;
      width: 100%;
    }
    /* cards-gap-v3: зазор между плитками · контур слегка чёрный */
    html.office-pwa-standalone .cars-table tbody tr.car-row {
      display: block;
      width: 100%;
      box-sizing: border-box;
      background: #fff;
      border: 2px solid #555;
      border-radius: 5px;
      margin: 0 0 4px;
      padding: 0 0 5px;
      box-shadow: none;
      overflow: hidden;
    }
    html.office-pwa-standalone .cars-table tbody tr.car-row:hover {
      background: #fff;
    }
    html.office-pwa-standalone .cars-table tbody tr.car-row.is-on {
      background: #f8fbff;
      border-color: #93c5fd;
      box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.14);
      border-radius: 5px 5px 0 0;
      border-bottom: 0 !important;
      margin-bottom: 0;
      /* место под окантовку статуса — не прижимать к смете */
      padding-bottom: 6px;
    }
    html.office-pwa-standalone .cars-table tbody tr.car-row td {
      border-bottom: 0 !important;
    }
    html.office-pwa-standalone .cars-table tbody tr.expand-row {
      display: block;
      width: 100%;
      box-sizing: border-box;
      background: #fff;
      border: 2px solid #93c5fd;
      border-top: 0;
      border-radius: 0 0 5px 5px;
      margin: 0 0 4px;
      box-shadow: none;
      overflow: hidden;
    }
    html.office-pwa-standalone .cars-table tbody tr.expand-row td {
      display: block;
      border-bottom: 0 !important;
      padding: 0 !important;
    }
    /* Одна карточка: без шва между списком и раскрытием */
    html.office-pwa-standalone .cars-table .expand-row .detail,
    html.office-pwa-standalone body.car-open .cars-table .expand-row .detail {
      border-top: 0 !important;
      padding: 6px 10px 16px !important;
    }
    html.office-pwa-standalone .cars-table tbody tr.car-row.is-on td.cell-car {
      padding-bottom: 2px !important;
    }
    /* Одинаковый интервал: цена/статус → смета → фильтры фото */
    html.office-pwa-standalone .detail > .car-head {
      margin: 0;
    }
    html.office-pwa-standalone .detail .photos-sec {
      margin: 0;
    }
    html.office-pwa-standalone .detail .photos {
      gap: 12px 10px;
    }
    html.office-pwa-standalone .detail .photos > .ledger-sec {
      margin: 0;
    }
    html.office-pwa-standalone .detail .photos > .stages--head {
      margin: 0;
    }
    /* Мобилка: в раскрытии нет повторного названия — только «Карта разбора» справа */
    html.office-pwa-standalone .car-head-topline:not(:has(h2)) {
      justify-content: flex-end;
    }
    /* PWA / телефон: теххарактеристики поставщика под фото не показываем */
    html.office-pwa-standalone .gal-vin-meta {
      display: none !important;
    }
    @media (max-width: 720px) {
      .gal-vin-meta {
        display: none !important;
      }
    }
    /* Мобилка: чипы фильтров карты — под фото, над картой */
    .dc-map-chips-bar {
      display: none;
      flex-wrap: nowrap;
      align-items: center;
      gap: 4px;
      padding: 8px 0 10px;
      margin: 0;
    }
    body.map-open .dc-map-chips-bar {
      display: flex;
    }
    .dc-map-chips-bar .dc-stats {
      flex: 0 1 auto;
      width: auto;
      min-width: 0;
      flex-wrap: nowrap;
      gap: 4px;
      justify-content: flex-start;
    }
    .dc-map-chips-bar .dc-stat {
      height: 1.55rem;
      min-height: 1.55rem;
      min-width: 0;
      padding: 0 6px;
      gap: 3px;
      font-size: 0.68rem;
    }
    .dc-map-chips-bar .dc-stat.yes,
    .dc-map-chips-bar .dc-stat.no,
    .dc-map-chips-bar .dc-stat.pending,
    .dc-map-chips-bar .dc-stat.empty {
      min-width: 0;
      padding: 0 6px;
    }
    .dc-map-chips-bar .dc-stat-ico {
      width: 12px;
      height: 12px;
    }
    .dc-map-chips-bar .dc-stat-ico svg {
      width: 12px;
      height: 12px;
    }
    .dc-map-chips-bar .dc-test-fill {
      flex: 0 0 auto;
      min-height: 1.55rem;
      padding: 0 8px;
      font-size: 0.68rem;
      letter-spacing: 0.02em;
    }
    .dc-test-fill {
      box-sizing: border-box;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 1.7rem;
      padding: 0 12px;
      border: 1.5px solid #15803d;
      border-radius: 5px;
      background: #16a34a;
      color: #fff;
      font: inherit;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      cursor: pointer;
      white-space: nowrap;
      flex: 0 0 auto;
    }
    .dc-test-fill:hover {
      background: #15803d;
      border-color: #15803d;
    }
    .dc-sec-nav .dc-test-fill {
      min-height: 3.25rem;
      width: 100%;
      font-size: 0.88rem;
      padding: 10px 12px;
    }
    /* Мобилка: раздел карты — один кирпич, слоты в общей границе, без Назад/Дальше */
    .dc-groups--accordion {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .dc-acc-block {
      display: flex;
      flex-direction: column;
      min-width: 0;
      border: 1px solid #cbd5e1;
      border-radius: 10px;
      overflow: hidden;
      background: #fff;
    }
    .dc-acc-block .dc-sec {
      width: 100%;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      min-height: 2.75rem;
    }
    .dc-acc-block .dc-sec.is-on {
      box-shadow: inset 3px 0 0 #1d4ed8;
    }
    .dc-acc-block .dc-sec.is-done.is-on {
      box-shadow: inset 3px 0 0 #16a34a;
    }
    .dc-acc-block.is-open .dc-sec {
      border-radius: 0;
      border-bottom: 1px solid #e2e8f0;
    }
    .dc-acc-block .dc-sec-work {
      border: 0;
      border-radius: 0;
      background: #fff;
      margin: 0;
    }
    .dc-acc-block .dc-sec-work .dc-parts {
      grid-template-columns: 1fr;
      padding: 0;
      gap: 0;
    }
    /* Одна высота строки: квадрат ДА/НЕТ не прыгает */
    .dc-acc-block .dc-part,
    .dc-acc-block .dc-part.is-ready-step {
      height: 40px !important;
      min-height: 40px !important;
      max-height: 40px !important;
      flex-wrap: nowrap !important;
      align-items: center !important;
      padding: 0 8px 0 6px !important;
      overflow: hidden !important;
      gap: 8px;
      border-radius: 0;
      border-left: 0;
      border-right: 0;
      border-top: 0;
      border-bottom: 1px solid #e2e8f0;
      margin: 0;
    }
    .dc-acc-block .dc-part:last-child {
      border-bottom: 0;
    }
    .dc-acc-block .dc-part.is-yes,
    .dc-acc-block .dc-part.is-no {
      border-color: #e2e8f0;
      border-bottom-color: #e2e8f0;
    }
    .dc-acc-block .dc-save {
      box-sizing: border-box;
      width: 28px !important;
      height: 28px !important;
      min-width: 28px !important;
      max-width: 28px !important;
      min-height: 28px !important;
      max-height: 28px !important;
      flex: 0 0 28px !important;
      align-self: center !important;
      border-radius: 6px;
      font-size: 0.65rem;
      line-height: 1;
      padding: 0;
    }
    .dc-acc-block .dc-part-ru {
      flex: 1 1 auto;
      min-width: 0;
      white-space: nowrap !important;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .dc-acc-block .dc-reject-banner {
      display: none !important;
    }
    .dc-acc-block .dc-submit-inline {
      display: none !important; /* отдельная кнопка — только десктоп; на мобилке = .dc-submit-tap */
    }
    .dc-acc-block .dc-submit-tap {
      appearance: none;
      -webkit-appearance: none;
      border: 0;
      background: transparent;
      margin: 0;
      padding: 0;
      flex: 1 1 auto;
      min-width: 0;
      text-align: left;
      cursor: pointer;
      font: inherit;
      font-size: 0.82rem;
      font-weight: 800;
      line-height: 1.2;
      color: #166534;
      white-space: nowrap !important;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .dc-acc-block .dc-part.is-ready-step.is-yes .dc-submit-tap {
      color: #166534;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .dc-acc-block .dc-submit-tap:active {
      opacity: 0.7;
    }
    .dc-acc-block .dc-sec-foot {
      display: none !important;
    }
    html.office-pwa-standalone body.map-open .dismantle-mount {
      border: 0;
      background: transparent;
      border-radius: 0;
      margin-top: 6px;
    }
    html.office-pwa-standalone body.map-open .dismantle-mount .dismantle-dock {
      padding: 4px 0 12px;
      background: transparent;
      border: 0;
    }
    @media (max-width: 720px) {
      body.map-open .dismantle-mount {
        border: 0;
        background: transparent;
        border-radius: 0;
        margin-top: 6px;
      }
      body.map-open .dismantle-mount .dismantle-dock {
        padding: 4px 0 12px;
        background: transparent;
        border: 0;
      }
    }
    html.office-pwa-standalone .cars-table tbody tr.empty-row {
      display: block;
      background: #fff;
      border: 1px solid #cfd8e3;
      border-radius: 12px;
      margin: 0;
    }
    .office-pwa-hint {
      position: fixed;
      left: 12px;
      right: 12px;
      bottom: max(12px, var(--safe-bottom));
      z-index: 40;
      display: flex;
      gap: 10px;
      align-items: flex-start;
      background: #0f172a;
      color: #fff;
      border-radius: 14px;
      padding: 12px 12px 12px 14px;
      box-shadow: 0 12px 32px rgba(15, 23, 42, 0.35);
    }
    .office-pwa-hint[hidden] { display: none !important; }
    .office-pwa-hint-text {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
    }
    .office-pwa-hint-text strong { font-size: 0.92rem; }
    .office-pwa-hint-text span { font-size: 0.78rem; color: #cbd5e1; line-height: 1.35; }
    .office-pwa-hint-actions { display: flex; align-items: center; gap: 6px; }
    .office-pwa-hint-btn {
      border: 0;
      border-radius: 10px;
      background: var(--brand);
      color: #fff;
      font: inherit;
      font-weight: 800;
      font-size: 0.8rem;
      padding: 8px 12px;
      cursor: pointer;
      white-space: nowrap;
    }
    .office-pwa-hint-x {
      border: 0;
      background: transparent;
      color: #94a3b8;
      font-size: 1.4rem;
      line-height: 1;
      padding: 2px 6px;
      cursor: pointer;
    }
    header {
      background: var(--card);
      border-bottom: 1px solid var(--line);
      padding: 12px 18px;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      position: sticky;
      top: 0;
      z-index: 5;
    }
    header h1 { margin: 0; font-size: 1.05rem; font-weight: 750; }
    header p { margin: 2px 0 0; font-size: 0.78rem; color: var(--muted); max-width: 40rem; }
    .header-pills {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
    }
    .pill {
      font-size: 0.75rem;
      font-weight: 700;
      padding: 6px 10px;
      border-radius: 999px;
      background: #e8f1fb;
      color: var(--brand);
      white-space: nowrap;
    }
    .env-release {
      font-size: 0.75rem;
      font-weight: 600;
      color: #0f172a;
      letter-spacing: 0.02em;
      white-space: nowrap;
      background: none;
      padding: 0;
      border-radius: 0;
    }
    .badge.st-unpaid,
    .badge.st-paid,
    .badge.st-transit,
    .badge.st-site,
    .badge.st-stock,
    .badge.st-ready,
    .badge.st-slot,
    .badge.st-work,
    .badge.st-packing,
    .badge.st-loading,
    .badge.st-archive,
    .badge.disassembled,
    .badge.tx,
    .badge.nj,
    .badge.nc {
      background: transparent !important;
      box-shadow: none;
      border-style: solid;
      border-width: 1.5px;
      border-radius: 5px;
      font-weight: 700;
      padding: 2px 8px;
      line-height: 1.2;
    }
    /* Цвета статусов — те же ключи, что у админа (wh-*). Потом уточним палитру. */
    .badge.st-unpaid { border-color: #b91c1c; color: #b91c1c; }
    .badge.st-paid { border-color: #c2410c; color: #c2410c; }
    .badge.st-transit { border-color: #1d4ed8; color: #1d4ed8; }
    .badge.st-site,
    .badge.st-stock,
    .badge.st-ready { border-color: #15803d; color: #15803d; }
    .badge.st-slot { border-color: #4f46e5; color: #4f46e5; }
    .badge.st-work { border-color: #b45309; color: #b45309; }
    .badge.disassembled { border-color: #0f172a; color: #0f172a; }
    .badge.st-packing { border-color: #7c3aed; color: #7c3aed; }
    /* Yard / № разбора — тот же формат чипа, цвета площадки */
    .badge.tx { border-color: #c2410c; color: #c2410c; }
    .badge.nj { border-color: #1d4ed8; color: #1d4ed8; }
    .badge.nc { border-color: #047857; color: #047857; }
    /* Как у админа: На складе + маркеры фото / DC */
    .status-chips {
      display: inline-flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
      vertical-align: middle;
      max-width: 100%;
    }
    .status-chips-row {
      display: inline-flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: stretch;
      gap: 4px;
    }
    .status-chips .badge,
    .status-chips .status-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 3px;
      min-height: 22px;
      height: 22px;
      box-sizing: border-box;
      padding: 0 8px;
      border-radius: 5px;
      font-size: 0.72rem;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
    }
    .status-chip {
      border: 0;
      cursor: default;
      color: #fff;
    }
    .status-chip.is-btn { cursor: pointer; }
    .status-chip svg {
      width: 12px;
      height: 12px;
      flex-shrink: 0;
      display: block;
    }
    .status-chip-txt {
      font-size: 0.68rem;
      font-weight: 800;
      letter-spacing: 0.04em;
    }
    .status-chip.is-miss {
      background: #fecaca;
      color: #b91c1c;
      box-shadow: inset 0 0 0 1px rgba(185, 28, 28, 0.25);
    }
    .status-chip.is-wait {
      background: #fef3c7;
      color: #a16207;
      box-shadow: inset 0 0 0 1px rgba(161, 98, 7, 0.22);
    }
    .status-chip.is-ok {
      background: #dcfce7;
      color: #166534;
      box-shadow: inset 0 0 0 1px rgba(22, 101, 52, 0.22);
    }
    .filters {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
      padding: 8px 14px;
      background: var(--card);
      border-bottom: 1px solid var(--line);
      position: sticky;
      top: 0;
      z-index: 6;
    }
    .filters-side {
      margin-left: auto;
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      flex: 0 0 auto;
    }
    .filters-tabs {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 4px 6px;
      min-width: 0;
    }
    .filt {
      border: 0;
      background: transparent;
      font: inherit;
      font-weight: 800;
      font-size: 0.85rem;
      letter-spacing: 0.04em;
      color: var(--muted);
      padding: 6px 10px;
      border-radius: 8px;
      cursor: pointer;
    }
    .filt.is-on { color: var(--brand); background: #eaf2fb; }
    /* Финансы — третий чип в шапке; старая кнопка/шапка панели не нужны */
    .finance-btn {
      display: none !important;
    }
    .finance-panel.is-tab-mode {
      border-bottom: 1px solid var(--line);
      background: var(--card);
    }
    .finance-panel.is-tab-mode[hidden] {
      display: none !important;
    }
    .finance-panel.is-tab-mode .finance-panel-body {
      display: block;
      padding: 10px 14px 16px;
      overflow-x: auto;
    }
    .cars-table.is-parts-goods th.th-vehicle-only,
    .cars-table.is-parts-goods td.td-vehicle-only {
      display: none;
    }
    .cars-table.is-vehicle-goods th.th-parts-only,
    .cars-table.is-vehicle-goods td.td-parts-only {
      display: none;
    }
    .office-supplier-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 1.15rem;
      height: 1.15rem;
      padding: 0 4px;
      box-sizing: border-box;
      border-radius: 3px;
      border: 0;
      box-shadow: 0 0 0 1.5px currentColor;
      background: #fff;
      font-size: 0.72rem;
      font-weight: 900;
      letter-spacing: 0.01em;
      line-height: 1;
      white-space: nowrap;
      user-select: none;
    }
    .office-supplier-chip--mannheim { color: #003468; }
    .office-supplier-chip--npa { color: #e30613; }
    .office-supplier-chip--ebay { color: #0064d2; padding: 0 3px; }
    .office-supplier-chip--ebay .ebay-logo i {
      font-style: normal;
      font-weight: 900;
      font-size: 0.72rem;
      line-height: 1;
    }
    .office-supplier-chip--ebay .ebay-e { color: #e53238; }
    .office-supplier-chip--ebay .ebay-b { color: #0064d2; }
    .office-supplier-chip--ebay .ebay-a { color: #f5af02; }
    .office-supplier-chip--ebay .ebay-y { color: #86b817; }
    .office-supplier-chip--other,
    .office-supplier-chip--auction { color: #475569; }
    .office-supplier-chip--leftover {
      color: #9a3412;
      background: #ffedd5;
      border-radius: 4px;
      padding: 0 4px;
      font-weight: 700;
      letter-spacing: 0.02em;
    }
    .cell-part-from {
      font-size: 0.78em;
      color: #9a3412;
      margin-top: 2px;
    }
    .part-link {
      color: #1d4ed8;
      text-decoration: underline;
      text-underline-offset: 2px;
      font-weight: 650;
      font-size: 0.72rem;
      line-height: 1.25;
      word-break: break-all;
    }
    .cell-part-stack {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
      min-width: 0;
    }
    .cell-part-stack .cell-title {
      font-weight: 800;
      line-height: 1.2;
    }
    .cell-part-stack .part-link {
      max-width: 18rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      word-break: normal;
    }
    /* Кнопка «Финансы» в шапке убрана — чип в filters-tabs */
    .finance-btn {
      display: none !important;
    }
    .events-btn {
      margin-left: 0;
      border: 1px solid #cbd5e1;
      background: #f8fafc;
      color: #475569;
      font: inherit;
      font-weight: 800;
      font-size: 0.85rem;
      padding: 6px 12px;
      border-radius: 999px;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }
    .events-btn:hover { background: #eef2ff; border-color: #93c5fd; }
    .logout-btn {
      margin-left: 0;
      border: 1px solid #cbd5e1;
      background: #f8fafc;
      color: #475569;
      font: inherit;
      font-weight: 800;
      font-size: 0.85rem;
      padding: 6px 12px;
      border-radius: 999px;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }
    .logout-btn:hover {
      background: #fef2f2;
      border-color: #fca5a5;
      color: #b91c1c;
    }
    body.is-office-locked .logout-btn {
      display: none;
    }
    .events-btn.has-events {
      background: #fef3c7;
      border-color: #f59e0b;
      color: #92400e;
      box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
      animation: eventsPulse 1.6s ease-in-out infinite;
    }
    @keyframes eventsPulse {
      0%, 100% { box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15); }
      50% { box-shadow: 0 0 0 6px rgba(245, 158, 11, 0.08); }
    }
    .events-count {
      min-width: 1.35rem;
      height: 1.35rem;
      padding: 0 6px;
      border-radius: 999px;
      background: #ea580c;
      color: #fff;
      font-size: 0.75rem;
      font-weight: 900;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .events-dlg {
      border: 0;
      border-radius: 16px;
      padding: 0;
      width: min(520px, calc(100vw - 24px));
      max-height: min(80vh, 640px);
      box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
    }
    .events-dlg::backdrop { background: rgba(15, 23, 42, 0.45); }
    .events-dlg-inner { display: flex; flex-direction: column; max-height: min(80vh, 640px); }
    .events-dlg-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 16px;
      border-bottom: 1px solid var(--line);
    }
    .events-dlg-head h2 { margin: 0; font-size: 1.05rem; }
    .events-dlg-head button {
      border: 0; background: transparent; font-size: 1.4rem; cursor: pointer; color: var(--muted);
    }
    .events-dlg-list {
      overflow: auto;
      padding: 10px;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .events-item {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 12px;
      background: #fff;
      text-align: left;
      font: inherit;
      cursor: pointer;
      display: grid;
      gap: 6px;
    }
    .events-item:hover { border-color: #93c5fd; background: #f8fbff; }
    .events-item-title { font-weight: 800; color: var(--ink); }
    .events-item-part { color: #9a3412; font-weight: 700; font-size: 0.92rem; }
    .events-item-meta { color: var(--muted); font-size: 0.8rem; }
    .events-item-photo {
      display: block;
      width: 100%;
      max-height: 220px;
      object-fit: cover;
      border-radius: 10px;
      background: #e2e8f0;
      margin: 2px 0 4px;
      cursor: zoom-in;
    }
    .events-item-photo:active { opacity: 0.92; }
    .ask-card .ask-photo {
      cursor: zoom-in;
    }
    .events-item-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
    .events-item-actions .btn { font-size: 0.82rem; padding: 6px 10px; }
    .events-sec-h {
      margin: 4px 2px 2px;
      padding: 8px 4px 4px;
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--muted);
    }
    .events-item.is-history {
      background: #f8fafc;
      opacity: 0.96;
    }
    .events-item.is-history:hover { background: #f1f5f9; border-color: #cbd5e1; }
    .events-item-answer {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.82rem;
      font-weight: 800;
      color: #166534;
      background: #dcfce7;
      border-radius: 999px;
      padding: 3px 10px;
      width: fit-content;
    }
    .events-item-answer.is-no {
      color: #991b1b;
      background: #fee2e2;
    }
    .ask-card img.ask-photo-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 10px;
      display: block;
    }
    .dc-part.is-event {
      outline: 2px solid #f59e0b;
      outline-offset: -1px;
      background: #fffbeb;
      scroll-margin-top: 96px;
      scroll-margin-bottom: 96px;
    }
    /* Вопрос от разборки: серый выбор + жёлтая рамка (пока клиент не ответил) */
    .dc-part.is-pending {
      outline: 2px solid #f59e0b;
      outline-offset: -1px;
      background: #fffbeb;
      scroll-margin-top: 96px;
      scroll-margin-bottom: 96px;
    }
    .dc-part.is-pending .dc-save {
      background: #f1f5f9 !important;
      color: #94a3b8 !important;
      border-color: #f59e0b;
    }
    .dc-part.is-pending .dc-part-ru::after {
      content: " · ?";
      color: #b45309;
      font-weight: 800;
      font-size: 0.75rem;
    }
    /* Админ-стиль: горизонтальная таблица + раскрытие строки */
    .finance-panel {
      max-width: 100%;
      width: 100%;
      margin: 0;
      padding: 12px 14px 0;
      box-sizing: border-box;
    }
    .finance-ledger-bar {
      display: flex;
      flex-wrap: nowrap;
      align-items: stretch;
      justify-content: flex-end;
      gap: 10px;
      padding: 4px 0 10px;
      box-sizing: border-box;
      overflow-x: auto;
    }
    .finance-ledger-bar--dlg {
      padding: 8px 12px 4px;
    }
    .finance-ledger-bar > .finance-history-btn {
      align-self: center;
      flex: 0 0 auto;
      white-space: nowrap;
    }
    .fin-sum {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 2px;
      min-width: 8.5rem;
      padding: 7px 12px;
      border-radius: 8px;
      border: 1.5px solid #e2e8f0;
      background: #fff;
      box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
      text-align: right;
      box-sizing: border-box;
      flex: 0 0 auto;
    }
    .fin-sum__label {
      font-size: 0.68rem;
      font-weight: 750;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #64748b;
    }
    .fin-sum__val {
      font-size: 1.05rem;
      font-weight: 850;
      font-variant-numeric: tabular-nums;
      letter-spacing: -0.01em;
      color: #0f172a;
      line-height: 1.2;
      white-space: nowrap;
    }
    .fin-sum--in .fin-sum__val {
      color: #15803d;
    }
    .fin-sum--out .fin-sum__val {
      color: #dc2626;
    }
    .fin-sum--bal .fin-sum__val {
      color: #0f172a;
    }
    .fin-sum--bal.is-debt .fin-sum__val {
      color: #dc2626;
    }
    .finance-history-sheet {
      margin: 0 0 10px;
      padding: 0;
      border: 1.5px solid #e2e8f0;
      border-radius: 12px;
      background: #fff;
      box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
      overflow: hidden;
      max-height: 0;
      opacity: 0;
      transition: max-height 0.22s ease, opacity 0.18s ease;
    }
    .finance-history-sheet.is-open {
      max-height: min(42vh, 22rem);
      opacity: 1;
    }
    .finance-history-sheet[hidden] {
      display: block !important;
      max-height: 0;
      opacity: 0;
      border-width: 0;
      pointer-events: none;
    }
    .finance-history-sheet.is-open {
      pointer-events: auto;
      border-width: 1.5px;
    }
    .finance-history-sheet__head {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 6px 12px;
      padding: 10px 14px 6px;
      border-bottom: 1px solid #e2e8f0;
    }
    .finance-history-sheet__head strong {
      font-size: 0.88rem;
      font-weight: 800;
      color: #0f172a;
    }
    .finance-history-sheet__hint {
      font-size: 0.78rem;
      color: #64748b;
      font-weight: 650;
    }
    .finance-history-list {
      max-height: min(34vh, 18rem);
      overflow: auto;
    }
    .finance-history-btn.is-on {
      border-color: #2563eb;
      background: #eff6ff;
      color: #1e3a8a;
    }
    .finance-history-btn {
      border: 1.5px solid #cbd5e1;
      background: #fff;
      color: #334155;
      border-radius: 10px;
      padding: 8px 14px;
      font: inherit;
      font-size: 0.84rem;
      font-weight: 750;
      cursor: pointer;
    }
    .finance-history-btn:hover {
      border-color: #94a3b8;
      background: #f8fafc;
    }
    .office-pay-history {
      list-style: none;
      margin: 0;
      padding: 0.35rem 0.75rem 0.85rem;
    }
    .office-pay-history__item {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 4px 10px;
      padding: 0.55rem 0.2rem;
      border-bottom: 1px solid #e2e8f0;
    }
    .office-pay-history__item:last-child {
      border-bottom: 0;
    }
    .office-pay-history__meta {
      font-size: 0.78rem;
      color: #64748b;
    }
    .office-pay-history__amt {
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      color: #0f172a;
      font-size: 0.95rem;
    }
    .office-pay-history__note {
      grid-column: 1 / -1;
      font-size: 0.82rem;
      color: #334155;
    }
    .finance-panel-head {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 8px;
    }
    .finance-panel-toggle {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border: 0;
      background: transparent;
      font: inherit;
      font-weight: 800;
      font-size: 0.92rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--ink);
      cursor: pointer;
      padding: 4px 2px;
    }
    .finance-panel-toggle:hover { color: var(--brand); }
    .finance-panel-mark {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.35rem;
      height: 1.35rem;
      border: 1.5px solid #94a3b8;
      border-radius: 5px;
      color: #475569;
      font-size: 1rem;
      font-weight: 800;
      line-height: 1;
      flex: 0 0 auto;
    }
    .finance-panel-toggle:hover .finance-panel-mark {
      border-color: var(--brand);
      color: var(--brand);
    }
    .finance-panel-body {
      overflow-x: auto;
      margin-bottom: 8px;
    }
    .finance-panel.is-collapsed .finance-panel-body {
      display: none;
    }
    .finance-table {
      width: 100%;
      max-width: 100%;
      border-collapse: separate;
      border-spacing: 0;
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: 12px;
      overflow: hidden;
      font-size: 0.9rem;
    }
    .finance-table thead th {
      text-align: center;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--muted);
      padding: 10px 12px;
      border-bottom: 1px solid var(--line);
      background: #f8fafc;
      white-space: nowrap;
    }
    .finance-table tbody td {
      padding: 10px 12px;
      text-align: center;
      border-bottom: 1px solid #eef2f7;
      font-size: 0.88rem;
      white-space: nowrap;
      vertical-align: middle;
    }
    .finance-table tbody tr:last-child td { border-bottom: 0; }
    .finance-table td.fin-auc {
      text-align: center;
      vertical-align: middle;
    }
    .finance-table .auction-mark {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 1.15rem;
      height: 1.15rem;
      padding: 0 3px;
      box-sizing: border-box;
      border-radius: 3px;
      box-shadow: 0 0 0 1.5px currentColor;
      font-size: 0.78rem;
      font-weight: 900;
      letter-spacing: 0.01em;
      line-height: 1;
      user-select: none;
    }
    .finance-table .auction-mark--copart { color: #2662D9; }
    .finance-table .auction-mark--iaai { color: #C90107; }
    .finance-table td.fin-car {
      text-align: center;
      white-space: normal;
      min-width: 140px;
      max-width: 260px;
      font-weight: 650;
    }
    .finance-table td.fin-batch {
      font-weight: 800;
      letter-spacing: 0.02em;
      font-variant-numeric: tabular-nums;
    }
    .finance-table td.num {
      font-variant-numeric: tabular-nums;
      font-weight: 650;
    }
    /* Финансы клиента (слово владельца 20.10): чёрное — к оплате (во взаимозачёте), серое — не учитывается
       (оплатил клиент сам или 0 без сбора). Контраст сильнее прежнего. */
    .finance-table td.num,
    .finance-table td.num .fin-stack-val {
      color: #0b0f14;
    }
    .finance-table td.num.fin-off,
    .finance-table td.num.fin-off .fin-stack-val {
      color: #b9bfc7;
      font-weight: 400;
    }
    .finance-table td.fin-ref {
      font-variant-numeric: tabular-nums;
    }
    .finance-table td.fin-total { font-weight: 800; }
    .finance-table td.is-check-changed,
    .finance-table td.is-check-changed .fin-stack-val {
      color: #b91c1c !important;
      font-weight: 800;
    }
    .finance-table td.fin-stack {
      padding-top: 6px;
      padding-bottom: 6px;
      vertical-align: middle;
    }
    .finance-table td.fin-stack--chip {
      padding-top: 4px;
      padding-bottom: 4px;
    }
    .finance-table .fin-stack-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-evenly;
      gap: 0;
      min-height: 2.75rem;
      box-sizing: border-box;
    }
    .finance-table .fin-stack-inner .sale-brand-line { margin-top: 0; line-height: 1; }
    .finance-table .fin-stack-val { display: block; line-height: 1.15; }
    .finance-table .sale-brand-chip,
    .finance-table .loc-extra-chip {
      display: inline-block;
      font-size: 0.52rem;
      font-weight: 800;
      line-height: 1.2;
      letter-spacing: 0.01em;
      padding: 1px 3px;
      border: 1px solid currentColor;
      border-radius: 3px;
      background: transparent;
      white-space: nowrap;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .finance-table .sale-brand-chip--ct { color: #F50002; }
    .finance-table .sale-brand-chip--rec { color: #C90107; }
    .finance-table .sale-brand-chip--dream { color: #C90107; }
    .finance-table .loc-extra-chip--sublot { color: #2662D9; }
    .finance-table .loc-extra-chip--offsite { color: #F25800; }
    /* Плашки CT / Rec / Dream / off-site / sublot — как в админке склада */
    .cars-table .sale-brand-line {
      margin-top: 3px;
      line-height: 1.1;
    }
    .cars-table .sale-brand-chip,
    .cars-table .loc-extra-chip {
      display: inline-block;
      font-size: 0.52rem;
      font-weight: 800;
      line-height: 1.2;
      letter-spacing: 0.01em;
      padding: 1px 3px;
      border: 1px solid currentColor;
      border-radius: 3px;
      background: transparent;
      white-space: nowrap;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .cars-table .sale-brand-chip--ct { color: #F50002; }
    .cars-table .sale-brand-chip--rec,
    .cars-table .sale-brand-chip--dream { color: #C90107; }
    .cars-table .loc-extra-chip--sublot { color: #2662D9; }
    .cars-table .loc-extra-chip--offsite { color: #F25800; }
    .cars-table .lot-stack .loc-extra-chip {
      margin-top: 1px;
    }
    .cars-table .cell-car .sale-brand-line {
      text-align: center;
    }
    .table-wrap {
      /* Без потолка 1400: при новых столбцах растёт до края экрана */
      max-width: 100%;
      width: 100%;
      margin: 0;
      padding: 12px 14px 40px;
      box-sizing: border-box;
      overflow-x: auto;
    }
    .cars-table {
      /* Канон склада: на всю ширину, колонки тянутся вместе */
      width: 100%;
      max-width: 100%;
      table-layout: fixed;
      border-collapse: separate;
      border-spacing: 0;
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: 12px;
      overflow: hidden;
      font-size: 0.9rem;
    }
    .cars-table thead th {
      text-align: center;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--muted);
      background: #f8fafc;
      border-bottom: 1px solid var(--line);
      padding: 10px 10px;
      white-space: nowrap;
    }
    .cars-table thead th.th-photo {
      text-align: center;
      color: #111;
    }
    .cars-table thead th.th-photo .th-photo-ico {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.05rem;
      height: 1.05rem;
      color: #111 !important;
      border: 0;
      background: none;
      padding: 0;
      border-radius: 0;
      box-shadow: none;
    }
    .cars-table thead th.th-photo .th-photo-ico svg {
      width: 100%;
      height: 100%;
      display: block;
      stroke: #111 !important;
      color: #111 !important;
    }
    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    .cars-table tbody tr.car-row {
      cursor: pointer;
      background: #fff;
    }
    .cars-table tbody tr.car-row:hover { background: #f7fafc; }
    .cars-table tbody tr.car-row.is-on { background: #eef5fc; }
    .cars-table tbody tr.car-row td {
      padding: 10px 8px;
      border-bottom: 1px solid var(--line);
      vertical-align: middle;
      text-align: center;
    }
