/* «Новый запуск» — создание карточки товара.
   Свои классы с префиксом lc-, чтобы правки этого экрана не задевали остальной
   интерфейс. Цвета, кегли, отступы и радиусы — только из общей шкалы в style.css:
   собственных значений здесь нет, иначе экран начнёт выбиваться из системы. */

.lc-head-actions{display:flex;gap:var(--sp-2);align-items:center}

/* Список заявок широкий: в нём девять колонок, и на обычной ширине окна кнопка
   «Внесено в 1С» уезжала за правый край. */
#modal-launches .modal-box{width:96vw;max-width:1560px}

/* Полоска-итог над списком: сколько заявок и что с ними. */
.lc-bar{display:flex;gap:var(--sp-4);align-items:center;flex-wrap:wrap;
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--fs-base)}
.lc-bar b{font-size:var(--fs-num)}

.lc-sec{margin-bottom:var(--sp-5)}
.lc-sec > h3{margin:0 0 var(--sp-2);font-size:var(--fs-num);font-weight:600}
.lc-sec > h3 .lc-cnt{color:var(--muted);font-weight:400;font-size:var(--fs-base)}

/* Ширину держим внутри блока: широкая таблица уезжает своей горизонтальной
   прокруткой, а не вылезает за белое окно. */
.lc-scroll{overflow-x:auto}
.lc-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-base)}
/* text-align задан явно: общий стиль таблиц прижимает ячейки вправо (там числа),
   а здесь колонки текстовые, и от этого текст расползался по краям. */
.lc-tbl th{text-align:left;font-size:var(--fs-cap);text-transform:uppercase;
  letter-spacing:.02em;color:var(--muted);font-weight:600;
  padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--line);white-space:nowrap}
.lc-tbl td{padding:var(--sp-2);border-bottom:1px solid var(--line);vertical-align:top;
  text-align:left}
.lc-tbl td .muted{font-size:var(--fs-cap)}
.lc-tbl .nowrap{white-space:nowrap}
.lc-tbl tr:hover td{background:var(--panel2)}
.lc-tbl .ta-r{text-align:right}
.lc-empty{color:var(--muted);padding:var(--sp-3);background:var(--panel2);
  border-radius:var(--r-md);font-size:var(--fs-base)}

/* Статусы. Пометка — внутренней тенью, а не рамкой: рамка сдвигает содержимое
   строки на пиксель и таблица «дышит» при каждой перерисовке. */
.lc-badge{display:inline-block;padding:1px var(--sp-2);border-radius:var(--r-sm);
  font-size:var(--fs-cap);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--line)}
.lc-badge.wait{background:var(--warn-soft);color:var(--warn);box-shadow:inset 0 0 0 1px #f0d9ae}
.lc-badge.done{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px #bfe0cd}
.lc-badge.off{background:var(--panel2);color:var(--muted)}

/* ---------- форма ---------- */
.lc-row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.lc-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.lc-lbl{display:block;font-size:var(--fs-cap);text-transform:uppercase;letter-spacing:.02em;
  color:var(--muted);font-weight:600;margin-bottom:var(--sp-1)}
.lc-lbl .opt{text-transform:none;font-weight:400;letter-spacing:0}
.lc-row2 input,.lc-row2 select,.lc-row3 input,.lc-row3 select{width:100%}
.lc-hint{font-size:var(--fs-cap);color:var(--muted);margin:calc(-1 * var(--sp-2)) 0 var(--sp-3)}
.lc-block{border-top:1px solid var(--line);padding-top:var(--sp-3);margin-bottom:var(--sp-3)}

/* Цена на МП — считается, не вводится. Мягкая заливка говорит «это результат». */
.lc-calc{background:var(--ok-soft);font-weight:600}

/* Быстрые кнопки даты начала продаж. */
.lc-quick{display:flex;gap:var(--sp-1);margin-top:var(--sp-1)}

.lc-newline{margin-top:var(--sp-1);width:100%}
.lc-link{background:none;border:0;padding:0;color:var(--accent2);cursor:pointer;
  font-size:var(--fs-cap);text-decoration:underline;text-underline-offset:2px}
.lc-link:hover{color:var(--brand)}

/* Составляющие: колонка себестоимости идёт сразу после количества — так просил
   владелец, в конце строки её не видно рядом с числом, к которому она относится. */
.lc-comp{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-1)}
.lc-comp > select{flex:1;min-width:0}
.lc-comp > .qty{width:70px;flex:0 0 auto}
.lc-comp > .rowcost{width:104px;flex:0 0 auto;text-align:right;font-size:var(--fs-base)}
/* Ширина кнопки удаления зафиксирована: иначе она не совпадает с распоркой в шапке
   и колонка «Себестоимость» стоит не над своими числами. */
.lc-comp > button{width:30px;flex:0 0 auto;padding:0;text-align:center}
.lc-comp-head{font-size:var(--fs-cap);color:var(--muted);text-transform:uppercase;
  font-weight:600;margin-bottom:var(--sp-1)}
.lc-comp-head > span:first-child{flex:1}
.lc-comp-new{display:flex;gap:var(--sp-2);align-items:center;
  margin:0 0 var(--sp-2) var(--sp-4)}
.lc-comp-new input{flex:1}
.lc-scope{display:block;font-size:var(--fs-cap);color:var(--muted);margin:var(--sp-2) 0}
.lc-costs{display:flex;gap:var(--sp-5);margin-top:var(--sp-2);font-size:var(--fs-base)}
.lc-costs b{font-size:var(--fs-num)}
/* Пометка о приблизительности себестоимости — требование владельца, её нельзя
   убирать и нельзя смягчать до вида точного числа. */
.lc-approx{font-size:var(--fs-cap);color:var(--warn);margin-top:var(--sp-1)}

.lc-pack{display:flex;gap:var(--sp-4);align-items:center;margin-bottom:var(--sp-2);
  font-size:var(--fs-base)}
.lc-pack label{display:flex;gap:var(--sp-1);align-items:center;cursor:pointer}
.lc-dims{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-2)}

.lc-warn{background:var(--warn-soft);color:var(--warn);border-radius:var(--r-md);
  padding:var(--sp-2) var(--sp-3);font-size:var(--fs-base);margin-bottom:var(--sp-3)}
.lc-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);
  padding-top:var(--sp-3);border-top:1px solid var(--line)}

/* Результат сохранения — окном поверх, а не вставкой в поток: страница под ним
   не должна прыгать (правило DEVELOPMENT.md §7). */
.lc-done{max-width:640px}
.lc-done pre{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--sp-3);font-size:var(--fs-cap);max-height:40vh;overflow:auto;margin:0}

@media (max-width:900px){
  .lc-row2,.lc-row3{grid-template-columns:1fr}
}

/* ---------- строки-заявки в БАЗОВОЙ ТАБЛИЦЕ ----------
   Заявка приходит в общем массиве /api/basetable (is_launch=true, nmid=null) и закреплена
   первой строкой своего направления. Задача стилей — чтобы её нельзя было спутать с живым
   артикулом: у неё нет ни цифр, ни ссылки на карточку. Всё в launch.css, а не в style.css:
   app.js и style.css участвуют в мержах вендорских версий, каждая строка там — долг.
   Значения берём из общей шкалы style.css: свой цвет тут один — #f0dcae, это уже принятая
   в style.css рамка к --warn-soft, и заводить вместо неё новый оттенок незачем. */

/* Метка «это не товар» — только на левом закреплённом блоке: тонкая полоска у колонки
   «Параметр». Заливать всю строку целиком нельзя — блок заявки высотой в 10–13 строк
   превратился бы в жёлтое полотно и перекричал бы данные соседних артикулов. Тень
   внутрь, а не border: border сдвинул бы содержимое на пиксель, и таблица «дышала» бы
   при каждой перерисовке. */
#mon-table tr.lc-bt-tr .bt-metric{box-shadow:inset 2px 0 0 var(--warn)}

/* Ячейка-шапка заявки. Курсор — «указатель»: клик уводит на экран заявок, карточки
   товара у неё не существует. */
#mon-table .bt-sku.lc-bt-sku{cursor:pointer;background:var(--warn-soft)}
#mon-table .bt-sku.lc-bt-sku:hover{box-shadow:inset 0 0 0 1px #f0dcae}

/* Бейдж статуса стоит ровно на месте артикула, поэтому по весу он как артикул. */
.lc-bt-badge{display:inline-block;font-weight:700;font-size:var(--fs-cap);
  line-height:16px;padding:1px var(--sp-2);border-radius:var(--r-sm);
  background:var(--warn);color:#fff;white-space:nowrap}

/* «Архив» — заявка без движения 30 дней. Она не исчезает, а гаснет: тот же приём, что у
   нулевых артикулов, иначе «пропала заявка» повторит историю с пропавшими артикулами. */
.lc-bt-arch{display:inline-block;font-size:var(--fs-cap);line-height:16px;
  padding:0 var(--sp-1);border-radius:var(--r-sm);
  background:var(--panel2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}

/* «Деньги скрыты» — часть полей закрыта правами (решение владельца 02.09.2026): факт
   заявки виден всем, а себестоимость, цены и состав — только своим. Пишем это прямо в
   строке, чтобы человек не решил, что данных нет вообще. */
.lc-bt-hidden{border-bottom:1px dotted var(--line);cursor:help}

/* Счётчик заявок рядом с «N арт» в шапке направления: заявки в число артикулов и в
   знаменатель средних не входят, поэтому и бейдж у них отдельный. */
.gbadge.lc-bt-gbadge{background:var(--warn-soft);color:var(--warn);border-color:#f0dcae}

/* Поиск и переключатели над списком составляющих. Позиций три сотни, и без поиска
   нужную не найти; счётчик рядом показывает, сколько осталось после сужения. */
.lc-comp-tools{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin:var(--sp-2) 0}
.lc-comp-tools #lf-comp-q{flex:1 1 260px;min-width:180px}
.lc-comp-tools .lc-scope{margin:0}
.lc-comp-count{font-size:var(--fs-cap);color:var(--muted);white-space:nowrap}

/* Строка, вписанная руками: поля вместо выпадающего списка. Ширины те же, что у
   обычной строки, иначе колонки разъедутся. */
.lc-comp-hand > .mname{flex:1;min-width:0}
.lc-comp-hand > .mcost{width:104px;flex:0 0 auto;text-align:right}
