/* «Белый» — рабочая тема пульта (владелец, 23.08.2026).

   Зачем: владелец дважды сказал про экран «Товары», что тот бежевый. Это не
   впечатление, а замер: в «Верстаке» все семь рабочих плоскостей сидели в
   жёлто-оранжевом канале — фон #EDEAE3 (R−B +10), лист #FFFDF8 (+7), линия
   #E5E1D7 (+14), зебра #FAF7F1 (+9), ховер #E7E3D9 (+14), полоса группы
   #F2EFE7 (+11), панель #F7F5EF (+8). Автор «Верстака» ушёл от чистого белого
   осознанно («именно он даёт блеск к концу смены») — владелец это решение
   отменил, и тема исполняет отмену буквально.

   🔴 Файл подключается ПОСЛЕДНИМ (после style.css, mobile.css и
   theme-verstak.css): плотность и липкость спорят с базовыми правилами той же
   силы, и спор решает порядок.

   ── ПРАВИЛО, РАДИ КОТОРОГО ВСЁ ЗАТЕВАЛОСЬ ────────────────────────────────
   Любая НЕЙТРАЛЬНАЯ плоскость обязана иметь R ≤ B. Тёплый серый — это и есть
   тот бежевый. Проверяется тестом tests/test_theme_work_neutral.py, а не
   глазом: иначе теплота вернётся сама через полгода.

   Правило НЕ распространяется на статусные заливки (--amber-soft, --red-soft,
   --green-soft). Янтарная плашка «просрочено» обязана быть тёплой — она этим
   и работает; обнулить её значило бы сделать «на смене» и «не на смене» одной
   серой плашкой. Бежевит рабочее поле, а не значок статуса.

   Все контрасты ниже посчитаны по WCAG, а не назначены на глаз.
   ──────────────────────────────────────────────────────────────────────── */

html.theme-work{
  /* Плоскости. Фон и лист — РОВНО #FFFFFF. Не #FFFDF8 и не #FEFEFE: владелец
     уже получил «почти белый» и назвал его бежевым, второй раз объяснять
     нечем. Вторая плоскость отстоит на ΔL* 3,2 — видно, но не полосит. */
  --bg:#FFFFFF;--surface:#FFFFFF;--surface2:#F4F6F8;      /* R−B 0 / 0 / −4 */
  /* Волосок таблицы 1,23:1 — это декор, порога у него нет. Кромка контрола
     3,37:1 к листу: WCAG 1.4.11 просит 3:1, берём с запасом — на сплошном
     белом тонкая кромка тает быстрее, чем на цветной подложке. */
  --border:#E4E8EC;--border2:#848D97;                     /* −8 / −19 */
  /* Чернильная лестница: 15,06 / 7,81 / 4,81 к белому — каждая ступень выше
     порога 4,5 для обычного текста. Не #14181C (17,84): он «звенит» на
     сплошном белом к восьмому часу, и разница между «читаю» и «щурюсь»
     стоит двух пунктов контраста. */
  --text:#22272C;--muted:#4B535B;--faint:#6B737C;         /* −10 / −16 / −17 */
  /* Единственный акцент: первичное действие, текущая вкладка, где я, ссылка.
     6,61:1 в обе стороны (белое на нём и он на белом). Фирменный янтарь
     #C56A1E даёт на белом 3,85 и роль ссылки не держит — в светлой теме он
     остаётся статусом, а не акцентом. В «Угле» янтарь как был. */
  --brand:#0B57C4;--brand-soft:#E4EDFA;--ink:#FFFFFF;
  /* Статусная шкала — отдельно от акцента, всегда со словом или формой значка.
     Заливки намеренно цветные (см. правило выше). */
  --green:#0C6636;--green-soft:#E3F1E8;
  --amber:#734B05;--amber-soft:#FBF0DA;
  --red:#A3241D;--red-soft:#FAE9E7;
  --teal:#0B6470;--teal-soft:#E0F0F2;
  --r:3px;--r-sm:3px;
  /* Тень со смещением и размытием: на белом ореол без смещения читается грязью */
  --shadow:0 1px 2px rgba(34,39,44,.06),0 1px 1px rgba(34,39,44,.04);
}

/* Нативные контролы (чекбоксы, скроллбары, дата-пикеры) — светлые */
html.theme-work,html.theme-work input,html.theme-work select,
html.theme-work textarea{color-scheme:light}
html.theme-work body{background:var(--bg)}
/* Звёздное небо тёмных тем гасим — иначе просвечивает сквозь белый лист */
html.theme-work .aurora-bg{opacity:0}

/* ── Колонка разделов ───────────────────────────────────────
   «Верстак» держал тут тёмно-синюю плиту: она убирала четверть светящегося
   поля. Владелец 23.08 выбрал экран, где разделы стоят СТРОКОЙ сверху и
   ничего тёмного нет вовсе — тема следует этому выбору и оставляет колонку
   белой. Если после смены на белом придёт «слепит», тёмная плита
   возвращается двумя правилами (образец — theme-verstak.css:46-66), но НЕ
   возвращается бежевый: плита была синей, а не кремовой. */
html.theme-work .sidebar{
  background:var(--surface);border-right:1px solid var(--border);
}
html.theme-work .sidebar .sb-link.sb-active{
  background:var(--brand-soft);border-color:transparent;color:var(--brand);
  font-weight:600;box-shadow:inset 2px 0 0 var(--brand);
}
html.theme-work .sidebar .sb-link:hover{
  background:var(--surface2);border-color:transparent;color:var(--text);
}

/* ── Плотность ──────────────────────────────────────────────
   Строка 30px вместо 44px = +45% строк в экран; на 360 штрихкодах это в два
   с лишним раза меньше колеса мыши. Без этих правил тема меняет только цвет.

   Три оговорки, каждая из-за конкретной поломки:
   1. padding сверху/снизу 4px, а НЕ 0: ячейки с аватаром 34px (.who) при
      нулевом поле упираются в линии.
   2. только шире 640px: mobile.css:61 ставит на телефоне свои 9px/11px, и
      перебивать их плотностью для мыши нельзя.
   3. .ms-copy исключён: экран-копия МойСклада несёт собственную плотность
      (файл ms-copy), и две плотности в одной таблице дают рваный шаг строк. */
@media (min-width:641px){
  html.theme-work .tbl:not(.gm-tbl) th{
    height:44px;padding:0 16px 4px;font-size:12px;letter-spacing:.04em;
    white-space:normal;line-height:1.2;color:var(--muted);
  }
  html.theme-work .tbl:not(.gm-tbl) td{height:30px;padding:4px 16px}
}
/* Зебра-шёпот: ΔL* 1,43 к белому — на грани различимости, но строку держит.
   Ховер уходит от белого на ΔL* 3,95, то есть он в 2,8 раза глубже зебры
   (правило «ховер не меньше двух зебр»). Иначе под курсором строка «мигает»
   между своей зеброй и подсветкой, и глаз её теряет. */
html.theme-work .tbl tbody tr:nth-of-type(even) td{background:#FAFBFC}
html.theme-work .tbl tbody tr:hover td{background:#F1F4F7}
html.theme-work .tbl tbody tr.cell-band td{background:var(--surface2)}
/* Базовый .cell-band:hover (style.css) слабее правила выше по весу — без этой
   пары строки группировки перестают отвечать на наведение в паллетах,
   волнах и приёмке. */
html.theme-work .tbl tbody tr.cell-band:hover td{background:#F1F4F7}

/* ── Край листа ─────────────────────────────────────────────
   .ms-copy берёт var(--border) напрямую (файл ms-copy, строка 21). На белой
   странице волосок 1,23:1 не отделяет лист от фона вовсе — лист «растворяется».

   ⚠️ Имя того файла намеренно БЕЗ расширения. Отбор тестов CI ищет ссылки на
   статику грепом по базовому имени (scripts/ci_select_tests.sh, resolve_by_refs):
   стоит написать полное имя с .css — и отбор решит, что правка ms-copy задевает
   эту тему, отсюда base.html, отсюда весь пульт, и вместо тестов модуля погонит
   FULL. Проверено: tests/test_ci_select.py краснеет ровно на этом. */
html.theme-work .ms-copy{border-color:var(--border2)}

/* ── Поля ввода ─────────────────────────────────────────────
   Перечень типов повторяет style.css:688-689 ЦЕЛИКОМ. Урезанный список
   оставлял email/password/time с фоном --surface2: на экране входа половина
   формы была серой на белом. */
html.theme-work input:not([type]),html.theme-work input[type=text],
html.theme-work input[type=email],html.theme-work input[type=password],
html.theme-work input[type=number],html.theme-work input[type=search],
html.theme-work input[type=date],html.theme-work input[type=datetime-local],
html.theme-work input[type=time],html.theme-work select,html.theme-work textarea{
  background:var(--surface);border-color:var(--border2);color:var(--text);
}
html.theme-work input:focus,html.theme-work select:focus,html.theme-work textarea:focus{
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(11,87,196,.16);
}

/* ── Точечные починки, найденные разбором на живом коде ─────
   Каждая — конкретная пара цветов, не проходившая порог. */

/* Карточка действия на /m/barcode/home: подписи внутри держат свой цвет явно
   (style.css:952-954), поэтому на залитом акценте давали 2,70 / 1,38 / 1,07.
   Лечим не подписи, а саму карточку: заливку снимаем, «первичность» несёт
   кант. Язычок #rail-toggle расцеплен — ему заливка не мешает. */
html.theme-work .action.primary{
  background:var(--surface);border-color:var(--brand);
  box-shadow:inset 3px 0 0 var(--brand);
}
html.theme-work #rail-toggle:hover{
  background:var(--brand);border-color:var(--brand);color:var(--ink);
}

/* Бирюзовый чип: правило темы для .chip перечисляет green/amber/red/brand и
   бьёт .chip.teal по весу — без этой строки чип сереет в 10 шаблонах
   (supply_sync, unit/order, portal/account, access/home, logistics). */
html.theme-work .chip.teal{border-color:var(--teal);color:var(--teal)}

/* «Остатки ФБС»: состояние «отдаём остаток» и активная вкладка площадки при
   синем акценте становились двумя одинаковыми синими пятнами. Разводим:
   действие — акцент, статус — зелёный. Белое на зелёном 7,07:1. */
html.theme-work .pick{background:var(--surface);font-size:11.5px}
html.theme-work .pick.is-on{background:var(--green);border-color:var(--green);color:#fff}
html.theme-work .pick.is-on:hover{filter:brightness(1.08)}
html.theme-work .fbs-tab.on{color:var(--brand);border-bottom-color:var(--brand)}

/* .kpi НЕ переопределяем: он общий для дашборда «Обзор», и подмена его
   схлопнула бы карточки на другом экране. */
