.product-table_cell-weight {
    font-weight: 600;
    color: #4a5d73;
    white-space: nowrap;
}

.catalog_right-column {
    min-width: 0;
    overflow-x: hidden;
    padding-left: 15px;
    flex: 76% 0 0 !important;
    max-width: 76% !important;
}

.catalog_left-column {
    padding-right: 15px;
    flex: 24% 0 0 !important;
    max-width: 24% !important;
}

/* Старый accordion «Фильтр» скрыт — вместо него умный поиск над таблицей */
.catalog-section-header,
.catalog_right-column .bx-filter,
.catalog_right-column .filter-box {
    display: none !important;
}

/* Умный поиск над таблицей товаров */
.product-table-smart-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
    margin: 0 0 0.5rem;
}

.product-table-smart-search__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.product-table-smart-search__field {
    position: relative;
    flex: 1 1 16rem;
    min-width: 0;
    display: flex;
    align-items: center;
    height: 2.75rem;
    padding: 0 0.75rem 0 2.65rem;
    border: 1px solid #c9d6e2;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(7, 62, 113, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.product-table-smart-search__field:focus-within {
    border-color: #3ebbf3;
    box-shadow: 0 0 0 3px rgba(62, 187, 243, 0.2);
}

.product-table-smart-search__icon {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: -0.525rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b8299' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
    pointer-events: none;
}

.product-table-smart-search__input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 100%;
    margin: 0;
    padding: 0 2rem 0 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #2f3b45;
    outline: none;
}

.product-table-smart-search__input::placeholder {
    color: #8aa0b3;
    font-weight: 400;
}

.product-table-smart-search__clear {
    position: absolute;
    right: 0.45rem;
    top: 50%;
    width: 1.7rem;
    height: 1.7rem;
    margin-top: -0.85rem;
    border: 0;
    border-radius: 50%;
    background: #e8eef4;
    color: #4a5d73;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.product-table-smart-search__clear:hover {
    background: #d7e3ee;
}

.product-table-smart-search__meta {
    flex: 0 0 auto;
    font-size: 0.8125rem;
    color: #6b8299;
    white-space: nowrap;
}

.product-table-smart-search__meta:empty {
    display: none;
}

/* Сайдбар каталога: плотнее, чтобы таблица шире */
.sidebar-catalog_content {
    padding: 0.85em 0.9em;
}

.sidebar-catalog .sidebar-title {
    font-size: 1.2rem;
    margin-bottom: 0.65em;
}

.sidebar-catalog .catalog-menu_item {
    margin-bottom: 0.55em;
}

.sidebar-catalog .catalog-menu_item .menu-icon {
    margin-right: 0.55em;
}

.sidebar-catalog .catalog-submenu {
    padding-left: 1.85em;
    margin-top: 4px;
}

.sidebar-catalog .price-list_box {
    margin-top: 1.5em;
}

.sidebar-catalog .price-list_box + * br,
.sidebar-catalog .tablet-hidden br {
    display: none;
}

.sidebar-catalog .tablet-hidden > div > br {
    display: none;
}

.sidebar-catalog .tablet-hidden .price-list_box + div,
.sidebar-catalog .tablet-hidden > div > div {
    margin-top: 0.75em;
}

/* Таблица на всю ширину колонки, без гориз. скролла */
.product-table {
    width: 100% !important;
    max-width: 100%;
    table-layout: fixed;
    --product-name-col-w: 17%;
    margin-top: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.product-table col.product-table_col-name {
    width: var(--product-name-col-w);
}

.product-table td {
    padding: 0.45em 0.45em;
}

.product-table th:last-child,
.product-table td:last-child,
.product-table th.product-table_col-buy,
.product-table td.product-table_col-buy {
    width: 2.6rem;
    max-width: 2.6rem;
    padding: 0.35em 0.3em;
    white-space: nowrap;
}

/* Наименование */
.product-table thead tr:first-child th:first-child,
.product-table tbody td:first-child,
.product-table th:first-child,
.product-table td:first-child,
.product-table_first-cell {
    width: var(--product-name-col-w) !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: normal !important;
    vertical-align: middle;
    padding-left: 0.65em;
    padding-right: 0.55em;
    box-sizing: border-box;
}

.product-table_first-cell .product-item_name {
    padding-left: 0;
    position: relative;
    display: inline;
    max-width: none;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    line-height: 1.25;
    vertical-align: middle;
    font-size: 0.875rem;
}

.product-table th.product-table_col-qty,
.product-table td.product-table_cell-qty {
    text-align: center;
    overflow: visible;
    width: 5.5em;
    min-width: 0;
    padding-left: 0.25em;
    padding-right: 0.25em;
}

.product-table tbody td.product-table_cell-qty {
    vertical-align: middle;
    padding: 0.4em 0.25em;
    overflow: visible;
}

.product-table th.product-table_col-price,
.product-table td.product-table_col-price,
.product-table td.product-table_cell-price {
    width: 6.2em;
    min-width: 0;
    padding-left: 0.4em;
    padding-right: 0.4em;
    white-space: nowrap;
    font-size: 0.8125rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.product-table th.product-table_col-qty.product-table_col-weight,
.product-table td.product-table_cell-weight {
    width: 6.5em;
}

.product-table td.product-table_cell-weight .product-table_field,
.product-table td.product-table_cell-weight .product-table_field--restricted {
    width: auto;
    min-width: 4.5em;
    max-width: 100%;
    padding: 0 0.4em;
}

.product-table td.product-table_cell-weight .product-table_field-value {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.product-table th.product-table_col-steel,
.product-table td.product-table_col-steel,
.product-table td.product-table_cell-steel {
    width: 4.8em;
    min-width: 0;
    padding-left: 0.4em;
    padding-right: 0.4em;
    white-space: nowrap;
    line-height: 1.15;
    font-size: 0.75rem;
    text-align: center;
}

/* Шапка: заметные заголовки, не «мелкий текст» */
.product-table thead tr:first-child th {
    vertical-align: middle;
    padding: 1.05em 0.5em;
    min-height: 3.25em;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    overflow: hidden;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.product-table thead tr:first-child th:first-child {
    text-align: left;
    padding-left: 0.75em;
    padding-right: 0.6em;
    white-space: normal;
    overflow: visible;
    border-left: none;
}

.product-table thead tr:first-child th.product-table_col-qty,
.product-table thead tr:first-child th.product-table_col-steel,
.product-table thead tr:first-child th.product-table_col-price,
.product-table thead tr:first-child th:last-child,
.product-table thead tr:first-child th.product-table_col-buy {
    padding-top: 1.05em;
    padding-bottom: 1.05em;
}

.product-table th .product-table_th-title {
    display: block;
    line-height: 1.25;
}

.product-table th .product-table_th-unit {
    display: block;
    margin-top: 0.15em;
    font-size: 0.72em;
    font-weight: 600;
    line-height: 1.1;
    opacity: 0.85;
    letter-spacing: 0;
}

.product-table thead tr:first-child th.product-table_col-qty {
    white-space: normal;
    line-height: 1.15;
    overflow: hidden;
}

.product-table th .price-header {
    display: inline-block;
    white-space: nowrap;
    vertical-align: middle;
    line-height: 1.25;
}

.product-table tbody td + td {
    border-left: 1px solid rgba(7, 62, 113, 0.06);
}

.product-table thead tr.product-table_search-row th {
    padding: 0.2em 0.5em 0.85em;
    background: #073E71;
    vertical-align: top;
    font-weight: 800;
    text-align: left;
    border: none;
}

.product-table thead tr.product-table_search-row th:first-child,
.product-table thead tr.product-table_search-row th.product-table_form-search {
    padding-left: 0.55em;
    padding-right: 0.55em;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.product-table thead tr.product-table_search-row th.product-table_head-spacer {
    padding-bottom: 0.85em;
}

.product-table_form-search {
    padding: 0.2em 1.8em 1em 1.8em !important;
    background: #073E71 !important;
}

/* Поиск в стиле шапки: не белая «заплата», а аккуратное поле */
.product-table .product_form-search {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: 2.5rem;
    margin: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: none;
    overflow: hidden;
    position: relative;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.product-table .product_form-search:focus-within {
    background: rgba(255, 255, 255, 0.18);
    border-color: #3ebbf3;
    box-shadow: 0 0 0 2px rgba(62, 187, 243, 0.25);
}

.product-table .product_form-search_input {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 2.6rem 0 0.9rem;
    border: none !important;
    border-radius: 0;
    background: transparent !important;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
    color: #fff;
    box-sizing: border-box;
    box-shadow: none !important;
}

.product-table .product_form-search_input:focus {
    outline: none;
    box-shadow: none !important;
}

.product-table .product_form-search_input::placeholder {
    font-size: 0.875rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.62);
    opacity: 1;
}

.product-table .product_form-search .wrapper_submit-btn {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 100%;
    margin: 0;
    pointer-events: none;
    background: transparent;
}

/* Чистая SVG-лупа вместо кривого глифа */
.product-table .product_form-search .glipf-search {
    position: static !important;
    top: auto !important;
    right: auto !important;
    display: block;
    width: 1rem;
    height: 1rem;
    margin: 0;
    padding: 0;
    font-size: 0 !important;
    line-height: 0;
    color: transparent !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7e6f2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.product-table .product_form-search .form-search_submit-btn {
    display: none !important;
}

.product-table thead {
    background: #073E71;
}

.product-table thead th[data-tip]::before {
    bottom: calc(100% + 0.25em);
    font-size: 0.72rem;
}

.product-table th.product-table_col-qty {
    text-align: center;
}

.product-table th:last-child,
.product-table th.product-table_col-buy {
    text-align: center;
}

.product-table th:last-child,
.product-table td:last-child,
.product-table th.product-table_col-buy,
.product-table td.product-table_col-buy {
    text-align: center;
    vertical-align: middle;
}

.product-table .product-item_cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    min-width: 2.15rem;
    max-width: 2.15rem;
    height: 2.15rem;
    padding: 0;
    margin: 0 auto;
    border-radius: 6px;
}

.product-table .product-item_cart-btn .glipf-cart {
    font-size: 1.05rem;
    line-height: 1;
}

.product-table td.product-table_cell-qty .product-table_field {
    margin: 0 auto;
}

.product-table-legend-row {
    margin-top: 0.75rem;
}

.product-table-pager {
    margin-top: 0.75rem;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --- Подсказка «В наличии» — строго на зелёном квадратике --- */
.product-table,
.product-table tbody,
.product-table tr,
.product-table_first-cell {
    overflow: visible;
}

.product-table_first-cell .product-availability {
    display: none !important; /* старый попап по всей ячейке больше не используем */
}

.product-table_first-cell .product-availability-marker {
    display: inline-block;
    position: relative;
    z-index: 6;
    width: 14px;
    height: 14px;
    margin: 0 8px 0 0;
    padding: 0;
    border: 0;
    vertical-align: middle;
    background: #00ad5d;
    border-radius: 2px;
    cursor: help;
    flex: 0 0 auto;
    appearance: none;
    -webkit-appearance: none;
}

.product-table_first-cell .product-availability-marker__tip {
    position: absolute;
    left: 0;
    bottom: calc(100% + 0.45em);
    z-index: 80;
    min-width: 12em;
    max-width: 16em;
    padding: 0.45em 0.6em;
    border-radius: 4px;
    background: #2f4052;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.product-table_first-cell .product-availability-marker:hover .product-availability-marker__tip,
.product-table_first-cell .product-availability-marker:focus .product-availability-marker__tip,
.product-table_first-cell .product-availability-marker.is-tip-visible .product-availability-marker__tip {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0);
}

/* убираем "встроенный" маркер из main.css */
.product-table_first-cell .product-item_name:after {
    content: none !important;
}

.product-table_field {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 3.25em;
    max-width: 100%;
    min-height: 1.9em;
    box-sizing: border-box;
    position: relative;
}

.product-table_field:has(.product-table-input:not([type="hidden"])) {
    width: 3.5em;
}

/* Спиннер количества: единый контрол в цвет бренда, без нативных стрелок браузера */
.product-table_field--stepper {
    width: 5.1em;
    min-width: 5.1em;
    max-width: 100%;
    height: 2.1em;
    padding: 0;
    gap: 0;
    border: 1px solid #c8d5e3;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(7, 62, 113, 0.06);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.product-table_field--stepper:hover {
    border-color: #9eb6cd;
}

.product-table_field--stepper:focus-within {
    border-color: #24a6d7;
    box-shadow: 0 0 0 3px rgba(36, 166, 215, 0.18);
}

.product-table_field--stepper .product-table-input {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    height: 100%;
    margin: 0;
    padding: 0 0.15em 0 0.35em;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
    font-size: 0.875rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #1f3347;
    -moz-appearance: textfield;
    appearance: textfield;
}

.product-table_field--stepper .product-table-input:focus {
    outline: none;
    box-shadow: none !important;
}

.product-table_field--stepper .product-table-input::-webkit-outer-spin-button,
.product-table_field--stepper .product-table-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0;
    display: none !important;
    height: 0;
    width: 0;
}

.product-table-input::-webkit-outer-spin-button,
.product-table-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0;
    display: none !important;
}

.product-table_spin {
    display: flex;
    flex-direction: column;
    flex: 0 0 1.35em;
    width: 1.35em;
    align-self: stretch;
    border-left: 1px solid #d7e1ec;
    background: linear-gradient(180deg, #f7fafc 0%, #eef3f8 100%);
    box-sizing: border-box;
}

.product-table_spin-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 50%;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    line-height: 0;
    transition: background 0.12s ease;
}

.product-table_spin-btn + .product-table_spin-btn {
    border-top: 1px solid #d7e1ec;
}

.product-table_spin-btn:hover {
    background: rgba(36, 166, 215, 0.14);
}

.product-table_spin-btn:active {
    background: rgba(7, 62, 113, 0.16);
}

.product-table_spin-btn svg {
    width: 9px;
    height: 6px;
    display: block;
    fill: #5f7388;
    transition: fill 0.12s ease;
}

.product-table_spin-btn:hover svg {
    fill: #073e71;
}

.product-table_spin-btn:active svg {
    fill: #24a6d7;
}

.product-table_field--restricted,
.product-table_field--locked {
    width: 5.1em;
    min-width: 5.1em;
    max-width: 100%;
    height: 2.1em;
    min-height: 2.1em;
    padding: 0;
    gap: 0;
    box-sizing: border-box;
    white-space: nowrap;
    justify-content: stretch;
    overflow: hidden;
}

.product-table_field-value {
    font-weight: 600;
    color: #5a6b7d;
    line-height: 1;
    user-select: none;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* --- Единая система подсказок и ограничений --- */
.product-hint,
.product-hint-legend,
.product-table_field--restricted,
.product-table_field--locked {
    --hint-lock-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b8299' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
}

.product-hint {
    --hint-accent: #6b8299;
    --hint-bg: #eef3f7;
    --hint-border: #c5d3df;
    --hint-text: #3d5568;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    margin-left: 0.35em;
    padding: 0 0.35em;
    vertical-align: middle;
    border: 1px solid var(--hint-border);
    border-radius: 4px;
    background: var(--hint-bg);
    cursor: help;
    position: relative;
    box-sizing: border-box;
}

button.product-hint {
    font: inherit;
    line-height: 1;
}

.product-hint--lock {
    --hint-accent: #6b8299;
    --hint-bg: #f3f6f9;
    --hint-border: #c5d3df;
}

.product-hint--bulk {
    --hint-accent: #2a7a9b;
    --hint-bg: #e8f3f8;
    --hint-border: #9ec5d4;
    --hint-text: #2a6b8a;
}

.product-hint--cut-free {
    --hint-accent: #2d8a5e;
    --hint-bg: #e8f6ef;
    --hint-border: #9ed4b8;
    --hint-text: #2a7a52;
}

.product-hint--cut-paid {
    --hint-accent: #b86b1f;
    --hint-bg: #fdf3e8;
    --hint-border: #e8c9a0;
    --hint-text: #9a5a18;
}

.product-hint__label {
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    color: var(--hint-text, var(--hint-accent));
    white-space: nowrap;
}

.product-hint__icon--lock {
    display: inline-block;
    flex: 0 0 0.9em;
    width: 0.9em;
    height: 0.9em;
    background: var(--hint-lock-icon) center / contain no-repeat;
}

.product-hint-legend {
    display: flex;
    align-items: center;
    gap: 0.45em;
    position: relative;
    margin-bottom: 0.2em;
    line-height: 1.45;
    color: #3d3c3c;
}

.product-hint-legend--stock,
.product-hint-legend--limited,
.product-hint-legend--neutral {
    padding-left: 1.25em;
}

.product-hint-legend__text {
    flex: 0 1 auto;
    white-space: nowrap;
}

.product-hint-legend__badge.product-hint {
    flex: 0 0 auto;
    margin: 0;
    cursor: inherit;
}

.product-hint-legend--badge {
    cursor: help;
}

.product-hint-legend::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.38em;
    width: 0.65em;
    height: 0.65em;
    border-radius: 2px;
    box-sizing: border-box;
}

.product-hint-legend--stock::before {
    background: #00ad5d;
}

.product-hint-legend--limited::before {
    background: #e4c523;
}

.product-hint-legend--bulk::before,
.product-hint-legend--lock::before,
.product-hint-legend--cut-free::before,
.product-hint-legend--cut-paid::before {
    content: none;
}

.product-hint-legend--neutral::before {
    background: #d5dde6;
}

/* Легенда с data-tip: ::before — маркер, ::after — тултип (не конфликтуют) */
.product-hint-legend--stock::before,
.product-hint-legend--limited::before,
.product-hint-legend--neutral::before {
    content: "";
}

.product-hint-legend--badge[data-tip]::before {
    content: none;
}

.product-hint-legend[data-tip]:not(.product-hint-legend--badge)::before {
    content: "";
    z-index: auto;
    left: 0;
    top: 0.38em;
    bottom: auto;
    transform: none;
    min-width: 0;
    max-width: none;
    padding: 0;
    border-radius: 2px;
    background-color: transparent;
    background-image: none;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-align: left;
    white-space: normal;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    transition: none;
}

.product-hint-legend--neutral[data-tip]::before {
    width: 0.65em;
    height: 0.65em;
    background-color: #d5dde6;
}

.product-hint-legend--lock[data-tip]::before {
    content: none;
}

.product-hint-legend[data-tip]::after {
    content: attr(data-tip);
    position: absolute;
    z-index: 30;
    left: 0;
    bottom: calc(100% + 0.35em);
    transform: translateX(-10%) translateY(4px);
    min-width: 11em;
    max-width: 16em;
    padding: 0.45em 0.6em;
    border-radius: 4px;
    background: #2f4052;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.product-hint-legend[data-tip]:hover::after,
.product-hint-legend[data-tip]:focus-visible::after,
.product-hint-legend[data-tip].is-tip-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translateX(-10%) translateY(0);
}

.product-table_field--restricted,
.product-table_field--locked {
    width: 5.1em;
    min-width: 5.1em;
    max-width: 100%;
    height: 2.1em;
    min-height: 2.1em;
    padding: 0;
    gap: 0;
    border: 1px solid #c5d3df;
    border-radius: 6px;
    background: #f3f6f9;
    box-shadow: inset 0 1px 2px rgba(55, 74, 95, 0.04);
    box-sizing: border-box;
    cursor: help;
    white-space: nowrap;
    justify-content: stretch;
    overflow: hidden;
}

.product-table_field--restricted .product-table_field-value,
.product-table_field--locked .product-table_field-value {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.15em 0 0.35em;
    text-align: center;
}

/* Замок справа — как колонка стрелок у степпера, чтобы цифра не съезжала */
.product-table_field--restricted .product-hint__icon--lock,
.product-table_field--locked .product-hint__icon--lock {
    flex: 0 0 1.35em;
    width: 1.35em;
    height: auto;
    align-self: stretch;
    margin: 0;
    border-left: 1px solid #d7e1ec;
    background-color: transparent;
    background-position: center;
    background-size: 0.85em 0.85em;
    background-repeat: no-repeat;
}

.product-table_field-value {
    font-weight: 600;
    color: #5a6b7d;
    line-height: 1;
    user-select: none;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.product-table_field--synced,
.product-table-input.is-synced {
    background: #f3f6f9;
    color: #5a6b7d;
    cursor: text;
}

.product-table_field--synced:focus-within,
.product-table-input.is-synced:focus {
    background: #fff;
    color: #1f2a37;
    box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.18);
}

.product-table_field--synced .product-table-input {
    background: transparent;
    box-shadow: none;
}

.product-table-input.is-readonly:not(.is-synced),
.product-table-input[readonly]:not(.is-synced) {
    background: #f3f6f9;
    color: #5a6b7d;
    cursor: default;
    box-shadow: inset 0 1px 2px rgba(55, 74, 95, 0.04);
}

.product-table_cell--locked .product-table_field:has(.is-readonly) {
    width: 5.1em;
    min-width: 5.1em;
    max-width: 100%;
    height: 2.1em;
    min-height: 2.1em;
    padding: 0;
    gap: 0;
    border: 1px solid #c5d3df;
    border-radius: 6px;
    background: #f3f6f9;
    box-shadow: inset 0 1px 2px rgba(55, 74, 95, 0.04);
    box-sizing: border-box;
    cursor: help;
    white-space: nowrap;
    justify-content: stretch;
    overflow: hidden;
}

.product-table_cell--locked .product-table_field:has(.is-readonly) .product-table-input {
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
    min-width: 0;
    width: auto;
}

.product-table_cell--locked {
    background: transparent;
}

.product-table-input {
    width: 100%;
    height: 1.9em;
    margin: 0;
    padding: 0 0.2em;
    border: 1px solid #d5dde6;
    border-radius: 4px;
    background: #fff;
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.2;
    box-sizing: border-box;
    -moz-appearance: textfield;
}

.product-table-input:focus {
    outline: none;
    border-color: #8aacc9;
    box-shadow: 0 0 0 2px rgba(7, 62, 113, 0.12);
}

.product-table-input::-webkit-outer-spin-button,
.product-table-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

[data-tip] {
    position: relative;
    cursor: help;
}

/* В editable-полях help только «снаружи»; внутри инпута — обычный курсор ввода */
.product-table_field[data-tip] .product-table-input,
.product-table_field[data-tip]:focus-within,
.product-table_field[data-tip]:focus-within .product-table-input {
    cursor: text;
}

[data-tip]::before {
    content: attr(data-tip);
    position: absolute;
    z-index: 30;
    left: 50%;
    bottom: calc(100% + 0.45em);
    transform: translateX(-50%) translateY(4px);
    min-width: 11em;
    max-width: 16em;
    padding: 0.45em 0.6em;
    border-radius: 4px;
    background: #2f4052;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

[data-tip]:hover::before,
[data-tip]:focus-visible::before,
[data-tip].is-tip-visible::before {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.product-hint[data-tip]::before,
.product-table_field--restricted[data-tip]::before,
.product-table_field--locked[data-tip]::before {
    left: 0;
    bottom: calc(100% + 0.35em);
    transform: translateX(-10%) translateY(4px);
}

.product-hint[data-tip]:hover::before,
.product-hint[data-tip]:focus-visible::before,
.product-hint[data-tip].is-tip-visible::before,
.product-table_field--restricted[data-tip]:hover::before,
.product-table_field--restricted[data-tip]:focus-visible::before,
.product-table_field--restricted[data-tip].is-tip-visible::before,
.product-table_field--locked[data-tip]:hover::before,
.product-table_field--locked[data-tip]:focus-visible::before,
.product-table_field--locked[data-tip].is-tip-visible::before {
    transform: translateX(-10%) translateY(0);
}

.product-table th.product-table_col-steel,
.product-table td.product-table_cell-steel {
    min-width: 3.5em;
    text-align: center;
    white-space: nowrap;
    padding-left: 0.35em;
    padding-right: 0.35em;
}

.product-table th.product-table_col-price {
    min-width: 5em;
    text-align: center;
    padding-left: 0.35em;
    padding-right: 0.35em;
}

.product-table th .price-header {
    display: inline-block;
    white-space: nowrap;
    vertical-align: bottom;
    line-height: 1.2;
}

.product-table th .product-table_th-title {
    display: block;
    line-height: 1.2;
}

.product-table th .product-table_th-formula {
    display: block;
    margin-top: 3px;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.2;
    opacity: 0.78;
    white-space: normal;
    max-width: 8em;
    margin-left: auto;
    margin-right: auto;
}

.product-table th.product-table_col-steel .product-table_th-formula,
.product-table th.product-table_col-price .product-table_th-formula,
.product-table th.product-table_col-qty .product-table_th-formula {
    max-width: 8.5em;
}

.product-table th .price-header sup {
    font-size: 0.62em;
    line-height: 0;
    font-weight: 700;
    top: 0;
}

.product-table th .price-header__coef {
    font-size: 0.82em;
    font-weight: 600;
    opacity: 0.92;
    white-space: nowrap;
}

.cutting-service-options {
    font-size: 16px;
    padding: 5px 10px;
    line-height: normal;
    display: unset;
}

/* Корзина шире на ~250px, чтобы влезала разбивка цены и резка */
.cart-content .container {
    max-width: 1680px;
    width: 100%;
}

@media (min-width: 1400px) {
    .cart-content .container {
        max-width: 1680px;
    }
}

@media (min-width: 1200px) and (max-width: 1399px) {
    .cart-content .container {
        max-width: 1450px;
    }
}

.cart-table td.cart-table_col-steel {
    white-space: nowrap;
    min-width: 4.5em;
}

.cart-table th:nth-child(n+2):nth-child(-n+7),
.cart-table td.cart-table_col-steel,
.cart-table td.cart-table_col-price,
.cart-table td.cart-table_col-pieces,
.cart-table td.cart-table_col-area,
.cart-table td.cart-table_col-weight,
.cart-table td.cart-table_col-sum {
    text-align: center;
    vertical-align: middle;
}

.cart-table th {
    text-align: center;
    vertical-align: middle;
}

.cart-table th:first-child,
.cart-table td.cart-table_col-name {
    text-align: left;
}

.cart-table td.cart-table_col-name,
.cart-table td.cart-table_col-steel,
.cart-table td.cart-table_col-price,
.cart-table td.cart-table_col-pieces,
.cart-table td.cart-table_col-area,
.cart-table td.cart-table_col-weight,
.cart-table td.cart-table_col-sum,
.cart-table td.cart-table_col-delete {
    vertical-align: middle;
}

.basket-item-cell-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 2.4em;
}

.cart-table_col-name .basket-item-cell-inner,
.cart-table_col-name {
    align-items: flex-start;
}

.cart-table_area-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35em;
    flex-wrap: nowrap;
}

.cart-table_area-cell .wrapper-counter-btn {
    display: inline-flex;
    align-items: center;
}

.cart-table_area-value {
    display: inline-block;
    min-width: 2.5em;
    font-size: inherit;
    text-align: center;
}

.cart-table_qty-value,
.cart-table_qty-unit {
    display: inline-block;
    white-space: nowrap;
}

.cart-table_qty-value--readonly {
    min-width: 3.5em;
    font-weight: 600;
    color: #3d3c3c;
    text-align: center;
}

.cart-table_qty-na {
    display: inline-block;
    max-width: 7.5em;
    padding: 0.25em 0.4em;
    color: #8a9aab;
    font-size: 0.85em;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

.cart-table_qty-input {
    width: 4.6em;
    min-width: 3.2em;
    height: 2em;
    margin: 0 2px;
    padding: 0 4px;
    border: 1px solid #d5dde6;
    border-radius: 6px;
    background: #fff;
    text-align: center;
    font: inherit;
    font-size: 1em;
    font-weight: 600;
    color: #3d3c3c;
    box-sizing: border-box;
    -moz-appearance: textfield;
}

.cart-table_qty-input:focus {
    outline: none;
    border-color: #8aacc9;
    box-shadow: 0 0 0 2px rgba(7, 62, 113, 0.12);
}

.cart-table_qty-input::-webkit-outer-spin-button,
.cart-table_qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.cart-table td.cart-table_col-steel,
.cart-table td.cart-table_col-pieces,
.cart-table td.cart-table_col-area,
.cart-table td.cart-table_col-weight,
.cart-table td.cart-table_col-sum,
.cart-table td.cart-table_col-price {
    white-space: nowrap;
}

.cart-table td.cart-table_col-delete {
    width: 42px;
    text-align: center;
}

.basket-item-custom-notes--price {
    color: #2fc6f6;
    font-size: 13px;
    margin-top: 2px;
    white-space: normal;
    line-height: 1.25;
}

.basket-item-custom-notes--surcharge {
    color: #c05600;
    font-weight: 700;
}

.surcharge-breakdown {
    display: block;
    width: 100%;
    max-width: 420px;
    margin-top: 4px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fff8e8;
    border: 1px solid #f0c36d;
    color: #7a4b00;
    font-size: 12px;
    line-height: 1.45;
}

.surcharge-breakdown__title {
    font-weight: 700;
    margin-bottom: 4px;
}

.surcharge-breakdown__line {
    position: relative;
    padding-left: 12px;
}

.surcharge-breakdown__line:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e6a012;
}

.basket-item-name {
    font-weight: 600;
    line-height: 1.3;
}

.basket-item-name__link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .15s ease, border-color .15s ease;
}

.basket-item-name__link:hover {
    color: #0f4f70;
    border-bottom-color: rgba(15, 79, 112, 0.35);
}

.basket-item-cutting-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
}

.cutting-plan-notice {
    display: inline-block;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 8px;
    background: #f4f6f8;
    border: 1px solid #e2e8f0;
    color: #5c6b7a;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.cutting-plan-notice--free {
    background: #e8f6ef;
    border-color: #9ed4b8;
    color: #2a7a52;
}

.cutting-plan-notice--half-cut {
    background: #fdf3e8;
    border-color: #e8c9a0;
    color: #9a5a18;
}

.cutting-plan-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 5px 11px;
    border: 1px solid #b7d7ea;
    border-radius: 999px;
    background: #eef7fc;
    color: #17648d;
    font: inherit;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: 0.01em;
    cursor: pointer;
    min-width: 0;
    height: auto;
    box-shadow: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.cutting-plan-toggle:hover {
    background: #e2f1fa;
    border-color: #8fbfd9;
    color: #0f4f70;
}

.cutting-plan-toggle:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(62, 187, 243, 0.25);
}

.cutting-plan-toggle.is-active {
    background: #3ebbf3;
    border-color: #3ebbf3;
    color: #fff;
}

.cutting-plan-toggle.is-active:hover {
    background: #0faaef;
    border-color: #0faaef;
    color: #fff;
}

.basket-item-cutting-plan-note {
    color: #2a7a9b;
    font-size: 12px;
    line-height: 1.35;
    white-space: pre-line;
    max-width: 22em;
}

.cutting-plan-row {
    box-shadow: none !important;
}

.cutting-plan-row[hidden] {
    display: none !important;
}

.cutting-plan-row td.cutting-plan-cell {
    padding: 0 3.5% 1em !important;
    background: transparent;
}

/* --- Cutting plan under product --- */
.cutting-plan {
    margin: 0;
    border: 1px solid #d7e6f2;
    background: linear-gradient(180deg, #f8fbfe 0%, #ffffff 100%);
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.cutting-plan[hidden] {
    display: none !important;
}

.cutting-plan__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.cutting-plan__title {
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #0f172a;
    font-size: 15px;
}

.cutting-plan__cancel {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13px;
    font-weight: 650;
    color: #8a3b3b;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cutting-plan__cancel:hover {
    color: #a12626;
}

.cutting-plan__summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.cutting-plan__summary-item--price strong {
    color: #0f6f9c;
}

.cutting-part__cost {
    color: #0f6f9c;
}

.cutting-plan__summary-item {
    background: #fff;
    border: 1px solid #e3ecf4;
    border-radius: 10px;
    padding: 8px 10px;
    text-align: left;
}

.cutting-plan__summary-item span {
    display: block;
    font-size: 11px;
    color: #64748b;
    margin-bottom: 2px;
}

.cutting-plan__summary-item strong {
    font-size: 14px;
    color: #0f172a;
}

.cutting-plan__cost-breakdown {
    margin: 0 0 12px;
    padding: 0;
    border: 1px solid #e2ebf1;
    border-radius: 0;
    background: #fff;
    color: #1d3a4d;
    overflow: hidden;
}

.cutting-plan__cost-breakdown-lines {
    padding: 0;
    background: #fff;
    border-bottom: 1px solid #e2ebf1;
}

.cutting-cost-row {
    padding: 12px 16px;
    border-top: 1px solid #e8eef3;
    background: #fff;
}

.cutting-cost-row:first-child {
    border-top: 0;
}

/* наценка (+10%) больше не красит фон — единый стиль строк */

.cutting-cost-row__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.cutting-cost-row__title {
    font-size: 13px;
    font-weight: 700;
    color: #1d3a4d;
}

.cutting-cost-row__sum {
    font-size: 15px;
    font-weight: 800;
    color: #0f4f70;
    white-space: nowrap;
}

.cutting-cost-row__detail {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.4;
    color: #5a6f7e;
}

.cutting-cost-row__note {
    margin-top: 2px;
    font-size: 11px;
    color: #8a5a10;
}

.cutting-plan__cost-breakdown-title {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 8px;
    color: #7a4b00;
}

/* старые классы — на случай кэша/оригинала */
.cutting-plan__cost-line {
    display: none;
}

.cutting-plan__cost-totals {
    margin: 0;
    padding: 10px 16px 14px;
    border-top: 0;
    background: #fff;
}

.cutting-cost-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 5px 0;
    font-size: 13px;
    color: #5a6f7e;
}

.cutting-cost-total-row strong {
    font-size: 14px;
    font-weight: 700;
    color: #1d3a4d;
}

.cutting-cost-total-row--grand {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid #d5e2eb;
    font-weight: 700;
    color: #1d3a4d;
    font-size: 14px;
}

.cutting-cost-total-row--grand strong {
    font-size: 18px;
    color: #0f4f70;
}

.cutting-cost-total-row__grand {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.cutting-cost-total-row__grand em,
.cutting-cost-total-row em {
    font-style: normal;
    font-size: 12px;
    font-weight: 600;
    color: #6b7c8a;
}

.cutting-plan__hint {
    color: #5a6b7d;
    font-size: 13px;
    line-height: 1.35;
    margin-bottom: 10px;
}

.cutting-part {
    border: 1px solid #e3ecf4;
    background: #fff;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
}

.cutting-part.is-invalid {
    border-color: #f0a3a3;
    background: #fff7f7;
}

.cutting-part.is-remainder-warn {
    /* без жёлтой заливки всей карточки — акцент только на кусках/остатке */
}

.cutting-part.is-remainder-warn .cutting-part__cuts-wrap .cutting-part__input {
    border-color: #e35d5d;
    background: #fff8f8;
    box-shadow: 0 0 0 2px rgba(196, 48, 48, 0.12);
}

.cutting-part__row {
    display: grid;
    grid-template-columns: 110px minmax(180px, 1.2fr) minmax(200px, 1.6fr) 32px;
    gap: 10px;
    align-items: end;
}

.cutting-part__cuts-wrap {
    display: flex;
    align-items: stretch;
    gap: 8px;
    min-width: 0;
}

.cutting-part__cuts-wrap .cutting-part__input {
    flex: 1 1 auto;
    min-width: 0;
}

.cutting-part__remainder {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid #c43030;
    background: #c43030;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    box-sizing: border-box;
    border-radius: 0;
}

.cutting-part__remainder.is-zero {
    border-color: #2f7d4a;
    background: #2f7d4a;
    color: #fff;
}

.cutting-part__remainder-note {
    display: block;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #c43030;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.cutting-part__remainder-note--ok {
    color: #475569;
    font-weight: 500;
}

.cutting-part__select {
    cursor: pointer;
    appearance: auto;
    -webkit-appearance: menulist;
}

.cutting-chip--type {
    background: #edf2f7;
    color: #334155;
}

.cutting-part__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.cutting-part__label {
    font-size: 12px;
    font-weight: 700;
    color: #334155;
}

.cutting-part__label-hint {
    font-weight: 500;
    color: #64748b;
}

.cutting-part__input {
    height: 38px;
    border: 1px solid #d5dde6;
    border-radius: 0;
    padding: 0 10px;
    outline: none;
    box-sizing: border-box;
    width: 100%;
}

.cutting-part__fixed-value {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid #d5dde6;
    border-radius: 0;
    background: #f3f7fa;
    color: #1d3a4d;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    box-sizing: border-box;
    white-space: nowrap;
}

.cutting-part__input:focus {
    border-color: #8aacc9;
    box-shadow: 0 0 0 2px rgba(7, 62, 113, 0.10);
}

.cutting-part__input.is-invalid {
    border-color: #e35d5d;
    background: #fff5f5;
}

.cutting-part__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #e8d5d5;
    background: #f8eeee;
    color: #a35a5a;
    font-size: 22px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.cutting-part__remove:hover {
    background: #f0dcdc;
    color: #8b3a3a;
    border-color: #dcb8b8;
}

.cutting-part__preview {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.45;
    color: #334155;
}

.cutting-part__preview-empty {
    color: #94a3b8;
}

.cutting-chip {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: #e8f3fa;
    color: #1d4f74;
    font-weight: 700;
    font-size: 12px;
}

.cutting-chip-sep {
    margin: 0 4px;
    color: #94a3b8;
}

.cutting-plan__error {
    margin-bottom: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fff1f1;
    border: 1px solid #f0b4b4;
    color: #9f1d1d;
    font-size: 13px;
    line-height: 1.4;
}

.cutting-plan__hint {
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #eef7fc;
    border: 1px solid #b7d7ea;
    color: #17648d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.cutting-plan__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.cutting-plan__add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    min-width: 0;
    height: auto;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid #b7d7ea;
    background: #eef7fc;
    color: #17648d;
    font: inherit;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.cutting-plan__add[hidden],
.cutting-target__card[hidden],
.cutting-plan__hint[hidden],
.cutting-part__field[hidden] {
    display: none !important;
}

.cutting-plan__add:hover {
    background: #e2f1fa;
    border-color: #8fbfd9;
    color: #0f4f70;
}

.cutting-plan__add:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(62, 187, 243, 0.25);
}

.cutting-plan__status {
    font-size: 12px;
    font-weight: 600;
    color: #6b7c8a;
}

.cutting-plan__status.is-saving {
    color: #6b7c8a;
}

.cutting-plan__status.is-saved {
    color: #1f8a4c;
}

.cutting-plan__status.is-error {
    color: #c0392b;
}

.cutting-service-options {
    font-size: 14px;
    padding: 8px 12px;
    line-height: normal;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cart-content_footer {
    align-items: center;
    gap: 24px;
}

.cart-content_footer .left-column {
    flex: 0 0 auto;
    max-width: none;
}

.cart-content_footer .right-column {
    flex: 1 1 auto;
    max-width: none;
    flex-wrap: wrap;
    gap: 16px 28px;
}

.cart-total-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-right: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
}

.cart-total-price__label {
    color: #073e71;
}

.cart-total_sum {
    display: block;
    margin-top: 2px;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    color: #3d3c3c;
}

.cart-total-price--with-cutting .cart-total_sum {
    color: #073e71;
}

.cart-content_footer .checkout-btn {
    flex: 0 0 auto;
    margin-left: auto;
}

/* компактный комментарий к заказу: ~3 строки + скролл */
.cart-table_textarea {
    height: calc(1.25em * 3 + 24px);
    line-height: 1.25;
    overflow-y: auto;
    resize: vertical;
}

@media (max-width: 960px) {
    .cutting-plan__summary {
        grid-template-columns: 1fr 1fr;
    }

    .cart-content_footer .right-column {
        gap: 12px 20px;
    }

    .cart-total_sum {
        font-size: 1.05rem;
    }

    .cart-table_textarea {
        height: calc(1.25em * 3 + 20px);
    }
}

@media (max-width: 760px) {
    .cutting-part__row {
        grid-template-columns: 1fr;
    }

    .cutting-part__remove {
        justify-self: end;
    }
}

/* /cart/ page + overlay modes */
.page-cart__wrap {
    padding: 24px 0 48px;
}

/* страница корзины = ширина контейнера сайта, без «уширочения» overlay */
.page-cart__wrap > .container,
.basket-root--page.container {
    max-width: 1630px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
}

@media (max-width: 1399px) {
    .page-cart__wrap > .container,
    .basket-root--page.container {
        max-width: 1200px;
    }
}

@media (max-width: 1199px) {
    .page-cart__wrap > .container,
    .basket-root--page.container {
        max-width: 960px;
    }
}

@media (max-width: 991px) {
    .page-cart__wrap > .container,
    .basket-root--page.container {
        max-width: 760px;
    }
}

@media (max-width: 767px) {
    .page-cart__wrap > .container,
    .basket-root--page.container {
        max-width: 570px;
    }
}

@media (max-width: 575px) {
    .page-cart__wrap > .container,
    .basket-root--page.container {
        max-width: 100%;
    }
}

/* на странице не раздуваем body отрицательными margin из overlay */
.basket-root--page .cart-content_body {
    max-height: none;
    overflow: visible;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.basket-root--page .cart-content_header,
.basket-root--page .cart-content_footer {
    margin-left: 0;
    margin-right: 0;
}

.basket-root--page .wrapper_cart-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 0 1.25em;
    max-width: 100%;
    border: 1px solid #dce6ee;
    background: #fff;
}

.basket-root--page .cart-table {
    min-width: 920px;
    max-width: none;
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
    color: #2f3b45;
}

.basket-root--page .cart-table > tbody > tr,
.basket-root--page .cart-table > tr {
    box-shadow: none;
}

.basket-root--page .cart-table th {
    padding: 12px 10px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: #5a6f7e;
    background: #f3f7fa;
    border-bottom: 1px solid #dce6ee;
    white-space: normal;
    vertical-align: middle;
}

.basket-root--page .cart-table th:first-child,
.basket-root--page .cart-table td:first-child,
.basket-root--page .cart-table td.cart-table_col-name {
    padding-left: 14px;
    text-align: left;
}

.basket-root--page .cart-table td {
    padding: 14px 10px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    border-bottom: 1px solid #e8eef3;
    vertical-align: middle;
    background: #fff;
}

.basket-root--page .cart-table tr[data-entity="basket-item"]:hover td {
    background: #fafcfd;
}

.basket-root--page .cart-table th:nth-child(1),
.basket-root--page .cart-table td.cart-table_col-name {
    width: 22%;
}

.basket-root--page .cart-table th:nth-child(2),
.basket-root--page .cart-table td.cart-table_col-steel {
    width: 9%;
}

.basket-root--page .cart-table th:nth-child(3),
.basket-root--page .cart-table td.cart-table_col-price {
    width: 14%;
}

.basket-root--page .cart-table th:nth-child(4),
.basket-root--page .cart-table td.cart-table_col-pieces {
    width: 12%;
}

.basket-root--page .cart-table th:nth-child(5),
.basket-root--page .cart-table td.cart-table_col-area {
    width: 12%;
}

.basket-root--page .cart-table th:nth-child(6),
.basket-root--page .cart-table td.cart-table_col-weight {
    width: 12%;
}

.basket-root--page .cart-table th:nth-child(7),
.basket-root--page .cart-table td.cart-table_col-sum {
    width: 12%;
}

.basket-root--page .cart-table th:nth-child(8),
.basket-root--page .cart-table td.cart-table_col-delete {
    width: 48px;
    padding-left: 4px;
    padding-right: 10px;
}

.basket-root--page .basket-item-name {
    font-size: 15px;
    font-weight: 700;
    color: #1d3a4d;
    line-height: 1.3;
}

.basket-root--page .basket-item-name__link {
    color: #1d3a4d;
}

.basket-root--page .basket-item-name__link:hover {
    color: #0f4f70;
}

.basket-root--page .cart-table_qty-input {
    border-radius: 0;
    height: 32px;
    width: 4.2em;
    font-size: 14px;
}

.basket-root--page .cutting-plan-row td.cutting-plan-cell {
    padding: 0 0 12px !important;
    border-bottom: 1px solid #e8eef3;
    background: #f7fafc;
}

.basket-root--page .cutting-plan {
    margin: 0 14px;
    border: 1px solid #d5e2eb;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    padding: 16px;
}

.basket-root--page .cutting-plan-cell,
.basket-root--page .cutting-plan {
    max-width: 100%;
    box-sizing: border-box;
}

.basket-root--page .cart-table_textarea {
    border-radius: 0;
    margin-top: 8px;
}

.basket-root--page .cart-close,
.basket-root--page .basket-back-overlay,
.basket-root--overlay .basket-back-catalog {
    display: none !important;
}

html[data-cart-view="new"] .basket-root--overlay .cart-full-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
}

/* на странице /cart/ кнопка «Перейти в корзину» не нужна */
.basket-root--page .cart-full-btn {
    display: none !important;
}

.basket-root--page .basket-back-catalog {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 200px;
    padding: 0 1.25em;
}

.basket-root--page .cart-content_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding-top: 8px;
}

.basket-root--page .cart-content_footer .left-column {
    flex: 0 0 auto;
    max-width: none;
}

.basket-root--page .cart-content_footer .right-column {
    flex: 1 1 auto;
    max-width: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 16px 24px;
}

.basket-root--page .cart-total-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    margin: 0;
}

.basket-root--page .cart-content_footer .checkout-btn {
    margin-left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

html[data-cart-view="new"] .basket-root--page .cutting-plan-notice {
    display: none;
}

.cutting-rule-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.cutting-rule-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: #eef4f8;
    color: #3a5568;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.3;
}

.cutting-rule-chip--accent {
    background: #fff4e5;
    color: #9a5b00;
}

html[data-cart-view="new"] .basket-root--page .cutting-plan-notice,
.basket-root--page .cutting-plan-notice {
    display: none;
}

html[data-cart-view="original"] .basket-root--page .cutting-plan-notice {
    display: block;
}

.cutting-target {
    margin: 0 0 14px;
    padding: 12px;
    border-radius: 10px;
    background: #f7fafc;
    border: 1px solid #e2ebf1;
}

.cutting-target__label {
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #5a6f7e;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.cutting-target__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.cutting-target__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #c9d8e3;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    font: inherit;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.cutting-target__card strong {
    font-size: 14px;
    color: #1d3a4d;
}

.cutting-target__card span {
    font-size: 12px;
    color: #6b7c8a;
}

.cutting-target__card:hover {
    border-color: #3ebbf3;
}

.cutting-target__card.is-active {
    border-color: #3ebbf3;
    background: #eef8fd;
    box-shadow: 0 0 0 2px rgba(62, 187, 243, 0.2);
}

.cutting-part {
    position: relative;
}

.cutting-part__target-badge {
    display: inline-flex;
    margin-bottom: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #e8f3fa;
    color: #17648d;
    font-size: 11px;
    font-weight: 700;
}

.cutting-part.is-incomplete-target .cutting-part__target-badge {
    background: #fff4e5;
    color: #9a5b00;
}

.cutting-plan__add--incomplete {
    background: #fff8ee;
    border-color: #e8c48a;
    color: #8a5a10;
}

.cutting-stock-bar {
    display: flex;
    height: 10px;
    margin: 0 0 8px;
    border-radius: 999px;
    overflow: hidden;
    background: #e8eef3;
}

.cutting-stock-bar__seg--rest {
    background: #94a3b8;
}

.cutting-stock-bar__seg--cut {
    background: #3ebbf3;
}

.cutting-stock-bar__seg--incomplete {
    background: #f0a202;
}

.cutting-stock-bar__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: 0 0 14px;
    font-size: 12px;
    color: #5a6f7e;
}

.cutting-stock-bar__leg--rest:before,
.cutting-stock-bar__leg--cut:before,
.cutting-stock-bar__leg--incomplete:before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border-radius: 50%;
    vertical-align: middle;
}

.cutting-stock-bar__leg--rest:before { background: #94a3b8; }
.cutting-stock-bar__leg--cut:before { background: #3ebbf3; }
.cutting-stock-bar__leg--incomplete:before { background: #f0a202; }

.modal-basket-delete {
    max-width: 420px;
}

.basket-delete-confirm {
    padding: 0.5em 0.25em 0.25em;
    color: #363637;
}

.basket-delete-confirm__title {
    font-size: 1.35rem;
    font-weight: 600;
    margin-bottom: 0.55em;
    color: #1d3a4d;
}

.basket-delete-confirm__name {
    font-size: 15px;
    line-height: 1.35;
    color: #4a5d6a;
    margin-bottom: 1.35em;
    word-break: break-word;
}

.basket-delete-confirm__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.basket-delete-confirm__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid transparent;
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.basket-delete-confirm__btn--cancel {
    background: #eef7fc;
    border-color: #b7d7ea;
    color: #17648d;
}

.basket-delete-confirm__btn--cancel:hover {
    background: #e2f1fa;
}

.basket-delete-confirm__btn--danger {
    background: #d64545;
    border-color: #d64545;
    color: #fff;
}

.basket-delete-confirm__btn--danger:hover {
    background: #c03939;
    border-color: #c03939;
}

@media (max-width: 760px) {
    .cutting-target__cards {
        grid-template-columns: 1fr;
    }
}

/* Шапка: [logo · phone · city] [==== search ====] [cart] */
@media (min-width: 992px) {
    .main-head .container > .row {
        align-items: center;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 28px;
        margin-left: 0;
        margin-right: 0;
    }

    .main-head_left-column {
        display: flex !important;
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        padding-left: 0;
        padding-right: 0;
        justify-content: flex-start !important;
        align-items: center;
        gap: 28px;
    }

    .main-head_right-column {
        display: flex !important;
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0;
        padding-left: 0;
        padding-right: 0;
        justify-content: flex-end !important;
        align-items: center;
        gap: 16px;
    }

    .main-head .head_phone-box {
        margin-right: 0;
        margin-left: 0;
    }

    .main-head .head_select-city {
        margin-top: 0;
        margin-right: 0;
    }

    /* Поиск занимает середину — без пустой дыры на 1400–1600 */
    .main-head .head_form-search {
        flex: 1 1 auto;
        width: auto;
        max-width: none;
        min-width: 220px;
        margin-left: 0;
        margin-right: 0;
    }

    .main-head .head-cart {
        flex: 0 0 43px;
        margin-left: 0;
        margin-right: 0;
    }

    .main-head .container,
    .head-nav .container {
        padding-left: 24px;
        padding-right: 28px;
    }
}

.head-logo {
    margin-right: 0;
    flex: 0 0 auto;
    max-width: 280px;
    width: auto;
}

.head-logo img {
    display: block;
    max-width: 100%;
    width: auto;
    height: auto;
    max-height: 48px;
}

.head_phone-box {
    display: flex;
    align-items: center;
    margin-left: 0;
    margin-right: 0;
    font-size: 1.125rem;
}

.head_phone-number {
    display: inline-block;
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: #363637;
    white-space: nowrap;
}

.head_select-city {
    margin-top: 0;
    margin-right: 0;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
}

.select-city_field {
    font-size: 1.125rem;
    line-height: 1.2;
}

/* Выпадающий каталог: не клипать, не ломать оригинальный left:150% + skew */
.ui-header,
.head-nav,
.head-nav .container,
.head-menu,
.head-menu_catalog-item {
    overflow: visible !important;
}

.ui-header,
.head-nav {
    z-index: 200;
}

/* Не раздувать синюю полосу переносом «О компании» */
.head-nav .head-menu_item > a,
.head-nav .head-menu_text {
    white-space: nowrap;
}

.head-nav .head-menu_item:last-child {
    flex: 0.85;
}

/* База: left:150% (не fixed px из main @1390/1200), nudge-переменные */
.head-nav .head-menu_catalog-item > .dropdown-content {
    --menu-shift-x: 0px;
    --menu-nudge-x: 0px;
    left: 150% !important;
    z-index: 300;
    transform: skew(45deg) translate(calc(var(--menu-shift-x) + var(--menu-nudge-x)), 15px);
}

.head-nav .dropdown-content:before {
    content: '';
    position: absolute;
    left: -40px;
    right: -40px;
    top: -40px;
    height: 40px;
}

/*
 * Важно: в main.css hover только с 1025px.
 * При ширине ~992–1024 (DevTools сбоку) меню было, а dropdown — нет.
 * Включаем с 992px — и обычный nav, и sticky «Каталог».
 */
@media (min-width: 992px) {
    .head-nav .head-menu_item:hover > .dropdown-content,
    .head-nav .head-menu_catalog-item:hover > .dropdown-content,
    .head-nav .head-menu_catalog-item.is-hover > .dropdown-content,
    .head-nav .head-menu_catalog-item.is-active > .dropdown-content {
        visibility: visible !important;
        transform: skew(45deg) translate(calc(var(--menu-shift-x) + var(--menu-nudge-x)), 0) !important;
    }

    .fixed-menu .fixed-menu_catalog:hover > .dropdown-content,
    .fixed-menu .fixed-menu_catalog.is-hover > .dropdown-content,
    .fixed-menu .fixed-menu_catalog.is-active > .dropdown-content {
        visibility: visible !important;
        transform: translate(calc(var(--menu-shift-x) + var(--menu-nudge-x)), 0) !important;
    }
}

.fixed-menu .fixed-menu_catalog .dropdown-content {
    left: 0 !important;
    --menu-shift-x: 0px;
    --menu-nudge-x: 0px;
    transform: translate(calc(var(--menu-shift-x) + var(--menu-nudge-x)), 15px);
    position: absolute !important;
    top: 100%;
    height: auto !important;
    max-height: none;
    z-index: 300;
}

/* Плавающая шапка: не раздувать «Каталог» на всю высоту (как miinox) */
@media (min-width: 992px) {
    .fixed-menu .head-nav {
        display: none !important;
    }

    .fixed-menu .main-head,
    .fixed-menu .main-head > .container,
    .fixed-menu .main-head > .container > .row {
        min-height: 64px;
        max-height: 72px;
        align-items: center !important;
    }

    .fixed-menu .main-head_left-column,
    .fixed-menu .main-head_right-column {
        align-items: center !important;
        max-height: 72px;
    }

    .fixed-menu .main-head_right-column {
        justify-content: flex-start !important;
        gap: 10px;
    }

    .fixed-menu .main-head .head_form-search {
        flex: 1 1 auto;
        max-width: none;
        min-width: 160px;
        margin-left: 0;
    }

    .fixed-menu .fixed-menu_catalog {
        display: block !important;
        position: relative;
        z-index: 120;
        flex: 0 0 auto;
        align-self: stretch;
        height: auto;
        min-height: 64px;
        max-height: 72px;
        overflow: visible;
    }

    .fixed-menu .fixed-panel_catalog-btn {
        display: flex !important;
        align-items: center;
        justify-content: center;
        height: 100%;
        min-height: 64px;
        max-height: 72px;
        padding: 0 2.5em;
        box-sizing: border-box;
    }

    /* На десктопе head-nav скрыт — гамбургер не открывает меню, только путает */
    .fixed-menu .fixed-menu_hamburger {
        display: none !important;
    }

    .fixed-menu .head-logo {
        max-width: 220px;
    }

    .fixed-menu .head-logo img {
        max-height: 40px;
    }

    .fixed-menu .head_select-city {
        margin-top: 0;
    }
}

@media (max-width: 1199px) {
    .head_phone-box,
    .head_phone-number {
        font-size: 1rem;
    }

    .select-city_field {
        font-size: 1rem;
    }
}

@media (max-width: 991px) {
    .head_phone-box,
    .head_phone-number {
        font-size: 0.9375rem;
    }
}

/* Услуги: фото на всю высоту карточки */
.service-item_mod-img {
    align-self: stretch;
    display: flex;
}

.service-item_mod-img > a {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
}

.service-item_mod-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Пустая корзина на /cart/: по центру, без лишнего футера */
.basket-root--page .empty-cart {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 1rem 4rem;
    min-height: 280px;
}

.basket-root--page .empty-cart img {
    margin-bottom: 1.5rem;
}

.basket-root--page .empty-cart__action {
    margin-top: 1.5rem;
}

.basket-root--page .cart-content_body:has(.empty-cart) {
    display: flex;
    justify-content: center;
}

/* Каталог: меньше пустоты между баннером и контентом */
.subcategory-section {
    padding-top: 1.5em;
    padding-bottom: 3em;
}

html[data-catalog-view="concept1"] .subcategory-section,
html[data-catalog-view="concept2"] .subcategory-section {
    padding-top: 1.5em;
}
