/* РД в карточки ЧЗ — /chz_rd/, и тема всего раздела карточек: /chz_cards/ носит этот же файл (.rd-page).
   Основа — cards.css (.cd-*), здесь только своё.
   Две темы: тёмная — умолчание, светлая по data-rd-theme="light" (атрибут ставится до отрисовки,
   app_cards/_theme.html; он же ведёт режим AG Grid через data-ag-theme-mode). Правило файла: структура пишется
   один раз на обе темы, цвет берётся только из токенов --rd-* (и --cd-* для строк образца /chz_cards/). */

/* ══════════════ Токены ══════════════ */
:root {   /* тёмная: не сработал скрипт — страница всё равно одета */
    color-scheme: dark;   /* календарь даты, выпадашки select и полоса прокрутки — тёмные */
    --rd-bg:#0e1015; --rd-ink:#e8eaee; --rd-soft:#cfd3da; --rd-dim:#9aa3ae;
    --rd-h:#f4c842; --rd-accent:#ffc107;
    --rd-rim:rgba(255,255,255,.09); --rd-rim-hi:rgba(255,255,255,.18);
    --rd-tile:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02)); --rd-tile-rim:rgba(0,0,0,.35);
    /* панель и инструменты сплошные: шапка липкая, сквозь полупрозрачную просвечивали строки таблицы */
    --rd-panel:#20222a; --rd-tools:#101319; --rd-legend:rgba(255,255,255,.03);
    --rd-field:rgba(0,0,0,.30); --rd-field-rim:rgba(255,255,255,.16); --rd-field-ink:#e8eaee;
    --rd-menu:#2d3135; --rd-menu-shadow:0 14px 34px rgba(0,0,0,.55);
    --rd-ok:#8fe8a0; --rd-bad:#ff9b9b; --rd-warn:#ffe08a;
    --rd-note-bg:rgba(255,193,7,.10); --rd-note-rim:rgba(255,193,7,.30); --rd-note-ink:#ffe08a;
    --rd-note-bad-bg:rgba(220,53,69,.10); --rd-note-bad-rim:rgba(220,53,69,.32); --rd-note-bad-ink:#ff9b9b;
    --rd-ds-bg:rgba(255,193,7,.18); --rd-ds-ink:#f4c842;
    --rd-ss-bg:rgba(143,232,160,.15); --rd-ss-ink:#8fe8a0;
    --rd-sgr-bg:rgba(255,255,255,.10); --rd-sgr-ink:#c3c8d0;
    --rd-none:#767d88; --rd-sep:rgba(255,255,255,.18); --rd-gone:#767d88;
    --rd-grid-bg:#151820; --rd-grid-ink:#e8eaee; --rd-grid-chrome:#1b1f27; --rd-grid-head:#242527; --rd-grid-head-ink:#f4c842;
    --rd-grid-sel:rgba(255,193,7,.15); --rd-grid-hover:rgba(255,255,255,.06); --rd-grid-accent:#ffc107; --rd-grid-mod:rgba(255,255,255,.04); --rd-grid-bad:rgba(220,53,69,.16); --rd-grid-bad-sel:rgba(220,53,69,.30);
    /* три ступени канта, как в ФБС: рамка ярче строк, строки ярче столбцов — иначе сетка звенит */
    --rd-grid-rim:rgba(255,255,255,.10); --rd-grid-rim-row:rgba(255,255,255,.07); --rd-grid-rim-col:rgba(255,255,255,.05);
    --rd-shadow:rgba(0,0,0,.45);
    --rd-quiet-ink:#b6bcc6; --rd-quiet-rim:rgba(255,255,255,.20); --rd-quiet-hover:rgba(255,193,7,.12);
    --cc-note:var(--rd-dim); --cc-bad:var(--rd-bad);   /* строка состояния общего блока каталога */
    /* /chz_cards/: закреплённые строки образца и кнопок, правимая ячейка, пропуск перед модерацией */
    --cd-pin:#1b1f27; --cd-sample:rgba(255,193,7,.13); --cd-sample-hi:rgba(255,193,7,.20); --cd-sample-ph:#8f97a1;
    --cd-edit:rgba(255,255,255,.025); --cd-miss-bg:rgba(255,193,7,.16); --cd-miss-ink:#ffe08a;
}
:root[data-rd-theme="light"] {
    color-scheme: light;
    --rd-bg:#fff; --rd-ink:#212529; --rd-soft:#5b5851; --rd-dim:#6b675e;
    --rd-h:#242527; --rd-accent:#a37800;
    --rd-rim:#dedbd1; --rd-rim-hi:#cfcbc0;
    --rd-tile:#fff; --rd-tile-rim:rgba(0,0,0,.08);
    --rd-panel:#fffdf3; --rd-tools:#f9f8f4; --rd-legend:#fffef9;
    --rd-field:#fff; --rd-field-rim:#cfcbc0; --rd-field-ink:#1d1d1d;
    --rd-menu:#fff; --rd-menu-shadow:0 4px 12px rgba(0,0,0,.15);
    --rd-ok:#1e7a3a; --rd-bad:#8a2b2b; --rd-warn:#8a6500;
    --rd-note-bg:#fff8df; --rd-note-rim:#e3c46c; --rd-note-ink:#654f13;
    --rd-note-bad-bg:#fff0f0; --rd-note-bad-rim:#d98c8c; --rd-note-bad-ink:#8a2b2b;
    --rd-ds-bg:#fff3bd; --rd-ds-ink:#96690a;
    --rd-ss-bg:#e6f3e8; --rd-ss-ink:#2f6b3c;
    --rd-sgr-bg:#ecebe6; --rd-sgr-ink:#495057;
    --rd-none:#9a968c; --rd-sep:#c5c1b6; --rd-gone:#9a968c;
    --rd-grid-bg:#fff; --rd-grid-ink:#1d1d1d; --rd-grid-chrome:#f7f7f7; --rd-grid-head:#242527; --rd-grid-head-ink:#f4c842;
    --rd-grid-sel:#fff3bd; --rd-grid-hover:#fff9df; --rd-grid-accent:#c89500; --rd-grid-mod:#f4f3ef; --rd-grid-bad:#fde6e6; --rd-grid-bad-sel:#f9cccc;
    --rd-grid-rim:#dedbd1; --rd-grid-rim-row:#dedbd1; --rd-grid-rim-col:#dedbd1;   /* на белом ступеней нет: было так и остаётся */
    --rd-shadow:rgba(28,30,34,.13);
    --rd-quiet-ink:#6c757d; --rd-quiet-rim:#cfcbc0; --rd-quiet-hover:rgba(255,193,7,.16);
    /* образец был голубым — синий в системе долг (DESIGN.md), он ушёл в янтарное молоко */
    --cd-pin:#fbfaf6; --cd-sample:#fff1c2; --cd-sample-hi:#ffe79c; --cd-sample-ph:#a39a80;
    --cd-edit:#fffdf3; --cd-miss-bg:#fff0d4; --cd-miss-ink:#7a4800;
}
body { background:var(--rd-bg); }
.rd-page #work { background:var(--rd-grid-bg); box-shadow:0 3px 14px var(--rd-shadow); }
.rd-page, .rd-page .cd-heading h1 { color:var(--rd-ink); }
.rd-page .cd-sub { color:var(--rd-dim); }
.rd-page ::placeholder { color:var(--rd-dim); opacity:.85; }
.rd-page .search-well { background:var(--rd-field); border-color:var(--rd-field-rim); color:var(--rd-field-ink); }

/* заголовок и переключатель темы в одной строке: кнопка стоит в правом верхнем углу страницы */
.rd-heading { position:relative; }
.rd-theme-btn { position:absolute; right:0; top:0; display:inline-flex; align-items:center; justify-content:center;
    width:24px; height:24px; padding:0; border:1px solid var(--rd-rim); border-radius:6px;
    background:var(--rd-tile); color:var(--rd-dim); cursor:pointer; transition:color .12s, border-color .12s; }
.rd-theme-btn:hover { color:var(--rd-accent); border-color:var(--rd-rim-hi); }
.rd-theme-btn svg { width:14px; height:14px; }
/* значок показывает тему, в которую уйдём по клику */
.rd-theme-btn .rd-ico-moon { display:none; }
:root[data-rd-theme="light"] .rd-theme-btn .rd-ico-sun { display:none; }
:root[data-rd-theme="light"] .rd-theme-btn .rd-ico-moon { display:block; }
/* угол слева от темы: видео и демо — тихие кнопки того же роста и канта; демо в демо-режиме подсвечено и выводит обратно */
.rd-corner { position:absolute; right:30px; top:0; display:inline-flex; gap:6px; }
.rd-corner > * { display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 8px;
    border:1px solid var(--rd-rim); border-radius:6px; background:var(--rd-tile); color:var(--rd-dim); cursor:pointer;
    font-family:inherit; font-size:11px; font-weight:700; line-height:1; text-decoration:none; transition:color .12s, border-color .12s; }
.rd-corner > :hover { color:var(--rd-accent); border-color:var(--rd-rim-hi); }
.rd-demo-btn.on { color:var(--rd-accent); border-color:var(--rd-accent); }
.rd-video-btn svg { width:7px; height:9px; fill:var(--rd-accent); }
/* окно с роликом — эталонное, только шире; ширину держит и высота экрана, чтобы плеер 16:9 влез целиком */
.gm-dialog.rd-video-dialog { max-width:min(960px, calc((100vh - 130px) * 16 / 9 + 46px)); }
.rd-video-dialog .gm-title { padding:0 24px; }   /* под крестик не заезжает */
.rd-video { position:relative; z-index:1; margin-top:12px; aspect-ratio:16/9; border-radius:8px; overflow:hidden; background:#000; }
.rd-video iframe { display:block; width:100%; height:100%; border:0; }
/* гостю вход в демо — на месте кнопки каталога и того же размера; ссылка в строке демо без синего */
.rd-demo-go { min-width:230px; }
.rd-page .cc-note a { color:var(--rd-accent); }

/* ══════════════ Зона ЧЗ и загрузка ══════════════ */
.rd-top{width:420px;max-width:100%;margin:0 auto 10px;--cz-h:auto}
.rd-top .sa-cz{min-height:0}
/* не .compact-controls: та липкая, а высокая панель с полем GTIN на телефоне съела бы экран */
/* Точечная загрузка нужна редко: в свёрнутом виде это одна строка под кнопкой каталога */
.rd-more{max-width:560px;margin:4px auto 10px}
.rd-more>summary{display:flex;align-items:center;justify-content:center;gap:6px;padding:2px;color:var(--rd-dim);font-size:12px;cursor:pointer;list-style:none}
.rd-more>summary::-webkit-details-marker{display:none}
.rd-more>summary::after{content:'';flex:none;border:4px solid transparent;border-left-color:currentColor;transition:transform .15s}
.rd-more[open]>summary::after{transform:rotate(90deg)}
.rd-more>summary:hover,.rd-more[open]>summary{color:var(--rd-accent)}
.rd-more-b{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 12px 12px;border:1px solid var(--rd-rim);border-radius:var(--ctr-radius);background:var(--rd-tile)}
.rd-more textarea{display:block;width:100%;height:62px;padding:5px 8px;border:1px solid var(--rd-field-rim);border-radius:var(--ctr-radius);background:var(--rd-field);color:var(--rd-field-ink);font-size:12px;line-height:1.45;resize:vertical}
/* пустое поле — подсказка по центру: по горизонтали отсюда, по вертикали высотой и отступом от fitGtins().
   Со вставленным столбцом текст возвращается влево и вверх. Полосу прокрутки у пустого поля гасим:
   она съедала ширину, подсказка переносилась на строку больше и последняя строка обрезалась */
.rd-more textarea:placeholder-shown{text-align:center;overflow-y:hidden}
/* пояснение «почему ЧЗ может отклонить»: свёртка как у загрузки по GTIN, текст по центру */
.rd-why{max-width:760px;margin:16px auto 0;scroll-margin-top:calc(var(--nav-h,70px) + 12px)}
.rd-why .rd-more-b{gap:6px;font-size:12px;line-height:1.5;color:var(--rd-soft);text-align:center}
.rd-why p{margin:0}.rd-why b{color:var(--rd-ink)}
/* ══════════════ Шапка над таблицей ══════════════ */
/* документ → отправка → инструменты. На десктопе липкая под навбаром, таблица растёт по строкам страницы */
@media(min-width:901px){.rd-head{position:sticky;top:var(--nav-h,70px);z-index:50;box-shadow:0 3px 8px -4px var(--rd-tile-rim)}}
/* Три полосы: рельса выбора слева, рабочее поле (номер, дата, «проставить») посередине, отсечка с главной кнопкой справа.
   Подписи держат первый столбец фиксированной ширины, значения встают вторым — все три в одну вертикаль */
.rd-work{display:flex;--rail-w:256px;background:var(--rd-panel);border-bottom:1px dashed var(--rd-rim);border-radius:var(--ctr-radius) var(--ctr-radius) 0 0}
.rd-rail{flex:none;width:var(--rail-w);display:flex;flex-direction:column;justify-content:center;gap:7px;padding:10px 16px;border-right:1px solid var(--rd-rim)}
.rd-rw{display:flex;align-items:baseline;gap:10px}
.rd-rl{flex:none;width:92px;font-size:11px;font-weight:700;color:var(--rd-dim)}
/* значение выбора: тихий текст под пунктиром, видно только выбранное — клик берёт другое (не выпадашка).
   Невыбранный вариант гасим у span: сама метка остаётся нулевой ширины и в раскладке не мешает */
.rd-sw{display:inline-flex;align-items:baseline;color:var(--rd-soft);font-size:13px;font-weight:700;cursor:pointer;user-select:none;transition:color .12s}
.rd-sw input{position:absolute;visibility:hidden}  /* не opacity: скрытое так не ловит фокус и лишней остановки табом нет */
.rd-sw input:not(:checked)+span{display:none}
.rd-sw label{margin:0;cursor:pointer}
.rd-sw span{border-bottom:1px dashed var(--rd-rim-hi);transition:border-color .12s}
.rd-sw::after{content:'⇄';margin-left:6px;font-size:11px;font-weight:400;color:var(--rd-dim)}
.rd-sw:hover,.rd-sw:focus-visible{color:var(--rd-accent);outline:none}
.rd-sw:hover span,.rd-sw:focus-visible span{border-bottom-color:var(--rd-accent)}
.rd-sw:hover::after,.rd-sw:focus-visible::after{color:var(--rd-accent)}
/* Рабочее поле: строка документа ровно посередине — пустая строка сетки сверху равна нижнему блоку.
   Ниже тише основного ряда: состояние номера, «изменено», «перечитать», «сбросить» */
.rd-pane{flex:1;min-width:0;display:grid;grid-template-rows:1fr auto 1fr;justify-items:center;padding:0 12px}   /* без верхнего отступа: бриф центрируется по самому краю полосы */
.rd-brief{align-self:center;font-size:14px;font-weight:700;line-height:1.35;color:var(--rd-ink);text-align:center}   /* ведущий текст: стоит ровно между верхним краем и строкой документа */
.rd-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 10px;width:100%}
.rd-under{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:4px 0 8px}
.rd-util{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 12px}
.rd-page .rd-util .btn-ghost{padding:1px 12px;--ghost-ink:var(--rd-dim);--ghost-rim:var(--rd-rim-hi)}
.rd-page .rd-util .cd-stat b{color:var(--rd-soft)}
/* правая отсечка: та же ширина и тот же кант, что у рельсы слева — в ней одна главная кнопка */
.rd-side{flex:none;width:var(--rail-w);display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:10px 16px;border-left:1px solid var(--rd-rim)}
.rd-side .cd-tipwrap{width:100%}
.rd-send{width:100%;padding:14px 8px;font-size:14px;font-weight:700;line-height:1.2}
/* после отказа ЧЗ: виноватые карточки сняты с отметки, остальные ждут второго «Отправить» */
.rd-sendnote{font-size:11px;line-height:1.3;color:var(--rd-warn);text-align:center;white-space:pre-line}  /* часы ожидания ЧЗ — в две строки */
.rd-sendnote a{color:inherit;text-decoration:underline}
.rd-page .btn-ghost{--ghost-ink:var(--rd-quiet-ink);--ghost-rim:var(--rd-quiet-rim);--ghost-hover:var(--rd-quiet-hover)}
.rd-page .btn-ghost:hover{color:var(--rd-accent);border-color:var(--rd-accent)}
.rd-num{flex:1 1 300px;max-width:470px;height:30px;padding-right:10px;font-size:13px;letter-spacing:.2px}
.rd-state{min-height:14px;font-size:11px;line-height:1.3;color:var(--rd-dim);text-align:center}.rd-state.ok{color:var(--rd-ok)}.rd-state.bad{color:var(--rd-bad)}.rd-state.warn{color:var(--rd-warn)}
.rd-fix{padding:0 7px!important;font-size:11px!important;line-height:1.5!important;margin-left:6px}
.rd-pick{height:30px;font-size:12px;border:1px solid var(--rd-field-rim);border-radius:var(--ctr-radius);background:var(--rd-field);padding:0 6px;color:var(--rd-field-ink)}
/* раскрытый список: полупрозрачный фон поля браузер кладёт на белое, а буквы светлые — красим пункты сами */
.rd-page select option{background:var(--rd-menu);color:var(--rd-ink)}
.rd-date{display:inline-flex;align-items:center;margin:0}
.rd-date input{height:30px;font-size:12px;border:1px solid var(--rd-field-rim);border-radius:var(--ctr-radius);background:var(--rd-field);color:var(--rd-field-ink);padding:0 6px}
.rd-check{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:12px;font-weight:700;color:var(--rd-soft);cursor:pointer}
.rd-page .cd-tools{flex-wrap:wrap;gap:8px 10px;border-radius:0;background:var(--rd-tools);border-bottom-color:var(--rd-rim)}.rd-page .cd-search{flex-basis:240px}
/* выбор столбцов: выпадашка с галочками, выбор запоминает браузер */
.rd-cols{position:relative;display:inline-flex}.rd-cols button{cursor:pointer}
.rd-colsmenu{position:absolute;top:calc(100% + 4px);left:0;z-index:60;display:flex;flex-direction:column;gap:5px;padding:8px 10px;background:var(--rd-menu);border:1px solid var(--rd-rim-hi);border-radius:var(--ctr-radius);box-shadow:var(--rd-menu-shadow);white-space:nowrap}
.rd-colsmenu[hidden]{display:none}
/* пейджер справа в строке инструментов; таблица — по высоте страницы */
.rd-pager{display:inline-flex;align-items:center;gap:3px;margin-left:auto;font-size:12px;color:var(--rd-dim)}
.rd-pager button{width:26px;height:26px;border:1px solid var(--rd-field-rim);border-radius:var(--ctr-radius);background:var(--rd-field);font-size:15px;line-height:1;color:var(--rd-soft);cursor:pointer}
.rd-pager button:disabled{opacity:.4;cursor:default}.rd-pager #pgInfo{min-width:96px;text-align:center}.rd-pager .rd-pick{height:26px;margin-left:4px;padding:0 3px}
/* Цвет таблицы держат только переменные --ag-*: cards.css ставит их прямо на #grid светлыми, и они
   перебивают любые параметры темы из rd.js — там остались одни размеры. Селектор со страницей бьёт по весу.
   .ag-popup — списки выпадашек /chz_cards/ живут в body (popupParent) и переменных с #grid не наследуют */
.rd-page #grid,.ag-popup{
    --ag-background-color:var(--rd-grid-bg);--ag-foreground-color:var(--rd-grid-ink);--ag-chrome-background-color:var(--rd-grid-chrome);
    --ag-header-background-color:var(--rd-grid-head);--ag-header-foreground-color:var(--rd-grid-head-ink);--ag-header-text-color:var(--rd-grid-head-ink);
    --ag-border-color:var(--rd-grid-rim);--ag-row-border:solid 1px var(--rd-grid-rim-row);--ag-column-border:solid 1px var(--rd-grid-rim-col);
    --ag-header-column-border:solid 1px var(--rd-grid-rim);
    --ag-row-hover-color:var(--rd-grid-hover);--ag-selected-row-background-color:var(--rd-grid-sel);--ag-accent-color:var(--rd-grid-accent)}
/* на модерации или ждёт подписи: отметить можно, проставить и отправить нельзя — строка чуть тонирована */
.rd-page .ag-row.rd-mod{background-color:var(--rd-grid-mod)}
/* не отправится — товарный знак, который ЧЗ не пропустит («Отсутствует» и т.п.), или отказ ЧЗ по карточке: строка красная, отметить можно, но не уйдёт.
   Заливки отметки и наведения в светлой теме плотные и прячут фон строки — у такой строки они свои, красные */
.rd-page .ag-row.rd-bad{background-color:var(--rd-grid-bad);--ag-selected-row-background-color:var(--rd-grid-bad-sel);--ag-row-hover-color:var(--rd-grid-bad-sel)}
.rd-tm{color:var(--rd-bad);font-weight:700}
.rd-page .ag-tooltip{white-space:pre-line}  /* подсказки ячеек держат переносы: совет по знаку, тексты ЧЗ, список документов */
/* ══════════════ Строки таблицы ══════════════ */
/* текущие РД в строке: метка вида + номер + дата + кнопка копирования номера */
/* без синего (DESIGN.md): ДС — янтарное молоко, СС — зелёный ЧЗ, СГР — тёплый серый */
.rd-chip{display:inline-block;padding:0 5px;border-radius:4px;background:var(--rd-ds-bg);color:var(--rd-ds-ink);font-size:10px;font-weight:800;line-height:16px;vertical-align:middle}
.rd-chip.k23561{background:var(--rd-ss-bg);color:var(--rd-ss-ink)}.rd-chip.k23765{background:var(--rd-sgr-bg);color:var(--rd-sgr-ink)}
.rd-dt{color:var(--rd-dim)}.rd-none{color:var(--rd-none);font-style:italic}.rd-sep{color:var(--rd-sep);margin:0 5px}
/* копирование номера: в покое приглушено, на строке под курсором — в полную силу */
.rd-copy{display:inline-flex;align-items:center;margin:0 5px;padding:1px 3px;border:1px solid var(--rd-rim-hi);border-radius:4px;background:none;color:var(--rd-dim);vertical-align:middle;opacity:.5;cursor:pointer;transition:opacity .12s,color .12s,border-color .12s}
.ag-row:hover .rd-copy{opacity:1}
.rd-copy:hover{color:var(--rd-accent);border-color:var(--rd-accent);opacity:1}
/* правки до отправки: снимаемый документ зачёркнут, новый — пунктирная рамка у метки */
.rd-item{white-space:nowrap}.rd-gone{text-decoration:line-through;color:var(--rd-gone)}.rd-gone .rd-chip{opacity:.5}
.rd-new .rd-chip{outline:1.5px dashed var(--rd-grid-accent);outline-offset:1px}
/* наш документ в карточке на модерации: в ЧЗ его ещё не видно — бледный текст, метка без цвета в точечной рамке */
.rd-wait{color:var(--rd-dim)}
.rd-wait .rd-chip{background:none;color:inherit;outline:1px dotted currentColor;outline-offset:-1px}
.rd-undo{margin-left:6px;color:var(--rd-warn);font-size:11px;cursor:pointer;text-decoration:underline dotted}
.rd-mdocs{display:block;text-align:center;line-height:1.4}
/* снимаемые документы в окне отправки: окно всегда тёмное, поэтому цвет здесь свой, не из токенов страницы */
.rd-mgone{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.14);color:#ffe08a}
.rd-mgone div{text-decoration:line-through;opacity:.85}
/* сумма списания в окне отправки: деньги называем до отправки, а не после */
.rd-mpay{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.14)}
.rd-mpay small{display:block;margin-top:2px;opacity:.7;font-size:12px}
.cd-status.rd-fail{color:var(--rd-bad)}.cd-status.rd-skip{color:var(--rd-warn)}
/* ══════════════ Общие .cd-* этой страницы ══════════════ */
.rd-page .cd-stat{color:var(--rd-dim)}.rd-page .cd-stat b{color:var(--rd-accent)}
.rd-page .cd-notice{background:var(--rd-note-bg);border-color:var(--rd-note-rim);color:var(--rd-note-ink)}
.rd-page .cd-notice.bad{background:var(--rd-note-bad-bg);border-color:var(--rd-note-bad-rim);color:var(--rd-note-bad-ink)}
.rd-page .cd-legend{background:var(--rd-legend);border-top-color:var(--rd-rim);color:var(--rd-dim)}
.rd-page .cd-status{color:var(--rd-ink)}.rd-page .cd-status.draft,.rd-page .cd-status.notready,.rd-page .cd-status.sent{color:var(--rd-warn)}
.rd-page .cd-status.blocked,.rd-page .cd-status.done{color:var(--rd-dim)}.rd-page .cd-status.moderation{color:var(--rd-ok)}.rd-page .cd-status.err{color:var(--rd-bad)}
/* история отправок: шапка-раскрывашка, содержимое подтягивается с сервера при первом раскрытии */
.rd-page .cd-history>summary{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px;font-size:16px;font-weight:800;color:var(--rd-ink);cursor:pointer;list-style:none}
.rd-page .cd-history>summary::-webkit-details-marker{display:none}
.rd-page .cd-history>summary::after{content:'';border:5px solid transparent;border-left-color:currentColor;transition:transform .15s}
.rd-page .cd-history[open]>summary::after{transform:rotate(90deg)}
.rd-page .cd-history>summary:hover{color:var(--rd-accent)}
.rd-page .cd-history>summary b{padding:0 8px;border-radius:999px;background:var(--rd-tools);border:1px solid var(--rd-rim);color:var(--rd-accent);font-size:12px;font-weight:700;line-height:18px}
.rd-page #historyList{margin-top:6px}
/* /chz_cards/: вместо раскрывашки — кнопка-тумблер по центру, счётчик той же пилюлей */
.rd-page .cd-hist{text-align:center}
.rd-page .cd-hist>.btn b{margin-left:8px;padding:0 8px;border-radius:999px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.18);color:var(--rd-accent);font-size:12px;font-weight:700;line-height:18px;vertical-align:1px}
.rd-page .cd-hist>#historyList{margin-top:10px;text-align:left}
.rd-page .cd-feed{background:var(--rd-tile);border-color:var(--rd-rim);color:var(--rd-soft)}
.rd-page .cd-feed .when{color:var(--rd-dim)}.rd-page .cd-feed .what b{color:var(--rd-ink)}
.rd-page .cd-feed .errs,.rd-page .cd-feed .what .cd-nodoc{color:var(--rd-bad)}
.rd-hload{padding:10px;color:var(--rd-dim);font-size:12px;text-align:center}
/* ══════════════ Зона Честного Знака в светлой: тёмно-жёлтая, под цвет самого ЧЗ ══════════════ */
:root[data-rd-theme="light"] .rd-page{
    .sa-cz{--store-glass:rgba(255,236,170,.7);--store-accent:#c99700;--store-edge:rgba(179,135,5,.6);border-color:rgba(179,135,5,.6);
        background:linear-gradient(180deg,#fff3c9,#ecbf2c);box-shadow:inset 0 1px 0 #fffbe8,inset 0 -1px 0 rgba(122,90,0,.12),0 4px 10px rgba(122,90,0,.18)}
    .sa-cz:hover{border-color:rgba(179,135,5,.85);background:linear-gradient(180deg,#fff7da,#f0c73a)}
    .sa-cz-t{color:#6b5000}.sa-cz-i{color:#5c4600}
    /* выдуманная сессия демо — серая, как в store-auth.css: жёлтая выше перекрыла бы её по весу */
    .sa-cz.demo,.sa-cz.demo:hover{--store-glass:rgba(233,236,239,.72);--store-accent:#6c757d;--store-edge:rgba(108,117,125,.5);cursor:default;border-color:rgba(108,117,125,.5);
        background:linear-gradient(180deg,rgba(252,252,253,.98),rgba(108,117,125,.15));box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(52,58,64,.08),0 4px 10px rgba(52,58,64,.12)}
    .sa-cz.demo :is(.sa-cz-t,.sa-cz-i){color:#6c757d}
}
/* ══════════════ Зоны магазина и Честного Знака в тёмной ══════════════ */
/* store-auth.css рисует зоны светлым стеклом: на тёмном грунте они слепят, здесь только краска.
   Зона магазина есть только на /chz_cards/; палитра та же, что у ФБС (fbs-theme.css) */
:root:not([data-rd-theme="light"]) .rd-page{
    .sa-store-zone{--store-glass:rgba(30,158,56,.26);--store-caret:rgba(255,255,255,.10);border-color:rgba(30,158,56,.55);
        background:linear-gradient(180deg,rgba(30,158,56,.12),rgba(30,158,56,.26));box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 4px 12px rgba(0,0,0,.4)}
    .sa-store-zone.fit-warn{--store-glass:rgba(255,193,7,.22);border-color:rgba(217,164,6,.55);background:linear-gradient(180deg,rgba(255,193,7,.10),rgba(255,193,7,.22))}
    .sa-store-zone.fit-bad{--store-glass:rgba(220,53,69,.22);border-color:rgba(220,53,69,.5);background:linear-gradient(180deg,rgba(220,53,69,.10),rgba(220,53,69,.22))}
    .sa-store-zone.fit-demo{--store-glass:rgba(255,255,255,.10);border-color:var(--rd-rim-hi);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.10))}
    .sa-store-req b,.sa-store-empty-h{color:var(--rd-ink)}
    .sa-store-req,.sa-store-tok,.sa-store-empty{color:var(--rd-dim)}
    .sa-store-tok.bad,.sa-store-tok.bad a{color:var(--rd-bad)}
    .sa-store-fit,.sa-store-tok.warn,.sa-store-tok.warn a{color:var(--rd-warn)}
    .sa-store-star{text-shadow:none}
    /* плашка имени: стекло светлее тёмной зоны било в глаза — ложбинка темнее зоны с её краской по краю */
    .sa-store-name{color:var(--rd-ink);border-color:var(--store-edge,var(--rd-rim-hi));background:linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.46));
        box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 2px 6px rgba(0,0,0,.35)}
    .sa-store-name::before{background:linear-gradient(180deg,rgba(255,255,255,.07),transparent)}
    .sa-store-name.sp-trig:hover{background:linear-gradient(180deg,rgba(0,0,0,.24),rgba(0,0,0,.36));box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 4px 10px rgba(0,0,0,.45)}
    .sa-store-name .sp-caret{color:var(--rd-soft)}
    .sa-store-zone .sa-sq{color:var(--rd-soft)}.sa-store-zone .sa-sq:hover{color:var(--rd-ink)}
    .sa-link,.sa-qm{background:var(--rd-panel)}
    .sa-flow{color:var(--rd-ok);filter:drop-shadow(0 0 8px rgba(143,232,160,.35))}
    /* чипы возможностей на карточке магазина: пастель светлой темы горела ярче самой зоны */
    .sp-cap{box-shadow:none}
    .sp-cap.import{background:rgba(255,193,7,.16);border-color:rgba(217,164,6,.6);color:#ffd166}
    .sp-cap:is(.gtin,.match){background:rgba(124,58,237,.26);border-color:rgba(124,58,237,.65);color:color-mix(in srgb,#7c3aed 40%,#e8eaee)}
    .sp-cap.fbs{background:rgba(30,158,56,.18);border-color:rgba(30,158,56,.6);color:var(--rd-ok)}
    .sp-cap.upd{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.6);color:#93c5fd}
    .sp-cap.off{background:rgba(255,255,255,.05);border-color:var(--rd-rim);color:var(--rd-none)}.sp-cap.off::before{color:var(--rd-none)}
    /* зона ЧЗ в разделе карточек — тёмно-жёлтая, под цвет самого Честного Знака (в ФБС и на /gtin/ осталась зелёной) */
    .sa-cz{--store-glass:rgba(255,193,7,.20);--store-accent:#ffc107;--store-edge:rgba(217,164,6,.6);
        border-color:rgba(217,164,6,.6);background:linear-gradient(180deg,rgba(255,193,7,.10),rgba(179,135,5,.36));
        box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 4px 12px rgba(0,0,0,.35)}
    .sa-cz:hover{border-color:rgba(217,164,6,.85);background:linear-gradient(180deg,rgba(255,193,7,.14),rgba(179,135,5,.44))}
    .sa-cz-t{color:var(--rd-accent)}.sa-cz-t.none{color:var(--rd-dim)}
    .sa-cz-n{color:var(--rd-ink)}.sa-cz-i{color:var(--rd-soft)}.sa-cz-mismatch{color:var(--rd-bad)}
    /* подпись плашки: чернила и без белого тиснения — на тёмном грунте ореол размазывал букву (как в ФБС) */
    .sa-z-l{color:var(--rd-ink);text-shadow:none}
    .sa-cz.off{--store-glass:rgba(255,255,255,.08);--store-accent:#9aa3ae;--store-edge:rgba(255,255,255,.22);
        border-color:var(--rd-rim-hi);background:var(--rd-tile);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 12px rgba(0,0,0,.3)}
    .sa-cz.off:hover{border-color:rgba(255,255,255,.3);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.04))}
    .sa-cz.off .sa-cz-n{color:var(--rd-soft)}
    /* жёлтая и красная зона ЧЗ бывают только рядом с магазином (/chz_cards/): без них тёмная зелень выше их перекрасила бы */
    .sa-cz.warn{--store-glass:rgba(255,193,7,.22);--store-accent:#ffc107;--store-edge:rgba(217,164,6,.6);border-color:rgba(217,164,6,.6);
        background:linear-gradient(180deg,rgba(255,193,7,.10),rgba(255,193,7,.22))}
    .sa-cz.warn:hover{border-color:rgba(217,164,6,.85);background:linear-gradient(180deg,rgba(255,193,7,.14),rgba(255,193,7,.28))}
    .sa-cz.bad{--store-glass:rgba(220,53,69,.22);--store-accent:#dc3545;--store-edge:rgba(220,53,69,.6);border-color:rgba(220,53,69,.6);
        background:linear-gradient(180deg,rgba(220,53,69,.10),rgba(220,53,69,.24))}
    .sa-cz.bad:hover{border-color:rgba(220,53,69,.85);background:linear-gradient(180deg,rgba(220,53,69,.14),rgba(220,53,69,.30))}
    .sa-cz.warn :is(.sa-cz-t,.sa-cz-i){color:var(--rd-warn)}.sa-cz.bad :is(.sa-cz-t,.sa-cz-i){color:var(--rd-bad)}
    .sa-sq.exit.cz{color:var(--rd-ink)}
    /* выдуманная сессия демо — серое стекло: ни жёлтой, ни зелёной, чтобы её не приняли за настоящую */
    .sa-cz.demo,.sa-cz.demo:hover{--store-glass:rgba(255,255,255,.10);--store-accent:#9aa3ae;--store-edge:rgba(255,255,255,.22);cursor:default;border-color:var(--rd-rim-hi);
        background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.09));box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 12px rgba(0,0,0,.3)}
    .sa-cz.demo :is(.sa-cz-t,.sa-cz-i){color:var(--rd-dim)}
}
@media(max-width:900px){.rd-work{display:block}.rd-rail{border-right:0;border-bottom:1px solid var(--rd-rim)}
  .rd-pane{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px}
  .rd-rail,.rd-side{width:auto}.rd-side{border-left:0;border-top:1px solid var(--rd-rim)}.rd-send{width:auto;min-width:240px}
  .rd-top{width:100%}.rd-num{flex-basis:100%;max-width:none}.rd-page .cd-search{flex-basis:100%}.rd-pager{margin-left:0;flex-basis:100%;justify-content:center}
  .rd-heading .rd-theme-btn{top:-2px}}
/* на узком угол занят заголовком: кнопки встают в поток под подзаголовком, по центру; у РД ряд длиннее — уходит раньше */
@media(max-width:1000px){.rd-heading:has(.rd-corner) .rd-theme-btn,.rd-heading .rd-corner{position:static;margin-top:6px;vertical-align:middle}.rd-heading .rd-corner{margin-right:6px}}
@media(max-width:600px){.rd-heading .rd-theme-btn{position:static;margin-top:6px;vertical-align:middle}}
