<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://brony-rf.ru/" xml:lang="ru">
  <id>https://brony-rf.ru/kuski-i-listy-na-probu</id>
  <link href="https://brony-rf.ru/kuski-i-listy-na-probu.xml" rel="self"/>
  <title>Бронелист: наличие, классы защиты и цены</title>
  <subtitle type="html">&lt;p&gt;&lt;/p&gt;
&lt;style&gt;
  :root {
    --bg:    #0a0a0a;
    --bg2:   #111111;
    --bg3:   #16130a;
    --line:  #d4af37;
    --gold:  #d4af37;
    --goldB: #f0d060;
    --goldD: #8a7020;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
    background: var(--bg);
    color: var(--gold);
    line-height: 1.5;
    padding: 20px 14px;
  }
  ::selection { background: var(--gold); color: #000; }
  .wrap { max-width: 1300px; margin: 0 auto; }

  /* ============ БЕГУЩАЯ СТРОКА ============ */
  .ticker-block {
    display: flex;
    align-items: stretch;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 14px;
    height: 44px;
  }
  .ticker-label {
    background: var(--gold);
    color: #0a0a0a;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 1.5px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    white-space: nowrap;
  }
  .ticker-viewport { flex: 1; overflow: hidden; position: relative; }
  .ticker-track {
    display: inline-flex;
    align-items: center;
    height: 100%;
    white-space: nowrap;
    animation: tickerScroll 40s linear infinite;
    padding-left: 20px;
  }
  .ticker-item { color: var(--gold); font-size: 13px; padding: 0 10px; letter-spacing: .3px; }
  .ticker-item b { color: var(--goldB); font-weight: 700; }
  .ticker-dot { color: var(--gold); font-size: 10px; }
  @keyframes tickerScroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  /* ============ ШАПКА ============ */
  header {
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 30px 25px;
    text-align: center;
    margin-bottom: 14px;
  }
  .banner-tag {
    display: inline-block;
    background: var(--gold);
    color: #0a0a0a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    padding: 4px 14px;
    border-radius: 999px;
    margin-bottom: 14px;
  }
  header h1 {
    margin: 0 0 12px 0;
    font-size: 28px;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: 3px;
    font-weight: 800;
  }
  .banner-line {
    width: 60px;
    height: 2px;
    background: var(--gold);
    margin: 0 auto 14px;
  }
  header p { margin: 0; color: var(--gold); font-size: 15px; letter-spacing: .5px; opacity: .9; }

  /* ============ ГЛАВНЫЕ ЦЕНЫ ============ */
  .price-hero {
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 14px;
  }
  .price-hero-tag {
    display: block;
    text-align: center;
    color: var(--gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    padding-bottom: 12px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--line);
  }
  .price-hero-cards { display: flex; gap: 14px; flex-wrap: wrap; }
  .ph-card {
    flex: 1;
    min-width: 240px;
    border-radius: 10px;
    padding: 20px 22px;
    background: var(--bg);
    border: 1px solid var(--gold);
  }
  .ph-name {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 10px;
    opacity: .8;
  }
  .ph-price {
    font-size: 38px;
    font-weight: 800;
    letter-spacing: -1px;
    line-height: 1;
    color: var(--gold);
    margin-bottom: 8px;
  }
  .ph-price span { font-size: 16px; font-weight: 600; color: var(--gold); letter-spacing: 0; opacity: .7; }
  .ph-note { font-size: 13px; color: var(--gold); opacity: .85; }

  /* ============ ВКЛАДКИ ============ */
  .promo-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
  }
  .promo-tab {
    padding: 10px 18px;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    color: var(--gold);
    transition: .15s;
    letter-spacing: .3px;
  }
  .promo-tab:hover { background: rgba(212,175,55,.1); }
  .promo-tab.active { background: var(--gold); color: #0a0a0a; }

  /* ============ ТУЛБАР ============ */
  .promo-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
  }
  .promo-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 9px;
    border: 1px solid var(--gold);
    background: transparent;
    color: var(--gold);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: .15s;
    font-family: inherit;
    letter-spacing: .3px;
  }
  .promo-btn:hover { background: var(--gold); color: #0a0a0a; }
  .promo-btn.primary { background: var(--gold); color: #0a0a0a; }
  .promo-btn.primary:hover { background: var(--goldB); }

  /* ============ ПОИСК ============ */
  .promo-search {
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: end;
  }
  .promo-search input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: 14px;
    background: var(--bg);
    color: var(--gold);
    outline: none;
    font-family: inherit;
  }
  .promo-search input::placeholder { color: rgba(212,175,55,.4); }
  .promo-search input:focus { box-shadow: 0 0 0 3px rgba(212,175,55,.2); }
  .promo-counter {
    color: var(--gold);
    font-size: 13px;
    white-space: nowrap;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--bg);
    font-weight: 700;
  }

  /* ============ USP ============ */
  .usp-block {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
  }
  .usp-item {
    flex: 1;
    min-width: 240px;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 16px 18px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
  }
  .usp-icon { color: var(--gold); font-size: 14px; line-height: 1.4; }
  .usp-text h4 { margin: 0 0 4px 0; font-size: 14px; color: var(--gold); font-weight: 700; }
  .usp-text p { margin: 0; font-size: 13px; color: var(--gold); opacity: .75; }

  /* ============ ТАБЛИЦА + ЭФФЕКТЫ ============ */
  .table-block {
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 14px;
  }
  .block-title {
    color: var(--gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-align: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  .table-wrapper {
    position: relative;
    overflow: auto;
    max-height: 70vh;
    border-radius: 8px;
    border: 1px solid var(--line);
    scroll-behavior: smooth;
    animation: edgeGlow 4s ease-in-out infinite;
    transition: box-shadow .4s ease;
  }
  .table-wrapper:hover, .table-wrapper.active-scroll {
    box-shadow: inset 0 0 30px rgba(212,175,55,.25), inset 0 0 60px rgba(255,140,0,.15);
  }
  .table-wrapper::before, .table-wrapper::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #ffd700, #ff5500, #ffd700, transparent);
    opacity: .8;
    pointer-events: none;
    z-index: 3;
  }
  .table-wrapper::before { top: 0; animation: topLine 3s ease-in-out infinite; }
  .table-wrapper::after  { bottom: 0; animation: bottomLine 3s ease-in-out infinite; }
  @keyframes edgeGlow {
    0%, 100% { box-shadow: inset 0 0 12px rgba(212,175,55,.15); }
    50%      { box-shadow: inset 0 0 28px rgba(255,215,0,.45); }
  }
  @keyframes topLine    { 0%,100%{opacity:.5;} 50%{opacity:1;} }
  @keyframes bottomLine { 0%,100%{opacity:1;} 50%{opacity:.5;} }

  .price-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--bg);
    min-width: 900px;
    font-size: 13px;
  }
  .price-table th, .price-table td {
    padding: 11px 14px;
    text-align: left;
    border-bottom: 1px solid rgba(212,175,55,.25);
    vertical-align: middle;
    color: var(--gold);
  }
  .price-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg);
    color: var(--gold);
    font-weight: 800;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 1px;
    white-space: nowrap;
    border-bottom: 1px solid var(--gold);
    cursor: pointer;
    user-select: none;
    transition: .15s;
  }
  .price-table th:hover { background: #1a1408; }
  .price-table th.sortable::after { content: ' ⇅'; opacity: .5; margin-left: 4px; }
  .price-table th.asc::after { content: ' ▲'; opacity: 1; color: var(--goldB); }
  .price-table th.desc::after { content: ' ▼'; opacity: 1; color: var(--goldB); }
  .price-table th.num, .price-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  .price-table tbody tr { transition: background .15s ease, box-shadow .15s ease; }
  .price-table tbody tr:hover {
    background: #1a1408;
    box-shadow: inset 4px 0 0 #ffd700, inset -4px 0 0 #ffd700, 0 0 20px rgba(255,215,0,.15);
  }
  .price-table .category-row td {
    background: var(--bg);
    color: var(--goldB);
    font-weight: 800;
    letter-spacing: 1px;
    font-size: 12px;
    text-transform: uppercase;
    border-bottom: 1px solid var(--gold);
    border-top: 1px solid var(--gold);
    padding: 12px 14px;
  }
  .price-table .note { color: var(--gold); font-size: 11px; font-style: italic; opacity: .6; }
  .badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    background: rgba(212,175,55,.15);
    color: var(--goldB);
    border: 1px solid rgba(212,175,55,.5);
    white-space: nowrap;
  }
  .badge.plan {
    background: rgba(212,175,55,.05);
    color: var(--gold);
    font-style: italic;
    border-style: dashed;
  }
  .tu-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 800;
    background: rgba(212,175,55,.15);
    color: var(--goldB);
    border: 1px solid rgba(212,175,55,.5);
    white-space: nowrap;
  }
  .tu-badge.tu-18107 { background: rgba(240,208,96,.12); border-style: dashed; }
  .tu-badge.tu-18121 { background: rgba(212,175,55,.2); }
  .tu-badge.tu-btvt  { background: rgba(255,215,0,.18); border-color: #ffd700; }
  .weight-val { color: var(--goldB); font-weight: 700; }
  .empty { padding: 40px; text-align: center; color: var(--gold); opacity: .6; font-size: 14px; }

  .table-footnote {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }
  .footnote-item {
    color: var(--gold);
    font-size: 12px;
    position: relative;
    padding-left: 14px;
    opacity: .85;
  }
  .footnote-item::before {
    content: "◆";
    position: absolute;
    left: 0;
    color: var(--gold);
    font-size: 8px;
    top: 4px;
  }

  /* ============ УСЛОВИЯ ============ */
  .promo-conditions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
  }
  .condition-card {
    flex: 1;
    min-width: 250px;
    background: var(--bg);
    border: 1px solid var(--line);
    padding: 20px;
    border-radius: 10px;
  }
  .cond-num {
    color: var(--gold);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
  }
  .condition-card h3 { margin: 0 0 6px 0; font-size: 16px; color: var(--gold); font-weight: 700; }
  .condition-card p { margin: 0; font-size: 13px; color: var(--gold); opacity: .8; }
  .condition-card strong { color: var(--goldB); }

  /* ============ ПРИСЫЛАЙТЕ ============ */
  .promo-trick {
    background: var(--bg);
    border: 1px dashed var(--gold);
    border-radius: 10px;
    padding: 18px;
    text-align: center;
    margin-bottom: 14px;
  }
  .promo-trick p { margin: 0; color: var(--gold); font-size: 15px; }
  .promo-trick strong { color: var(--goldB); }

  /* ============ КОНТАКТЫ ============ */
  .cta-section {
    text-align: center;
    background: var(--bg);
    border: 1px solid var(--gold);
    border-radius: 12px;
    padding: 28px 20px;
    margin-bottom: 14px;
  }
  .cta-text { font-size: 16px; font-weight: 600; color: var(--gold); margin: 0 0 16px 0; }
  .cta-button {
    display: inline-block;
    background: var(--gold);
    color: #0a0a0a !important;
    text-decoration: none;
    padding: 16px 40px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
    border-radius: 999px;
    transition: .25s;
  }
  .cta-button:hover { background: var(--goldB); transform: scale(1.03); }
  .manager-info { margin: 16px 0 0 0; font-size: 13px; color: var(--gold); opacity: .8; }

  /* ============ РАЗДЕЛ КУСКИ И ПРОБА ============ */
  .sample-section {
    background: var(--bg);
    border: 1px solid var(--gold);
    border-radius: 14px;
    padding: 24px;
    margin-top: 20px;
  }
  .sample-header {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--gold);
  }
  .sample-tag {
    display: inline-block;
    background: var(--gold);
    color: #0a0a0a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    padding: 4px 14px;
    border-radius: 999px;
    margin-bottom: 12px;
  }
  .sample-header h2 {
    margin: 0 0 12px 0;
    font-size: 24px;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 800;
  }
  .sample-line {
    width: 50px;
    height: 2px;
    background: var(--gold);
    margin: 0 auto 12px;
  }
  .sample-header p { margin: 0; color: var(--gold); font-size: 14px; opacity: .85; }

  .sample-requisites {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px 20px;
    background: var(--bg);
    border: 1px solid rgba(212,175,55,.4);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 18px;
  }
  .req-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed rgba(212,175,55,.2);
    font-size: 13px;
  }
  .req-row:last-child { border-bottom: none; }
  .req-label { color: var(--gold); opacity: .7; font-weight: 600; white-space: nowrap; }
  .req-value { color: var(--goldB); font-weight: 700; text-align: right; word-break: break-word; }

  .sample-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
  .sample-tab {
    padding: 9px 16px;
    background: var(--bg);
    border: 1px solid var(--gold);
    border-radius: 9px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    color: var(--gold);
    transition: .15s;
    letter-spacing: .3px;
  }
  .sample-tab:hover { background: rgba(212,175,55,.1); }
  .sample-tab.active { background: var(--gold); color: #0a0a0a; }

  /* ============ ПЛАСТИНЫ 110Г13Л ============ */
  .plate-block {
    background: var(--bg);
    border: 1px solid var(--gold);
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 18px;
  }
  .plate-header {
    text-align: center;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--gold);
  }
  .plate-tag {
    display: inline-block;
    background: var(--gold);
    color: #0a0a0a;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    padding: 3px 12px;
    border-radius: 999px;
    margin-bottom: 10px;
  }
  .plate-header h3 {
    margin: 0 0 12px 0;
    font-size: 20px;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
  }
  .plate-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 20px;
    margin-bottom: 12px;
  }
  .plate-info-item { font-size: 13px; color: var(--gold); opacity: .9; }
  .plate-info-item b { color: var(--goldB); margin-right: 4px; }
  .plate-note {
    margin: 0;
    font-size: 13px;
    color: var(--gold);
    opacity: .75;
    font-style: italic;
  }

  /* ============ ОГНЕННЫЕ ПОЛЗУНКИ ============ */
  ::-webkit-scrollbar { width: 18px; height: 18px; }
  ::-webkit-scrollbar-track {
    background: #050505;
    border: 1px solid #2a2210;
    border-radius: 9px;
    box-shadow: inset 0 0 12px rgba(212,175,55,.2);
  }
  ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg,
      #ffffcc 0%, #ffd700 15%, #ff8c00 35%, #d4af37 50%,
      #ff8c00 65%, #ffd700 85%, #ffffcc 100%);
    border: 1px solid #ffd700;
    border-radius: 9px;
    box-shadow:
      0 0 10px rgba(255,215,0,.9),
      0 0 20px rgba(255,140,0,.7),
      0 0 30px rgba(255,80,0,.4),
      inset 0 0 8px rgba(255,255,255,.5);
    background-size: 100% 200%;
    animation: fireFlow 2.5s linear infinite;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg,
      #ffffff 0%, #ffffcc 20%, #ffd700 40%, #ff8c00 60%,
      #ffd700 80%, #ffffff 100%);
    box-shadow:
      0 0 18px rgba(255,215,0,1),
      0 0 36px rgba(255,140,0,.9),
      0 0 54px rgba(255,80,0,.6),
      inset 0 0 12px rgba(255,255,255,.8);
  }
  ::-webkit-scrollbar-button:single-button {
    background-color: #0a0a0a;
    display: block;
    background-size: 12px;
    background-repeat: no-repeat;
    background-position: center;
    border: 1px solid #3a2f10;
    border-radius: 8px;
    height: 18px;
    width: 18px;
    box-shadow: inset 0 0 6px rgba(212,175,55,.4);
    transition: .2s;
  }
  ::-webkit-scrollbar-button:single-button:hover {
    background-color: #1a0e08;
    border-color: #ffd700;
    box-shadow: 0 0 12px rgba(255,215,0,.9), inset 0 0 8px rgba(255,140,0,.5);
  }
  ::-webkit-scrollbar-button:single-button:vertical:decrement {
    background-image: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'&gt;&lt;path d='M8 3 L13 11 L3 11 Z' fill='%23ffd700' stroke='%23ff5500' stroke-width='0.8'/&gt;&lt;/svg&gt;");
  }
  ::-webkit-scrollbar-button:single-button:vertical:increment {
    background-image: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'&gt;&lt;path d='M8 13 L3 5 L13 5 Z' fill='%23ffd700' stroke='%23ff5500' stroke-width='0.8'/&gt;&lt;/svg&gt;");
  }
  @keyframes fireFlow {
    0%   { background-position: 0% 0%; }
    100% { background-position: 0% 200%; }
  }
  * { scrollbar-width: thin; scrollbar-color: #ffd700 #0a0a0a; }

  /* Искры */
  .sparkle {
    position: absolute;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0%, #ffd700 40%, rgba(255,140,0,0) 70%);
    pointer-events: none;
    box-shadow: 0 0 8px #ffd700, 0 0 16px #ff8c00;
    animation: sparkleFloat 3s ease-in-out infinite;
    z-index: 4;
  }
  @keyframes sparkleFloat {
    0%   { transform: translateY(0) scale(0); opacity: 0; }
    20%  { transform: translateY(-10px) scale(1); opacity: 1; }
    80%  { transform: translateY(-40px) scale(.6); opacity: .6; }
    100% { transform: translateY(-60px) scale(0); opacity: 0; }
  }

  /* Огненные частицы */
  .fire-particle {
    position: fixed;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0%, #ffd700 30%, #ff5500 70%, rgba(255,0,0,0) 100%);
    box-shadow: 0 0 10px #ff8c00, 0 0 20px #ff5500;
    pointer-events: none;
    z-index: 9999;
    animation: fireFly 1.2s ease-out forwards;
  }
  @keyframes fireFly {
    0%   { transform: translate(0,0) scale(1); opacity: 1; }
    100% { transform: translate(var(--dx, 0), var(--dy, -60px)) scale(0); opacity: 0; }
  }

  /* Молния */
  .lightning {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(255,215,0,.7) 50%, transparent 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 5;
    animation: lightningFlash 0.25s ease-out;
    border-radius: 12px;
  }
  @keyframes lightningFlash {
    0%   { opacity: 0; }
    30%  { opacity: 1; }
    60%  { opacity: .3; }
    100% { opacity: 0; }
  }

  /* Idle */
  .idle-hint ::-webkit-scrollbar-thumb {
    animation: fireFlow 2.5s linear infinite, idlePulse 1.2s ease-in-out infinite;
  }
  @keyframes idlePulse {
    0%, 100% { box-shadow: 0 0 10px rgba(255,215,0,.9), 0 0 20px rgba(255,140,0,.7); }
    50% {
      box-shadow:
        0 0 22px rgba(255,215,0,1),
        0 0 44px rgba(255,140,0,1),
        0 0 66px rgba(255,80,0,.7);
    }
  }

  /* SEO */
  .seo-text {
    position: absolute;
    width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;
  }

  /* Адаптив */
  @media (max-width: 700px) {
    body { padding: 12px 10px; }
    header h1 { font-size: 20px; letter-spacing: 1.5px; }
    header p { font-size: 13px; }
    .promo-conditions, .usp-block, .price-hero-cards, .promo-toolbar, .sample-tabs { flex-direction: column; }
    .condition-card, .ph-card, .usp-item { min-width: auto; }
    .promo-search { grid-template-columns: 1fr; }
    .promo-tab, .sample-tab { padding: 8px 12px; font-size: 13px; }
    .promo-btn { padding: 9px 12px; font-size: 12px; }
    .price-table th, .price-table td { padding: 9px 10px; font-size: 12px; }
    .cta-button { width: 100%; padding: 16px 10px; font-size: 17px; }
    .ph-price { font-size: 30px; }
    .ticker-block { height: 40px; }
    .ticker-item { font-size: 12px; }
    .sample-requisites { grid-template-columns: 1fr; }
    .sample-header h2 { font-size: 18px; letter-spacing: 1.2px; }
    .plate-header h3 { font-size: 16px; }
  }

  /* Печать */
  @media print {
    body { background: #fff; color: #000; padding: 0; }
    .ticker-block, .promo-tabs, .promo-toolbar, .promo-search,
    .sample-tabs, .sparkle, .fire-particle, .lightning { display: none !important; }
    header {
      background: #000 !important;
      color: #ffd700 !important;
      border-color: #000 !important;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    header h1, header p { color: #ffd700 !important; }
    .banner-tag { background: #ffd700 !important; color: #000 !important;
      -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .banner-line { background: #ffd700 !important; }
    .price-hero { display: none; }
    .table-block, .sample-section, .plate-block {
      background: #fff !important;
      border: 1px solid #999 !important;
    }
    .block-title, .sample-header h2, .plate-header h3 {
      color: #000 !important;
      border-color: #999 !important;
    }
    .sample-header p, .plate-note { color: #666 !important; }
    .sample-tag, .plate-tag {
      background: #000 !important; color: #fff !important;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .sample-line { background: #000 !important; }
    .sample-requisites { background: #fff !important; border-color: #999 !important; }
    .req-label { color: #666 !important; }
    .req-value { color: #000 !important; }
    .table-wrapper { max-height: none; overflow: visible; border-color: #999; animation: none; }
    .table-wrapper::before, .table-wrapper::after { display: none; }
    .price-table { min-width: auto; font-size: 11px; }
    .price-table th {
      background: #000 !important;
      color: #ffd700 !important;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .price-table td { color: #000 !important; border-bottom: 1px solid #ccc !important; }
    .price-table .category-row td {
      background: #000 !important;
      color: #ffd700 !important;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .badge, .tu-badge, .plate-info-item { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .table-footnote { border-color: #999; }
    .footnote-item { color: #666 !important; }
    .footnote-item::before { color: #666 !important; }
    .cta-section { background: #fff !important; border-color: #999 !important; }
    .cta-text { color: #000 !important; }
    .cta-button { background: #000 !important; color: #fff !important;
      -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .manager-info { color: #666 !important; }
  }
&lt;/style&gt;
&lt;div class="wrap"&gt;
&lt;div class="ticker-block"&gt;
&lt;div class="ticker-label"&gt;ЦЕНЫ&lt;/div&gt;
&lt;div class="ticker-viewport"&gt;
&lt;div class="ticker-track"&gt;&lt;span class="ticker-item"&gt;БТВТ 450 &amp;mdash; &lt;strong&gt;300 ₽/кг&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;C500 6 мм &amp;mdash; &lt;strong&gt;425 ₽/кг&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;6&amp;times;1500&amp;times;6000 БТВТ &amp;mdash; &lt;strong&gt;129 000 ₽/лист&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;6&amp;times;1500&amp;times;6000 C500 &amp;mdash; &lt;strong&gt;182 750 ₽/лист&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Класс Бр2 / С2 &amp;middot; от 1 листа &amp;middot; НДС 22%&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Отгрузка по 20 тонн &amp;mdash; 10&amp;ndash;15 раб. дней&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Пластины 110Г13Л &amp;mdash; &lt;strong&gt;10 000 ₽/шт&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;БТВТ 450 &amp;mdash; &lt;strong&gt;300 ₽/кг&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;C500 6 мм &amp;mdash; &lt;strong&gt;425 ₽/кг&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;6&amp;times;1500&amp;times;6000 БТВТ &amp;mdash; &lt;strong&gt;129 000 ₽/лист&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;6&amp;times;1500&amp;times;6000 C500 &amp;mdash; &lt;strong&gt;182 750 ₽/лист&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Класс Бр2 / С2 &amp;middot; от 1 листа &amp;middot; НДС 22%&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Отгрузка по 20 тонн &amp;mdash; 10&amp;ndash;15 раб. дней&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt; &lt;span class="ticker-item"&gt;Пластины 110Г13Л &amp;mdash; &lt;strong&gt;10 000 ₽/шт&lt;/strong&gt;&lt;/span&gt; &lt;span class="ticker-dot"&gt;◆&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;header&gt;
&lt;div class="banner-tag"&gt;АКЦИЯ&lt;/div&gt;
&lt;h1&gt;СОЛНЕЧНЫЙ ОКТЯБРЬ&lt;/h1&gt;
&lt;div class="banner-line"&gt;&lt;/div&gt;
&lt;p&gt;Наличие, классы защиты и актуальные цены на начало месяца&lt;/p&gt;
&lt;/header&gt;
&lt;div class="price-hero"&gt;
&lt;div class="price-hero-tag"&gt;ГЛАВНОЕ ПО АКЦИИ&lt;/div&gt;
&lt;div class="price-hero-cards"&gt;
&lt;div class="ph-card"&gt;
&lt;div class="ph-name"&gt;БТВТ 450 &amp;middot; ТУ 18105BB-2024&lt;/div&gt;
&lt;div class="ph-price"&gt;300 &lt;span&gt;₽/кг&lt;/span&gt;&lt;/div&gt;
&lt;div class="ph-note"&gt;6&amp;times;1500&amp;times;6000 &amp;mdash; 129 000 ₽/лист&lt;/div&gt;
&lt;/div&gt;
&lt;div class="ph-card"&gt;
&lt;div class="ph-name"&gt;C500 &amp;middot; ТУ 18101-2017 Ж&lt;/div&gt;
&lt;div class="ph-price"&gt;425 &lt;span&gt;₽/кг&lt;/span&gt;&lt;/div&gt;
&lt;div class="ph-note"&gt;6&amp;times;1500&amp;times;6000 &amp;mdash; 182 750 ₽/лист&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="promo-tabs"&gt;
&lt;div class="promo-tab active" data-tab="all"&gt;Все позиции&lt;/div&gt;
&lt;div class="promo-tab" data-tab="armor"&gt;Броня C500&lt;/div&gt;
&lt;div class="promo-tab" data-tab="btvt"&gt;БТВТ 450&lt;/div&gt;
&lt;div class="promo-tab" data-tab="plan"&gt;План испытаний&lt;/div&gt;
&lt;/div&gt;
&lt;div class="promo-toolbar"&gt;&lt;button class="promo-btn primary" onclick="downloadCSV()"&gt;⬇ Скачать CSV&lt;/button&gt; &lt;button class="promo-btn primary" onclick="downloadExcel()"&gt;⬇ Скачать Excel&lt;/button&gt; &lt;button class="promo-btn" onclick="window.print()"&gt;? Печать / PDF&lt;/button&gt; &lt;button class="promo-btn" onclick="resetAll()"&gt;✕ Сбросить&lt;/button&gt;&lt;/div&gt;
&lt;div class="promo-search"&gt;&lt;input id="priceSearch" placeholder="Поиск: марка, ТУ, размер, класс…" type="text" /&gt;
&lt;div class="promo-counter" id="priceCounter"&gt;Найдено: 0&lt;/div&gt;
&lt;/div&gt;
&lt;div class="usp-block"&gt;
&lt;div class="usp-item"&gt;
&lt;div class="usp-icon"&gt;◆&lt;/div&gt;
&lt;div class="usp-text"&gt;
&lt;h4&gt;Гарантия класса по ТУ&lt;/h4&gt;
&lt;p&gt;Бр2 / С2 &amp;mdash; подтверждено сертификатом&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="usp-item"&gt;
&lt;div class="usp-icon"&gt;◆&lt;/div&gt;
&lt;div class="usp-text"&gt;
&lt;h4&gt;Раскрой по запросу&lt;/h4&gt;
&lt;p&gt;1220&amp;times;2080 &amp;middot; 1300&amp;times;2000 &amp;middot; 1500&amp;times;3000 &amp;middot; 1500&amp;times;6000&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="usp-item"&gt;
&lt;div class="usp-icon"&gt;◆&lt;/div&gt;
&lt;div class="usp-text"&gt;
&lt;h4&gt;Отгрузка по 20 тонн&lt;/h4&gt;
&lt;p&gt;Каждые 10&amp;ndash;15 рабочих дней после предоплаты&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="table-block"&gt;
&lt;div class="block-title"&gt;ПРАЙС АКЦИИ &amp;middot; ОКТЯБРЬ&lt;/div&gt;
&lt;div class="table-wrapper"&gt;
&lt;table id="priceTable" class="price-table"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="sortable" data-key="mark"&gt;Марка / ТУ&lt;/th&gt;
&lt;th class="sortable" data-key="size"&gt;Размер (мм)&lt;/th&gt;
&lt;th class="sortable" data-key="klass"&gt;Класс&lt;/th&gt;
&lt;th class="sortable num" data-key="stock"&gt;Наличие&lt;/th&gt;
&lt;th class="sortable num" data-key="priceSheet"&gt;За лист, ₽&lt;/th&gt;
&lt;th class="sortable num" data-key="priceKg"&gt;За 1 кг, ₽&lt;/th&gt;
&lt;th class="sortable" data-key="term"&gt;Сроки&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody id="priceBody"&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="empty" id="priceEmpty" style="display: none;"&gt;Ничего не найдено.&lt;/div&gt;
&lt;div class="table-footnote"&gt;
&lt;div class="footnote-item"&gt;Цены с НДС 22% &amp;middot; от 1 листа &amp;middot; раскрой по запросу&lt;/div&gt;
&lt;div class="footnote-item"&gt;Оплата: 70% предоплата / 30% перед отгрузкой&lt;/div&gt;
&lt;div class="footnote-item"&gt;Отгрузка: по 20 тонн каждые 10&amp;ndash;15 раб. дней&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="promo-conditions"&gt;
&lt;div class="condition-card"&gt;
&lt;div class="cond-num"&gt;01&lt;/div&gt;
&lt;h3&gt;Оптовые поставки&lt;/h3&gt;
&lt;p&gt;Специальная цена при заказе &lt;strong&gt;от 10 тонн&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="condition-card"&gt;
&lt;div class="cond-num"&gt;02&lt;/div&gt;
&lt;h3&gt;Тонкие листы&lt;/h3&gt;
&lt;p&gt;Выгодное предложение при покупке &lt;strong&gt;от 20 до 25 штук&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="condition-card"&gt;
&lt;div class="cond-num"&gt;03&lt;/div&gt;
&lt;h3&gt;Единичные заказы&lt;/h3&gt;
&lt;p&gt;Отгружаем по стандартному прайс-листу без задержек&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="promo-trick"&gt;
&lt;p&gt;&lt;strong&gt;Присылайте эту акцию в октябре&lt;/strong&gt; &amp;mdash; если кто-то забыл дать вам скидку на оптовые объёмы&lt;/p&gt;
&lt;/div&gt;
&lt;div class="cta-section"&gt;
&lt;p class="cta-text"&gt;Если что-то не понятно &amp;mdash; звоните, мы всегда на связи&lt;/p&gt;
&lt;a href="tel:+79028733690" class="cta-button"&gt;8 (902) 873-36-90&lt;/a&gt;
&lt;p class="manager-info"&gt;Менеджер: Ольга &amp;middot; Бронесталь &amp;middot; ООО &amp;laquo;Арсенал Деталь&amp;raquo;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sample-section"&gt;
&lt;div class="sample-header"&gt;
&lt;div class="sample-tag"&gt;ПРОБНАЯ ПАРТИЯ&lt;/div&gt;
&lt;h2&gt;Куски и листы на пробу&lt;/h2&gt;
&lt;div class="sample-line"&gt;&lt;/div&gt;
&lt;p&gt;Стоимость уточняйте отдельно &amp;middot; куски дороже&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sample-requisites"&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;Организация&lt;/span&gt;&lt;span class="req-value"&gt;ООО &amp;laquo;Арсенал-Деталь&amp;raquo;&lt;/span&gt;&lt;/div&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;ИНН / КПП&lt;/span&gt;&lt;span class="req-value"&gt;6670215323 / 667001001&lt;/span&gt;&lt;/div&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;ОГРН / ОКПО&lt;/span&gt;&lt;span class="req-value"&gt;1086670018445 / 86899091&lt;/span&gt;&lt;/div&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;ОКАТО&lt;/span&gt;&lt;span class="req-value"&gt;65401000000&lt;/span&gt;&lt;/div&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;Телефон&lt;/span&gt;&lt;span class="req-value"&gt;8 992-017-49-73&lt;/span&gt;&lt;/div&gt;
&lt;div class="req-row"&gt;&lt;span class="req-label"&gt;E-mail&lt;/span&gt;&lt;span class="req-value"&gt;bronestali@inbox.ru&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sample-tabs"&gt;
&lt;div class="sample-tab active" data-tu="all"&gt;Все позиции&lt;/div&gt;
&lt;div class="sample-tab" data-tu="18101"&gt;ТУ 18101-2017 Ж&lt;/div&gt;
&lt;div class="sample-tab" data-tu="18107"&gt;ТУ 18107И-2022&lt;/div&gt;
&lt;div class="sample-tab" data-tu="18121"&gt;ТУ 18121-2017/96&lt;/div&gt;
&lt;div class="sample-tab" data-tu="btvt"&gt;БТВТ-450&lt;/div&gt;
&lt;/div&gt;
&lt;div class="promo-toolbar"&gt;&lt;button class="promo-btn primary" onclick="downloadSampleCSV()"&gt;⬇ Скачать CSV&lt;/button&gt; &lt;button class="promo-btn primary" onclick="downloadSampleExcel()"&gt;⬇ Скачать Excel&lt;/button&gt; &lt;button class="promo-btn" onclick="window.print()"&gt;? Печать / PDF&lt;/button&gt; &lt;button class="promo-btn" onclick="resetSamples()"&gt;✕ Сбросить&lt;/button&gt;&lt;/div&gt;
&lt;div class="promo-search"&gt;&lt;input id="sampleSearch" placeholder="Поиск: размер, ТУ, толщина…" type="text" /&gt;
&lt;div class="promo-counter" id="sampleCounter"&gt;Найдено: 0&lt;/div&gt;
&lt;/div&gt;
&lt;div class="table-block"&gt;
&lt;div class="block-title"&gt;НАЛИЧИЕ ПРОБНЫХ ОБРАЗЦОВ&lt;/div&gt;
&lt;div class="table-wrapper"&gt;
&lt;table id="sampleTable" class="price-table"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="sortable" data-key="name"&gt;Наименование&lt;/th&gt;
&lt;th class="sortable" data-key="tu"&gt;ТУ&lt;/th&gt;
&lt;th class="sortable num" data-key="weight"&gt;Вес, кг&lt;/th&gt;
&lt;th class="sortable num" data-key="thk"&gt;Толщина, мм&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody id="sampleBody"&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="empty" id="sampleEmpty" style="display: none;"&gt;Ничего не найдено.&lt;/div&gt;
&lt;div class="table-footnote"&gt;
&lt;div class="footnote-item"&gt;Стоимость уточняйте у менеджера&lt;/div&gt;
&lt;div class="footnote-item"&gt;Куски дороже листов&lt;/div&gt;
&lt;div class="footnote-item"&gt;Отгрузка после согласования&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="plate-block"&gt;
&lt;div class="plate-header"&gt;
&lt;div class="plate-tag"&gt;ДЛЯ ИСПЫТАНИЙ&lt;/div&gt;
&lt;h3&gt;Пластины из брони 110Г13Л&lt;/h3&gt;
&lt;div class="plate-info"&gt;&lt;span class="plate-info-item"&gt;&lt;strong&gt;Материал:&lt;/strong&gt; 110Г13Л&lt;/span&gt; &lt;span class="plate-info-item"&gt;&lt;strong&gt;Размер:&lt;/strong&gt; 5 &amp;times; 60 &amp;times; 150 мм&lt;/span&gt; &lt;span class="plate-info-item"&gt;&lt;strong&gt;Кол-во:&lt;/strong&gt; 6 шт&lt;/span&gt; &lt;span class="plate-info-item"&gt;&lt;strong&gt;Цена:&lt;/strong&gt; 10 000 ₽/шт&lt;/span&gt; &lt;span class="plate-info-item"&gt;&lt;strong&gt;Оплата:&lt;/strong&gt; только безнал, по счёту&lt;/span&gt;&lt;/div&gt;
&lt;p class="plate-note"&gt;Образцы для научных испытаний&lt;/p&gt;
&lt;/div&gt;
&lt;div class="promo-toolbar"&gt;&lt;button class="promo-btn primary" onclick="downloadPlateCSV()"&gt;⬇ Скачать CSV&lt;/button&gt; &lt;button class="promo-btn primary" onclick="downloadPlateExcel()"&gt;⬇ Скачать Excel&lt;/button&gt; &lt;button class="promo-btn" onclick="window.print()"&gt;? Печать / PDF&lt;/button&gt;&lt;/div&gt;
&lt;div class="table-wrapper"&gt;
&lt;table id="plateTable" class="price-table"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="sortable num" data-key="thk"&gt;Толщина, мм&lt;/th&gt;
&lt;th class="sortable num" data-key="width"&gt;Ширина, мм&lt;/th&gt;
&lt;th class="sortable num" data-key="length"&gt;Длина, мм&lt;/th&gt;
&lt;th class="sortable num" data-key="qty"&gt;Количество, шт&lt;/th&gt;
&lt;th class="sortable num" data-key="price"&gt;Цена, ₽/шт&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody id="plateBody"&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="table-footnote"&gt;
&lt;div class="footnote-item"&gt;Образцы для научных испытаний&lt;/div&gt;
&lt;div class="footnote-item"&gt;Отгрузка после оплаты по счёту&lt;/div&gt;
&lt;div class="footnote-item"&gt;Только безналичный расчёт&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="cta-section"&gt;
&lt;p class="cta-text"&gt;Уточнить стоимость и наличие&lt;/p&gt;
&lt;a href="tel:+79920174973" class="cta-button"&gt;8 (992) 017-49-73&lt;/a&gt;
&lt;p class="manager-info"&gt;Лариса &amp;middot; E-mail: bronestali@inbox.ru&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="seo-text"&gt;
&lt;p&gt;Акция Солнечный Октябрь на бронелист БТВТ 450 и C500. Купить бронелист оптом и в розницу. Стальной лист ТУ 18101-2017 Ж, ТУ 18121-2017/96, ТУ 18105BB-2024, ТУ 18107И-2022. Классы защиты Бр2, Бр3, Бр4, Бр5, Бр6, осколочный класс С2. Выгодные цены на высокопрочную сталь. Оптовые поставки металла от 10 тонн. Тонколистовой прокат от 20 штук. Раскрой бронелиста 1220&amp;times;2080, 1300&amp;times;2000, 1500&amp;times;3000, 1500&amp;times;6000. Куски и листы на пробу, пластины из брони 110Г13Л для научных испытаний. Скачать прайс-лист на броневой лист 2026. Скидки на металлопрокат в октябре. ООО &amp;laquo;Арсенал-Деталь&amp;raquo;, 8 992-017-49-73, bronestali@inbox.ru.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
/* ==================== ДАННЫЕ: ПРАЙС ==================== */
const priceData = [
  {group:'c500_tu18121', mark:'C500', tu:'ТУ 18121-2017/96', size:'2,3 × 1220 × 2080', klass:'Бр2', stock:'50',  priceSheet:72224,  priceKg:1444, term:'10–15 раб. дней'},
  {group:'c500_tu18121', mark:'C500', tu:'ТУ 18121-2017/96', size:'4,3 × 1220 × 2080', klass:'Бр3', stock:'0',   priceSheet:116876, priceKg:1230, term:'3–4 мес. (нет сырья)'},
  {group:'c500_tu18121', mark:'C500', tu:'ТУ 18121-2017/96', size:'6,3 × 1220 × 2080', klass:'Бр4', stock:'400', priceSheet:142130, priceKg:1085, term:'10–15 раб. дней'},
  {group:'c500_tu18121', mark:'C500', tu:'ТУ 18121-2017/96', size:'8,3 × 1220 × 2080', klass:'Бр4', stock:'12',  priceSheet:201300, priceKg:1118, term:'10–15 раб. дней'},
  {group:'btvt', mark:'БТВТ 450', tu:'ТУ 18105BB-2024', size:'6 × 1500 × 2000', klass:'Бр2 / С2', stock:'~141', priceSheet:42390,  priceKg:300, term:'10–15 раб. дней'},
  {group:'btvt', mark:'БТВТ 450', tu:'ТУ 18105BB-2024', size:'6 × 1500 × 3000', klass:'Бр2 / С2', stock:'~94',  priceSheet:63585,  priceKg:300, term:'10–15 раб. дней'},
  {group:'btvt', mark:'БТВТ 450', tu:'ТУ 18105BB-2024', size:'6 × 1500 × 6000', klass:'Бр2 / С2', stock:'~188', priceSheet:129000, priceKg:300, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1300 × 2000', klass:'Бр2 / С2', stock:'~163', priceSheet:52046,  priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1300 × 3000', klass:'Бр2 / С2', stock:'~108', priceSheet:78068,  priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1500 × 2000', klass:'Бр2 / С2', stock:'~141', priceSheet:60053,  priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1500 × 3000', klass:'Бр2 / С2', stock:'~94',  priceSheet:90079,  priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1300 × 6000', klass:'Бр2 / С2', stock:'~193', priceSheet:157250, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'6 × 1500 × 6000', klass:'Бр2 / С2', stock:'~188', priceSheet:182750, priceKg:425, term:'10–15 раб. дней'},
  {group:'plan', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'8 × 1500 × 6000', klass:'план Бр3', stock:'~35', priceSheet:242250, priceKg:425, term:'10–15 раб. дней'},
  {group:'plan', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'8 × 2000 × 6000', klass:'план Бр3', stock:'~26', priceSheet:323000, priceKg:425, term:'10–15 раб. дней'},
  {group:'plan', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'20 × 2000 × 6000', klass:'план Бр5', stock:'~10', priceSheet:807500, priceKg:425, term:'10–15 раб. дней'},
  {group:'plan', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'25 × 2000 × 6000', klass:'план Бр5', stock:'~8',  priceSheet:1011500, priceKg:425, term:'10–15 раб. дней'},
  {group:'plan', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'50 × 2000 × 6000', klass:'план Бр6', stock:'~4',  priceSheet:2040000, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'10 × 1500 × 6000', klass:'Бр4', stock:'~28', priceSheet:301750, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'10 × 2000 × 6000', klass:'Бр4', stock:'~21', priceSheet:408000, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'12 × 2000 × 6000', klass:'Бр4', stock:'~17', priceSheet:488750, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'14 × 2000 × 6000', klass:'Бр4', stock:'~15', priceSheet:573750, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'15 × 2000 × 6000', klass:'Бр4', stock:'~14', priceSheet:600525, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'16 × 2000 × 6000', klass:'Бр4', stock:'~13', priceSheet:646000, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'30 × 2000 × 6000', klass:'—',  stock:'~7',  priceSheet:1211250, priceKg:425, term:'10–15 раб. дней'},
  {group:'c500_tu18101', mark:'C500', tu:'ТУ 18101-2017 Ж', size:'40 × 2000 × 6000', klass:'—',  stock:'~5',  priceSheet:1632000, priceKg:425, term:'10–15 раб. дней'}
];

/* ==================== ДАННЫЕ: КУСКИ ==================== */
const sampleData = [
  {name:'4,3 × 300 × 570 мм',  tu:'ТУ 18121-2017/96', tuKey:'18121', weight:6,   thk:4.3},
  {name:'4 × 1300 × 2000 мм',  tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:82,  thk:4},
  {name:'5 × 1250 × 3000 мм',  tu:'БТВТ-450',         tuKey:'btvt',  weight:148, thk:5},
  {name:'6 × 1500 × 2000 мм',  tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:143, thk:6},
  {name:'8 × 98 × 2330 мм',    tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:15,  thk:8},
  {name:'8 × 150 × 5000 мм',   tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:48,  thk:8},
  {name:'10 × 500 × 1000 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:40,  thk:10},
  {name:'10 × 440 × 1000 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:35,  thk:10},
  {name:'20 × 20 × 2500 мм',   tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:8,   thk:20},
  {name:'20 × 20 × 3000 мм — 3 шт.', tu:'ТУ 18101-2017 Ж', tuKey:'18101', weight:10, thk:20},
  {name:'25 × 200 × 720 мм',   tu:'ТУ 18107И-2022',   tuKey:'18107', weight:28,  thk:25},
  {name:'25 × 690 × 708 мм',   tu:'ТУ 18107И-2022',   tuKey:'18107', weight:97,  thk:25},
  {name:'30 × 180 × 550 мм',   tu:'ТУ 18107И-2022',   tuKey:'18107', weight:24,  thk:30},
  {name:'40 × 160 × 160 мм',   tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:10,  thk:40},
  {name:'40 × 80 × 700 мм',    tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:18,  thk:40},
  {name:'40 × 185 × 205 мм',   tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:12,  thk:40},
  {name:'40 × 205 × 250 мм',   tu:'ТУ 18101-2017 Ж',  tuKey:'18101', weight:16,  thk:40},
  {name:'50 × 120 × 2220 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:105, thk:50},
  {name:'50 × 110 × 2600 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:113, thk:50},
  {name:'50 × 110 × 3370 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:146, thk:50},
  {name:'50 × 600 × 1190 мм (Г-образный + выступ 400 × 1030 мм)', tu:'ТУ 18107И-2022', tuKey:'18107', weight:445, thk:50},
  {name:'50 × 55 × 2200 мм',   tu:'ТУ 18107И-2022',   tuKey:'18107', weight:48,  thk:50},
  {name:'50 × 530 × 2300 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:482, thk:50},
  {name:'50 × 580 × 1160 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:266, thk:50},
  {name:'50 × 750 × 2230 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:661, thk:50},
  {name:'50 × 100 × 2540 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:100, thk:50},
  {name:'50 × 110 × 2470 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:107, thk:50},
  {name:'50 × 110 × 2520 мм',  tu:'ТУ 18107И-2022',   tuKey:'18107', weight:110, thk:50}
];

/* ==================== ДАННЫЕ: ПЛАСТИНЫ ==================== */
const plateData = [
  {thk:5, width:60, length:150, qty:6, price:10000}
];

/* ==================== СОСТОЯНИЯ ==================== */
let state = { tab:'all', search:'', sort:{key:null, dir:1} };
const sampleState = { tu:'all', search:'', sort:{key:null, dir:1} };
const plateState  = { sort:{key:null, dir:1} };

/* ==================== УТИЛИТЫ ==================== */
const fmt = n =&gt; n.toLocaleString('ru-RU');
const num = s =&gt; parseFloat(String(s).replace(/[^\d.,]/g,'').replace(',', '.')) || 0;

function downloadBlob(blob, filename) {
  const url = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = url; a.download = filename;
  document.body.appendChild(a); a.click(); a.remove();
  setTimeout(() =&gt; URL.revokeObjectURL(url), 500);
}
function today() {
  const d = new Date(), p = n =&gt; String(n).padStart(2,'0');
  return `${d.getFullYear()}-${p(d.getMonth()+1)}-${p(d.getDate())}`;
}

/* ==================== ПРАЙС: ФИЛЬТРАЦИЯ И РЕНДЕР ==================== */
function getFiltered() {
  let rows = priceData.slice();
  if (state.tab === 'armor') rows = rows.filter(r =&gt; r.group === 'c500_tu18121');
  if (state.tab === 'btvt')  rows = rows.filter(r =&gt; r.group === 'btvt');
  if (state.tab === 'plan')  rows = rows.filter(r =&gt; r.klass.startsWith('план'));
  if (state.search) {
    const q = state.search.toLowerCase();
    rows = rows.filter(r =&gt; (r.mark+' '+r.tu+' '+r.size+' '+r.klass+' '+r.term).toLowerCase().includes(q));
  }
  if (state.sort.key) {
    const k = state.sort.key, d = state.sort.dir;
    rows.sort((a, b) =&gt; {
      let va = a[k], vb = b[k];
      if (k === 'stock') { va = num(va); vb = num(vb); }
      if (typeof va === 'number' &amp;&amp; typeof vb === 'number') return (va - vb) * d;
      return String(va).localeCompare(String(vb), 'ru') * d;
    });
  }
  return rows;
}

const GROUPS = {
  'c500_tu18121': 'C500 · ТУ 18121-2017/96',
  'btvt':         'БТВТ 450 · ТУ 18105BB-2024 · 300 ₽/кг',
  'c500_tu18101': 'C500 · ТУ 18101-2017 Ж · 425 ₽/кг',
  'plan':         'План испытаний'
};

function render() {
  const rows = getFiltered();
  const tbody = document.getElementById('priceBody');
  const empty = document.getElementById('priceEmpty');
  tbody.innerHTML = '';
  if (!rows.length) {
    empty.style.display = 'block';
    document.getElementById('priceCounter').textContent = 'Найдено: 0';
    updateSortIndicators();
    return;
  }
  empty.style.display = 'none';

  if (state.sort.key) {
    rows.forEach(r =&gt; tbody.appendChild(makeRow(r)));
  } else {
    Object.keys(GROUPS).forEach(g =&gt; {
      const groupRows = rows.filter(r =&gt; r.group === g);
      if (!groupRows.length) return;
      const tr = document.createElement('tr');
      tr.className = 'category-row';
      tr.innerHTML = `&lt;td colspan="7"&gt;${GROUPS[g]}&lt;/td&gt;`;
      tbody.appendChild(tr);
      groupRows.forEach(r =&gt; tbody.appendChild(makeRow(r)));
    });
  }
  document.getElementById('priceCounter').textContent = 'Найдено: ' + rows.length;
  updateSortIndicators();
}

function makeRow(r) {
  const tr = document.createElement('tr');
  const badgeCls = r.klass.startsWith('план') ? 'badge plan' : 'badge';
  tr.innerHTML = `
    &lt;td&gt;${r.mark} &lt;span class="note"&gt;${r.tu}&lt;/span&gt;&lt;/td&gt;
    &lt;td&gt;${r.size}&lt;/td&gt;
    &lt;td&gt;&lt;span class="${badgeCls}"&gt;${r.klass}&lt;/span&gt;&lt;/td&gt;
    &lt;td class="num"&gt;${r.stock}&lt;/td&gt;
    &lt;td class="num"&gt;${fmt(r.priceSheet)}&lt;/td&gt;
    &lt;td class="num"&gt;${fmt(r.priceKg)}&lt;/td&gt;
    &lt;td&gt;${r.term}&lt;/td&gt;`;
  return tr;
}

function updateSortIndicators() {
  document.querySelectorAll('#priceTable th.sortable').forEach(th =&gt; {
    th.classList.remove('asc','desc');
    if (th.dataset.key === state.sort.key) {
      th.classList.add(state.sort.dir === 1 ? 'asc' : 'desc');
    }
  });
}

/* ==================== КУСКИ ==================== */
function getFilteredSamples() {
  let rows = sampleData.slice();
  if (sampleState.tu !== 'all') rows = rows.filter(r =&gt; r.tuKey === sampleState.tu);
  if (sampleState.search) {
    const q = sampleState.search.toLowerCase();
    rows = rows.filter(r =&gt; (r.name + ' ' + r.tu + ' ' + r.thk).toLowerCase().includes(q));
  }
  if (sampleState.sort.key) {
    const k = sampleState.sort.key, d = sampleState.sort.dir;
    rows.sort((a, b) =&gt; {
      let va = a[k], vb = b[k];
      if (typeof va === 'number' &amp;&amp; typeof vb === 'number') return (va - vb) * d;
      return String(va).localeCompare(String(vb), 'ru') * d;
    });
  }
  return rows;
}
function renderSamples() {
  const rows = getFilteredSamples();
  const tbody = document.getElementById('sampleBody');
  const empty = document.getElementById('sampleEmpty');
  tbody.innerHTML = '';
  if (!rows.length) {
    empty.style.display = 'block';
    document.getElementById('sampleCounter').textContent = 'Найдено: 0';
    updateSampleSortIndicators();
    return;
  }
  empty.style.display = 'none';
  rows.forEach(r =&gt; {
    const tr = document.createElement('tr');
    tr.innerHTML = `
      &lt;td&gt;${r.name}&lt;/td&gt;
      &lt;td&gt;&lt;span class="tu-badge tu-${r.tuKey}"&gt;${r.tu}&lt;/span&gt;&lt;/td&gt;
      &lt;td class="num"&gt;&lt;span class="weight-val"&gt;${r.weight}&lt;/span&gt;&lt;/td&gt;
      &lt;td class="num"&gt;${r.thk}&lt;/td&gt;`;
    tbody.appendChild(tr);
  });
  document.getElementById('sampleCounter').textContent = 'Найдено: ' + rows.length;
  updateSampleSortIndicators();
}
function updateSampleSortIndicators() {
  document.querySelectorAll('#sampleTable th.sortable').forEach(th =&gt; {
    th.classList.remove('asc','desc');
    if (th.dataset.key === sampleState.sort.key) {
      th.classList.add(sampleState.sort.dir === 1 ? 'asc' : 'desc');
    }
  });
}

/* ==================== ПЛАСТИНЫ ==================== */
function getFilteredPlates() {
  let rows = plateData.slice();
  if (plateState.sort.key) {
    const k = plateState.sort.key, d = plateState.sort.dir;
    rows.sort((a, b) =&gt; (a[k] - b[k]) * d);
  }
  return rows;
}
function renderPlates() {
  const rows = getFilteredPlates();
  const tbody = document.getElementById('plateBody');
  tbody.innerHTML = '';
  rows.forEach(r =&gt; {
    const tr = document.createElement('tr');
    tr.innerHTML = `
      &lt;td class="num"&gt;&lt;b&gt;${r.thk}&lt;/b&gt;&lt;/td&gt;
      &lt;td class="num"&gt;${r.width}&lt;/td&gt;
      &lt;td class="num"&gt;${r.length}&lt;/td&gt;
      &lt;td class="num"&gt;${r.qty}&lt;/td&gt;
      &lt;td class="num" style="color:#f0d060;font-weight:700;"&gt;${fmt(r.price)} ₽&lt;/td&gt;`;
    tbody.appendChild(tr);
  });
  updatePlateSortIndicators();
}
function updatePlateSortIndicators() {
  document.querySelectorAll('#plateTable th.sortable').forEach(th =&gt; {
    th.classList.remove('asc','desc');
    if (th.dataset.key === plateState.sort.key) {
      th.classList.add(plateState.sort.dir === 1 ? 'asc' : 'desc');
    }
  });
}

/* ==================== СОБЫТИЯ ==================== */
document.querySelectorAll('.promo-tab').forEach(tab =&gt; {
  tab.addEventListener('click', () =&gt; {
    document.querySelectorAll('.promo-tab').forEach(t =&gt; t.classList.remove('active'));
    tab.classList.add('active');
    state.tab = tab.dataset.tab;
    render();
  });
});
document.querySelectorAll('.sample-tab').forEach(tab =&gt; {
  tab.addEventListener('click', () =&gt; {
    document.querySelectorAll('.sample-tab').forEach(t =&gt; t.classList.remove('active'));
    tab.classList.add('active');
    sampleState.tu = tab.dataset.tu;
    renderSamples();
  });
});
document.getElementById('priceSearch').addEventListener('input', e =&gt; {
  state.search = e.target.value.trim(); render();
});
document.getElementById('sampleSearch').addEventListener('input', e =&gt; {
  sampleState.search = e.target.value.trim(); renderSamples();
});
document.querySelectorAll('#priceTable th.sortable').forEach(th =&gt; {
  th.addEventListener('click', () =&gt; {
    const k = th.dataset.key;
    if (state.sort.key === k) state.sort.dir *= -1;
    else state.sort = {key:k, dir:1};
    render();
  });
});
document.querySelectorAll('#sampleTable th.sortable').forEach(th =&gt; {
  th.addEventListener('click', () =&gt; {
    const k = th.dataset.key;
    if (sampleState.sort.key === k) sampleState.sort.dir *= -1;
    else sampleState.sort = {key:k, dir:1};
    renderSamples();
  });
});
document.querySelectorAll('#plateTable th.sortable').forEach(th =&gt; {
  th.addEventListener('click', () =&gt; {
    const k = th.dataset.key;
    if (plateState.sort.key === k) plateState.sort.dir *= -1;
    else plateState.sort = {key:k, dir:1};
    renderPlates();
  });
});

/* ==================== СБРОС ==================== */
function resetAll() {
  state = {tab:'all', search:'', sort:{key:null, dir:1}};
  document.getElementById('priceSearch').value = '';
  document.querySelectorAll('.promo-tab').forEach((t,i) =&gt; t.classList.toggle('active', i === 0));
  render();
}
function resetSamples() {
  sampleState.tu = 'all'; sampleState.search = ''; sampleState.sort = {key:null, dir:1};
  document.getElementById('sampleSearch').value = '';
  document.querySelectorAll('.sample-tab').forEach((t,i) =&gt; t.classList.toggle('active', i === 0));
  renderSamples();
}

/* ==================== ЭКСПОРТ ==================== */
function downloadCSV() {
  const rows = getFiltered();
  const header = ['Марка','ТУ','Размер','Класс','Наличие','За лист, ₽','За 1 кг, ₽','Сроки'];
  const body = rows.map(r =&gt; [r.mark, r.tu, r.size, r.klass, r.stock, r.priceSheet, r.priceKg, r.term]);
  const esc = v =&gt; `"${String(v).replace(/"/g,'""')}"`;
  const csv = [header, ...body].map(r =&gt; r.map(esc).join(';')).join('\r\n');
  downloadBlob(new Blob(['\uFEFF' + csv], {type:'text/csv;charset=utf-8;'}), 'price_solnechny_oktyabr_' + today() + '.csv');
}
function downloadSampleCSV() {
  const rows = getFilteredSamples();
  const header = ['Наименование','ТУ','Вес, кг','Толщина, мм'];
  const body = rows.map(r =&gt; [r.name, r.tu, r.weight, r.thk]);
  const esc = v =&gt; `"${String(v).replace(/"/g,'""')}"`;
  const csv = [header, ...body].map(r =&gt; r.map(esc).join(';')).join('\r\n');
  downloadBlob(new Blob(['\uFEFF' + csv], {type:'text/csv;charset=utf-8;'}), 'samples_solnechny_oktyabr_' + today() + '.csv');
}
function downloadPlateCSV() {
  const rows = getFilteredPlates();
  const header = ['Толщина, мм','Ширина, мм','Длина, мм','Количество, шт','Цена, ₽/шт'];
  const body = rows.map(r =&gt; [r.thk, r.width, r.length, r.qty, r.price]);
  const esc = v =&gt; `"${String(v).replace(/"/g,'""')}"`;
  const csv = [header, ...body].map(r =&gt; r.map(esc).join(';')).join('\r\n');
  downloadBlob(new Blob(['\uFEFF' + csv], {type:'text/csv;charset=utf-8;'}), 'plates_110g13l_' + today() + '.csv');
}

function makeExcel(title, header, body, extra) {
  const esc = v =&gt; String(v ?? '').replace(/&amp;/g,'&amp;amp;').replace(/&lt;/g,'&amp;lt;').replace(/&gt;/g,'&amp;gt;');
  const table = `&lt;table border="1" cellspacing="0" cellpadding="4"&gt;
    &lt;thead style="background:#000;color:#ffd700;"&gt;&lt;tr&gt;${header.map(h=&gt;`&lt;th&gt;${esc(h)}&lt;/th&gt;`).join('')}&lt;/tr&gt;&lt;/thead&gt;
    &lt;tbody&gt;${body.map(r=&gt;`&lt;tr&gt;${r.map(c=&gt;`&lt;td&gt;${esc(c)}&lt;/td&gt;`).join('')}&lt;/tr&gt;`).join('')}&lt;/tbody&gt;&lt;/table&gt;`;
  return `&lt;html xmlns:x="urn:schemas-microsoft-com:office:excel"&gt;&lt;head&gt;&lt;meta charset="UTF-8"&gt;
    &lt;style&gt;td,th{font-family:Arial;font-size:12px;}&lt;/style&gt;&lt;/head&gt;
    &lt;body&gt;&lt;h2&gt;${esc(title)} — ${today()}&lt;/h2&gt;${extra||''}${table}&lt;/body&gt;&lt;/html&gt;`;
}
function downloadExcel() {
  const rows = getFiltered();
  const header = ['Марка','ТУ','Размер','Класс','Наличие','За лист, ₽','За 1 кг, ₽','Сроки'];
  const body = rows.map(r =&gt; [r.mark, r.tu, r.size, r.klass, r.stock, r.priceSheet, r.priceKg, r.term]);
  const blob = new Blob(['\uFEFF' + makeExcel('Прайс акции «Солнечный Октябрь»', header, body)], {type:'application/vnd.ms-excel;charset=utf-8;'});
  downloadBlob(blob, 'price_solnechny_oktyabr_' + today() + '.xls');
}
function downloadSampleExcel() {
  const rows = getFilteredSamples();
  const header = ['Наименование','ТУ','Вес, кг','Толщина, мм'];
  const body = rows.map(r =&gt; [r.name, r.tu, r.weight, r.thk]);
  const extra = `&lt;p&gt;ООО «Арсенал-Деталь» · ИНН 6670215323 / КПП 667001001&lt;/p&gt;
    &lt;p&gt;Телефон: 8 992-017-49-73 · E-mail: bronestali@inbox.ru&lt;/p&gt;`;
  const blob = new Blob(['\uFEFF' + makeExcel('Куски и листы на пробу', header, body, extra)], {type:'application/vnd.ms-excel;charset=utf-8;'});
  downloadBlob(blob, 'samples_solnechny_oktyabr_' + today() + '.xls');
}
function downloadPlateExcel() {
  const rows = getFilteredPlates();
  const header = ['Толщина, мм','Ширина, мм','Длина, мм','Количество, шт','Цена, ₽/шт'];
  const body = rows.map(r =&gt; [r.thk, r.width, r.length, r.qty, r.price]);
  const extra = `&lt;p&gt;&lt;b&gt;Материал:&lt;/b&gt; 110Г13Л · &lt;b&gt;Размер:&lt;/b&gt; 5 × 60 × 150 мм · &lt;b&gt;Кол-во:&lt;/b&gt; 6 шт&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Цена:&lt;/b&gt; 10 000 ₽/шт · &lt;b&gt;Оплата:&lt;/b&gt; только безнал, по счёту&lt;/p&gt;
    &lt;p&gt;ООО «Арсенал-Деталь» · ИНН 6670215323 / КПП 667001001&lt;/p&gt;
    &lt;p&gt;Телефон: 8 992-017-49-73 · E-mail: bronestali@inbox.ru&lt;/p&gt;`;
  const blob = new Blob(['\uFEFF' + makeExcel('Пластины из брони 110Г13Л', header, body, extra)], {type:'application/vnd.ms-excel;charset=utf-8;'});
  downloadBlob(blob, 'plates_110g13l_' + today() + '.xls');
}

/* ==================== СТАРТ ==================== */
render();
renderSamples();
renderPlates();

/* ==================== ЭФФЕКТЫ СКРОЛЛА ==================== */
(function initScrollEffects() {
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    let timer = null;
    box.addEventListener('scroll', () =&gt; {
      clearTimeout(timer);
      timer = setTimeout(() =&gt; {
        const row = box.querySelector('tbody tr');
        if (!row) return;
        const rowH = row.getBoundingClientRect().height;
        if (!rowH) return;
        const cur = box.scrollTop;
        const snapped = Math.round(cur / rowH) * rowH;
        if (Math.abs(cur - snapped) &gt; 2) {
          box.scrollTo({ top: snapped, behavior: 'smooth' });
        }
      }, 180);
    }, { passive: true });
  });
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    let hideTimer = null;
    box.addEventListener('mouseenter', () =&gt; { clearTimeout(hideTimer); box.classList.add('active-scroll'); });
    box.addEventListener('mouseleave', () =&gt; { hideTimer = setTimeout(() =&gt; box.classList.remove('active-scroll'), 400); });
    box.addEventListener('scroll', () =&gt; {
      box.classList.add('active-scroll');
      clearTimeout(hideTimer);
      hideTimer = setTimeout(() =&gt; box.classList.remove('active-scroll'), 800);
    }, { passive: true });
  });
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    for (let i = 0; i &lt; 8; i++) {
      const s = document.createElement('span');
      s.className = 'sparkle';
      const top = Math.random() &gt; .5;
      s.style.left = (Math.random() * 100) + '%';
      s.style.top = top ? '2px' : 'auto';
      s.style.bottom = top ? 'auto' : '2px';
      s.style.animationDelay = (Math.random() * 3).toFixed(2) + 's';
      s.style.animationDuration = (2 + Math.random() * 2).toFixed(2) + 's';
      box.appendChild(s);
    }
  });
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    let particleTimer = 0;
    box.addEventListener('scroll', () =&gt; {
      const now = Date.now();
      if (now - particleTimer &lt; 30) return;
      particleTimer = now;
      const rect = box.getBoundingClientRect();
      const p = document.createElement('span');
      p.className = 'fire-particle';
      const x = rect.left + Math.random() * rect.width;
      const y = rect.top + Math.random() * rect.height;
      p.style.left = x + 'px';
      p.style.top = y + 'px';
      p.style.setProperty('--dx', ((Math.random() - .5) * 60) + 'px');
      p.style.setProperty('--dy', (-40 - Math.random() * 60) + 'px');
      document.body.appendChild(p);
      setTimeout(() =&gt; p.remove(), 1300);
    }, { passive: true });
  });
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    let lastTop = box.scrollTop, lastTime = Date.now();
    box.addEventListener('scroll', () =&gt; {
      const now = Date.now();
      const dt = now - lastTime;
      const dy = Math.abs(box.scrollTop - lastTop);
      lastTime = now; lastTop = box.scrollTop;
      if (dt &gt; 0 &amp;&amp; dy / dt &gt; 0.4) {
        const flash = document.createElement('span');
        flash.className = 'lightning';
        box.appendChild(flash);
        setTimeout(() =&gt; flash.remove(), 300);
      }
    }, { passive: true });
  });
  document.querySelectorAll('.table-wrapper').forEach(box =&gt; {
    let lastVib = 0;
    box.addEventListener('scroll', () =&gt; {
      const now = Date.now();
      if (now - lastVib &lt; 120) return;
      lastVib = now;
      if (navigator.vibrate) navigator.vibrate(8);
    }, { passive: true });
  });
  let idleTimer = null;
  const resetIdle = () =&gt; {
    clearTimeout(idleTimer);
    document.body.classList.remove('idle-hint');
    idleTimer = setTimeout(() =&gt; document.body.classList.add('idle-hint'), 5000);
  };
  ['mousemove','scroll','keydown','click','touchstart'].forEach(ev =&gt;
    document.addEventListener(ev, resetIdle, { passive: true })
  );
  resetIdle();
})();
&lt;/script&gt;</subtitle>
  <updated>2026-10-08T09:58:32Z</updated>
  <logo>https://brony-rf.ru/ssl/u/pic/b8/76297e0ea111e68628db370107e68a/-/logo.png</logo>
  <author>
    <name>1430938</name>
    <uri>https://brony-rf.ru/</uri>
  </author>
</feed>
