
        /* ============================================================
           OZON STYLE — ШАГ 1: токены + чекбоксы + кнопки
           ============================================================ */
        :root {
            --oz-blue: #005BFF;
            --oz-blue-d: #0048CC;
            --oz-blue-bg: #EAF1FF;
            --oz-ink: #001A34;
            --oz-mut: #707A8A;
            --oz-line: #EAEBEE;
            --oz-page: #F4F6F9;
            --oz-pink: #F91155;
            --oz-green: #00B956;
            --oz-amber-bg: #FEF3E2;
            --oz-amber-tx: #C9760F;
            --oz-radius: 10px;
        }
        /* Чекбоксы в стиле Ozon — единое оформление ВСЕХ чекбоксов без исключений.
           Размер не навязываем жёстко (нет min-width): per-context width/height
           (рег. форма 16px, промо 17px, .ozon-checkbox/модалки 18px) сохраняются
           их собственными правилами по специфичности/порядку. Существующие правила
           задают только размер и accent-color — appearance:none/рамка/заливка/галочка
           тут не конфликтуют, а применяются поверх (accent-color при appearance:none
           неактивен). Так все чекбоксы получают единый вид без ломки выравнивания. */
        input[type="checkbox"] {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            width: 18px;
            height: 18px;
            border: 1.5px solid #C4C9D1;
            border-radius: 5px;
            background: #fff no-repeat center;
            background-size: 76% 76%;
            cursor: pointer;
            vertical-align: middle;
            flex-shrink: 0;
            transition: border-color .12s ease, background-color .12s ease;
        }
        input[type="checkbox"]:hover {
            border-color: var(--oz-blue);
        }
        input[type="checkbox"]:checked {
            background-color: var(--oz-blue);
            border-color: var(--oz-blue);
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E");
        }
        input[type="checkbox"]:indeterminate {
            background-color: var(--oz-blue);
            border-color: var(--oz-blue);
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' d='M4 8h8'/%3E%3C/svg%3E");
        }
        input[type="checkbox"]:focus-visible {
            outline: 2px solid var(--oz-blue-bg);
            outline-offset: 1px;
            border-color: var(--oz-blue);
        }
        input[type="checkbox"]:disabled {
            opacity: .5;
            cursor: not-allowed;
        }
        /* Радиокнопки в стиле Ozon (кастомных radio в проекте нет — глобально безопасно). */
        input[type="radio"] {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            width: 18px;
            height: 18px;
            border: 1.5px solid #C4C9D1;
            border-radius: 50%;
            background: #fff;
            cursor: pointer;
            vertical-align: middle;
            flex-shrink: 0;
            transition: border-color .12s ease, background .12s ease;
        }
        input[type="radio"]:hover { border-color: var(--oz-blue); }
        input[type="radio"]:checked {
            border-color: var(--oz-blue);
            background: radial-gradient(circle, var(--oz-blue) 0 38%, #fff 44% 100%);
        }
        input[type="radio"]:focus-visible {
            outline: 2px solid var(--oz-blue-bg);
            outline-offset: 1px;
            border-color: var(--oz-blue);
        }
        input[type="radio"]:disabled { opacity: .5; cursor: not-allowed; }
        /* Переиспользуемые классы кнопок Ozon (для нового кода). */
        .oz-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            /* width:auto — Ozon-кнопки по умолчанию по контенту (перебивает легаси
               глобальный button{width:100%}). Полноширинную делать явно inline style="width:100%". */
            width: auto;
            padding: 9px 16px;
            border-radius: var(--oz-radius);
            border: 1px solid transparent;
            font-size: 14px;
            font-weight: 500;
            line-height: 1.2;
            cursor: pointer;
            white-space: nowrap;
            background: transparent;
            color: var(--oz-ink);
            transition: background-color .12s ease, border-color .12s ease, color .12s ease;
        }
        .oz-btn:disabled { opacity: .5; cursor: not-allowed; }
        /* ГОРИЗОНТАЛЬНЫЕ РЯДЫ КНОПОК — стандарт проекта. Оборачивать любую группу кнопок
           в .oz-btn-row (вертикальные стопки занимают много места). Форсит width:auto у детей,
           перебивая глобальный button{width:100%}; переносит на новую строку при нехватке места. */
        .oz-btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
        .oz-btn-row > button, .oz-btn-row > .oz-btn, .oz-btn-row > .an-btn { width: auto; flex: 0 0 auto; }
        .oz-btn-primary { background: var(--oz-blue); border-color: var(--oz-blue); color: #fff; }
        .oz-btn-primary:hover:not(:disabled) { background: var(--oz-blue-d); border-color: var(--oz-blue-d); }
        .oz-btn-soft { background: var(--oz-blue-bg); border-color: var(--oz-blue-bg); color: var(--oz-blue); }
        .oz-btn-soft:hover:not(:disabled) { background: #DCE8FF; border-color: #DCE8FF; }
        .oz-btn-ghost { background: transparent; border-color: var(--oz-line); color: var(--oz-ink); }
        .oz-btn-ghost:hover:not(:disabled) { border-color: var(--oz-blue); color: var(--oz-blue); }
        /* Доминирующий .an-btn → Ozon-синий. Специфичность 0-2-0 (дубль класса), без !important,
           чтобы выиграть у поздних переопределений .an-btn (0-1-0) в файле. */
        .an-btn.an-btn { background: var(--oz-blue); border-color: var(--oz-blue); border-radius: var(--oz-radius); }
        .an-btn.an-btn:hover { background: var(--oz-blue-d); border-color: var(--oz-blue-d); }
        /* Excel-кнопки остаются зелёными. */
        .an-btn.an-btn.an-btn-excel { background: #16a34a; border-color: #16a34a; }
        .an-btn.an-btn.an-btn-excel:hover { background: #15803d; border-color: #15803d; }
        /* Secondary: белый фон + Ozon-синий акцент (не soft — иначе danger-кнопки с inline
           красным текстом/рамкой стали бы голубыми с красным текстом). */
        .an-btn.an-btn-secondary { background: #fff; border-color: var(--oz-blue); color: var(--oz-blue); }
        .an-btn.an-btn-secondary:hover { background: #eff6ff; border-color: var(--oz-blue); }
        /* Эталонная модальная primary-кнопка закреплена на токенах. */
        .ozon-modal-btn-cancel { background: var(--oz-blue); border-radius: var(--oz-radius); }
        .ozon-modal-btn-cancel:hover { background: var(--oz-blue-d); }
        /* ============================================================
           OZON STYLE — ШАГ 2: форм-контролы + карточки + вкладки.
           ============================================================ */
        /* 2.1 Форм-контролы (baseline). :where() исключает нетекстовые типы
           БЕЗ роста специфичности → правило остаётся 0-0-1, классы и inline
           выигрывают (стилизованные инпуты сохраняют вид, .ozon-search-input
           остаётся borderless). Бэйзовые поля и select/textarea — Ozon-вид. */
        input:where(:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"])) {
            border: 1.5px solid var(--oz-line);
            border-radius: var(--oz-radius);
        }
        select,
        textarea {
            border: 1.5px solid var(--oz-line);
            border-radius: var(--oz-radius);
        }
        input:where(:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"])):focus,
        select:focus,
        textarea:focus {
            outline: none;
            border-color: var(--oz-blue);
            box-shadow: 0 0 0 3px var(--oz-blue-bg);
        }

        /* 2.1b Унификация доминирующих классов инпутов (border/radius/focus → токены).
           Дубль класса (0-2-0) бьёт поздние объявления; padding/width/bg и состояния
           (.ff-input-warn амбер / .is-readonly) объявлены позже и сохраняются.
           .ozon-search-input намеренно НЕ трогаем (borderless внутри обёртки). */
        .ff-input.ff-input,
        .ozon-modal-input.ozon-modal-input,
        .ozon-date-filter-input.ozon-date-filter-input {
            border: 1.5px solid var(--oz-line);
            border-radius: var(--oz-radius);
        }
        .ff-input.ff-input:focus,
        .ozon-modal-input.ozon-modal-input:focus,
        .ozon-date-filter-input.ozon-date-filter-input:focus {
            outline: none;
            border-color: var(--oz-blue);
            box-shadow: 0 0 0 3px var(--oz-blue-bg);
        }

        /* 2.2 Карточки — utility-классы для нового кода (существующие .card/.comp-card
           контекстно-привязаны → шаг 3; .tab-panel уже близок к Ozon). */
        .oz-card {
            background: #fff;
            border: 1px solid var(--oz-line);
            border-radius: 14px;
            box-shadow: 0 2px 12px rgba(0,26,52,.07);
            padding: 16px 18px;
        }
        .oz-panel {
            background: #fff;
            border: 1px solid var(--oz-line);
            border-radius: 16px;
            box-shadow: 0 2px 12px rgba(0,26,52,.07);
            padding: 20px;
        }

        /* Подсказка-сноска: иконка «?» + всплывающее объяснение при наведении.
           Использование: <span class="oz-help" data-tip="текст">?</span>
           Ставить РЯДОМ с <label>, а не внутри — иначе клик по иконке переключает чекбокс.
           Модификатор .tip-left — выравнивание подсказки по правому краю (для элементов у края экрана). */
        .oz-help {
            display: inline-flex; align-items: center; justify-content: center;
            width: 16px; height: 16px; flex: 0 0 auto;
            border-radius: 50%; border: 1px solid #CFE0FF;
            background: var(--oz-blue-bg); color: var(--oz-blue);
            font-size: 11px; font-weight: 700; line-height: 1;
            cursor: help; position: relative; vertical-align: middle;
        }
        .oz-help::after {
            content: attr(data-tip);
            position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%);
            width: 300px; max-width: 72vw;
            background: var(--oz-ink); color: #fff;
            font-size: 12px; font-weight: 400; line-height: 1.45; text-align: left;
            padding: 9px 11px; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,26,52,.22);
            white-space: pre-line; pointer-events: none; z-index: 1200;
            opacity: 0; visibility: hidden; transition: opacity .12s ease;
        }
        .oz-help::before {
            content: ''; position: absolute; bottom: calc(100% + 3px); left: 50%; transform: translateX(-50%);
            border: 6px solid transparent; border-top-color: var(--oz-ink);
            pointer-events: none; z-index: 1200;
            opacity: 0; visibility: hidden; transition: opacity .12s ease;
        }
        .oz-help:hover::after, .oz-help:hover::before,
        .oz-help:focus::after, .oz-help:focus::before { opacity: 1; visibility: visible; }
        .oz-help.tip-left::after { left: auto; right: -4px; transform: none; }
        .oz-help.tip-left::before { left: auto; right: 4px; transform: none; }

        /* Тултип в плавающем слое.
           CSS-подсказка выше — position:absolute внутри иконки, поэтому её ОБРЕЗАЕТ
           любой предок с overflow (у нас 96 таких контейнеров: таблицы со скроллом,
           липкие шапки и т.п.), а у верхних строк ей ещё и некуда открыться вверх.
           Когда JS поднялся, он вешает на <html> класс oz-tip-js, гасит CSS-вариант
           и рисует подсказку в #oz-tip — position:fixed на уровне body. Ничем не
           обрезается, сам переворачивается вниз и прижимается к краям экрана.
           CSS-вариант остаётся рабочим фолбэком, если JS не выполнился. */
        html.oz-tip-js .oz-help::after,
        html.oz-tip-js .oz-help::before { content: none; }
        #oz-tip {
            position: fixed; z-index: 4000; max-width: 340px;
            background: var(--oz-ink); color: #fff;
            font-size: 12px; font-weight: 400; line-height: 1.45; text-align: left;
            padding: 9px 11px; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,26,52,.22);
            white-space: pre-line; pointer-events: none;
            opacity: 0; visibility: hidden; transition: opacity .12s ease;
        }
        #oz-tip.is-on { opacity: 1; visibility: visible; }
        #oz-tip::after {
            content: ''; position: absolute; left: var(--tip-arrow, 50%);
            border: 6px solid transparent; transform: translateX(-50%);
        }
        #oz-tip.tip-up::after   { top: 100%; border-top-color: var(--oz-ink); }
        #oz-tip.tip-down::after { bottom: 100%; border-bottom-color: var(--oz-ink); }

        /* 2.3 Вкладки — utility-классы для нового кода (20 разнородных систем,
           16 красят активное состояние inline через JS → глобально не трогаем, шаг 3). */
        .oz-tab {
            padding: 10px 16px;
            background: none;
            border: none;
            border-bottom: 2px solid transparent;
            color: var(--oz-mut);
            font-size: 14px;
            cursor: pointer;
            transition: color .15s ease, border-color .15s ease;
        }
        .oz-tab:hover { color: var(--oz-ink); }
        .oz-tab.is-active {
            color: var(--oz-blue);
            border-bottom-color: var(--oz-blue);
        }
        /* ============================================================
           OZON STYLE — ШАГ 3b: мягкая тень контекстным карточкам.
           Табы после 3a уже синие (#005BFF/#0048CC) — не трогаем.
           Дубль класса/контекст — чтобы выиграть специфичность у поздних
           определений (#panel-*, .an-summary .card). Меняем только
           border-color → токен и добавляем тень; padding/radius/active/hover
           сохраняются (active-кольцо и hover-рамка идут позже и выигрывают). */
        /* ============================================================ */
        .an-summary .card.card,
        #panel-labels .lbl-card.lbl-card,
        #panel-analytics-competitors .comp-card.comp-card,
        .news-card.news-card,
        .ozon-order-workbench-card.ozon-order-workbench-card {
            border-color: var(--oz-line);
            box-shadow: 0 2px 12px rgba(0, 26, 52, .07);
        }
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
            background: #f5f5f5;
            color: #333;
            padding: 12px;
            min-height: 100vh;
        }
        
        .container {
            width: 100%;
            max-width: none;
            margin: 0;
        }

        /* Верхняя панель (Ozon стиль) — закреплена при прокрутке */
        .top-nav {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 16px 24px;
            background: white;
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            margin-bottom: 24px;
            position: sticky;
            top: 8px;
            z-index: 200;
        }

        .nav-left {
            display: flex;
            align-items: center;
        }

        .nav-logo {
            font-size: 20px;
            font-weight: 700;
            color: #005BFF;
            letter-spacing: 0.03em;
        }

        .nav-right {
            display: flex;
            align-items: center;
            gap: 20px;
        }

        .store-selector-wrap {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .store-selector-label {
            font-weight: 400;
            color: #555;
            font-size: 15px;
        }

        .store-selector-arrow {
            color: #888;
            font-size: 16px;
        }

        .account-selector {
            position: relative;
            width: 220px;
        }

        .account-selector .selector-button {
            width: 100%;
        }

        /* Главное меню (табы) — на всю ширину */
        .main-tabs {
            display: flex;
            gap: 0;
            width: 100%;
            border-bottom: 1px solid #e5e5e5;
            margin-bottom: 20px;
            background: white;
            border-radius: 12px;
            padding: 0 8px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
        }

        .main-tab {
            padding: 12px 20px;
            min-height: 44px;
            cursor: pointer;
            font-size: 15px;
            color: #666;
            background: none;
            border: none;
            border-bottom: 2px solid transparent;
            margin-bottom: -1px;
            transition: all 0.2s;
            border-radius: 0;
        }

        .main-tab:hover {
            color: #333;
        }

        .main-tab.active {
            color: #222;
            font-weight: 600;
            border-bottom-color: #005BFF;
        }

        /* Плашка выбора режима на дашборде (пока не выбран «История заявок» или «Заявки ЛК Ozon») */
        .dashboard-mode-plaque {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 200px;
            padding: 32px 24px;
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            border: 1px dashed #cbd5e1;
            border-radius: 12px;
            color: #475569;
            font-size: 16px;
            text-align: center;
            margin-bottom: 20px;
        }
        .dashboard-mode-plaque.hidden {
            display: none !important;
        }

        /* Кнопки действий на дашборде (автопоставка / массовое бронирование) */
        .dashboard-action-buttons {
            display: none;
            flex-direction: row;
            gap: 12px;
            width: 100%;
            margin-bottom: 16px;
        }
        .dashboard-action-buttons.visible {
            display: flex;
        }
        .dashboard-action-btn {
            flex: 1;
            min-width: 0;
            padding: 12px 24px;
            font-size: 15px;
            font-weight: 600;
            border: none;
            border-radius: 10px;
            cursor: pointer;
            transition: transform 0.15s, box-shadow 0.15s;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        }
        .dashboard-action-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 16px rgba(0,0,0,0.2);
        }
        .dashboard-action-btn-auto {
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            color: white;
        }
        .dashboard-action-btn-mass {
            background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
            color: white;
        }

        /* Подменю — на всю ширину */
        .sub-tabs {
            display: flex;
            gap: 0;
            width: 100%;
            border-bottom: 1px solid #e5e5e5;
            margin-bottom: 20px;
            background: white;
            border-radius: 12px;
            padding: 0 8px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
        }

        .sub-tabs.hidden {
            display: none;
        }

        .sub-tab {
            padding: 10px 18px;
            min-height: 44px;
            cursor: pointer;
            font-size: 14px;
            color: #666;
            background: none;
            border: none;
            border-bottom: 2px solid transparent;
            margin-bottom: -1px;
            transition: all 0.2s;
        }

        .sub-tab:hover {
            color: #333;
        }

        .sub-tab.active {
            color: #222;
            font-weight: 500;
            border-bottom-color: #005BFF;
        }

        .tab-panel {
            background: white;
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            padding: 20px;
            margin-top: 0;
        }

        .bidder-pane.hidden { display: none !important; }
        .pnl-pane.hidden { display: none !important; }
        .tab-panel.hidden {
            display: none;
        }
        .history-sub-panel.hidden {
            display: none;
        }
        .history-col-help {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 16px;
            height: 16px;
            font-size: 11px;
            font-weight: 600;
            color: #6b7280;
            background: #e5e7eb;
            border-radius: 50%;
            cursor: help;
            margin-left: 2px;
            vertical-align: middle;
        }
        .history-col-help:hover {
            background: #d1d5db;
            color: #374151;
        }
        .history-col-help-wrapper {
            position: relative;
            display: inline-flex;
            vertical-align: middle;
            z-index: 1;
        }
        .history-col-help-wrapper:hover {
            z-index: 100000;
        }
        .history-col-help-tooltip {
            position: absolute;
            bottom: 100%;
            left: 50%;
            transform: translateX(-50%);
            margin-bottom: 6px;
            padding: 8px 10px;
            max-width: 220px;
            font-size: 12px;
            line-height: 1.35;
            color: #1f2937;
            background: #fff;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.2);
            border: 1px solid #e5e7eb;
            white-space: normal;
            visibility: hidden;
            opacity: 0;
            transition: visibility 0.15s, opacity 0.15s;
            pointer-events: none;
            z-index: 99999;
        }
        .history-col-help-tooltip::after {
            content: '';
            position: absolute;
            top: 100%;
            left: 50%;
            margin-left: -6px;
            border: 6px solid transparent;
            border-top-color: #fff;
        }
        .history-col-help-wrapper:hover .history-col-help-tooltip {
            visibility: visible;
            opacity: 1;
        }
        .history-error-cell {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            max-width: 100%;
            min-width: 0;
        }
        .history-error-text {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .history-error-copy {
            flex-shrink: 0;
            width: 24px;
            height: 24px;
            padding: 0;
            border: none;
            border-radius: 4px;
            background: #e5e7eb;
            color: #6b7280;
            cursor: pointer;
            font-size: 12px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            line-height: 1;
        }
        .history-error-copy:hover {
            background: #d1d5db;
            color: #374151;
        }
        .history-error-copy:active {
            background: #9ca3af;
        }

        #page-stub {
            padding: 20px;
            max-width: 1200px;
            margin: 0 auto;
        }
        #page-stub h2 {
            font-size: 28px;
            margin-bottom: 30px;
            color: #1f2937;
            font-weight: 600;
        }
        #page-stub h3 {
            font-size: 22px;
            margin-top: 30px;
            margin-bottom: 15px;
            color: #005BFF;
            font-weight: 600;
        }
        #page-stub h4 {
            font-size: 18px;
            margin-top: 20px;
            margin-bottom: 10px;
            color: #374151;
            font-weight: 600;
        }
        #page-stub p {
            font-size: 16px;
            color: #4b5563;
            line-height: 1.7;
            margin-bottom: 12px;
        }
        #page-stub ul {
            margin-top: 10px;
            margin-bottom: 20px;
        }
        #page-stub li {
            font-size: 16px;
            color: #4b5563;
            line-height: 1.7;
            margin-bottom: 8px;
        }
        #page-stub strong {
            color: #1f2937;
            font-weight: 600;
        }
        #stub-content {
            color: #4b5563;
        }

        .feedback-page {
            max-width: 980px;
            margin: 0 auto;
        }
        .feedback-hero {
            margin-bottom: 22px;
            padding: 18px 20px;
            border: 1px solid #dbeafe;
            border-radius: 14px;
            background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
        }
        .feedback-hero p {
            margin: 0;
        }
        .feedback-form {
            display: grid;
            gap: 18px;
        }
        .feedback-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.3fr) minmax(220px, 0.7fr);
            gap: 16px;
        }
        .feedback-field {
            display: grid;
            gap: 8px;
        }
        .feedback-field label {
            font-size: 14px;
            font-weight: 700;
            color: #1f2937;
        }
        .feedback-input,
        .feedback-select,
        .feedback-textarea {
            width: 100%;
            border: 1px solid #d1d5db;
            border-radius: 12px;
            background: #fff;
            color: #111827;
            font-size: 15px;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }
        .feedback-input,
        .feedback-select {
            min-height: 52px;
            padding: 0 14px;
        }
        .feedback-textarea {
            min-height: 220px;
            padding: 14px;
            resize: vertical;
            font-family: inherit;
            line-height: 1.6;
        }
        .feedback-input:focus,
        .feedback-select:focus,
        .feedback-textarea:focus {
            outline: none;
            border-color: #005BFF;
            box-shadow: 0 0 0 3px rgba(0, 91, 255, 0.12);
        }
        .feedback-field-hint {
            font-size: 13px;
            color: #6b7280;
            line-height: 1.5;
        }
        .feedback-upload {
            padding: 18px;
            border: 1px dashed #93c5fd;
            border-radius: 14px;
            background: #f8fbff;
        }
        .feedback-upload input[type="file"] {
            display: block;
            width: 100%;
            margin-bottom: 10px;
        }
        .feedback-files-list {
            display: grid;
            gap: 10px;
            margin-top: 12px;
        }
        .feedback-file-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 12px 14px;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            background: #fff;
        }
        .feedback-file-meta {
            min-width: 0;
        }
        .feedback-file-name {
            font-size: 14px;
            font-weight: 600;
            color: #1f2937;
            word-break: break-word;
        }
        .feedback-file-size {
            margin-top: 4px;
            font-size: 12px;
            color: #6b7280;
        }
        .feedback-file-remove {
            flex-shrink: 0;
            width: 34px;
            height: 34px;
            border: none;
            border-radius: 999px;
            background: #fee2e2;
            color: #b91c1c;
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
        }
        .feedback-file-remove:hover {
            background: #fecaca;
        }
        .feedback-status {
            display: none;
            padding: 14px 16px;
            border-radius: 12px;
            font-size: 14px;
            line-height: 1.6;
        }
        .feedback-status.error {
            display: block;
            border: 1px solid #fecaca;
            background: #fef2f2;
            color: #991b1b;
        }
        .feedback-status.success {
            display: block;
            border: 1px solid #bbf7d0;
            background: #f0fdf4;
            color: #166534;
        }
        .feedback-actions {
            display: flex;
            justify-content: flex-end;
        }
        .feedback-submit {
            min-width: 220px;
            min-height: 52px;
            border: none;
            border-radius: 12px;
            background: linear-gradient(135deg, #005BFF 0%, #0048CC 100%);
            color: #fff;
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 10px 24px rgba(0, 91, 255, 0.18);
            transition: transform 0.16s ease, box-shadow 0.16s ease, opacity 0.16s ease;
        }
        .feedback-submit:hover:not(:disabled) {
            transform: translateY(-1px);
            box-shadow: 0 14px 30px rgba(0, 91, 255, 0.24);
        }
        /* ============== Фулфилмент → Приёмка ============== */
        .ff-page { max-width: 1440px; margin: 0 auto; }
        .ff-hero {
            margin-bottom: 18px; padding: 18px 20px;
            border: 1px solid #dbeafe; border-radius: 16px;
            background: linear-gradient(135deg, #f8fbff 0%, #eff6ff 100%);
        }
        .ff-hero h3 { margin: 0 0 6px 0; color: #0048CC; font-size: 22px; }
        .ff-hero p { margin: 0; color: #475569; font-size: 14px; line-height: 1.5; }
        .ff-tabs {
            display: flex; gap: 8px; margin-bottom: 16px;
            border-bottom: 1px solid #e5e7eb;
        }
        .ff-tab {
            padding: 10px 18px; border: none; background: transparent;
            font-size: 15px; font-weight: 600; color: #6b7280; cursor: pointer;
            border-bottom: 3px solid transparent; transition: color 0.15s ease, border-color 0.15s ease;
        }
        .ff-tab.active { color: #0048CC; border-bottom-color: #0048CC; }
        .ff-tab:hover:not(.active) { color: #334155; }
        .ff-panel {
            border: 1px solid #e5e7eb; border-radius: 16px;
            background: #fff; padding: 18px;
            box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
        }
        .ff-soon {
            text-align: center; padding: 40px 20px; color: #6b7280; font-size: 15px;
        }
        .ff-toolbar {
            display: flex; flex-wrap: wrap; gap: 10px;
            margin-bottom: 14px; align-items: center;
        }
        .ff-toolbar .spacer { flex: 1; }
        .ff-btn {
            min-height: 40px; padding: 0 16px; border-radius: 10px;
            font-size: 14px; font-weight: 600; cursor: pointer;
            display: inline-flex; align-items: center; gap: 6px;
            border: 1px solid transparent; transition: background 0.15s ease, opacity 0.15s ease;
        }
        .ff-btn-primary { background: #0048CC; color: #fff; border-color: #0048CC; }
        .ff-btn-primary:hover { background: #0048CC; }
        .ff-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
        .ff-btn-secondary { background: #fff; color: #1f2937; border-color: #d1d5db; }
        .ff-btn-secondary:hover { background: #f3f4f6; }
        .ff-btn-ghost { background: transparent; color: #6b7280; border: none; padding: 0 10px; }
        .ff-btn-ghost:hover { color: #b91c1c; }
        .ff-defaults {
            border: 1px solid #e5e7eb; border-radius: 12px; padding: 14px 16px;
            background: #fafbff; margin-bottom: 14px;
        }
        .ff-defaults-title {
            font-size: 12px; font-weight: 800; color: #0048CC;
            text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 10px;
        }
        .ff-defaults-grid {
            display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
        }
        .ff-field { display: flex; flex-direction: column; gap: 4px; }
        .ff-field > span { font-size: 12px; color: #6b7280; font-weight: 600; }
        .ff-field-wide { grid-column: span 2; }
        .ff-product-search { margin-bottom: 14px; }
        .ff-table-wrap {
            overflow-x: auto; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff;
        }
        .ff-table { width: 100%; border-collapse: collapse; font-size: 13px; }
        .ff-table th {
            text-align: left; padding: 10px 8px; background: #f9fafb;
            border-bottom: 1px solid #e5e7eb; font-weight: 700; color: #374151;
            font-size: 12px; text-transform: uppercase; letter-spacing: 0.02em;
            position: sticky; top: 0; z-index: 2;
        }
        .ff-table td {
            padding: 6px 8px; border-bottom: 1px solid #f3f4f6; vertical-align: middle;
        }
        .ff-table tr:last-child td { border-bottom: none; }
        .ff-table tr:hover td { background: #fafbfc; }
        .ff-col-num { width: 40px; color: #9ca3af; text-align: center; font-size: 12px; }
        .ff-col-name {
            width: 150px; max-width: 150px; color: #111827; font-size: 13px;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .ff-col-offer {
            min-width: 300px; color: #374151; font-size: 13px; font-weight: 600;
            white-space: normal; word-break: break-word;
        }
        .ff-col-barcode { width: 170px; }
        .ff-receiving-total {
            margin-left: 16px; font-size: 14px; color: #374151;
            padding: 8px 14px; background: #eff6ff; border: 1px solid #bfdbfe;
            border-radius: 10px; white-space: nowrap;
        }
        .ff-receiving-total b { color: #0048CC; }
        .ff-barcode-locked {
            padding: 8px 10px; border: 1px solid #e5e7eb; border-radius: 8px;
            background: #f3f4f6; color: #374151; font-size: 13px; font-weight: 600;
            cursor: not-allowed;
        }
        .ff-col-qty { width: 110px; }
        .ff-col-boxes { width: 80px; }
        .ff-col-label { width: 160px; }
        .ff-col-label .ff-input { font-size: 12px; }
        .ff-col-direction { width: 240px; }
        .ff-col-comment { width: 200px; }
        .ff-col-del { width: 40px; text-align: center; }
        .ff-shipping-upload { margin-bottom: 14px; }
        .ff-shipping-dropzone {
            display: block; padding: 22px 16px; border: 2px dashed #93c5fd;
            border-radius: 12px; background: #f8fbff; cursor: pointer;
            text-align: center; transition: background 0.15s ease, border-color 0.15s ease, transform 0.05s ease;
        }
        .ff-shipping-dropzone:hover { background: #eff6ff; border-color: #60a5fa; }
        .ff-shipping-dropzone.is-drag-over {
            background: #dbeafe; border-color: #005BFF; border-style: solid;
            transform: scale(1.01);
        }
        .ff-shipping-dropzone-title { font-size: 14px; font-weight: 700; color: #0048CC; margin-bottom: 4px; }
        .ff-shipping-dropzone-hint { font-size: 12px; color: #6b7280; }
        .ff-shipping-status { font-size: 13px; color: #0048CC; margin-top: 8px; min-height: 18px; }
        .ff-boxes-step {
            border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px;
            margin-bottom: 14px; background: #fafbff;
        }
        .ff-boxes-step-title {
            font-size: 13px; font-weight: 800; color: #0048CC;
            text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 10px;
        }
        .ff-progress-overlay {
            position: fixed; inset: 0; z-index: 99999;
            background: rgba(15, 23, 42, 0.55);
            display: flex; align-items: center; justify-content: center;
        }
        .ff-progress-card {
            width: 440px; max-width: 92vw; background: #fff;
            border-radius: 16px; padding: 24px; box-shadow: 0 24px 60px rgba(0,0,0,0.3);
        }
        .ff-progress-title { font-size: 17px; font-weight: 800; color: #111827; margin-bottom: 6px; }
        .ff-progress-sub { font-size: 13px; color: #6b7280; margin-bottom: 16px; min-height: 18px; }
        .ff-progress-track { height: 16px; border-radius: 999px; background: #e5e7eb; overflow: hidden; }
        .ff-progress-fill {
            height: 100%; width: 0%; border-radius: 999px;
            background: linear-gradient(135deg, #005BFF, #0f766e); transition: width 0.3s ease;
        }
        .ff-progress-count { margin-top: 10px; font-size: 14px; font-weight: 700; color: #0048CC; text-align: center; }
        .ff-progress-actions { margin-top: 18px; text-align: right; }
        .ff-input {
            width: 100%; padding: 8px 10px; border: 1px solid #d1d5db;
            border-radius: 8px; font-size: 13px; background: #fff; color: #111827;
            font-family: inherit;
        }
        .ff-input:focus { outline: none; border-color: #005BFF; box-shadow: 0 0 0 2px rgba(0, 91, 255, 0.1); }
        .ff-input.is-readonly { background: #f9fafb; color: #6b7280; }
        .ff-input.ff-input-warn { border-color: #f59e0b; background: #fffbeb; }
        textarea.ff-input { resize: vertical; min-height: 36px; line-height: 1.4; }
        select.ff-input { cursor: pointer; }
        .ff-product-cell { position: relative; }
        .ff-product-info {
            display: flex; gap: 8px; align-items: center;
            padding: 4px 0;
        }
        .ff-product-thumb {
            width: 36px; height: 36px; border-radius: 6px; object-fit: cover;
            border: 1px solid #e5e7eb; background: #f9fafb; flex-shrink: 0;
        }
        .ff-product-meta { min-width: 0; flex: 1; }
        .ff-product-name {
            font-size: 12px; color: #111827; font-weight: 600;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .ff-product-offer { font-size: 11px; color: #6b7280; }
        .ff-product-suggestions {
            position: absolute; left: 0; right: 0; top: 100%; z-index: 30;
            background: #fff; border: 1px solid #d1d5db; border-radius: 8px;
            box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
            max-height: 320px; overflow-y: auto; margin-top: 4px;
        }
        .ff-product-suggestion {
            display: flex; gap: 8px; align-items: center;
            padding: 8px 10px; cursor: pointer; border-bottom: 1px solid #f3f4f6;
        }
        .ff-product-suggestion:last-child { border-bottom: none; }
        .ff-product-suggestion:hover { background: #f3f4f6; }
        .ff-product-suggestion.is-added { background: #f0fdf4; cursor: default; }
        .ff-product-suggestion.is-added:hover { background: #dcfce7; }
        .ff-product-check { margin-left: auto; color: #15803d; font-weight: 700; font-size: 12px; white-space: nowrap; }
        .ff-product-suggestion .ff-product-thumb { width: 32px; height: 32px; }
        .ff-product-suggestion-empty { padding: 12px; color: #9ca3af; font-size: 13px; text-align: center; }
        .ff-empty { padding: 36px 16px; text-align: center; color: #6b7280; font-size: 14px; }
        @media (max-width: 900px) {
            .ff-defaults-grid { grid-template-columns: 1fr; }
            .ff-field-wide { grid-column: span 1; }
        }
        .ff-hint-row {
            padding: 10px 12px; margin-bottom: 12px;
            background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px;
            color: #92400e; font-size: 13px; line-height: 1.4;
        }
        @media (max-width: 900px) {
            .ff-tabs { overflow-x: auto; }
        }
        .feedback-submit:disabled {
            opacity: 0.6;
            cursor: not-allowed;
            box-shadow: none;
        }

        @media (max-width: 768px) {
            .feedback-grid {
                grid-template-columns: 1fr;
            }
            .feedback-actions {
                justify-content: stretch;
            }
            .feedback-submit {
                width: 100%;
            }
            .feedback-file-row {
                align-items: flex-start;
            }
        }

        /* Панель заявок ЛК Ozon */
        .ozon-panel-toolbar {
            margin-bottom: 16px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
        }

        .ozon-toolbar-actions {
            display: flex;
            gap: 8px;
            margin-left: auto;
        }

        .ozon-toolbar-actions.hidden {
            display: none;
        }

        /* Чип-пресет «Просроченные» в тулбаре Заявок ЛК Ozon */
        .ozon-overdue-chip {
            width: auto;
            flex: 0 0 auto;
            padding: 8px 14px;
            font-size: 13px;
            font-weight: 600;
            white-space: nowrap;
            color: var(--oz-amber-tx, #C9760F);
            background: var(--oz-amber-bg, #FEF3E2);
            border: 1px solid #F3D9B4;
            border-radius: var(--oz-radius, 10px);
            cursor: pointer;
        }
        .ozon-overdue-chip:hover { filter: brightness(0.97); }
        .ozon-overdue-chip.is-active {
            color: #fff;
            background: var(--oz-pink, #F91155);
            border-color: var(--oz-pink, #F91155);
        }
        /* Приглушаем, когда просроченных нет. Именно класс, а не disabled: кнопка должна
           оставаться кликабельной (счётчик пересчитывается по свежей дате МСК). */
        .ozon-overdue-chip.is-empty {
            opacity: .55;
        }

        .ozon-btn-delete {
            padding: 10px 18px;
            background: #c62828;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            white-space: nowrap;
        }

        .ozon-btn-delete:hover {
            background: #b71c1c;
        }

        .ozon-btn-driver {
            padding: 10px 18px;
            background: #005BFF;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            white-space: nowrap;
        }

        .ozon-btn-driver:hover {
            background: #0048CC;
        }

        .ozon-btn-date {
            padding: 10px 18px;
            background: #EAF1FF;
            color: #005BFF;
            border: 1px solid #005BFF;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            white-space: nowrap;
        }

        .ozon-btn-date:hover {
            background: #dbe7ff;
        }

        .ozon-delete-modal-buttons {
            display: flex;
            gap: 12px;
            justify-content: flex-end;
            margin-top: 20px;
        }
        .ozon-modal-btn-cancel {
            padding: 10px 20px;
            background: #005BFF;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
        }
        .ozon-modal-btn-cancel:hover { background: #0048CC; }
        .ozon-modal-btn-delete {
            padding: 10px 20px;
            background: #c62828;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
        }
        .ozon-modal-btn-delete:hover { background: #b71c1c; }

        .ozon-delete-progress-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.6);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 2000;
            pointer-events: auto;
        }
        .ozon-delete-progress-overlay.hidden { display: none; }
        .account-switch-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.55);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 99999;
            pointer-events: auto;
        }
        .account-switch-overlay.hidden { display: none; }
        .account-switch-box {
            background: white;
            border-radius: 12px;
            padding: 32px 40px;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 14px;
            box-shadow: 0 4px 32px rgba(0,0,0,0.2);
            min-width: 220px;
        }
        .account-switch-spinner {
            width: 36px; height: 36px;
            border: 3px solid #e5e7eb;
            border-top-color: #005BFF;
            border-radius: 50%;
            animation: accspin 0.8s linear infinite;
        }
        @keyframes accspin { to { transform: rotate(360deg); } }
        .account-switch-label { font-size: 15px; color: #374151; font-weight: 500; }
        .ozon-progress-error-list {
            margin-top: 10px;
            font-size: 12px;
            color: #dc2626;
            max-height: 120px;
            overflow-y: auto;
            line-height: 1.6;
        }
        .ozon-progress-close-btn {
            margin-top: 14px;
            background: #005BFF;
            color: white;
            border: none;
            border-radius: 6px;
            padding: 8px 20px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
        }
        .ozon-delete-progress-box {
            background: white;
            padding: 24px 32px;
            border-radius: 12px;
            min-width: 280px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.2);
        }
        .ozon-delete-progress-meta {
            margin-top: 8px;
            font-size: 13px;
            color: #4b5563;
        }
        .ozon-delete-progress-note {
            margin-top: 10px;
            font-size: 13px;
            line-height: 1.5;
            color: #6b7280;
        }
        .ozon-progress-bar-wrap {
            height: 8px;
            background: #e0e0e0;
            border-radius: 4px;
            margin-top: 12px;
            overflow: hidden;
        }
        .ozon-progress-bar-fill {
            height: 100%;
            background: #005BFF;
            border-radius: 4px;
            width: 0%;
            transition: width 0.2s ease;
        }
        .ozon-loading-progress {
            margin: 16px 20px;
            padding: 16px;
            background: #f9fafb;
            border-radius: 8px;
            border: 1px solid #e5e7eb;
        }
        .ozon-loading-progress.hidden {
            display: none;
        }
        .sku-loading-pill {
            display: inline-block;
            font-size: 12px;
            color: #6b7280;
            background: #f3f4f6;
            border-radius: 999px;
            padding: 2px 8px;
            margin-top: 2px;
            white-space: nowrap;
        }
        .history-sku-clickable {
            color: #005BFF;
            text-decoration: underline;
            cursor: pointer;
            font-weight: 600;
        }
        .history-sku-clickable:hover {
            color: #0048CC;
        }

        .ozon-checkbox {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: #005BFF;
        }

        .ozon-checkbox-th {
            margin-right: 8px;
        }

        /* Modal для заполнения водителя */
        /* Бейдж «Поиск слота» в таблице заявок ЛК: что делает вотчер по заявке */
        .ozon-slot-search-cell { cursor: pointer; }
        .ozon-slot-search-cell:hover { background: var(--oz-blue-bg); }
        .slot-search-badge {
            display: inline-block; padding: 3px 10px; border-radius: 999px;
            font-size: 12px; font-weight: 600; white-space: nowrap;
        }
        .slot-search-ok   { background: #E6F7EE; color: #007A3B; }
        .slot-search-wait { background: var(--oz-blue-bg); color: var(--oz-blue); }
        .slot-search-err  { background: var(--oz-amber-bg); color: var(--oz-amber-tx); }
        .slot-search-off  { background: #F1F2F4; color: var(--oz-mut); }

        .ozon-modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.4);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1000;
            padding: 20px;
        }

        .ozon-modal-overlay.hidden {
            display: none;
        }

        .ozon-modal {
            background: white;
            border-radius: 12px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.2);
            max-width: 480px;
            width: 100%;
            padding: 24px;
            position: relative;
        }

        .ozon-modal-close {
            position: absolute;
            width: auto;
            max-width: 20%;
            top: 16px;
            right: 16px;
            min-height: 32px;
            padding: 4px 10px;
            border: none;
            background: #f0f0f0;
            border-radius: 8px;
            font-size: 13px;
            cursor: pointer;
            color: #666;
            line-height: 1.2;
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-family: inherit;
            white-space: nowrap;
        }
        .ozon-modal-close:hover {
            background: #e0e0e0;
            color: #1f2937;
        }

        .ozon-modal-title {
            font-size: 20px;
            font-weight: 600;
            color: #222;
            margin-bottom: 8px;
        }

        .ozon-modal-subtitle {
            font-size: 14px;
            color: #555;
            margin-bottom: 24px;
    line-height: 1.5;
        }

        .ozon-modal-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            margin-bottom: 12px;
        }

        .ozon-modal-field {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }

        .ozon-modal-field.full {
            grid-column: 1 / -1;
        }

        .ozon-modal-field label {
            font-size: 13px;
            font-weight: 500;
            color: #333;
        }

        .ozon-modal-input {
            padding: 12px 14px;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            font-size: 15px;
        }

        .ozon-modal-input:focus {
            outline: none;
            border-color: #005BFF;
        }

        .ozon-modal-checkbox-wrap {
            display: flex;
            align-items: center;
            gap: 10px;
            margin: 20px 0;
        }

        .ozon-modal-checkbox-wrap input {
            width: 18px;
            height: 18px;
            accent-color: #005BFF;
            cursor: pointer;
        }

        .ozon-modal-checkbox-wrap label {
            font-size: 14px;
            color: #333;
            cursor: pointer;
        }

        .ozon-modal-buttons {
            display: flex;
            gap: 12px;
            width: 100%;
        }
        .ozon-modal-save {
            flex: 1;
            padding: 14px;
            background: #005BFF;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 16px;
            font-weight: 500;
            cursor: pointer;
        }

        .ozon-modal-save:hover {
            background: #0048CC;
        }

        .ozon-modal-save:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }
        .ozon-modal-clear {
            padding: 14px 20px;
            background: #e9ecef;
            color: #333;
            border: none;
            border-radius: 8px;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
        }
        .ozon-modal-clear:hover {
            background: #dee2e6;
        }
        .ozon-saved-drivers-wrap { margin-bottom: 16px; }
        .ozon-saved-driver-select { width: 100%; cursor: pointer; }
        .ozon-driver-cell-click {
            cursor: pointer;
        }
        .ozon-editable-col:hover {
            text-decoration: underline;
        }
        .ozon-date-select-btn {
            background: #005BFF;
            color: white;
            border: none;
            padding: 6px 12px;
            border-radius: 6px;
            font-size: 13px;
            cursor: pointer;
            font-weight: 500;
        }
        .ozon-date-select-btn:hover {
            background: #0048CC;
        }
        .ozon-timeslot-modal { max-width: 720px; }
        .ozon-timeslot-content {
            display: flex;
            gap: 24px;
            margin: 20px 0;
            align-items: flex-start;
        }
        .ozon-calendar-wrap {
            flex-shrink: 0;
            width: 280px;
        }
        .ozon-calendar-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 12px;
            font-weight: 600;
            font-size: 15px;
        }
        .ozon-cal-nav {
            background: none;
            border: none;
            font-size: 22px;
            cursor: pointer;
            color: #005BFF;
            padding: 4px 8px;
        }
        .ozon-cal-nav:hover { color: #0048CC; }
        .ozon-calendar-grid {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 4px;
        }
        .ozon-cal-day {
            position: relative;
            min-height: 32px;
            min-width: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 6px;
            cursor: pointer;
            font-size: 13px;
            border: 1px solid transparent;
        }
        .ozon-cal-day:hover { background: #f0f0f0; }
        .ozon-cal-day.past {
            color: #bbb;
            text-decoration: line-through;
            cursor: not-allowed;
        }
        .ozon-cal-day.past:hover { background: transparent; }
        .ozon-cal-day.weekend { color: #ff6b6b; }
        .ozon-cal-day.selected {
            background: #005BFF;
            color: white;
            border-color: #005BFF;
        }
        .ozon-cal-day-header {
            text-align: center;
            font-weight: 600;
            font-size: 11px;
            color: #666;
            padding: 6px 2px;
        }
        .ozon-timeslots-wrap {
            flex: 1;
            min-width: 0;
            max-width: 320px;
            display: flex;
            flex-direction: column;
        }
        .ozon-timeslots-title {
            font-weight: 600;
            margin-bottom: 8px;
            font-size: 14px;
        }
        .ozon-timeslots-list {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 4px;
            overflow: visible;
            -webkit-overflow-scrolling: touch;
        }
        .ozon-timeslot-btn {
            padding: 6px 4px;
            border: 1px solid #ddd;
            background: #f8f9fa;
            border-radius: 4px;
            cursor: pointer;
            font-size: 11px;
            white-space: nowrap;
            transition: all 0.2s;
            color: #222;
            text-align: center;
            min-width: 0;
        }
        @media (max-width: 768px) {
            .ozon-timeslot-modal {
                max-width: 95vw;
                max-height: 90vh;
                overflow-y: auto;
            }
            .ozon-timeslot-content {
                flex-direction: column;
                gap: 16px;
                max-height: calc(90vh - 200px);
                overflow-y: auto;
            }
            .ozon-calendar-wrap {
                width: 100%;
                flex-shrink: 0;
            }
            .ozon-timeslots-wrap {
                width: 100%;
                max-width: 100%;
                flex-shrink: 0;
            }
            .ozon-timeslots-list {
                grid-template-columns: repeat(2, 1fr);
                overflow: visible;
            }
            .ozon-timeslot-btn {
                font-size: 12px;
                padding: 8px 6px;
            }
        }
        @media (max-width: 480px) {
            .ozon-timeslots-list {
                grid-template-columns: 1fr;
            }
        }
        .ozon-timeslot-btn:hover {
            border-color: #005BFF;
            color: #005BFF;
        }
        .ozon-timeslot-btn.selected {
            background: #005BFF;
            color: white;
            border-color: #005BFF;
        }
        .ozon-timeslot-btn.past {
            color: #bbb;
            background: #f0f0f0;
            cursor: not-allowed;
            text-decoration: line-through;
        }
        .ozon-timeslot-btn.past:hover {
            border-color: #ddd;
            color: #bbb;
        }
        .ozon-modal-footnote {
            font-size: 12px;
            color: #666;
            margin: -8px 0 12px 0;
        }
        .ozon-timeslot-mode-buttons {
            display: flex;
            gap: 12px;
            margin-top: 20px;
        }
        .ozon-modal-btn-secondary {
            flex: 1;
            padding: 12px;
            background: #e9ecef;
            color: #333;
            border: none;
            border-radius: 8px;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s;
        }
        .ozon-modal-btn-secondary:hover {
            background: #dee2e6;
        }
        .ozon-modal-btn-secondary.selected {
            background: #005BFF;
            color: white;
        }
        .ozon-modal-btn-secondary.selected:hover {
            background: #0048CC;
            color: white;
        }
        .ozon-timeslot-confirm-wrap {
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid #eee;
        }
        .ozon-timeslot-stop-wrap {
            margin-top: 16px;
        }
        .ozon-timeslot-stop-btn {
            width: 100%;
            padding: 14px 18px;
            border: 1px solid #fecaca;
            border-radius: 10px;
            background: #fef2f2;
            color: #b91c1c;
            font-size: 15px;
            font-weight: 600;
            cursor: pointer;
        }
        .ozon-timeslot-stop-btn:hover {
            background: #fee2e2;
        }
        .ozon-timeslot-stop-btn:disabled {
            opacity: 0.65;
            cursor: not-allowed;
        }
        .ozon-timeslot-info {
            margin-bottom: 16px;
            font-size: 14px;
            color: #666;
        }
        .ozon-timeslot-info div {
            margin-bottom: 4px;
        }

        /* Страница массового бронирования */
        .mass-booking-page { max-width: 900px; margin: 0 auto; padding: 20px 0; }
        #panel-auto-supply .mass-booking-page { max-width: 1220px; }
        .mass-booking-breadcrumb { font-size: 14px; margin-bottom: 16px; }
        .mass-booking-back-btn { color: #005BFF; text-decoration: none; font-weight: 500; }
        .mass-booking-back-btn:hover { text-decoration: underline; }
        .mass-booking-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
        .mass-booking-title { font-size: 22px; font-weight: 600; color: #1f2937; margin: 0; }
        .mass-booking-header-actions { display: flex; gap: 8px; }
        .mass-booking-btn-delete { background: #dc2626 !important; color: #fff !important; border-color: #dc2626 !important; }
        .mass-booking-btn-delete:hover { background: #b91c1c !important; border-color: #b91c1c !important; }
        .mass-booking-block { background: #fff; border-radius: 12px; padding: 20px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
        .mass-booking-block-title { font-size: 16px; font-weight: 600; margin: 0 0 12px 0; color: #374151; }
        .mass-booking-instruction { font-size: 14px; color: #6b7280; margin: 0 0 16px 0; line-height: 1.5; }
        .mass-booking-template-actions { margin-bottom: 16px; }
        .mass-booking-btn-primary { background: #005BFF; color: #fff; border: none; border-radius: 8px; padding: 10px 20px; font-size: 14px; font-weight: 600; cursor: pointer; }
        .mass-booking-btn-primary:hover { background: #0046cc; }
        .mass-booking-btn-secondary { background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 16px; font-size: 14px; cursor: pointer; }
        .mass-booking-btn-secondary:hover { background: #e5e7eb; }
        .mass-booking-upload { margin-bottom: 16px; }
        .mass-booking-drag-drop { border: 2px dashed #d1d5db; border-radius: 12px; padding: 40px 20px; text-align: center; background: #f9fafb; transition: all 0.2s; cursor: pointer; }
        .mass-booking-drag-drop:hover { border-color: #005BFF; background: #f0f7ff; }
        .mass-booking-drag-drop.drag-over { border-color: #005BFF; background: #e0f2fe; }
        .mass-booking-drag-drop-icon { font-size: 48px; margin-bottom: 12px; }
        .mass-booking-drag-drop-text { font-size: 14px; color: #6b7280; margin-bottom: 12px; }
        .mass-booking-file-row { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
        .mass-booking-file-name { font-size: 14px; color: #6b7280; }
        .mass-booking-selected-value { margin-top: 12px; padding: 12px 16px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; display: flex; align-items: center; gap: 10px; }
        .mass-booking-selected-icon { font-size: 20px; }
        .mass-booking-selected-text { font-size: 14px; color: #0048CC; font-weight: 500; }
        .shipment-preference-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
        .shipment-preference-option { border: 1px solid #dbeafe; border-radius: 12px; background: #f8fbff; padding: 16px; text-align: left; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease; }
        .shipment-preference-option:hover { border-color: #93c5fd; background: #eff6ff; }
        .shipment-preference-option.selected { border-color: #005BFF; background: #eff6ff; box-shadow: 0 0 0 2px rgba(0, 91, 255, 0.12); }
        .shipment-preference-option-title { font-size: 15px; font-weight: 700; color: #1f2937; margin-bottom: 6px; }
        .shipment-preference-option-text { font-size: 13px; line-height: 1.5; color: #4b5563; }
        .mass-booking-preview-wrap { margin-top: 16px; }
        .mass-booking-preview-wrap.hidden { display: none !important; }
        .mass-booking-preview-wrap .ozon-table-wrap { margin-bottom: 12px; }
        .mass-booking-preview-actions { display: flex; gap: 12px; align-items: center; }
        .mass-booking-dropoff-label { margin-left: 12px; font-size: 14px; color: #374151; }
        .mass-booking-datetime-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
        .mass-booking-datetime-row label { font-size: 14px; color: #374151; }
        .mass-booking-input { border: 1px solid #e5e7eb; border-radius: 6px; padding: 8px 12px; font-size: 14px; }
        .mass-booking-mode-row { display: flex; gap: 8px; }
        .mass-booking-mode-btn { padding: 8px 16px; font-size: 14px; border-radius: 8px; border: 1px solid #e5e7eb; background: #fff; cursor: pointer; color: #374151; }
        .mass-booking-mode-btn:hover { background: #f9fafb; }
        .mass-booking-mode-btn.active { background: #005BFF; color: #fff; border-color: #005BFF; }
        .mass-booking-submit { margin-top: 24px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
        .mass-booking-btn-create { padding: 12px 32px; font-size: 16px; background: #9ca3af !important; color: #fff !important; cursor: pointer; transition: background 0.2s; }
        .mass-booking-btn-create:hover { background: #6b7280 !important; }
        .mass-booking-btn-create.ready { background: #005BFF !important; }
        .mass-booking-btn-create.ready:hover { background: #0046cc !important; }
        #mass-booking-clear-btn { padding: 10px 24px; font-size: 14px; }
        .mass-booking-dropoff-section { margin-bottom: 20px; }
        .mass-booking-dropoff-section-title { font-weight: 600; font-size: 14px; color: #374151; margin-bottom: 8px; }
        .mass-booking-dropoff-search-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
        .mass-booking-search-input { flex: 1; min-width: 0; max-width: 320px; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 12px; font-size: 14px; }
        .mass-booking-dropoff-results { margin-top: 8px; max-height: 200px; overflow-y: auto; }
        .mass-booking-favorite-item { padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 8px; margin-bottom: 8px; cursor: pointer; font-size: 14px; }
        .mass-booking-favorite-item:hover { background: #f3f4f6; }
        .mass-booking-search-item { padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 8px; margin-bottom: 8px; cursor: pointer; font-size: 14px; }
        .mass-booking-search-item:hover { background: #f3f4f6; }
        .auto-supply-entry-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr); gap: 14px; margin-bottom: 14px; }
        .auto-supply-entry-card { border: 1px solid #e5e7eb; border-radius: 12px; background: #f9fafb; padding: 14px; min-height: 230px; position: relative; }
        .auto-supply-entry-card-title { margin: 0 0 10px 0; font-size: 15px; color: #1f2937; font-weight: 600; }
        .auto-supply-entry-card.locked { background: #f3f4f6; }
        .auto-supply-entry-overlay {
            position: absolute;
            inset: 0;
            border-radius: 12px;
            background: rgba(243, 244, 246, 0.88);
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            font-size: 13px;
            color: #4b5563;
            padding: 12px;
            z-index: 2;
        }
        .auto-supply-manual-search-row { display: flex; gap: 8px; align-items: center; }
        .auto-supply-manual-search-row .ozon-search-input { border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 10px; background: #fff; }
        .auto-supply-manual-search-results { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
        .auto-supply-manual-result-item { display: flex; justify-content: space-between; align-items: center; gap: 8px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; padding: 8px 10px; }
        .auto-supply-manual-result-meta { min-width: 0; font-size: 13px; color: #374151; }
        .auto-supply-manual-result-meta b { display: block; color: #111827; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .auto-supply-manual-result-sub { color: #6b7280; font-size: 12px; margin-top: 2px; }
        .auto-supply-manual-selected-tools { margin-top: 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
        .auto-supply-manual-selected-label { font-size: 13px; color: #374151; font-weight: 600; }
        .auto-supply-qty-input { width: 92px; border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 8px; font-size: 13px; }
        .auto-supply-loading-hint { margin: 8px 0 0 0; color: #6b7280; font-size: 13px; }
        .auto-supply-error-hint { margin: 8px 0 0 0; color: #b91c1c; font-size: 13px; }
        .auto-supply-api-warning { margin: 0 0 10px 0; color: #b91c1c; font-size: 13px; line-height: 1.45; font-weight: 500; }
        .auto-supply-mini-summary { margin-top: 8px; color: #4b5563; font-size: 12px; }
        .auto-supply-preview-delete-btn { padding: 6px 10px; font-size: 12px; }
        .history-mass-table-wrap { position: relative; }
        .history-mass-overlay { position: absolute; inset: 0; background: rgba(255,255,255,0.85); display: flex; align-items: center; justify-content: center; font-size: 16px; color: #374151; z-index: 10; }
        .history-mass-overlay.hidden { display: none !important; }
        .history-mass-wrap.history-mass-deleting .history-mass-overlay { display: flex !important; }
        .history-mass-wrap.history-mass-deleting .ozon-panel-toolbar button { pointer-events: none; opacity: 0.7; }
        .history-mass-wrap.history-mass-deleting .ozon-table-wrap { pointer-events: none; }
        .history-auto-wrap.history-mass-deleting .history-mass-overlay { display: flex !important; }
        .history-auto-wrap.history-mass-deleting .ozon-panel-toolbar button { pointer-events: none; opacity: 0.7; }
        .history-auto-wrap.history-mass-deleting .ozon-table-wrap { pointer-events: none; }
        /* Счётчик выбранных заявок в тулбаре истории */
        .history-selected-count {
            font-size: 13px;
            font-weight: 600;
            color: var(--oz-ink);
            background: var(--oz-blue-bg);
            border-radius: var(--oz-radius);
            padding: 6px 10px;
            white-space: nowrap;
        }

        /* Модалка «Изменить режим бронирования»: раскладываем блоки в 2 колонки — вертикально
           4 карточки не помещались в экран. На узких экранах — одна колонка. */
        .hbm-modal { max-width: 940px; width: min(94vw, 940px); max-height: 92vh; overflow-y: auto; }
        .hbm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; align-items: start; }
        @media (max-width: 820px) { .hbm-grid { grid-template-columns: 1fr; } }
        /* В проекте НЕТ общего правила .hidden — оно объявлено только под конкретные компоненты.
           Внутри этой модалки код прячет элементы классом (пикер точки, кнопка сброса, блок
           результата, поле времени), поэтому правило нужно локально, иначе они видны всегда. */
        #history-booking-mode-modal .hidden { display: none !important; }
        /* То же для окна переноса заявок ЛК: без локального правила пикер точки
           и блок ошибки видны всегда и разрывают сетку карточек. */
        #transfer-booking-modal .hidden,
        #tbk-progress-modal.hidden { display: none !important; }
        /* Прогресс открывается ПОВЕРХ окна переноса. У обоих .ozon-modal-overlay
           z-index:1000, а окно переноса идёт в разметке позже — без этого правила
           прогресс оказывается под ним и не виден. */
        #tbk-progress-modal { z-index: 1100; }

        /* Низ модалки: слева контрольная сводка выбора, справа прогресс и кнопки */
        .hbm-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
        .hbm-footer-actions { flex: 0 0 auto; min-width: 240px; }
        .hbm-summary { flex: 1 1 320px; min-width: 260px; font-size: 13px; line-height: 1.5; }
        .hbm-summary .hbm-sum-title { font-weight: 600; color: var(--oz-ink); margin-bottom: 4px; }
        .hbm-summary .hbm-sum-row { color: var(--oz-mut); }
        .hbm-summary .hbm-sum-row b { color: var(--oz-ink); font-weight: 600; }
        /* Изменяемый параметр подсвечиваем — сразу видно, что реально уедет в заявки */
        .hbm-summary .hbm-sum-row.is-changed b { color: var(--oz-blue); }

        /* Строка истории массового бронирования: 1 строка = 1 склад (группировка по заявке
           с раскрывающимся заголовком убрана — класс оставлен, он держит вид строки). */
        .history-mass-group-child { display: table-row; }
        .history-mass-group-child td { font-size: 13px; color: #4b5563; }

        /* Прогресс-бар создания массового бронирования */
        #mass-booking-progress-modal { z-index: 10000; }
        #mass-booking-progress-modal .ozon-modal { min-width: 400px; max-width: 500px; }
        .mass-booking-progress-content { padding: 20px 0; }
        .mass-booking-progress-text { text-align: center; font-size: 16px; color: #374151; margin-bottom: 24px; }
        .mass-booking-progress-bar-wrap { margin-bottom: 12px; }
        .mass-booking-progress-bar { width: 100%; height: 24px; background: #e5e7eb; border-radius: 12px; overflow: hidden; position: relative; }
        .mass-booking-progress-fill { height: 100%; background: linear-gradient(90deg, #005BFF 0%, #0046cc 100%); border-radius: 12px; transition: width 0.3s ease; width: 0%; }
        .mass-booking-progress-count { text-align: center; font-size: 14px; color: #6b7280; font-weight: 500; }

        .ozon-search-wrap {
            display: flex;
            align-items: center;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            padding: 8px 12px;
            min-width: 380px;
            max-width: 420px;
            position: relative;
        }

        .ozon-search-icon {
            margin-right: 8px;
            opacity: 0.6;
            font-size: 14px;
        }

        .ozon-search-input {
            border: none;
            outline: none;
            font-size: 14px;
            width: 100%;
            padding-right: 26px;
        }
        .search-clear-btn {
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            border: none;
            background: transparent;
            color: #9ca3af;
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            padding: 0;
            width: 18px;
            height: 18px;
            display: none;
            align-items: center;
            justify-content: center;
        }
        .ozon-search-wrap.has-value .search-clear-btn {
            display: inline-flex;
        }
        .search-clear-btn:hover {
            color: #4b5563;
        }
        .ozon-date-filter-input {
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 8px 30px 8px 10px;
            font-size: 13px;
            color: #374151;
            background: #fff;
            min-width: 140px;
        }
        .date-filter-wrap {
            position: relative;
            display: inline-flex;
            align-items: center;
        }
        .date-filter-clear {
            position: absolute;
            right: 8px;
            top: 50%;
            transform: translateY(-50%);
            border: none;
            background: transparent;
            color: #9ca3af;
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            padding: 0;
            width: 18px;
            height: 18px;
            display: none;
        }
        .date-filter-wrap.has-value .date-filter-clear {
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .date-filter-clear:hover {
            color: #4b5563;
        }

        .ozon-table-wrap {
            overflow-x: auto;
            overflow-y: visible;
        }
        .products-table-wrap {
            max-height: calc(100vh - 340px);
            min-height: 320px;
            overflow-y: auto;
            padding-bottom: 24px;
            scroll-padding-bottom: 24px;
            transition: max-height 0.12s ease;
            -webkit-overflow-scrolling: touch;
            touch-action: pan-y;
            overscroll-behavior: contain;
        }
        .products-table-wrap .ozon-orders-table thead th {
            /* Раздел скроллится страницей целиком — липкую шапку убрали, иначе она
               уезжает под липкий верхний навбар (выше по z-index) и глючит. */
            background: #fff;
        }
        /* «Название» — уже колонка с переносом на новую строку, чтобы таблица помещалась */
        .products-table-wrap .ozon-orders-table th.products-name-col { width: 300px; }
        .products-table-wrap .ozon-orders-table td.products-name-cell {
            max-width: 300px;
            white-space: normal;
            word-break: break-word;
            line-height: 1.35;
        }
        /* Сортируемый заголовок «Остаток» */
        .products-table-wrap .ozon-orders-table th.products-stock-col {
            cursor: pointer;
            user-select: none;
            white-space: nowrap;
        }
        .products-table-wrap .ozon-orders-table th.products-stock-col:hover { color: var(--oz-blue); }
        .products-table-wrap .ozon-orders-table td.products-stock-cell {
            text-align: right;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        .products-table-wrap .ozon-orders-table td.products-stock-cell.is-zero { color: #9ca3af; }
        .products-summary {
            margin: 6px 0 10px;
            font-size: 12px;
            color: #6b7280;
            text-align: right;
        }
        .products-filter-select {
            min-width: 220px;
            width: 220px;
            height: 40px;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 0 12px;
            background: #f3f4f6;
            color: #1f2937;
            font-size: 14px;
            font-weight: 600;
        }
        .products-refresh-btn {
            flex: 0 0 auto !important;
            width: auto !important;
            min-width: auto !important;
            padding: 12px 18px !important;
            border-radius: 5px !important;
            font-size: 16px !important;
            font-weight: 500 !important;
            margin-top: 0 !important;
        }
        .products-search-wrap {
            position: relative;
        }
        .products-search-wrap .ozon-search-input {
            padding-right: 28px;
        }
        .products-search-clear {
            position: absolute;
            right: 8px;
            top: 50%;
            transform: translateY(-50%);
            border: none;
            background: transparent;
            color: #9ca3af;
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            padding: 0;
            width: 18px;
            height: 18px;
            display: none;
        }
        .products-search-wrap.has-value .products-search-clear {
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .products-search-clear:hover {
            color: #4b5563;
        }
        .products-scroll-top-btn {
            position: fixed;
            left: 50%;
            transform: translateX(-50%);
            bottom: 22px;
            z-index: 60;
            width: 40px;
            height: 40px;
            min-width: 40px;
            border: none;
            border-radius: 50%;
            background: #005BFF;
            color: #fff;
            font-size: 20px;
            font-weight: 600;
            line-height: 1;
            padding: 0;
            cursor: pointer;
            box-shadow: 0 6px 16px rgba(0, 91, 255, 0.28);
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .products-scroll-top-btn.hidden {
            display: none !important;
        }
        .products-scroll-top-btn:hover {
            background: #0048CC;
        }
        /* Сабтабы Каталог/Упаковка внутри раздела Товары */
        .products-subtabs {
            display: flex;
            gap: 18px;
            flex: 0 0 auto;
            border-bottom: 1px solid var(--oz-line);
            margin-bottom: 14px;
        }
        .products-pane { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
        .packing-dropzone {
            display: inline-flex; align-items: center; gap: 8px;
            flex: 0 0 auto; height: 40px; padding: 0 14px;
            border: 1.5px dashed var(--oz-line); border-radius: 8px;
            background: #fff; color: var(--oz-mut); font-size: 13px; cursor: pointer;
            white-space: nowrap; transition: border-color .15s, background .15s;
        }
        .packing-dropzone:hover { border-color: var(--oz-blue); color: var(--oz-blue); }
        .packing-dropzone.dragover { border-color: var(--oz-blue); background: var(--oz-blue-bg); color: var(--oz-blue); }
        .packing-input-cell { width: 92px; padding: 5px 8px; border: 1px solid var(--oz-line); border-radius: 6px; font-size: 13px; text-align: right; }
        .packing-input-cell:disabled { background: #f3f4f6; color: #9ca3af; }
        #packing-tbody td { vertical-align: middle; }
        /* Раздел Товары скроллится как ОБЫЧНАЯ страница: не лочим вьюпорт, не даём
           боковому меню отдельный скролл. Таблица течёт в документ — скроллится вся
           страница целиком (десктоп ведёт себя так же, как мобильный блок ниже). */
        body.products-page #panel-products .ozon-table-wrap.products-table-wrap {
            max-height: none;
            overflow: visible;
        }
        .need-calc-page {
            max-width: none;
            margin: 0;
            padding: 18px 24px 28px;
        }
        .need-calc-mode-tabs {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0;
            margin-bottom: 20px;
            border-radius: 12px;
            overflow: hidden;
            border: 1px solid #e5e7eb;
        }
        .need-calc-mode-tab {
            padding: 14px 28px;
            border: none;
            background: #f9fafb;
            font-size: 16px;
            font-weight: 700;
            cursor: pointer;
            color: #6b7280;
            transition: all 0.18s ease;
        }
        .need-calc-mode-tab:not(:last-child) {
            border-right: 1px solid #e5e7eb;
        }
        .need-calc-mode-tab.active {
            background: linear-gradient(135deg, #0048CC 0%, #005BFF 100%);
            color: #fff;
            box-shadow: inset 0 -2px 4px rgba(0,0,0,0.1);
        }
        .need-calc-mode-tab:hover:not(.active) {
            background: #eef2ff;
            color: #0048CC;
        }
        .need-calc-page {
            animation: needCalcFadeIn 0.25s ease;
        }
        @keyframes needCalcFadeIn {
            from { opacity: 0; transform: translateY(6px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .need-calc-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 18px;
            margin-bottom: 18px;
        }
        .need-calc-title {
            margin: 0 0 8px;
            font-size: 24px;
            line-height: 1.2;
            color: #111827;
        }
        .need-calc-subtitle {
            margin: 0;
            color: #6b7280;
            font-size: 14px;
            line-height: 1.45;
            max-width: 760px;
        }
        .need-calc-badge {
            flex: 0 0 auto;
            border: 1px solid #bfdbfe;
            background: #eff6ff;
            color: #0048CC;
            border-radius: 6px;
            padding: 8px 10px;
            font-size: 12px;
            font-weight: 700;
            text-transform: uppercase;
        }
        .need-calc-layout {
            display: grid;
            grid-template-columns: 1fr;
            gap: 18px;
        }
        .need-calc-results {
            max-height: calc(100vh - 140px);
            overflow-y: auto;
            padding-right: 4px;
        }
        .need-calc-block {
            background: #fff;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 18px;
            box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
        }
        .need-calc-block + .need-calc-block {
            margin-top: 18px;
        }
        .need-calc-block-title {
            margin: 0 0 14px;
            font-size: 16px;
            color: #1f2937;
        }
        .need-calc-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: 12px;
        }
        .need-calc-field {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .need-calc-field label {
            display: inline-flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 6px;
            font-size: 13px;
            font-weight: 700;
            color: #374151;
        }
        .need-calc-help {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 auto;
            width: 18px;
            height: 18px;
            border: 1px solid #c7d2fe;
            border-radius: 50%;
            background: #eef2ff;
            color: #0048CC;
            font-size: 12px;
            font-weight: 800;
            line-height: 1;
            cursor: help;
        }
        .need-calc-help::before,
        .need-calc-help::after {
            position: absolute;
            left: 50%;
            pointer-events: none;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
            z-index: 80;
        }
        .need-calc-help::before {
            content: "";
            bottom: calc(100% + 4px);
            width: 10px;
            height: 10px;
            background: #111827;
            transform: translate(-50%, 4px) rotate(45deg);
        }
        .need-calc-help::after {
            content: attr(data-tip);
            bottom: calc(100% + 9px);
            width: max-content;
            max-width: 300px;
            min-width: 220px;
            padding: 10px 12px;
            border-radius: 8px;
            background: #111827;
            color: #fff;
            box-shadow: 0 12px 26px rgba(15, 23, 42, 0.24);
            font-size: 12px;
            font-weight: 500;
            line-height: 1.45;
            text-align: left;
            white-space: normal;
            overflow-wrap: break-word;
            transform: translate(-50%, 4px);
        }
        .need-calc-help:hover::before,
        .need-calc-help:hover::after,
        .need-calc-help:focus-visible::before,
        .need-calc-help:focus-visible::after {
            opacity: 1;
            visibility: visible;
            transform: translate(-50%, 0) rotate(45deg);
        }
        .need-calc-help:hover::after,
        .need-calc-help:focus-visible::after {
            transform: translate(-50%, 0);
        }
        .need-calc-help:focus-visible {
            outline: 2px solid #93c5fd;
            outline-offset: 2px;
        }
        .need-calc-field input[type="number"],
        .need-calc-field input[type="text"],
        .need-calc-file {
            width: 100%;
            min-width: 0;
            border: 1px solid #d1d5db;
            border-radius: 6px;
            padding: 9px 10px;
            font-size: 14px;
            color: #111827;
            background: #fff;
        }
        .need-calc-file {
            cursor: pointer;
        }
        .need-calc-checks {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            margin-top: 14px;
        }
        .need-calc-check {
            padding: 10px;
            border: 1px solid #e5e7eb;
            border-radius: 6px;
            background: #f9fafb;
            font-size: 13px;
            color: #374151;
        }
        .need-calc-check-header {
            display: flex;
            gap: 8px;
            align-items: flex-start;
            cursor: pointer;
        }
        .need-calc-check-header input {
            margin-top: 2px;
        }
        .need-calc-check-text {
            min-width: 0;
            display: block;
            line-height: 1.35;
        }
        .need-calc-check-text .need-calc-help {
            margin-left: 6px;
            vertical-align: text-bottom;
        }
        .need-calc-option-panel {
            display: none;
            margin-top: 10px;
            padding: 12px;
            border: 1px solid #dbeafe;
            border-radius: 6px;
            background: #fff;
        }
        .need-calc-option-panel.visible {
            display: block;
        }
        .need-calc-option-panel .need-calc-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .need-calc-option-panel .need-calc-field + .need-calc-field {
            margin-top: 0;
        }
        .need-calc-option-hint {
            margin: 0 0 6px;
            color: #9ca3af;
            font-size: 11px;
            line-height: 1.3;
            font-style: italic;
        }
        .need-calc-cluster-box {
            margin-top: 12px;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            background: #f9fafb;
            padding: 12px;
        }
        .need-calc-cluster-head {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: center;
            margin-bottom: 10px;
        }
        .need-calc-cluster-title {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: #374151;
            font-size: 13px;
            font-weight: 800;
        }
        .need-calc-cluster-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
            justify-content: flex-end;
        }
        .need-calc-cluster-action {
            border: 1px solid #bfdbfe;
            border-radius: 6px;
            background: #eff6ff;
            color: #0048CC;
            cursor: pointer;
            font-size: 12px;
            font-weight: 700;
            padding: 6px 8px;
        }
        .need-calc-cluster-action:hover {
            background: #dbeafe;
        }
        .need-calc-cluster-count {
            color: #6b7280;
            font-size: 12px;
            white-space: nowrap;
        }
        .need-calc-cluster-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 8px;
            max-height: 240px;
            overflow: auto;
            padding-right: 4px;
        }
        .need-calc-cluster-item {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            min-width: 0;
            padding: 8px;
            border: 1px solid #e5e7eb;
            border-radius: 6px;
            background: #fff;
            color: #374151;
            cursor: pointer;
            font-size: 12px;
            line-height: 1.35;
        }
        .need-calc-cluster-item input {
            margin-top: 1px;
        }
        .need-calc-cluster-item span {
            min-width: 0;
            overflow-wrap: anywhere;
        }
        .need-calc-actions {
            display: flex;
            gap: 10px;
            align-items: center;
            flex-wrap: wrap;
            margin-top: 16px;
        }
        .need-calc-btn-primary,
        .need-calc-btn-secondary {
            border: none;
            border-radius: 6px;
            padding: 10px 16px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 40px;
        }
        .need-calc-btn-primary {
            background: #005bff;
            color: #fff;
        }
        .need-calc-btn-primary:hover:not(:disabled) {
            background: #0046cc;
        }
        .need-calc-btn-primary:disabled {
            background: #9ca3af;
            cursor: not-allowed;
        }
        .need-calc-btn-secondary {
            background: #f3f4f6;
            color: #374151;
            border: 1px solid #d1d5db;
        }
        .need-calc-btn-download {
            background: #16a34a;
            color: #fff;
            border: none;
        }
        .need-calc-btn-download:hover:not(:disabled) {
            background: #128038;
        }
        .need-calc-status {
            display: none;
            margin-top: 14px;
            border-radius: 6px;
            padding: 12px;
            font-size: 14px;
            line-height: 1.45;
            /* Сообщения бэкенда бывают многострочными (напр. «что делать» списком) —
               textContent сохраняет \n, а pre-line даёт им отобразиться переносами. */
            white-space: pre-line;
        }
        .need-calc-status.error {
            display: block;
            background: #fef2f2;
            color: #b91c1c;
            border: 1px solid #fecaca;
        }
        .need-calc-status.success {
            display: block;
            background: #ecfdf5;
            color: #047857;
            border: 1px solid #a7f3d0;
        }
        .need-calc-status.info {
            display: block;
            background: #eff6ff;
            color: #0048CC;
            border: 1px solid #bfdbfe;
        }
        .need-calc-progress {
            display: none;
            margin-top: 14px;
        }
        .need-calc-progress.visible {
            display: block;
        }
        .need-calc-progress-track {
            height: 10px;
            border-radius: 999px;
            background: #e5e7eb;
            overflow: hidden;
        }
        .need-calc-progress-fill {
            height: 100%;
            width: 0%;
            background: #005bff;
            border-radius: 999px;
            transition: width 0.25s ease;
        }
        .need-calc-progress-text {
            margin-top: 8px;
            font-size: 13px;
            color: #6b7280;
        }
        .need-calc-summary-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }
        .need-calc-summary-item {
            border: 1px solid #e5e7eb;
            border-radius: 6px;
            padding: 10px;
            background: #f9fafb;
        }
        .need-calc-summary-label {
            font-size: 12px;
            color: #6b7280;
            margin-bottom: 4px;
        }
        .need-calc-summary-value {
            font-size: 18px;
            font-weight: 800;
            color: #111827;
        }
        .need-calc-preview-head {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: center;
            margin-bottom: 10px;
        }
        .need-calc-preview-title {
            margin: 0;
            font-size: 16px;
            color: #1f2937;
        }
        .need-calc-preview-meta {
            color: #6b7280;
            font-size: 12px;
        }
        .need-calc-preview-table-wrap {
            max-height: 520px;
            overflow: auto;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
        }
        .need-calc-preview-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 12px;
        }
        .need-calc-preview-table th,
        .need-calc-preview-table td {
            padding: 8px 10px;
            border-bottom: 1px solid #eef2f7;
            white-space: nowrap;
            text-align: left;
        }
        .need-calc-preview-table th {
            position: sticky;
            top: 0;
            background: #f8fafc;
            z-index: 1;
            color: #374151;
            font-weight: 700;
        }
        .need-calc-empty {
            color: #9ca3af;
            font-size: 14px;
            padding: 16px 0;
        }
        @media (max-width: 980px) {
            .need-calc-layout {
                grid-template-columns: 1fr;
            }
            .need-calc-head {
                flex-direction: column;
            }
        }
        @media (max-width: 640px) {
            .need-calc-grid,
            .need-calc-checks,
            .need-calc-summary-grid {
                grid-template-columns: 1fr;
            }
            .need-calc-option-panel .need-calc-grid {
                grid-template-columns: 1fr;
            }
            .need-calc-cluster-head {
                align-items: flex-start;
                flex-direction: column;
            }
            .need-calc-cluster-actions {
                justify-content: flex-start;
            }
            .need-calc-cluster-list {
                grid-template-columns: 1fr;
            }
        }
        .ozon-table-wrap thead {
            position: relative;
        }

        .ozon-orders-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
        }

        .ozon-orders-table th {
            text-align: left;
            padding: 12px 14px;
            font-weight: 600;
            color: #222;
            border-bottom: 2px solid #e5e5e5;
            white-space: nowrap;
        }

        .ozon-orders-table th .th-sub {
            font-weight: 400;
            color: #666;
        }

        .ozon-orders-table td {
            padding: 12px 14px;
            border-bottom: 1px solid #eee;
        }

        .ozon-orders-table tbody tr:hover {
            background: #f9f9f9;
        }

        .ozon-empty {
            text-align: center;
            color: #888;
            padding: 40px !important;
        }

        .ozon-order-link {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: #005BFF;
            text-decoration: none;
            cursor: pointer;
            background: none;
            border: none;
            padding: 0;
            font: inherit;
            font-weight: 600;
        }

        .ozon-order-link:hover {
            text-decoration: underline;
        }

        .ozon-order-workbench-modal {
            max-width: 1180px;
            width: min(96vw, 1180px);
            max-height: min(92vh, 980px);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            padding: 0;
        }
        .ozon-order-workbench-head {
            padding: 28px 32px 20px;
            border-bottom: 1px solid #edf0f5;
            background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
        }
        .ozon-order-workbench-head-top {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
            margin-bottom: 12px;
            padding-right: 56px;
        }
        .ozon-order-workbench-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 12px;
            border-radius: 999px;
            background: #eef4ff;
            color: #0048CC;
            font-size: 13px;
            font-weight: 600;
        }
        .ozon-order-workbench-meta {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
        }
        .ozon-order-workbench-meta-card {
            padding: 14px 16px;
            border: 1px solid #e7ebf3;
            border-radius: 12px;
            background: #fff;
        }
        .ozon-order-workbench-meta-label {
            display: block;
            font-size: 12px;
            color: #6b7280;
            margin-bottom: 6px;
        }
        .ozon-order-workbench-meta-value {
            color: #1f2937;
            font-size: 15px;
            line-height: 1.45;
            font-weight: 600;
            word-break: break-word;
        }
        .ozon-order-workbench-tabs {
            display: flex;
            gap: 10px;
            padding: 18px 32px 0;
            background: #fff;
        }
        .ozon-order-workbench-tab {
            border: none;
            background: #eef2f7;
            color: #4b5563;
            border-radius: 10px 10px 0 0;
            padding: 12px 18px;
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
        }
        .ozon-order-workbench-tab.active {
            background: #005BFF;
            color: #fff;
        }
        .ozon-order-workbench-body {
            padding: 24px 32px 28px;
            overflow: auto;
            background: #fff;
        }
        .ozon-order-workbench-panel {
            display: none;
        }
        .ozon-order-workbench-panel.active {
            display: block;
        }
        .ozon-order-workbench-note {
            padding: 16px 18px;
            border-radius: 12px;
            border: 1px solid #dbeafe;
            background: #eff6ff;
            color: #005BFF;
            font-size: 14px;
            line-height: 1.6;
            margin-bottom: 18px;
        }
        .ozon-order-workbench-note.warning {
            border-color: #fde68a;
            background: #fffbeb;
            color: #92400e;
        }
        .ozon-order-workbench-items-table th,
        .ozon-order-workbench-items-table td {
            padding: 12px 14px;
            border-bottom: 1px solid #edf0f5;
            text-align: left;
            vertical-align: top;
        }
        .ozon-order-workbench-items-table th {
            font-size: 13px;
            color: #4b5563;
            font-weight: 700;
            background: #f8fafc;
        }
        .ozon-order-workbench-stats {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
            margin-bottom: 18px;
        }
        .ozon-order-workbench-stat {
            padding: 14px 16px;
            border: 1px solid #e7ebf3;
            border-radius: 12px;
            background: #f8fbff;
        }
        .ozon-order-workbench-stat-label {
            display: block;
            font-size: 12px;
            color: #6b7280;
            margin-bottom: 6px;
        }
        .ozon-order-workbench-stat-value {
            color: #111827;
            font-size: 19px;
            font-weight: 800;
        }
        .ozon-order-workbench-item-name {
            color: #111827;
            font-size: 14px;
            font-weight: 700;
            line-height: 1.45;
        }
        .ozon-order-workbench-item-subtext {
            margin-top: 4px;
            color: #6b7280;
            font-size: 12px;
            line-height: 1.5;
        }
        .ozon-order-workbench-item-source {
            display: inline-flex;
            align-items: center;
            padding: 5px 10px;
            border-radius: 999px;
            background: #eef2ff;
            color: #4338ca;
            font-size: 12px;
            font-weight: 700;
            white-space: nowrap;
        }
        .ozon-order-workbench-empty {
            padding: 22px;
            border: 1px dashed #d1d5db;
            border-radius: 12px;
            text-align: center;
            color: #6b7280;
            background: #fafafa;
        }
        .ozon-order-workbench-cargo-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
            gap: 18px;
        }
        .ozon-order-workbench-card {
            border: 1px solid #e7ebf3;
            border-radius: 14px;
            background: #fff;
            padding: 20px;
        }
        .ozon-order-workbench-card h3 {
            font-size: 18px;
            font-weight: 700;
            color: #111827;
            margin: 0 0 12px;
        }
        .ozon-order-workbench-list {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .ozon-order-workbench-list-item {
            padding: 12px 14px;
            border: 1px solid #edf0f5;
            border-radius: 12px;
            background: #fafcff;
        }
        .ozon-order-workbench-list-item strong {
            display: block;
            color: #111827;
            margin-bottom: 4px;
        }
        .ozon-order-workbench-list-item span {
            display: block;
            color: #6b7280;
            font-size: 13px;
            line-height: 1.5;
        }
        .ozon-order-workbench-rule-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
        .ozon-order-workbench-rule-item {
            padding: 12px 14px;
            border: 1px solid #edf0f5;
            border-radius: 12px;
            background: #fafcff;
        }
        .ozon-order-workbench-rule-title {
            display: block;
            color: #111827;
            font-size: 13px;
            font-weight: 700;
            margin-bottom: 4px;
        }
        .ozon-order-workbench-rule-value {
            color: #6b7280;
            font-size: 13px;
            line-height: 1.5;
        }
        .ozon-order-workbench-cargo-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 5px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
            background: #eef2ff;
            color: #4338ca;
        }
        .ozon-order-workbench-cargo-badge.good {
            background: #dcfce7;
            color: #166534;
        }
        .ozon-order-workbench-cargo-badge.bad {
            background: #fee2e2;
            color: #b91c1c;
        }
        .ozon-order-workbench-editor-tools {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
            margin-bottom: 16px;
        }
        .ozon-order-workbench-editor-count {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 12px;
            border: 1px solid #dbeafe;
            border-radius: 12px;
            background: #f8fbff;
        }
        .ozon-order-workbench-editor-count input {
            width: 72px;
            border: 1px solid #d1d5db;
            border-radius: 8px;
            padding: 8px 10px;
            font-size: 14px;
        }
        .ozon-order-workbench-editor-btn {
            border: 1px solid #bfdbfe;
            background: #eff6ff;
            color: #0048CC;
            border-radius: 10px;
            padding: 11px 14px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
        }
        .ozon-order-workbench-editor-btn.secondary {
            border-color: #d1d5db;
            background: #f8fafc;
            color: #374151;
        }
        .ozon-order-workbench-editor-btn.danger {
            border-color: #fecaca;
            background: #fef2f2;
            color: #b91c1c;
        }
        .ozon-order-workbench-editor-btn:disabled {
            opacity: 0.55;
            cursor: not-allowed;
        }
        .ozon-order-workbench-cargo-card {
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            background: #fafcff;
            padding: 14px 16px;
        }
        .ozon-order-workbench-cargo-card-head {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: flex-start;
            margin-bottom: 8px;
        }
        .ozon-order-workbench-cargo-card-title {
            color: #111827;
            font-size: 14px;
            font-weight: 800;
        }
        .ozon-order-workbench-cargo-card-subtext {
            color: #6b7280;
            font-size: 12px;
            line-height: 1.5;
        }
        .ozon-order-workbench-assignment-table th,
        .ozon-order-workbench-assignment-table td {
            padding: 12px 14px;
            border-bottom: 1px solid #edf0f5;
            text-align: left;
            vertical-align: top;
        }
        .ozon-order-workbench-assignment-table th {
            font-size: 13px;
            color: #4b5563;
            font-weight: 700;
            background: #f8fafc;
        }
        .ozon-order-workbench-assignment-select {
            width: 100%;
            min-width: 180px;
            border: 1px solid #d1d5db;
            border-radius: 10px;
            padding: 9px 10px;
            font-size: 14px;
            background: #fff;
        }
        .ozon-order-workbench-expiry-tools {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
            margin: 0 0 14px;
        }
        .ozon-order-workbench-expiry-bulk {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 12px;
            border: 1px solid #dbeafe;
            border-radius: 12px;
            background: #f8fbff;
        }
        .ozon-order-workbench-expiry-input {
            width: 100%;
            min-width: 132px;
            border: 1px solid #d1d5db;
            border-radius: 10px;
            padding: 9px 10px;
            font-size: 14px;
            background: #fff;
        }
        .ozon-order-workbench-expiry-input.invalid {
            border-color: #fca5a5;
            background: #fff5f5;
            color: #991b1b;
        }
        .ozon-order-workbench-expiry-field {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 8px;
        }
        .ozon-order-workbench-expiry-input-wrap {
            position: relative;
            flex: 1;
        }
        .ozon-order-workbench-expiry-field .ozon-order-workbench-expiry-input {
            width: 100%;
            padding-right: 36px;
        }
        .ozon-order-workbench-expiry-clear {
            position: absolute;
            top: 50%;
            right: 10px;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            border: none;
            background: transparent;
            color: #4b5563;
            font-size: 22px;
            line-height: 1;
            padding: 0;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .ozon-order-workbench-expiry-clear.hidden {
            display: none;
        }
        .ozon-order-workbench-expiry-calendar {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            min-width: 44px;
            height: 44px;
            border: 1px solid #d1d5db;
            border-radius: 10px;
            background: #fff;
            overflow: hidden;
            cursor: pointer;
        }
        .ozon-order-workbench-expiry-calendar input[type="date"] {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            cursor: pointer;
            border: none;
        }
        .ozon-order-workbench-expiry-calendar span {
            pointer-events: none;
            font-size: 18px;
            line-height: 1;
        }
        .ozon-order-workbench-expiry-field .ozon-order-workbench-editor-btn {
            padding: 9px 11px;
            min-width: 44px;
        }
        .ozon-order-workbench-expiry-hint {
            color: #6b7280;
            font-size: 12px;
            line-height: 1.5;
            margin-top: 6px;
        }
        .ozon-order-workbench-footer {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 12px;
            padding: 0 32px 28px;
            background: #fff;
        }
        .ozon-order-workbench-footer-status {
            flex: 1;
            font-size: 14px;
            color: #6b7280;
            line-height: 1.45;
        }
        .ozon-order-workbench-footer-status.success {
            color: #0f766e;
            font-weight: 600;
        }
        .ozon-order-workbench-footer-status.error {
            color: #b91c1c;
            font-weight: 600;
        }
        .ozon-order-workbench-footer .ozon-modal-btn-cancel,
        .ozon-order-workbench-footer .ozon-modal-save {
            min-width: 220px;
        }

        @media (max-width: 960px) {
            .ozon-order-workbench-meta {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .ozon-order-workbench-stats {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .ozon-order-workbench-cargo-grid {
                grid-template-columns: 1fr;
            }
            .ozon-order-workbench-rule-grid {
                grid-template-columns: 1fr;
            }
        }
        @media (max-width: 640px) {
            .ozon-order-workbench-head,
            .ozon-order-workbench-tabs,
            .ozon-order-workbench-body,
            .ozon-order-workbench-footer {
                padding-left: 18px;
                padding-right: 18px;
            }
            .ozon-order-workbench-meta {
                grid-template-columns: 1fr;
            }
            .ozon-order-workbench-stats {
                grid-template-columns: 1fr;
            }
            .ozon-order-workbench-footer {
                flex-direction: column-reverse;
            }
            .ozon-order-workbench-footer-status {
                width: 100%;
            }
            .ozon-order-workbench-footer .ozon-modal-btn-cancel,
            .ozon-order-workbench-footer .ozon-modal-save {
                width: 100%;
                min-width: 0;
            }
        }

        .ozon-status-badge {
            display: inline-block;
            padding: 4px 10px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 500;
        }
        .mb-status-clickable {
            cursor: pointer;
            border-bottom: 1px dotted currentColor;
        }
        .mb-status-clickable:hover { opacity: 0.75; }

        .ozon-status-badge.yellow {
            background: #FFF3CD;
            color: #856404;
        }

        .ozon-status-badge.green {
            background: #d4edda;
            color: #155724;
        }

        .ozon-status-badge.blue {
            background: #cce5ff;
            color: #004085;
        }

        .ozon-status-badge.gray {
            background: #e9ecef;
            color: #495057;
        }
        .ozon-status-badge.red {
            background: #fee2e2;
            color: #b91c1c;
        }
        .ozon-status-badge.has-rejected {
            cursor: pointer;
        }
        .ozon-status-badge.has-rejected:hover {
            opacity: 0.82;
        }
        .rejected-count-pill {
            display: inline-block;
            margin-left: 5px;
            background: #fef3c7;
            color: #92400e;
            border-radius: 10px;
            padding: 1px 6px;
            font-size: 11px;
            font-weight: 600;
            vertical-align: middle;
            cursor: pointer;
        }
        .rejected-items-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            margin-top: 10px;
        }
        .rejected-items-table th {
            text-align: left;
            padding: 6px 10px;
            border-bottom: 2px solid #e5e7eb;
            color: #6b7280;
            font-weight: 600;
            font-size: 12px;
        }
        .rejected-items-table td {
            padding: 6px 10px;
            border-bottom: 1px solid #f3f4f6;
            color: #374151;
        }
        .rejected-items-table tr:last-child td { border-bottom: none; }
        .rejected-summary {
            font-size: 13px;
            color: #6b7280;
            margin-bottom: 8px;
        }
        .rejected-summary strong { color: #374151; }
        .ozon-order-row-expiry-warning td {
            background: rgba(220, 38, 38, 0.035);
        }
        .ozon-orders-table tbody tr.ozon-order-row-expiry-warning:hover {
            background: #fff1f2;
        }
        .ozon-orders-table tbody tr.ozon-order-row-expiry-warning td:first-child {
            box-shadow: inset 4px 0 0 #dc2626;
        }
        .ozon-expiry-warning-note {
            margin-top: 6px;
            font-size: 11px;
            line-height: 1.35;
            color: #b91c1c;
            font-weight: 600;
        }

        /* Редактируемые колонки (Дата отгрузки, Автомобиль) */
        .ozon-editable-col {
            background: rgba(0, 91, 255, 0.06);
            position: relative;
        }
        .ozon-orders-table thead th.ozon-editable-col {
            color: #005BFF;
            font-weight: 600;
        }
        .ozon-orders-table thead th.ozon-editable-col::after {
            content: 'редактируемое';
            font-weight: 400;
            font-size: 11px;
            color: #666;
            display: block;
            margin-top: 2px;
        }
        .ozon-orders-table tbody td.ozon-editable-col {
            background: rgba(0, 91, 255, 0.04);
            color: #005BFF;
        }
        .ozon-orders-table tbody td.ozon-editable-col .th-sub {
            color: #005BFF;
            opacity: 0.9;
        }
        .ozon-orders-table tbody tr:hover td.ozon-editable-col {
            background: rgba(0, 91, 255, 0.1);
        }

        /* Адаптивность */
        @media (max-width: 768px) {
            body { padding: 8px; }
            .top-nav {
                flex-wrap: wrap;
                gap: 12px;
                padding: 12px 16px;
            }
            .nav-logo { font-size: 18px; }
            .store-selector-wrap {
                flex-wrap: wrap;
                width: 100%;
            }
            .account-selector { width: 100%; min-width: 0; }
            .content-row {
                flex-direction: column;
            }
            .user-info, .account-info, .favorites-dropoffs-info, .drivers-info, .content-cards-column {
                max-width: none;
                width: 100%;
                order: unset;
            }
            .content-row-center {
                display: none;
            }
            .top-menu {
                flex-wrap: wrap;
                padding: 8px 4px;
            }
            .top-menu-item {
                flex: 1;
                min-width: 100px;
                padding: 10px 8px;
                font-size: 14px;
            }
            .main-tabs {
                flex-wrap: wrap;
                padding: 8px 4px;
            }
            .main-tab {
                flex: 1;
                min-width: 120px;
                padding: 12px 8px;
                font-size: 14px;
                min-height: 44px;
            }
            .sub-tabs {
                flex-wrap: wrap;
                padding: 8px 4px;
            }
            .sub-tab {
                flex: 1;
                min-width: 140px;
                padding: 12px 6px;
                font-size: 13px;
                min-height: 44px;
            }
            .tab-panel {
                padding: 12px;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
            }
            .ozon-table-wrap {
                -webkit-overflow-scrolling: touch;
            }
            .ozon-orders-table {
                font-size: 12px;
            }
            .ozon-orders-table th,
            .ozon-orders-table td {
                padding: 8px 6px;
            }
            .ozon-search-wrap {
                max-width: none;
                width: 100%;
            }
            .auto-supply-entry-layout {
                grid-template-columns: 1fr;
            }
            .auto-supply-entry-card {
                min-height: auto;
            }
            .auto-supply-manual-search-row {
                flex-wrap: wrap;
            }
            body.products-page {
                overflow: auto !important;
            }
            body.products-page #content {
                height: auto !important;
                overflow: visible !important;
            }
            body.products-page .app-layout {
                height: auto !important;
                min-height: 0 !important;
            }
            body.products-page .main-wrap {
                overflow: visible !important;
                min-height: 0 !important;
            }
            body.products-page #panel-products {
                height: auto !important;
                min-height: 0 !important;
            }
            body.products-page #panel-products .ozon-table-wrap.products-table-wrap {
                max-height: none !important;
                min-height: 0 !important;
            }
            .products-scroll-top-btn {
                bottom: 14px;
            }
        }

        @media (max-width: 480px) {
            body { padding: 6px; }
            .header h1 { font-size: 22px; }
            .auth-container { padding: 20px; }
            .main-tab { min-width: 100px; font-size: 13px; }
            .sub-tab { min-width: 120px; font-size: 12px; }
            .ozon-status-badge { font-size: 11px; padding: 3px 8px; }
            .auth-footer-links {
                flex-direction: column;
                align-items: flex-start;
                gap: 10px;
            }
        }
        
        .header {
            text-align: center;
            margin-bottom: 30px;
        }
        
        .header h1 {
            color: #333;
            font-size: 28px;
            margin-bottom: 10px;
        }
        
        /* Форма входа/регистрации */
        .auth-container {
            max-width: 640px;
            margin: 50px auto;
            background: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .auth-tabs {
            display: flex;
            margin-bottom: 20px;
            border-bottom: 2px solid #eee;
        }

        .auth-footer-links {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 16px;
            flex-wrap: wrap;
            margin-top: 22px;
            padding-top: 18px;
            border-top: 1px solid #e5e7eb;
        }

        .auth-footer-links a {
            color: #005BFF;
            font-size: 14px;
            font-weight: 500;
            text-decoration: none;
        }

        .auth-footer-links a:hover {
            text-decoration: underline;
        }
        
        .auth-tab {
            flex: 1;
            padding: 10px;
            text-align: center;
            cursor: pointer;
            border: none !important;
            background: none !important;
            font-size: 16px;
            color: #666;
            transition: all 0.3s;
            width: auto;
            border-radius: 0;
        }
        .auth-tab:hover {
            background: none !important;
            color: #005BFF;
        }
        .auth-tab:focus {
            outline: none;
            background: none !important;
        }
        .auth-tab.active {
            color: #005BFF;
            border-bottom: 2px solid #005BFF !important;
            margin-bottom: -2px;
        }
        
        .auth-form {
            display: none;
        }
        
        .auth-form.active {
            display: block;
        }
        .auth-tariffs-list {
            display: grid;
            gap: 10px;
        }
        .auth-tariff-card {
            border: 1px solid #dbeafe;
            border-radius: 8px;
            padding: 12px;
            background: #f8fbff;
        }
        .auth-tariff-title {
            font-weight: 700;
            color: #005BFF;
            margin-bottom: 6px;
            font-size: 14px;
        }
        .auth-tariff-price {
            color: #111827;
            font-weight: 700;
            margin-bottom: 4px;
            font-size: 15px;
        }
        .auth-tariff-duration {
            color: #6b7280;
            font-size: 13px;
        }
        .auth-link-btn {
            margin-top: 10px;
            padding: 0;
            border: none;
            background: none;
            color: #005BFF;
            font-size: 14px;
            cursor: pointer;
            text-decoration: underline;
        }
        .auth-link-btn:hover {
            color: #0048CC;
        }
        .reset-password-box {
            display: none;
            margin-top: 14px;
            padding: 14px;
            border: 1px solid #dbeafe;
            border-radius: 8px;
            background: #f8fbff;
        }
        .reset-password-box.active {
            display: block;
        }
        .reset-password-actions {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }
        .reset-password-actions button {
            width: auto;
            margin-top: 0;
            padding: 10px 14px;
            font-size: 14px;
        }

        .auth-notes {
            background: #eff6ff;
            border: 2px solid #3b82f6;
            border-radius: 8px;
            padding: 16px 16px 16px 48px;
            margin-bottom: 20px;
            font-size: 13px;
            color: #0048CC;
            line-height: 1.6;
            position: relative;
        }
        .auth-notes::before {
            content: "💡";
            position: absolute;
            top: 16px;
            left: 16px;
            font-size: 20px;
        }

        .auth-notes strong {
            color: #005BFF;
            font-weight: 600;
        }

        .auth-notes a {
            color: #005BFF;
            text-decoration: none;
        }

        .auth-notes a:hover {
            text-decoration: underline;
        }

        .auth-notes .example {
            margin-top: 8px;
            margin-bottom: 12px;
            font-size: 12px;
            color: #0048CC;
            background: #fff;
            padding: 10px;
            border-radius: 6px;
            border-left: 3px solid #3b82f6;
        }
        .auth-notes .auth-steps {
            margin: 8px 0 0 0;
            padding-left: 20px;
            color: #0048CC;
        }
        .auth-notes .auth-steps li {
            margin-bottom: 6px;
        }

        .auth-legal-box {
            margin: 18px 0 14px;
            padding: 14px;
            border: 1px solid #dbeafe;
            border-radius: 10px;
            background: #f8fbff;
        }
        .auth-legal-box.accepted-via-bot {
            border-color: #86efac;
            background: #f0fdf4;
        }
        .auth-legal-box.error {
            border-color: #dc2626;
            box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
        }
        .auth-legal-title {
            font-size: 14px;
            font-weight: 700;
            color: #005BFF;
            margin-bottom: 8px;
        }
        .auth-legal-box.accepted-via-bot .auth-legal-title,
        .auth-legal-box.accepted-via-bot .auth-legal-note {
            color: #166534;
        }
        .auth-legal-note {
            margin: 0 0 12px;
            color: #475569;
            font-size: 12px;
            line-height: 1.55;
        }
        .auth-legal-check {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            margin-bottom: 10px;
            font-size: 13px;
            color: #1f2937;
            line-height: 1.5;
        }
        .auth-legal-check:last-of-type {
            margin-bottom: 0;
        }
        .auth-legal-check input {
            width: 16px;
            height: 16px;
            margin-top: 2px;
            flex-shrink: 0;
        }
        .auth-legal-check a,
        .auth-legal-links a {
            color: #005BFF;
            text-decoration: none;
        }
        .auth-legal-check a:hover,
        .auth-legal-links a:hover {
            text-decoration: underline;
        }
        .auth-legal-links {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-top: 12px;
            font-size: 12px;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: 500;
            color: #333;
        }
        
        .form-group input {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 16px;
        }
        
        .form-group input:focus {
            outline: none;
            border-color: #005BFF;
        }
        
        button {
            width: 100%;
            background: #005BFF;
            color: white;
            border: none;
            padding: 12px;
            border-radius: 5px;
            cursor: pointer;
            font-size: 16px;
            font-weight: 500;
            transition: background 0.3s;
        }
        
        button:hover {
            background: #2878c4;
        }
        
        button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }
        
        /* Layout: sidebar + main */
        .app-layout {
            display: flex;
            min-height: 100vh;
            gap: 0;
        }
        .sidebar {
            width: 240px;
            flex-shrink: 0;
            background: white;
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            transition: width 0.25s ease;
        }
        .sidebar.collapsed {
            width: 64px;
        }
        .sidebar-header {
            display: flex;
            align-items: center;
            padding: 14px 16px;
            gap: 10px;
            min-height: 52px;
            border-bottom: 1px solid #f0f0f0;
        }
        .sidebar-logo-icon {
            flex-shrink: 0;
            width: 28px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
        }
        .sidebar-logo-text {
            white-space: nowrap;
            overflow: hidden;
            font-size: 18px;
            font-weight: 700;
            color: #005BFF;
            letter-spacing: 0.02em;
            opacity: 1;
            transition: opacity 0.2s ease;
        }
        .sidebar.collapsed .sidebar-logo-text {
            opacity: 0;
            width: 0;
            overflow: hidden;
        }
        .sidebar.collapsed .sidebar-logo-icon {
            opacity: 0;
            width: 0;
            overflow: hidden;
            min-width: 0;
        }
        .sidebar.collapsed .sidebar-header {
            justify-content: center;
        }
        .sidebar-toggle {
            margin-left: auto;
            flex-shrink: 0;
            width: 32px;
            height: 32px;
            border: none;
            background: #f3f4f6;
            border-radius: 8px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            color: #374151;
            transition: background 0.2s, color 0.2s;
        }
        .sidebar-toggle:hover {
            background: #e5e7eb;
            color: #111;
        }
        .sidebar-nav {
            flex: 1;
            padding: 12px 0;
            overflow-y: auto;
        }
        .sidebar-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            font-size: 15px;
            color: #666;
            text-decoration: none;
            cursor: pointer;
            transition: background 0.15s, color 0.15s;
            border: none;
            background: none;
            width: 100%;
            text-align: left;
        }
        .sidebar-item:hover {
            color: #333;
            background: #f9fafb;
        }
        .sidebar-item.active {
            color: #005BFF;
            font-weight: 600;
            background: rgba(0, 91, 255, 0.08);
        }
        .sidebar-item-icon {
            flex-shrink: 0;
            width: 24px;
            text-align: center;
            font-size: 18px;
            line-height: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .sidebar-item-text {
            white-space: nowrap;
            overflow: hidden;
            opacity: 1;
            transition: opacity 0.2s ease;
        }
        .sidebar.collapsed .sidebar-item-text {
            opacity: 0;
            width: 0;
            min-width: 0;
            overflow: hidden;
        }
        .sidebar.collapsed .sidebar-toggle {
            margin-left: 0;
        }
        .sidebar.collapsed .sidebar-item {
            justify-content: center;
        }
        .main-wrap {
            flex: 1;
            min-width: 0;
            padding: 12px;
            transition: margin-left 0s;
        }
        .top-menu {
            display: none;
        }
        .top-menu-item {
            padding: 12px 20px;
            font-size: 15px;
            color: #666;
            background: none;
            border: none;
            border-bottom: 2px solid transparent;
            cursor: pointer;
            transition: all 0.2s;
            text-decoration: none;
            display: inline-block;
        }
        .top-menu-item:hover {
            color: #333;
        }
        .top-menu-item.active {
            color: #222;
            font-weight: 600;
            border-bottom-color: #005BFF;
        }
        .top-menu-item.disabled {
            opacity: 0.45;
            cursor: not-allowed;
            pointer-events: none;
        }

        .content-row {
            display: flex;
            justify-content: space-between;
            gap: 24px;
            align-items: flex-start;
        }

        .user-info {
            background: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            max-width: 400px;
            order: 3;
        }
        
        .user-info h2 {
            font-size: 20px;
            margin-bottom: 15px;
        }

        .account-info {
            background: white;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            max-width: 400px;
            order: 1;
            position: relative;
        }
        
        .content-cards-column {
            display: flex;
            flex-direction: column;
            gap: 12px;
            order: 2;
            max-width: 400px;
        }
        .favorites-dropoffs-info {
            background: white;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            transition: transform 0.2s, box-shadow 0.2s;
            transition: transform 0.2s, box-shadow 0.2s;
        }
        
        .favorites-dropoffs-info:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(0,0,0,0.15);
        }
        
        .favorites-dropoffs-info h2 {
            font-size: 20px;
            margin-bottom: 12px;
        }
        
        .favorites-dropoffs-info #favorites-dropoffs-count {
            color: #6b7280;
            font-size: 14px;
        }
        
        .drivers-info {
            background: white;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .drivers-info:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(0,0,0,0.15);
        }
        .drivers-info h2 {
            font-size: 20px;
            margin-bottom: 12px;
        }
        .drivers-info #drivers-count {
            color: #6b7280;
            font-size: 14px;
        }
        
        .account-info-edit-btn {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 36px;
            height: 36px;
            border: 1px solid #d1d5db;
            background: #ffffff;
            border-radius: 8px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            color: #6b7280;
            transition: all 0.2s;
            z-index: 10;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }
        .account-info-edit-btn:hover {
            background: #f9fafb;
            border-color: #9ca3af;
            color: #374151;
            box-shadow: 0 2px 6px rgba(0,0,0,0.15);
        }
        .account-info-edit-btn:active {
            background: #f3f4f6;
            transform: scale(0.95);
        }
        
        .content-row-center {
            flex: 1;
            order: 2;
        }

        .account-info h2 {
            font-size: 20px;
            margin-bottom: 12px;
        }

        .account-info p {
            margin-bottom: 8px;
        }

        .selector-button {
            width: 100%;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 14px 16px;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            background: white;
            cursor: pointer;
            font-size: 15px;
            color: #222;
            box-shadow: 0 1px 4px rgba(0,0,0,0.04);
        }

        .selector-button:hover {
            border-color: #bbb;
        }

        .selector-button .selector-text {
            display: flex;
            flex-direction: column;
            text-align: left;
        }

        .selector-button .selector-name {
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }

        .selector-button .selector-id {
            font-size: 13px;
            color: #777;
            margin-top: 4px;
        }

        .selector-button .selector-arrow {
            font-size: 18px;
            transition: transform 0.2s;
        }

        .selector-button.open .selector-arrow {
            transform: rotate(180deg);
        }

        .selector-dropdown {
            position: absolute;
            top: calc(100% + 8px);
            left: 0;
            width: 100%;
            background: white;
            border: 1px solid #dadada;
            border-radius: 12px;
            box-shadow: 0 8px 30px rgba(0,0,0,0.12);
            z-index: 20;
            max-height: 320px;
            overflow-y: auto;
            display: none;
        }

        .selector-dropdown.visible {
            display: block;
        }

        .selector-header {
            padding: 14px 18px;
            font-size: 13px;
            color: #7a7a7a;
            border-bottom: 1px solid #f0f0f0;
        }

        .selector-item {
            padding: 12px 18px;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            transition: background 0.15s;
        }

        .selector-item:hover {
            background: #f5f8ff;
        }

        .selector-item.active {
            background: #eef3ff;
        }

        .selector-item .item-info {
            display: flex;
            flex-direction: column;
        }

        .selector-item .item-name {
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            margin-bottom: 3px;
        }

        .selector-item .item-id {
            font-size: 13px;
            color: #777;
        }

        .selector-item .item-check {
            color: #005BFF;
            font-size: 18px;
        }

        .selector-footer {
            padding: 14px 18px 18px;
            border-top: 1px solid #f0f0f0;
            background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
            position: sticky;
            bottom: 0;
        }

        .selector-add-store-btn {
            width: 100%;
            border: 1px solid #d7e3f7;
            background: #f3f8ff;
            color: #0048CC;
            border-radius: 10px;
            padding: 12px 14px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: background 0.15s, border-color 0.15s, transform 0.15s;
        }

        .selector-add-store-btn:hover {
            background: #e8f1ff;
            border-color: #bfd3f7;
            transform: translateY(-1px);
        }

        .add-store-page {
            max-width: 980px;
            margin: 0 auto;
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 24px;
            box-shadow: 0 24px 60px rgba(15, 23, 42, 0.08);
            overflow: hidden;
        }

        .add-store-page__hero {
            padding: 28px 32px;
            background: linear-gradient(135deg, #eff6ff 0%, #ffffff 55%, #f8fafc 100%);
            border-bottom: 1px solid #e5e7eb;
        }

        .add-store-page__title {
            margin: 0 0 10px;
            color: #1f2937;
            font-size: 32px;
            font-weight: 800;
        }

        .add-store-page__lead {
            margin: 0;
            color: #6b7280;
            font-size: 16px;
            line-height: 1.6;
            max-width: 760px;
        }

        .add-store-page__body {
            padding: 32px;
        }

        .add-store-page__card {
            border: 1px solid #e5e7eb;
            border-radius: 20px;
            background: #ffffff;
            padding: 24px;
        }

        .add-store-form {
            display: flex;
            flex-direction: column;
            gap: 18px;
        }

        .add-store-field {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .add-store-field label {
            color: #374151;
            font-size: 14px;
            font-weight: 700;
        }

        .add-store-field input {
            width: 100%;
            border: 1px solid #d1d5db;
            border-radius: 12px;
            padding: 14px 16px;
            font-size: 15px;
            color: #111827;
            background: #fff;
            transition: border-color 0.15s, box-shadow 0.15s;
        }

        .add-store-field input:focus {
            outline: none;
            border-color: #005BFF;
            box-shadow: 0 0 0 4px rgba(0, 91, 255, 0.12);
        }

        .add-store-field.has-error input {
            border-color: #dc2626;
            box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.08);
        }

        .add-store-field-hint {
            color: #6b7280;
            font-size: 13px;
            line-height: 1.5;
        }

        .add-store-field-error {
            min-height: 18px;
            color: #dc2626;
            font-size: 13px;
            line-height: 1.4;
        }

        .add-store-page__error {
            margin-bottom: 18px;
            padding: 14px 16px;
            border-radius: 12px;
            background: #fef2f2;
            border: 1px solid #fecaca;
            color: #b91c1c;
            font-size: 14px;
            line-height: 1.5;
        }

        .add-store-page__success {
            margin-bottom: 18px;
            padding: 14px 16px;
            border-radius: 12px;
            background: #ecfdf5;
            border: 1px solid #a7f3d0;
            color: #047857;
            font-size: 14px;
            line-height: 1.5;
        }

        .add-store-actions {
            display: flex;
            gap: 12px;
            justify-content: flex-end;
            flex-wrap: wrap;
            margin-top: 8px;
        }

        .add-store-btn-secondary,
        .add-store-btn-primary {
            border-radius: 12px;
            padding: 13px 18px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            border: 1px solid transparent;
        }

        .add-store-btn-secondary {
            background: #f3f4f6;
            border-color: #d1d5db;
            color: #374151;
        }

        .add-store-btn-primary {
            background: #005BFF;
            color: #ffffff;
        }

        .add-store-btn-primary:disabled,
        .add-store-btn-secondary:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }

        @media (max-width: 920px) {
            .add-store-page__hero,
            .add-store-page__body {
                padding: 22px 18px;
            }
        }
        
        .status {
            display: inline-block;
            padding: 5px 10px;
            border-radius: 5px;
            font-size: 12px;
            margin-top: 5px;
        }
        
        .status.active {
            background: #4CAF50;
            color: white;
        }
        
        .status.inactive {
            background: #f44336;
            color: white;
        }
        
        .loading {
            text-align: center;
            padding: 20px;
        }
        
        /* Оверлей лоадер для проверки подписки */
        .subscription-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(255, 255, 255, 0.95);
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 9999;
        }
        .subscription-loader-content {
            text-align: center;
        }
        .subscription-loader-spinner {
            width: 40px;
            height: 40px;
            border: 4px solid #e5e7eb;
            border-top-color: #005BFF;
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
            margin: 0 auto 16px;
        }
        @keyframes spin {
            to { transform: rotate(360deg); }
        }
        /* Дашборд: оверлей загрузки.
           Блоки приезжают четырьмя независимыми запросами (показатели, кластеры,
           динамика, факторы продаж) — без оверлея пользователь секунды видит пустые
           карточки с чекбоксами и пустые canvas'ы. Показываем всё разом, когда готово.
           ⚠️ Оверлей именно накладывается (position:absolute), а контент НЕ скрывается
           через display:none — иначе у canvas'ов offsetWidth = 0 и графики нарисуются
           нулевой ширины (в loadDbStockSalesChart есть ранний выход по !offsetWidth). */
        #db-body.is-db-loading { min-height: 560px; }
        #db-loading { display: none; }
        #db-body.is-db-loading > #db-loading {
            display: flex;
            position: absolute;
            inset: 0;
            z-index: 20;
            align-items: flex-start;
            justify-content: center;
            padding-top: 64px;
            background: var(--oz-page);
            border-radius: var(--oz-radius);
        }
        .db-loading-plate {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            background: #fff;
            border: 1px solid var(--oz-line);
            border-radius: 14px;
            box-shadow: 0 2px 12px rgba(0,26,52,.07);
            padding: 26px 34px;
            min-width: 240px;
        }
        .db-loading-spinner {
            width: 34px; height: 34px;
            border: 3px solid var(--oz-line);
            border-top-color: var(--oz-blue);
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
        }
        /* Кастомные тултипы для иконок-статусов отзывов */
        .review-icon {
            position: relative;
            cursor: help;
            display: inline-block;
        }
        .review-icon::after {
            content: attr(data-tooltip);
            position: absolute;
            bottom: calc(100% + 6px);
            left: 50%;
            transform: translateX(-50%);
            background: #1f2937;
            color: #fff;
            font-size: 12px;
            font-weight: 500;
            padding: 6px 10px;
            border-radius: 6px;
            white-space: nowrap;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.12s ease-out;
            z-index: 1000;
            box-shadow: 0 4px 12px rgba(0,0,0,0.2);
        }
        .review-icon::before {
            content: '';
            position: absolute;
            bottom: 100%;
            left: 50%;
            transform: translateX(-50%);
            border: 5px solid transparent;
            border-top-color: #1f2937;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.12s ease-out;
            z-index: 1000;
        }
        .review-icon:hover::after,
        .review-icon:hover::before {
            opacity: 1;
        }
        .subscription-loader-text {
            color: #6b7280;
            font-size: 14px;
        }
        
        .error {
            background: #f44336;
            color: white;
            padding: 15px;
            border-radius: 10px;
            margin-bottom: 20px;
        }
        
        .success {
            background: #4CAF50;
            color: white;
            padding: 15px;
            border-radius: 10px;
            margin-bottom: 20px;
        }
        
        .logout-btn {
            width: auto;
            background: #f44336;
            margin-top: 20px;
        }
        
        .logout-btn:hover {
            background: #d32f2f;
        }
    