/* Zakupka admin visual system. Scoped to body.zakupka-shell only. */

body.zakupka-shell {
  --zk-bg: #f2f4f8;
  --zk-panel: #ffffff;
  --zk-panel-soft: #f7f9fc;
  --zk-panel-alt: #fbfcfe;
  --zk-text: #15171c;
  --zk-muted: #646b78;
  --zk-muted-2: #8b93a1;
  --zk-border: #e6e9ef;
  --zk-hairline: rgba(20, 24, 33, 0.06);
  --zk-accent: #4f46e5;
  --zk-accent-focus: #6366f1;
  --zk-accent-dark: #818cf8;
  --zk-accent-soft: rgba(79, 70, 229, 0.1);
  --zk-success: #15803d;
  --zk-success-soft: rgba(21, 128, 61, 0.1);
  --zk-warning: #b45309;
  --zk-warning-soft: rgba(180, 83, 9, 0.1);
  --zk-danger: #dc2626;
  --zk-danger-soft: rgba(220, 38, 38, 0.09);
  --zk-radius-lg: 16px;
  --zk-radius-md: 13px;
  --zk-radius-sm: 10px;
  --zk-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

  --bg: var(--zk-bg);
  --panel: var(--zk-panel);
  --panel-hover: var(--zk-panel-soft);
  --text: var(--zk-text);
  --muted: var(--zk-muted);
  --border: var(--zk-border);
  --accent: var(--zk-accent);
  --accent-soft: var(--zk-accent-soft);
  --danger: var(--zk-danger);
  --radius: var(--zk-radius-lg);

  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  color: var(--zk-text);
  background: var(--zk-bg);
  color-scheme: light;
  font-family: var(--zk-font);
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: 0;
}

html[data-theme="dark"] body.zakupka-shell {
  --bg: var(--zk-bg);
  --panel: var(--zk-panel);
  --panel-hover: var(--zk-panel-soft);
  --text: var(--zk-text);
  --muted: var(--zk-muted);
  --border: var(--zk-border);
  --accent: var(--zk-accent);
  --accent-soft: var(--zk-accent-soft);
  --danger: var(--zk-danger);
  color: var(--zk-text);
  background: var(--zk-bg);
  color-scheme: light;
}

body.zakupka-shell *,
body.zakupka-shell *::before,
body.zakupka-shell *::after {
  box-sizing: border-box;
  letter-spacing: 0 !important;
}

body.zakupka-shell a {
  color: var(--zk-accent);
  text-decoration: none;
}

body.zakupka-shell a:hover {
  color: var(--zk-accent-focus);
}

body.zakupka-shell :focus-visible {
  outline: 2px solid var(--zk-accent-focus);
  outline-offset: 2px;
}

body.zakupka-shell .nav {
  position: sticky;
  top: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  grid-template-areas: "brand bot links right";
  align-items: center;
  gap: 14px;
  min-height: 64px;
  margin: 0;
  padding: 0 clamp(18px, 2.4vw, 36px);
  color: var(--zk-text);
  background: rgba(255, 255, 255, 0.92);
  border: 0;
  border-bottom: 1px solid var(--zk-hairline);
  border-radius: 0;
  box-shadow: none !important;
  backdrop-filter: saturate(180%) blur(18px);
}

body.zakupka-shell .nav__brand {
  grid-area: brand;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: max-content;
  color: var(--zk-text);
  font-weight: 600;
}

body.zakupka-shell .nav__logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  overflow: hidden;
  color: transparent;
  background: var(--zk-text);
  border-radius: 6px;
  font-size: 0;
}

body.zakupka-shell .nav__logo::after {
  content: "M";
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

body.zakupka-shell .nav__title {
  color: var(--zk-text);
  font-size: 14px;
  font-weight: 700;
}

body.zakupka-shell .nav__sub {
  color: var(--zk-muted);
  font-size: 12px;
  font-weight: 500;
}

body.zakupka-shell .bot-switcher {
  grid-area: bot;
  margin-right: 0;
}

body.zakupka-shell .bot-switcher__btn {
  min-width: 168px;
  min-height: 38px;
  padding: 6px 12px;
  color: var(--zk-text);
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: 999px;
  box-shadow: none !important;
}

body.zakupka-shell .bot-switcher__btn:hover {
  background: var(--zk-panel);
  border-color: rgba(0, 102, 204, 0.22);
}

body.zakupka-shell .bot-switcher__chev {
  color: var(--zk-muted);
}

body.zakupka-shell .bot-switcher__menu {
  min-width: 260px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--zk-hairline);
  border-radius: 16px;
  box-shadow: none !important;
  backdrop-filter: saturate(180%) blur(20px);
}

body.zakupka-shell .bot-switcher__item {
  min-height: 38px;
  color: var(--zk-text);
  border-radius: 12px;
}

body.zakupka-shell .bot-switcher__item:hover,
body.zakupka-shell .bot-switcher__item.is-current {
  color: var(--zk-accent);
  background: var(--zk-accent-soft);
}

body.zakupka-shell .bot-switcher__sep {
  background: var(--zk-hairline);
}

body.zakupka-shell .nav__links {
  grid-area: links;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: thin;
  background: transparent;
  border: 0;
}

body.zakupka-shell .nav__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: max-content;
  min-height: 38px;
  padding: 0 13px;
  color: var(--zk-text);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, transform 0.12s ease;
}

body.zakupka-shell .nav__links a:hover {
  color: var(--zk-text);
  background: var(--zk-panel-soft);
}

body.zakupka-shell .nav__links a.active {
  color: #ffffff;
  background: var(--zk-accent);
  border-color: var(--zk-accent);
}

body.zakupka-shell .nav__links a:active {
  transform: scale(0.98);
}

body.zakupka-shell .nav__links svg {
  width: 16px;
  height: 16px;
  stroke-width: 2;
}

body.zakupka-shell .nav__right {
  grid-area: right;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  color: var(--zk-muted);
  min-width: max-content;
  justify-self: end;
}

body.zakupka-shell .theme-toggle {
  display: none !important;
}

body.zakupka-shell .admin-id {
  color: var(--zk-muted);
  font-size: 12px;
}

body.zakupka-shell .page {
  width: 100%;
  max-width: 1440px;
  min-height: calc(100vh - 96px);
  margin: 0 auto;
  padding: 40px clamp(18px, 3vw, 48px) 64px;
  color: var(--zk-text);
  background: transparent;
}

body.zakupka-shell .foot {
  display: none;
}

body.zakupka-shell .page-head,
body.zakupka-shell .supplier-card__head,
body.zakupka-shell .panel-head,
body.zakupka-shell .section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

body.zakupka-shell h1,
body.zakupka-shell h2,
body.zakupka-shell h3,
body.zakupka-shell h4 {
  color: var(--zk-text);
  font-family: var(--zk-font);
  font-weight: 600;
  letter-spacing: 0 !important;
}

body.zakupka-shell h1 {
  margin: 0 0 22px;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.06;
}

body.zakupka-shell h2 {
  margin: 0 0 12px;
  font-size: 26px;
  line-height: 1.16;
}

body.zakupka-shell h3 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.25;
}

body.zakupka-shell p,
body.zakupka-shell .muted,
body.zakupka-shell .kpi-note,
body.zakupka-shell .small,
body.zakupka-shell .trend-row-sub,
body.zakupka-shell .trend-teaser-meta,
body.zakupka-shell .supplier-note p,
body.zakupka-shell .check-panel p {
  color: var(--zk-muted);
}

body.zakupka-shell .small,
body.zakupka-shell small {
  font-size: 12px;
}

body.zakupka-shell .card,
body.zakupka-shell .panel,
body.zakupka-shell .source-box,
body.zakupka-shell .supplier-note,
body.zakupka-shell .check-panel,
body.zakupka-shell .favorites-details,
body.zakupka-shell .supplier-card,
body.zakupka-shell .platform-panel,
body.zakupka-shell .trend-cat-panel,
body.zakupka-shell .trend-table-wrap,
body.zakupka-shell .trend-scoring-panel,
body.zakupka-shell .trend-teaser-panel,
body.zakupka-shell .trend-teaser-card,
body.zakupka-shell .kpi-card,
body.zakupka-shell .logic-note,
body.zakupka-shell .source-note,
body.zakupka-shell .calc-form,
body.zakupka-shell .calc-card,
body.zakupka-shell .calc-empty,
body.zakupka-shell .calc-note,
body.zakupka-shell .report-card,
body.zakupka-shell .favorite-row-shell,
body.zakupka-shell .favorites-list,
body.zakupka-shell .supplier-source-card,
body.zakupka-shell .supplier-risk-card,
body.zakupka-shell .supplier-strength-card,
body.zakupka-shell .supplier-research-card,
body.zakupka-shell .trend-details-body,
body.zakupka-shell .trend-chart-card {
  color: var(--zk-text);
  background: var(--zk-panel);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-lg);
  box-shadow: none !important;
}

body.zakupka-shell .card,
body.zakupka-shell .panel,
body.zakupka-shell .source-box,
body.zakupka-shell .supplier-note,
body.zakupka-shell .check-panel,
body.zakupka-shell .favorites-details,
body.zakupka-shell .supplier-card,
body.zakupka-shell .trend-scoring-panel,
body.zakupka-shell .trend-teaser-panel,
body.zakupka-shell .calc-form,
body.zakupka-shell .calc-card,
body.zakupka-shell .calc-empty,
body.zakupka-shell .calc-note {
  padding: 20px;
}

body.zakupka-shell .source-box,
body.zakupka-shell .logic-note,
body.zakupka-shell .source-note {
  background: var(--zk-panel-alt);
}

body.zakupka-shell .kpi-grid,
body.zakupka-shell .supplier-grid,
body.zakupka-shell .supplier-metrics,
body.zakupka-shell .supplier-quality-grid,
body.zakupka-shell .trend-strip,
body.zakupka-shell .metric-row,
body.zakupka-shell .result-grid,
body.zakupka-shell .field-grid,
body.zakupka-shell .china-unit-grid {
  display: grid;
  gap: 12px;
}

body.zakupka-shell .kpi-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.zakupka-shell .kpi-card {
  min-height: 116px;
  padding: 18px;
}

body.zakupka-shell .kpi-card b,
body.zakupka-shell .trend-pill b,
body.zakupka-shell .show-metric b {
  display: block;
  color: var(--zk-text);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}

body.zakupka-shell .kpi-card span,
body.zakupka-shell .trend-pill span,
body.zakupka-shell .show-metric span {
  color: var(--zk-muted);
  font-size: 12px;
}

body.zakupka-shell .btn,
body.zakupka-shell button,
body.zakupka-shell input[type="submit"],
body.zakupka-shell input[type="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 14px;
  color: #ffffff;
  background: var(--zk-accent);
  border: 1px solid var(--zk-accent);
  border-radius: 999px;
  box-shadow: none !important;
  font: 600 13px/1 var(--zk-font);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.12s ease;
}

body.zakupka-shell .btn:hover,
body.zakupka-shell button:hover,
body.zakupka-shell input[type="submit"]:hover,
body.zakupka-shell input[type="button"]:hover {
  color: #ffffff;
  background: var(--zk-accent-focus);
  border-color: var(--zk-accent-focus);
}

body.zakupka-shell .btn:active,
body.zakupka-shell button:active {
  transform: scale(0.98);
}

body.zakupka-shell .btn--ghost,
body.zakupka-shell .btn--secondary,
body.zakupka-shell .btn--sm,
body.zakupka-shell .inline-form button,
body.zakupka-shell .retailer-check-form button,
body.zakupka-shell .trend-details summary,
body.zakupka-shell .phone-edit summary,
body.zakupka-shell .favorites-details > summary,
body.zakupka-shell .favorite-row summary,
body.zakupka-shell .platform-panel > summary,
body.zakupka-shell .trend-cat-panel > summary {
  color: var(--zk-accent);
  background: transparent;
  border: 1px solid var(--zk-hairline);
  box-shadow: none !important;
}

body.zakupka-shell .btn--ghost:hover,
body.zakupka-shell .btn--secondary:hover,
body.zakupka-shell .btn--sm:hover,
body.zakupka-shell .inline-form button:hover,
body.zakupka-shell .retailer-check-form button:hover,
body.zakupka-shell .trend-details summary:hover,
body.zakupka-shell .phone-edit summary:hover,
body.zakupka-shell .favorites-details > summary:hover,
body.zakupka-shell .favorite-row summary:hover,
body.zakupka-shell .platform-panel > summary:hover,
body.zakupka-shell .trend-cat-panel > summary:hover {
  color: var(--zk-accent-focus);
  background: var(--zk-accent-soft);
  border-color: rgba(0, 102, 204, 0.25);
}

body.zakupka-shell .btn--danger,
body.zakupka-shell button[name="delete"],
body.zakupka-shell button[value="delete"],
body.zakupka-shell .danger {
  color: var(--zk-danger);
  background: var(--zk-danger-soft);
  border-color: rgba(217, 45, 32, 0.18);
}

body.zakupka-shell .btn--danger:hover,
body.zakupka-shell button[name="delete"]:hover,
body.zakupka-shell button[value="delete"]:hover {
  color: #ffffff;
  background: var(--zk-danger);
  border-color: var(--zk-danger);
}

body.zakupka-shell input,
body.zakupka-shell select,
body.zakupka-shell textarea {
  width: auto;
  min-height: 42px;
  padding: 10px 14px;
  color: var(--zk-text);
  background: var(--zk-panel);
  border: 1px solid var(--zk-border);
  border-radius: 999px;
  box-shadow: none !important;
  font: 400 14px/1.35 var(--zk-font);
  outline: none;
}

body.zakupka-shell textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
  border-radius: var(--zk-radius-md);
}

body.zakupka-shell input::placeholder,
body.zakupka-shell textarea::placeholder {
  color: var(--zk-muted-2);
}

body.zakupka-shell input:focus,
body.zakupka-shell select:focus,
body.zakupka-shell textarea:focus {
  border-color: var(--zk-accent-focus);
  outline: 2px solid rgba(0, 113, 227, 0.2);
  outline-offset: 0;
}

body.zakupka-shell select {
  min-width: 150px;
  appearance: auto;
}

body.zakupka-shell form,
body.zakupka-shell .filters,
body.zakupka-shell .demand-actions,
body.zakupka-shell .trend-toolbar,
body.zakupka-shell .trend-filters,
body.zakupka-shell .trend-periods,
body.zakupka-shell .supplier-actions,
body.zakupka-shell .calc-actions,
body.zakupka-shell .row-form,
body.zakupka-shell .inline-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

body.zakupka-shell .row-form {
  align-items: stretch;
}

body.zakupka-shell .table-scroll,
body.zakupka-shell .compact-table,
body.zakupka-shell .phones-table,
body.zakupka-shell .trend-table-wrap {
  overflow: auto;
  border-radius: var(--zk-radius-lg);
}

body.zakupka-shell table,
body.zakupka-shell .tbl,
body.zakupka-shell .trend-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--zk-text);
  background: var(--zk-panel);
}

body.zakupka-shell .tbl th,
body.zakupka-shell .tbl td,
body.zakupka-shell .trend-table th,
body.zakupka-shell .trend-table td {
  padding: 14px 16px;
  color: var(--zk-text);
  border-bottom: 1px solid var(--zk-hairline);
  vertical-align: top;
}

body.zakupka-shell .tbl th,
body.zakupka-shell .trend-table th {
  color: var(--zk-muted);
  background: var(--zk-panel-soft);
  font-size: 12px;
  font-weight: 600;
  text-align: left;
  text-transform: uppercase;
}

body.zakupka-shell .tbl tr:hover td,
body.zakupka-shell .trend-table tr:hover td {
  background: rgba(0, 0, 0, 0.018);
}

body.zakupka-shell .tbl tr:last-child td,
body.zakupka-shell .trend-table tr:last-child td {
  border-bottom: 0;
}

body.zakupka-shell .tbl--striped tr:nth-child(even) td,
body.zakupka-shell .trend-table tr:nth-child(even) td {
  background: #fbfbfd;
}

body.zakupka-shell .badge,
body.zakupka-shell .pill,
body.zakupka-shell .status-pill,
body.zakupka-shell .source-badge,
body.zakupka-shell .score-pill,
body.zakupka-shell .signal-pill,
body.zakupka-shell .demand-badge,
body.zakupka-shell .region-tag,
body.zakupka-shell .trend-score,
body.zakupka-shell .trend-badge,
body.zakupka-shell .trend-teaser-source,
body.zakupka-shell .trend-teaser-score,
body.zakupka-shell .supplier-platform,
body.zakupka-shell .supplier-quality-chip,
body.zakupka-shell .trend-filter-btn,
body.zakupka-shell .trend-periods a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 26px;
  padding: 5px 10px;
  color: var(--zk-accent);
  background: var(--zk-accent-soft);
  border: 1px solid rgba(0, 102, 204, 0.16);
  border-radius: 999px;
  box-shadow: none !important;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
}

body.zakupka-shell .badge.ok,
body.zakupka-shell .demand-badge--ok,
body.zakupka-shell .status-pill--fresh,
body.zakupka-shell .score-pill--ok,
body.zakupka-shell .supplier-quality-chip--ok {
  color: var(--zk-success);
  background: var(--zk-success-soft);
  border-color: rgba(31, 122, 77, 0.18);
}

body.zakupka-shell .badge.warn,
body.zakupka-shell .demand-badge--warn,
body.zakupka-shell .status-pill--stale,
body.zakupka-shell .score-pill--warn,
body.zakupka-shell .supplier-quality-chip--warn {
  color: var(--zk-warning);
  background: var(--zk-warning-soft);
  border-color: rgba(138, 90, 0, 0.18);
}

body.zakupka-shell .badge.err,
body.zakupka-shell .status-pill--error,
body.zakupka-shell .score-pill--risk,
body.zakupka-shell .risk,
body.zakupka-shell .signal-pill--risk {
  color: var(--zk-danger);
  background: var(--zk-danger-soft);
  border-color: rgba(217, 45, 32, 0.18);
}

body.zakupka-shell .status-pill--running,
body.zakupka-shell .status-pill--empty {
  color: var(--zk-muted);
  background: var(--zk-panel-soft);
  border-color: var(--zk-hairline);
}

body.zakupka-shell .phones-table {
  padding: 14px;
  background: var(--zk-panel);
}

body.zakupka-shell .phones-table .tbl {
  min-width: 1310px;
  margin: 0;
  table-layout: fixed;
}

body.zakupka-shell .phones-table .tbl th,
body.zakupka-shell .phones-table .tbl td {
  overflow-wrap: anywhere;
  vertical-align: top;
}
body.zakupka-shell .phones-table .tbl td:nth-child(2) b { white-space: nowrap; }

/* 7 колонок: #, Бренд, Модель(+тип/дата/цена), Раб.статус, Спрос и продажи, РФ, Ритейлеры.
   Сумма ширин 1310px → таблица влезает в экран без бокового скролла (раскладка 17.06). */
body.zakupka-shell .phones-table .tbl th:nth-child(1),
body.zakupka-shell .phones-table .tbl td:nth-child(1) { width: 40px; }
body.zakupka-shell .phones-table .tbl th:nth-child(2),
body.zakupka-shell .phones-table .tbl td:nth-child(2) { width: 100px; }
body.zakupka-shell .phones-table .tbl th:nth-child(3),
body.zakupka-shell .phones-table .tbl td:nth-child(3) { width: 300px; }
body.zakupka-shell .phones-table .tbl th:nth-child(4),
body.zakupka-shell .phones-table .tbl td:nth-child(4) { width: 200px; }
body.zakupka-shell .phones-table .tbl th:nth-child(5),
body.zakupka-shell .phones-table .tbl td:nth-child(5) { width: 210px; }
body.zakupka-shell .phones-table .tbl th:nth-child(6),
body.zakupka-shell .phones-table .tbl td:nth-child(6) { width: 180px; }
body.zakupka-shell .phones-table .tbl th:nth-child(7),
body.zakupka-shell .phones-table .tbl td:nth-child(7) { width: 280px; }

body.zakupka-shell .phone-edit form,
body.zakupka-shell .phones-table .tbl td:nth-child(4) .row-form {
  display: grid;
  gap: 8px;
  min-width: 0;
}

body.zakupka-shell .phones-table textarea {
  width: 100%;
  min-width: 0;
  min-height: 72px;
}

body.zakupka-shell .retailer-check-form button.is-loading,
body.zakupka-shell .trend-score-launch.is-loading {
  pointer-events: none;
  opacity: 0.7;
}

body.zakupka-shell .retailer-price-box,
body.zakupka-shell .price-card,
body.zakupka-shell .trend-stat,
body.zakupka-shell .metric,
body.zakupka-shell .supplier-metric,
body.zakupka-shell .supplier-quality,
body.zakupka-shell .supplier-identity__main,
body.zakupka-shell .trend-pill,
body.zakupka-shell .show-metric,
body.zakupka-shell .calc-kpi {
  padding: 12px;
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-md);
  box-shadow: none !important;
}

body.zakupka-shell .retailer-price-box b,
body.zakupka-shell .price-card b,
body.zakupka-shell .metric b,
body.zakupka-shell .supplier-metric b,
body.zakupka-shell .supplier-quality b,
body.zakupka-shell .calc-kpi b {
  color: var(--zk-text);
  font-weight: 600;
}

body.zakupka-shell .retailer-price-box em,
body.zakupka-shell .price-card em,
body.zakupka-shell .metric span,
body.zakupka-shell .supplier-metric span,
body.zakupka-shell .supplier-quality span,
body.zakupka-shell .calc-kpi span {
  color: var(--zk-muted);
  font-size: 12px;
  font-style: normal;
}

body.zakupka-shell .trend-toolbar {
  justify-content: space-between;
  margin-bottom: 16px;
}

body.zakupka-shell .trend-search {
  min-width: min(100%, 360px);
  flex: 1;
}

body.zakupka-shell .trend-periods,
body.zakupka-shell .trend-filters {
  gap: 8px;
}

body.zakupka-shell .trend-periods a.is-active,
body.zakupka-shell .trend-filter-btn.is-active {
  color: #ffffff;
  background: var(--zk-accent);
  border-color: var(--zk-accent);
}

body.zakupka-shell .trend-scoring-panel {
  align-items: center;
  justify-content: space-between;
  margin: 16px 0;
  background: var(--zk-panel);
}

body.zakupka-shell .trend-scoring-panel.is-active {
  border-color: rgba(0, 102, 204, 0.26);
}

body.zakupka-shell .trend-score-launch {
  color: #ffffff;
  background: var(--zk-accent);
  border-color: var(--zk-accent);
}

body.zakupka-shell .trend-score-launch--secondary {
  color: var(--zk-accent);
  background: transparent;
  border-color: rgba(0, 102, 204, 0.2);
}

body.zakupka-shell .platform-panel,
body.zakupka-shell .trend-cat-panel {
  margin: 0 0 14px;
  padding: 0;
  overflow: hidden;
}

body.zakupka-shell .platform-panel > summary,
body.zakupka-shell .trend-cat-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 58px;
  padding: 16px 18px;
  color: var(--zk-text);
  background: var(--zk-panel);
  border: 0;
  border-radius: 0;
  cursor: pointer;
}

body.zakupka-shell .platform-panel > summary::-webkit-details-marker,
body.zakupka-shell .trend-cat-panel > summary::-webkit-details-marker,
body.zakupka-shell .trend-details summary::-webkit-details-marker,
body.zakupka-shell .favorite-row summary::-webkit-details-marker {
  display: none;
}

body.zakupka-shell .trend-cat-panel > summary {
  border-top: 1px solid var(--zk-hairline);
}

body.zakupka-shell .trend-table {
  min-width: 1240px;
}

body.zakupka-shell .trend-table th:nth-child(1),
body.zakupka-shell .trend-table td:nth-child(1) { width: 130px; }
body.zakupka-shell .trend-table th:nth-child(2),
body.zakupka-shell .trend-table td:nth-child(2) { width: 120px; }
body.zakupka-shell .trend-table th:nth-child(4),
body.zakupka-shell .trend-table td:nth-child(4) { width: 110px; }
body.zakupka-shell .trend-table th:nth-child(5),
body.zakupka-shell .trend-table td:nth-child(5) { width: 420px; }
body.zakupka-shell .trend-table th:nth-child(6),
body.zakupka-shell .trend-table td:nth-child(6) { width: 140px; }

body.zakupka-shell .trend-row-title {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-width: 0;
}

body.zakupka-shell .trend-row-img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: 14px;
  box-shadow: none !important;
}

body.zakupka-shell .trend-row-name a,
body.zakupka-shell .trend-row-name span,
body.zakupka-shell .trend-teaser-title a,
body.zakupka-shell .supplier-title a {
  color: var(--zk-text);
  font-weight: 600;
}

body.zakupka-shell .trend-row-name a:hover,
body.zakupka-shell .trend-teaser-title a:hover,
body.zakupka-shell .supplier-title a:hover {
  color: var(--zk-accent);
}

body.zakupka-shell .source-badge {
  color: #ffffff;
  background: #1d1d1f;
  border-color: #1d1d1f;
}

body.zakupka-shell .source-badge--amazon { background: #1d1d1f; border-color: #1d1d1f; color: #ffffff; }
body.zakupka-shell .source-badge--aliexpress { background: var(--zk-accent); border-color: var(--zk-accent); color: #ffffff; }
body.zakupka-shell .source-badge--temu { background: #6e6e73; border-color: #6e6e73; color: #ffffff; }

body.zakupka-shell .trend-details {
  margin-top: 10px;
}

body.zakupka-shell .trend-details summary {
  width: max-content;
  min-height: 30px;
  padding: 6px 11px;
  cursor: pointer;
}

body.zakupka-shell .trend-details[open] summary {
  color: #ffffff;
  background: var(--zk-accent);
  border-color: var(--zk-accent);
}

body.zakupka-shell .trend-details-body {
  min-width: min(720px, calc(100vw - 72px));
  max-width: 760px;
  margin-top: 10px;
  padding: 14px;
}

body.zakupka-shell .trend-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

body.zakupka-shell .trend-stat span {
  display: block;
  color: var(--zk-muted);
  font-size: 11px;
}

body.zakupka-shell .trend-stat b {
  display: block;
  margin-top: 3px;
  color: var(--zk-text);
  font-size: 13px;
}

body.zakupka-shell .trend-chart-card {
  margin-top: 12px;
  padding: 14px;
  background: var(--zk-panel-alt);
}

body.zakupka-shell .trend-chart-card svg,
body.zakupka-shell .trend-sparkline svg {
  display: block;
  width: 100%;
  height: auto;
}

body.zakupka-shell .trend-chart-card path,
body.zakupka-shell .trend-sparkline path {
  stroke: var(--zk-accent);
}

body.zakupka-shell .trend-chart-tooltip,
body.zakupka-shell [data-tooltip]::after {
  color: #ffffff;
  background: #1d1d1f;
  border: 0;
  border-radius: 10px;
  box-shadow: none !important;
}

body.zakupka-shell .trend-teaser-list {
  display: grid;
  gap: 10px;
}

body.zakupka-shell .trend-teaser-card {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px;
}

body.zakupka-shell .trend-teaser-model {
  color: var(--zk-text);
  font-weight: 600;
}

body.zakupka-shell .trend-teaser-reason {
  color: var(--zk-muted);
  font-size: 12px;
}

body.zakupka-shell .supplier-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 16px;
  margin-bottom: 16px;
}

body.zakupka-shell .supplier-card--checked {
  border-color: rgba(0, 102, 204, 0.28);
}

body.zakupka-shell .supplier-title {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
}

body.zakupka-shell .supplier-platform {
  color: #ffffff;
  background: var(--zk-accent);
  border-color: var(--zk-accent);
}

body.zakupka-shell .supplier-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 14px;
}

body.zakupka-shell .supplier-score {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 14px 0;
}

body.zakupka-shell .supplier-score__value {
  display: grid;
  place-items: center;
  min-height: 96px;
  padding: 14px;
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-lg);
}

body.zakupka-shell .supplier-score__value b {
  color: var(--zk-text);
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
}

body.zakupka-shell .supplier-score__value span {
  color: var(--zk-muted);
  font-size: 11px;
  font-weight: 600;
  text-align: center;
}

body.zakupka-shell .supplier-score--green .supplier-score__value,
body.zakupka-shell .supplier-quality--green {
  background: var(--zk-success-soft);
  border-color: rgba(31, 122, 77, 0.18);
}

body.zakupka-shell .supplier-score--green .supplier-score__value b,
body.zakupka-shell .supplier-quality--green b {
  color: var(--zk-success);
}

body.zakupka-shell .supplier-score--yellow .supplier-score__value,
body.zakupka-shell .supplier-quality--yellow {
  background: var(--zk-warning-soft);
  border-color: rgba(138, 90, 0, 0.18);
}

body.zakupka-shell .supplier-score--yellow .supplier-score__value b,
body.zakupka-shell .supplier-quality--yellow b {
  color: var(--zk-warning);
}

body.zakupka-shell .supplier-score--red .supplier-score__value,
body.zakupka-shell .supplier-quality--red {
  background: var(--zk-danger-soft);
  border-color: rgba(217, 45, 32, 0.18);
}

body.zakupka-shell .supplier-score--red .supplier-score__value b,
body.zakupka-shell .supplier-quality--red b {
  color: var(--zk-danger);
}

body.zakupka-shell .supplier-score__factors,
body.zakupka-shell .score-row,
body.zakupka-shell .source-status-list,
body.zakupka-shell .supplier-actions,
body.zakupka-shell .supplier-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.zakupka-shell .supplier-quality-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.zakupka-shell .supplier-quality-chip {
  justify-content: flex-start;
  min-height: 58px;
  padding: 11px 12px;
  border-radius: var(--zk-radius-md);
}

body.zakupka-shell .supplier-identity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 220px);
  gap: 12px;
  margin: 14px 0;
}

body.zakupka-shell .supplier-section,
body.zakupka-shell .supplier-block {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--zk-hairline);
}

body.zakupka-shell .source-card,
body.zakupka-shell .supplier-source-card,
body.zakupka-shell .supplier-risk-card,
body.zakupka-shell .supplier-strength-card,
body.zakupka-shell .supplier-research-card {
  padding: 14px;
  background: var(--zk-panel-soft);
}

body.zakupka-shell .supplier-risk-card,
body.zakupka-shell .risk-card {
  color: var(--zk-danger);
  background: var(--zk-danger-soft);
  border-color: rgba(217, 45, 32, 0.18);
}

body.zakupka-shell .supplier-strength-card,
body.zakupka-shell .strength-card {
  color: var(--zk-success);
  background: var(--zk-success-soft);
  border-color: rgba(31, 122, 77, 0.18);
}

body.zakupka-shell .favorites-details > summary,
body.zakupka-shell .favorite-row summary {
  width: 100%;
  justify-content: space-between;
  border-radius: var(--zk-radius-lg);
  cursor: pointer;
}

body.zakupka-shell .favorite-row {
  border-bottom: 1px solid var(--zk-hairline);
}

body.zakupka-shell .favorite-row:last-child {
  border-bottom: 0;
}

body.zakupka-shell .favorite-row-shell {
  margin-top: 10px;
  padding: 0;
  overflow: hidden;
}

body.zakupka-shell .calc-page {
  display: grid;
  gap: 16px;
}

body.zakupka-shell .calc-layout {
  display: grid;
  grid-template-columns: minmax(360px, 470px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

body.zakupka-shell .calc-section {
  padding: 16px 0;
  border-top: 1px solid var(--zk-hairline);
}

body.zakupka-shell .calc-section:first-child {
  border-top: 0;
  padding-top: 0;
}

body.zakupka-shell .calc-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 0;
  color: var(--zk-text);
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  font-weight: 600;
}

body.zakupka-shell .calc-section__body {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

body.zakupka-shell .calc-alert {
  padding: 12px 14px;
  color: var(--zk-danger);
  background: var(--zk-danger-soft);
  border: 1px solid rgba(217, 45, 32, 0.18);
  border-radius: var(--zk-radius-md);
}

body.zakupka-shell .calc-actions .btn--primary {
  min-height: 44px;
  padding-inline: 22px;
}

body.zakupka-shell .calc-card {
  border-left: 4px solid var(--zk-accent);
}

body.zakupka-shell .calc-card.is-loss {
  border-left-color: var(--zk-danger);
}

body.zakupka-shell .calc-card.is-loss .profit {
  color: var(--zk-danger);
}

body.zakupka-shell .calc-card__notes {
  color: var(--zk-muted);
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-md);
}

body.zakupka-shell .field-grid,
body.zakupka-shell .field-grid--3 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.zakupka-shell .field-grid--3,
body.zakupka-shell .metric-row,
body.zakupka-shell .result-grid,
body.zakupka-shell .china-unit-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.zakupka-shell .report-kpi,
body.zakupka-shell .report-card,
body.zakupka-shell .compact-table {
  background: var(--zk-panel);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-lg);
  box-shadow: none !important;
}

body.zakupka-shell .empty,
body.zakupka-shell .empty-state {
  padding: 28px;
  color: var(--zk-muted);
  text-align: center;
  background: var(--zk-panel);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-lg);
}

body.zakupka-shell .toast,
body.zakupka-shell .alert,
body.zakupka-shell .notice {
  padding: 12px 14px;
  background: var(--zk-panel);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-md);
  box-shadow: none !important;
}

body.zakupka-shell hr {
  border: 0;
  border-top: 1px solid var(--zk-hairline);
}

body.zakupka-shell code,
body.zakupka-shell pre {
  color: var(--zk-text);
  background: var(--zk-panel-soft);
  border: 1px solid var(--zk-hairline);
  border-radius: var(--zk-radius-sm);
}

@media (max-width: 1180px) {
  body.zakupka-shell .page {
    max-width: none;
    padding: 32px 18px 56px;
  }

  body.zakupka-shell .kpi-grid,
  body.zakupka-shell .supplier-intro,
  body.zakupka-shell .calc-layout,
  body.zakupka-shell .trend-teaser-card {
    grid-template-columns: 1fr;
  }

  body.zakupka-shell .supplier-metrics,
  body.zakupka-shell .supplier-quality-grid,
  body.zakupka-shell .trend-stat-grid,
  body.zakupka-shell .metric-row,
  body.zakupka-shell .result-grid,
  body.zakupka-shell .china-unit-grid,
  body.zakupka-shell .field-grid,
  body.zakupka-shell .field-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  body.zakupka-shell .nav {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand right"
      "bot bot"
      "links links";
    gap: 10px;
    padding: 0 14px;
  }

  body.zakupka-shell .bot-switcher {
    width: 100%;
  }

  body.zakupka-shell .bot-switcher__btn {
    width: 100%;
  }

  body.zakupka-shell .nav__links {
    margin: 0 -14px;
    padding: 0 14px;
  }

  body.zakupka-shell .nav__sub,
  body.zakupka-shell .admin-id {
    display: none;
  }

  body.zakupka-shell h1 {
    font-size: 34px;
  }

  body.zakupka-shell .supplier-score,
  body.zakupka-shell .supplier-identity,
  body.zakupka-shell .trend-stat-grid,
  body.zakupka-shell .supplier-metrics,
  body.zakupka-shell .supplier-quality-grid,
  body.zakupka-shell .metric-row,
  body.zakupka-shell .result-grid,
  body.zakupka-shell .china-unit-grid,
  body.zakupka-shell .field-grid,
  body.zakupka-shell .field-grid--3,
  body.zakupka-shell .trend-strip {
    grid-template-columns: 1fr;
  }

  body.zakupka-shell .trend-details-body {
    min-width: min(100%, calc(100vw - 36px));
  }
}

@media (max-width: 560px) {
  body.zakupka-shell .page {
    padding: 24px 12px 44px;
  }

  body.zakupka-shell .card,
  body.zakupka-shell .panel,
  body.zakupka-shell .supplier-card,
  body.zakupka-shell .check-panel,
  body.zakupka-shell .favorites-details,
  body.zakupka-shell .trend-scoring-panel,
  body.zakupka-shell .calc-form,
  body.zakupka-shell .calc-card,
  body.zakupka-shell .calc-note {
    padding: 16px;
    border-radius: 16px;
  }

  body.zakupka-shell .page-head,
  body.zakupka-shell .supplier-card__head {
    flex-direction: column;
  }

  body.zakupka-shell input,
  body.zakupka-shell select,
  body.zakupka-shell textarea,
  body.zakupka-shell .btn,
  body.zakupka-shell button {
    width: 100%;
  }
}

/* Product Design polish pass: denser, calmer, more practical admin layout. */
body.zakupka-shell .nav {
  min-height: 58px;
  gap: 12px;
  padding-inline: clamp(18px, 2vw, 32px);
}

body.zakupka-shell .nav__brand {
  gap: 7px;
}

body.zakupka-shell .nav__title {
  font-size: 13px;
}

body.zakupka-shell .nav__sub,
body.zakupka-shell .admin-id {
  font-size: 11.5px;
}

body.zakupka-shell .bot-switcher__btn {
  min-width: 150px;
  min-height: 36px;
  font-size: 12.5px;
}

body.zakupka-shell .nav__links {
  gap: 3px;
}

body.zakupka-shell .nav__links a {
  min-height: 36px;
  padding-inline: 11px;
  font-size: 12.5px;
  font-weight: 600;
}

body.zakupka-shell .nav__links svg {
  width: 15px;
  height: 15px;
}

body.zakupka-shell .page {
  max-width: 1680px;
  padding: 32px clamp(18px, 2.2vw, 40px) 56px;
}

body.zakupka-shell .page-head {
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}

body.zakupka-shell h1,
body.zakupka-shell .h1 {
  margin-bottom: 16px;
  font-size: clamp(30px, 2.8vw, 44px);
  line-height: 1.08;
  font-weight: 650;
}

body.zakupka-shell h2 {
  font-size: 22px;
}

body.zakupka-shell .demand-actions,
body.zakupka-shell .trend-toolbar,
body.zakupka-shell .filters {
  margin-bottom: 16px;
}

body.zakupka-shell .kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

body.zakupka-shell .kpi-card {
  min-height: 112px;
  padding: 18px;
  border-radius: 20px;
}

body.zakupka-shell .kpi-label {
  color: var(--zk-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

body.zakupka-shell .kpi-value,
body.zakupka-shell .kpi-card b {
  margin-top: 6px;
  color: var(--zk-text);
  font-size: 24px;
  font-weight: 650;
  line-height: 1.12;
}

body.zakupka-shell .kpi-note {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.35;
}

body.zakupka-shell .dash-grid {
  gap: 16px;
}

body.zakupka-shell .panel,
body.zakupka-shell .card,
body.zakupka-shell .supplier-card,
body.zakupka-shell .trend-cat-panel,
body.zakupka-shell .platform-panel,
body.zakupka-shell .trend-table-wrap,
body.zakupka-shell .check-panel,
body.zakupka-shell .supplier-note,
body.zakupka-shell .favorites-details,
body.zakupka-shell .calc-form,
body.zakupka-shell .calc-card,
body.zakupka-shell .calc-empty {
  border-radius: 20px;
}

body.zakupka-shell .panel {
  padding: 20px;
  margin-bottom: 16px;
}

body.zakupka-shell .panel-head {
  align-items: flex-start;
  margin-bottom: 14px;
}

body.zakupka-shell .panel h2,
body.zakupka-shell .panel-head h2 {
  font-size: 22px;
  font-weight: 650;
}

body.zakupka-shell .panel-sub {
  color: var(--zk-muted);
  font-size: 12px;
}

body.zakupka-shell .chart-box {
  height: 280px;
  min-height: 280px;
}

body.zakupka-shell .chart-box--short {
  height: 230px;
  min-height: 230px;
}

body.zakupka-shell .table-scroll {
  max-height: 620px;
  border: 1px solid var(--zk-hairline);
  background: var(--zk-panel);
}

body.zakupka-shell .table-scroll .tbl {
  min-width: 1120px;
}

body.zakupka-shell .tbl th,
body.zakupka-shell .trend-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 11px 14px;
  background: #f8f8fa;
}

body.zakupka-shell .tbl td,
body.zakupka-shell .trend-table td {
  padding: 13px 14px;
}

body.zakupka-shell .trend-table-wrap {
  border-color: var(--zk-hairline);
}

body.zakupka-shell .trend-table {
  min-width: 1280px;
}

body.zakupka-shell .trend-details-body {
  min-width: 560px;
  max-width: 760px;
  padding: 14px;
  border-radius: 16px;
}

body.zakupka-shell .trend-stat-grid {
  grid-template-columns: repeat(4, minmax(110px, 1fr));
}

body.zakupka-shell .trend-chart-card {
  background: #fbfbfd;
  border-radius: 16px;
}

body.zakupka-shell .trend-chart-line {
  stroke: var(--zk-accent) !important;
}

body.zakupka-shell .trend-chart-point {
  fill: var(--zk-accent) !important;
}

body.zakupka-shell .signal-pill--boom,
body.zakupka-shell .signal-pill--new_top,
body.zakupka-shell .signal-pill--accelerating {
  color: var(--zk-accent) !important;
  background: var(--zk-accent-soft) !important;
  border-color: rgba(0, 102, 204, 0.18) !important;
  box-shadow: none !important;
}

body.zakupka-shell .has-tip::after {
  box-shadow: none !important;
}

body.zakupka-shell .phones-table {
  padding: 12px;
}

/* 7-колоночная раскладка 17.06 — без бокового скролла (перебивает старый 1740px) */
body.zakupka-shell .phones-table .tbl {
  min-width: 1310px;
}

body.zakupka-shell .supplier-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.zakupka-shell .supplier-card {
  padding: 18px;
}

body.zakupka-shell .supplier-card--checked {
  border-color: rgba(0, 102, 204, 0.3);
  box-shadow: none !important;
}

@media (max-width: 1380px) {
  body.zakupka-shell .nav {
    grid-template-columns: auto auto minmax(360px, 1fr);
    grid-template-areas:
      "brand bot right"
      "links links links";
    gap: 8px 12px;
    padding-block: 8px;
  }

  body.zakupka-shell .nav__links {
    padding-top: 2px;
  }
}

@media (max-width: 1180px) {
  body.zakupka-shell .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  body.zakupka-shell .kpi-grid,
  body.zakupka-shell .dash-grid,
  body.zakupka-shell .supplier-grid {
    grid-template-columns: 1fr;
  }

  body.zakupka-shell h1,
  body.zakupka-shell .h1 {
    font-size: 30px;
  }
}

/* Calculator layout stabilization.
   Global zakupka forms are flex-based for filters; calculator is a dense data-entry form. */
body.zakupka-shell .calc-page {
  gap: 18px;
}

body.zakupka-shell .calc-layout {
  display: grid !important;
  grid-template-columns: minmax(560px, 640px) minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: start !important;
}

body.zakupka-shell .calc-form {
  display: grid !important;
  width: 100%;
  min-width: 0;
  align-items: stretch !important;
  gap: 0 !important;
  flex-wrap: initial !important;
  padding: 18px !important;
}

body.zakupka-shell .calc-section {
  width: 100%;
  min-width: 0;
}

body.zakupka-shell .calc-section > summary {
  width: 100%;
  min-width: 0;
  padding: 10px 0 !important;
}

body.zakupka-shell .calc-section__body {
  display: grid !important;
  width: 100%;
  min-width: 0;
  gap: 12px !important;
}

body.zakupka-shell .calc-form .field-grid,
body.zakupka-shell .calc-form .field-grid--3 {
  display: grid !important;
  width: 100%;
  min-width: 0;
  gap: 12px !important;
}

body.zakupka-shell .calc-form .field-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.zakupka-shell .calc-form .field-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.zakupka-shell .calc-form .field {
  display: grid;
  min-width: 0;
  align-content: start;
}

body.zakupka-shell .calc-form .field--wide {
  grid-column: 1 / -1;
}

body.zakupka-shell .calc-form .field label {
  min-height: 16px;
  margin: 0 0 6px;
  color: var(--zk-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
}

body.zakupka-shell .calc-form input,
body.zakupka-shell .calc-form select {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px;
  border-radius: 12px;
}

body.zakupka-shell .calc-form select {
  padding-right: 32px;
}

body.zakupka-shell .delivery-toggle {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px !important;
  width: 100%;
  margin: 0 0 14px !important;
}

body.zakupka-shell .delivery-option {
  min-width: 0;
}

body.zakupka-shell .delivery-option span {
  min-height: 66px;
  border-radius: 14px;
}

body.zakupka-shell .calc-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  width: 100%;
  margin-top: 16px !important;
  padding-top: 16px !important;
}

body.zakupka-shell .calc-actions .btn {
  width: auto !important;
  min-width: 132px;
  flex: 0 0 auto;
  white-space: nowrap;
}

body.zakupka-shell .result-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.zakupka-shell .calc-card .metric-row {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.zakupka-shell .calc-card {
  min-width: 0;
}

body.zakupka-shell .breakdown {
  min-width: 0;
}

body.zakupka-shell .breakdown dt {
  min-width: 0;
}

body.zakupka-shell .breakdown dd {
  white-space: nowrap;
}

@media (max-width: 1280px) {
  body.zakupka-shell .calc-layout {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  body.zakupka-shell .calc-form .field-grid,
  body.zakupka-shell .calc-form .field-grid--3,
  body.zakupka-shell .delivery-toggle,
  body.zakupka-shell .result-grid,
  body.zakupka-shell .calc-card .metric-row {
    grid-template-columns: 1fr !important;
  }

  body.zakupka-shell .calc-actions {
    flex-wrap: wrap !important;
  }

  body.zakupka-shell .calc-actions .btn {
    width: 100% !important;
  }
}

/* ===================================================================
   REFRESH LAYER — 2026-06-12 (indigo accent + Inter + structured)
   Appended last so it wins over earlier layers without untangling them.
   =================================================================== */

body.zakupka-shell .nav__links a.active {
  background: var(--zk-accent);
  border-color: var(--zk-accent);
  color: #fff;
  border-radius: 10px;
}

body.zakupka-shell .h1,
body.zakupka-shell h1 {
  font-weight: 800;
}

body.zakupka-shell .card {
  border: 1px solid var(--zk-border);
  border-radius: var(--zk-radius-lg);
  box-shadow: 0 1px 2px rgba(20, 24, 33, 0.04);
}

body.zakupka-shell .kpi-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--zk-border);
  border-radius: var(--zk-radius-md);
  box-shadow: 0 1px 2px rgba(20, 24, 33, 0.04);
}
body.zakupka-shell .kpi-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--zk-accent);
}
body.zakupka-shell .kpi-grid .kpi-card:nth-child(2)::before { background: var(--zk-warning); }
body.zakupka-shell .kpi-grid .kpi-card:nth-child(4)::before { background: var(--zk-success); }
body.zakupka-shell .kpi-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--zk-muted-2);
}
body.zakupka-shell .kpi-value,
body.zakupka-shell .kpi-card b {
  font-weight: 800;
}

body.zakupka-shell .tbl thead th {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--zk-muted-2);
  background: var(--zk-panel-soft);
  border-bottom: 1px solid var(--zk-hairline);
}
body.zakupka-shell .tbl tbody td {
  border-bottom: 1px solid var(--zk-hairline);
}
body.zakupka-shell .tbl tbody tr:hover td {
  background: var(--zk-panel-soft);
}

body.zakupka-shell .btn--primary,
body.zakupka-shell .calc-actions .btn--primary {
  background: var(--zk-accent);
  border-color: var(--zk-accent);
  color: #fff;
}
body.zakupka-shell .btn--primary:hover,
body.zakupka-shell .calc-actions .btn--primary:hover {
  background: var(--zk-accent-focus);
  border-color: var(--zk-accent-focus);
}

body.zakupka-shell .period-tab.is-active {
  background: var(--zk-accent);
  border-color: var(--zk-accent);
  color: #fff;
}

/* ===================== МОБИЛЬНАЯ ВЕРСИЯ (≤600px) — 19.06 ===================== */
@media (max-width: 600px) {
  body.zakupka-shell { overflow-x: hidden; }

  /* Страница на всю ширину телефона, без десктоп-брейкаутов calc(100vw) */
  body.zakupka-shell .page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 14px 10px 40px !important;
    box-sizing: border-box;
  }

  /* Навигация: горизонтальная лента — все разделы доступны свайпом, без обрезки */
  body.zakupka-shell .nav__links {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 4px;
    scrollbar-width: none;
    margin: 0 -10px;
    padding: 2px 10px;
  }
  body.zakupka-shell .nav__links::-webkit-scrollbar { display: none; }
  body.zakupka-shell .nav__links a {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 8px 11px;
    font-size: 13.5px;
  }

  /* Заголовки компактнее, чтобы не съедали экран */
  body.zakupka-shell h1,
  body.zakupka-shell .h1 { font-size: 25px; line-height: 1.15; }

  /* Все многоколоночные сетки → одна колонка */
  body.zakupka-shell .source-note,
  body.zakupka-shell .kpi-grid,
  body.zakupka-shell .kpi-row,
  body.zakupka-shell .supplier-metrics,
  body.zakupka-shell .supplier-grid,
  body.zakupka-shell .result-grid,
  body.zakupka-shell .field-grid,
  body.zakupka-shell .field-grid--3,
  body.zakupka-shell .china-unit-grid,
  body.zakupka-shell .registry-link-grid,
  body.zakupka-shell .calc-grid {
    grid-template-columns: 1fr !important;
  }

  /* Таблицы скроллятся ВНУТРИ контейнера, а не распирают страницу вбок */
  body.zakupka-shell .table-scroll,
  body.zakupka-shell .phones-table,
  body.zakupka-shell .trend-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  /* Палец-френдли: крупнее тапы, инпуты 16px (iOS не зумит при фокусе) */
  body.zakupka-shell .btn { min-height: 40px; }
  body.zakupka-shell select,
  body.zakupka-shell input,
  body.zakupka-shell textarea { font-size: 16px; }

  /* Кнопки-фильтры на всю ширину — удобнее жать */
  body.zakupka-shell .period-tab,
  body.zakupka-shell .filters .btn { flex: 1 1 auto; }

  /* ===== Таблицы → карточки (только мобайл, только .card-on-mobile) ===== */
  body.zakupka-shell .tbl.card-on-mobile { display: block; min-width: 0 !important; width: 100%; }
  body.zakupka-shell .tbl.card-on-mobile thead { display: none; } /* шапка не нужна — лейблы в ячейках */
  body.zakupka-shell .tbl.card-on-mobile tbody { display: block; }
  body.zakupka-shell .tbl.card-on-mobile tr {
    display: block;
    border: 1px solid var(--zk-hairline, var(--border));
    border-radius: 12px;
    padding: 6px 12px;
    margin-bottom: 10px;
    background: var(--zk-panel, var(--panel));
  }
  /* строки «нет в ассортименте» — акцентная рамка */
  body.zakupka-shell .tbl.card-on-mobile tr.row-gap {
    border-color: var(--zk-accent, #4f46e5);
    box-shadow: 0 0 0 1px var(--zk-accent, #4f46e5) inset;
  }
  body.zakupka-shell .tbl.card-on-mobile td {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    width: auto !important;
    min-width: 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--zk-hairline, var(--border)) !important;
    padding: 6px 0 !important;
  }
  body.zakupka-shell .tbl.card-on-mobile td:last-child { border-bottom: none !important; }
  body.zakupka-shell .tbl.card-on-mobile td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    font-size: 10.5px; font-weight: 700;
    color: var(--zk-muted, var(--muted));
    text-transform: uppercase; letter-spacing: .03em;
    white-space: nowrap;
  }
  /* пустой лейбл — не рисуем подпись */
  body.zakupka-shell .tbl.card-on-mobile td[data-label=""]::before { display: none; }
  body.zakupka-shell .tbl.card-on-mobile td > * { text-align: right; }

  /* Богатые ячейки (формы, графики, цены, ссылки) — лейбл сверху, контент под ним */
  body.zakupka-shell .tbl.card-on-mobile td.ws-cell,
  body.zakupka-shell .tbl.card-on-mobile td.mp-cell,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Модель"],
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Статус"],
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Ритейлеры"],
  body.zakupka-shell .tbl.card-on-mobile td[data-label="РФ / Global"],
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Карточки стёкол"] {
    flex-direction: column;
    align-items: stretch;
  }
  body.zakupka-shell .tbl.card-on-mobile td.ws-cell > *,
  body.zakupka-shell .tbl.card-on-mobile td.mp-cell > *,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Модель"] > *,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Статус"] > *,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Ритейлеры"] > *,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="РФ / Global"] > *,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Карточки стёкол"] > * { text-align: left; }
  body.zakupka-shell .tbl.card-on-mobile td.ws-cell::before,
  body.zakupka-shell .tbl.card-on-mobile td.mp-cell::before,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Модель"]::before,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Статус"]::before,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Ритейлеры"]::before,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="РФ / Global"]::before,
  body.zakupka-shell .tbl.card-on-mobile td[data-label="Карточки стёкол"]::before { margin-bottom: 3px; }

  /* Контейнер с карточками раскрываем — карточки текут по странице, без внутр. скролла */
  body.zakupka-shell .table-scroll:has(.tbl.card-on-mobile) {
    max-height: none !important;
    overflow: visible !important;
    border: none;
  }
}
