/* ═══════════════════════════════════════════════════════════════════════════
   Логистика · лист отгрузки.

   Это не дашборд, а наряд: его держат в руке ночью у рампы и отмечают ручкой.
   Поэтому геометрия документа, а не карточек: фамилия водителя крупная (по ней
   ищут строку, когда машина подъехала), номер машины моноширинным (его сверяют
   по знакам), графы отметок — настоящие пустые клетки под ручку.

   Экран и бумага — одна и та же таблица: старший смены должен видеть ровно то,
   что напечатает.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Шапка раздела ───────────────────────────────────────────────────────── */
.lg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:14px}
.lg-date{display:flex;flex-direction:column;gap:2px}
.lg-date b{font-size:21px;line-height:1.15;color:var(--text-1);letter-spacing:-.01em}
.lg-date span{font-size:12px;color:var(--text-3)}
.lg-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Сводка одной строкой: цифры через тонкие разделители, без плашек —
   плашки здесь только заняли бы место, которое нужно самому листу. */
.lg-facts{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px;
  padding:10px 14px;margin-bottom:14px;border:1px solid var(--hair);
  border-radius:var(--radius-card,10px);background:var(--surface-2)}
.lg-fact{display:flex;align-items:baseline;gap:6px;padding-right:18px;
  border-right:1px solid var(--hair)}
.lg-fact:last-child{border-right:0;padding-right:0}
.lg-fact b{font-size:16px;color:var(--text-1);font-variant-numeric:tabular-nums}
.lg-fact span{font-size:12px;color:var(--text-3)}
.lg-fact.lg-off b{color:var(--muted)}

/* ── Лист-наряд ──────────────────────────────────────────────────────────
   Сетка построена по одному правилу, чтобы линии не плясали:

     · каждая ячейка получает границу со ВСЕХ четырёх сторон — тонкую серую;
     · блок рейса обводится жирной чёрной: верх первой строки, низ последней,
       левый край первой колонки, правый край последней;
     · объединённых ячеек нет ни одной, поэтому горизонтальная линия всегда
       доходит до правого края листа.

   Раиль 17.09.2026: «вот водитель с его временем маршрутами по краю должен
   жирным выделяться… а внутри все строчки надо тоже выделять обязательно».
   ─────────────────────────────────────────────────────────────────────── */

/* Лист держим в ширину печатного листа, а не во весь экран. */
.lg-root{max-width:940px}

/* Рамку помечаем !important: общий стиль сайта
   (html:is([data-style=...]) table) специфичнее и перебивал её на светло-серую
   в один пиксель — на бумаге такая линия почти не видна, и Раиль 18.09.2026
   справедливо сказал «правая часть не печатается». */
.lg-sheet{width:100%;border-collapse:collapse;table-layout:fixed;
  background:var(--surface-2);border:2px solid var(--text-1)!important}

/* Одна общая тонкая сетка на всё. */
.lg-sheet th,
.lg-sheet td{border:1px solid var(--hair-2);vertical-align:top}

.lg-sheet thead th{position:sticky;top:0;z-index:2;
  background:var(--surface-2)!important;color:var(--text-2);
  font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;
  text-align:left;vertical-align:bottom;white-space:nowrap;padding:8px 10px;
  border-top:2px solid var(--text-1);border-bottom:2px solid var(--text-1)}
.lg-sheet thead th:first-child{border-left:2px solid var(--text-1)}
.lg-sheet thead th:last-child{border-right:2px solid var(--text-1)}
/* Граф под ручку осталась одна: «Отгружено» и «Сдано» не заполняли. */
.lg-h-time{width:62px}
.lg-h-kg{width:82px;text-align:right}
.lg-h-mark{width:92px;text-align:center}

.lg-sheet td{padding:4px 9px;color:var(--text-1)}

/* Жирная обводка блока рейса: сверху, снизу и по бокам. */
.lg-block > tr > td:first-child{border-left:2px solid var(--text-1)}
.lg-block > tr > td:last-child{border-right:2px solid var(--text-1)}
.lg-block > tr:first-child > td{border-top:2px solid var(--text-1)}
.lg-block > tr:last-child > td{border-bottom:2px solid var(--text-1)}

.lg-time{text-align:left;white-space:nowrap}
.lg-hhmm{font-size:15px;font-weight:700;color:var(--text-1);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.lg-nom{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}

/* Шапка рейса */
/* Шапка рейса: фамилия строкой, под ней машина с номером рейса. */
.lg-row-driver td{padding-top:5px;padding-bottom:4px}
.lg-name{display:inline-block;font-size:14px;font-weight:700;color:var(--text-1);
  letter-spacing:-.01em;line-height:1.2}
.lg-car{display:block;margin-top:1px;font-size:11px;color:var(--text-3);line-height:1.2}
/* Логистику ещё не доделали: машина на рейс не назначена. Не прячем — старший
   смены должен видеть такую строку и спросить у логистов. */
.lg-warn{font-weight:700;color:var(--text-1)}
.lg-trip{display:inline-block;margin-left:8px;padding:0 5px;
  font-size:10.5px;font-weight:600;color:var(--text-2);
  border:1px solid var(--hair-2);border-radius:4px;vertical-align:1px}
.lg-total{font-weight:700}

/* Точки рейса */
.lg-what{padding-left:20px}
.lg-cnt{font-size:13px;color:var(--text-1);line-height:1.3}
/* Строка, которая есть и в другом листе: её грузит не этот человек. */
.lg-dup{margin-left:8px;padding:0 5px;font-size:10.5px;color:var(--text-3);
  border:1px solid var(--hair-2);border-radius:3px;white-space:nowrap}
.lg-kg{text-align:right;white-space:nowrap;font-size:13.5px;
  font-variant-numeric:tabular-nums;color:var(--text-1)}
/* «День», «мороженое», «Диалог 3PL» собирают скопом — выделяем начертанием. */
.lg-day .lg-cnt{font-weight:700}

/* Заголовок части листа (самовывоз) */
.lg-part{margin:20px 0 8px;display:flex;align-items:baseline;gap:10px}
.lg-part b{font-size:15px;color:var(--text-1)}
.lg-part span{font-size:12px;color:var(--text-3)}

/* Пусто */
.lg-empty{padding:40px 20px;text-align:center;color:var(--text-3);font-size:14px;
  border:1px dashed var(--hair-2);border-radius:var(--radius-card,10px)}
.lg-empty b{display:block;color:var(--text-1);font-size:16px;margin-bottom:6px}

/* ── Выбор дня и листа ───────────────────────────────────────────────────
   Дата — выпадающим списком (дней копится много), рядом вкладки: оба листа,
   только сети, только розница. Печать и выгрузка берут выбранное.
   ─────────────────────────────────────────────────────────────────────── */
.lg-pick{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.lg-pick-label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-3)}
.lg-select{padding:7px 12px;border-radius:var(--radius-ctrl,8px);
  border:1px solid var(--hair-2);background:var(--surface-2);color:var(--text-1);
  font-size:13.5px;font-weight:600;cursor:pointer}
.lg-tabs{display:flex;gap:6px;flex-wrap:wrap}
.lg-tab{padding:7px 14px;border-radius:999px;border:1px solid var(--hair-2);
  background:var(--surface-2);color:var(--text-2);font-size:13px;cursor:pointer}
.lg-tab:hover{background:var(--surface-3);color:var(--text-1)}
.lg-tab.on{border-color:var(--text-1);color:var(--text-1);font-weight:600}

/* ── Два листа в одном документе ──────────────────────────────────────────
   Сетевую отгрузку и розничную отдают разным людям, поэтому каждая печатается
   со своей страницы и со своим заголовком.
   ─────────────────────────────────────────────────────────────────────── */
.lg-doc + .lg-doc{margin-top:28px}
.lg-doc-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.lg-doc-head b{font-size:17px;color:var(--text-1);letter-spacing:-.01em}
.lg-doc-head span{font-size:12px;color:var(--text-3)}

/* Заголовок, который виден только на бумаге */
.lg-paper{display:none}

/* ── Бумага ──────────────────────────────────────────────────────────────
   Толщины только целыми пикселями: дробные (.4/.5/.7) браузер при печати
   округляет по-разному, и соседние линии выходят разной насыщенности.
   ─────────────────────────────────────────────────────────────────────── */
@media print{
  .lg-noprint{display:none!important}
  .lg-root{max-width:none}
  /* Каждый лист — со своей страницы: их отдают разным людям. */
  .lg-doc + .lg-doc{margin-top:0}
  .lg-break{break-before:page;page-break-before:always}
  .lg-doc-head{margin:0 0 1.8mm}
  .lg-doc-head b{font-size:12pt;color:#000;letter-spacing:-.01em}
  .lg-doc-head span{font-size:8pt;color:#000}
  .lg-paper{display:none}

  /* Плашки сводки. box-sizing обязателен: без него рамка последней плашки
     уезжала за край листа и не печаталась. */
  .lg-facts{display:flex;flex-wrap:wrap;gap:1.2mm;margin:0 0 1.8mm;padding:0;
    border:0;background:none;width:100%;box-sizing:border-box}
  .lg-fact{display:block;box-sizing:border-box;max-width:100%;
    padding:.6mm 1.6mm;border:1px solid #000;border-radius:0;background:#fff}
  .lg-fact b{display:block;font-size:8.5pt;color:#000;line-height:1.1;
    font-variant-numeric:tabular-nums}
  .lg-fact span{display:block;margin-top:.2mm;font-size:6.5pt;color:#000;line-height:1.1}

  /* Внешняя рамка задана САМОЙ таблице, а не границам крайних ячеек.
     Граница последней ячейки печаталась не во всех браузерах — у Раиля правый
     край листа выходил без линии, хотя в Chrome он был (18.09.2026).
     Рамка таблицы — обычный блочный border, он рисуется всегда.
     Плюс запас справа: ширина таблицы 96 % и правое поле страницы 14 мм. */
  .lg-sheet{background:#fff;width:100%;border:2px solid #000!important}
  .lg-sheet th,
  .lg-sheet td{border:1px solid #9A9A9A}
  .lg-sheet thead th{position:static;background:#fff!important;color:#000;
    font-size:6.5pt;font-weight:700;padding:.7mm;white-space:normal;
    border-top:2px solid #000;border-bottom:2px solid #000}
  .lg-sheet thead th:last-child{border-right:0}
  /* 210 мм листа минус поля 8 и 12 = 190 мм полезных. Графы отметок вдвое
     уже прежнего, «Заказ» ужат, всё освободившееся отдано водителю и точкам —
     чтобы ФИО помещалось в строку. */
  .lg-sheet .lg-h-time{width:12mm}
  .lg-sheet .lg-h-kg{width:15mm}
  .lg-sheet .lg-h-mark{width:16mm}

  /* Ячейка наследует межстрочный интервал страницы (16 px), и строка не
     сжималась до размера своего текста: 19 px вместо нужных 15. Задаём явно —
     на 126 строках это полстраницы. */
  /* Межстрочный чуть больше единицы: при ровно 1 буквы с хвостиками (р, у, д)
     ложились на линию строки и списки «слипались». */
  .lg-sheet td{color:#000;padding:.1mm 1mm;font-size:7pt;line-height:1.08}
  .lg-block > tr > td:last-child{border-right:0}
  .lg-block > tr:first-child > td{border-top:2px solid #000}
  .lg-block > tr:last-child > td{border-bottom:2px solid #000}

  .lg-row-driver td{padding-top:.35mm;padding-bottom:.25mm}
  .lg-hhmm{font-size:8.5pt;color:#000}
  .lg-nom{font-size:7.5pt;color:#444}
  .lg-name{font-size:8pt;color:#000;line-height:1.05}
  .lg-car{font-size:6pt;color:#333;line-height:1;margin-top:0}
  .lg-warn{color:#000;font-weight:700}
  .lg-trip{color:#000;border:1px solid #000;font-size:7.5pt;border-radius:0}
  .lg-what{padding-left:4mm}
  .lg-cnt{font-size:7pt;color:#000;line-height:1.08}
  .lg-dup{margin-left:1.5mm;padding:0 .6mm;font-size:5.5pt;color:#333;
    border:1px solid #999;border-radius:0}
  .lg-kg{font-size:7pt;color:#000}
  .lg-part{margin:5mm 0 2mm}
  .lg-part b{color:#000;font-size:11pt}
  .lg-part span{color:#000;font-size:8.5pt}

  /* Рейс не разрывается между страницами. */
  .lg-block{break-inside:avoid;page-break-inside:avoid}
  thead{display:table-header-group}
  /* Справа поле больше: правая жирная граница листа иначе не печаталась —
     принтер обрезал её по краю (Раиль 17.09.2026). */
  @page{size:A4 portrait;margin:8mm 14mm 8mm 8mm}
}

/* ── Съёмка в PDF ────────────────────────────────────────────────────────
   На время съёмки лист выглядит ровно как на бумаге: белый фон, чёрный текст,
   те же линии. Иначе в файл попал бы экранный вид с тёмной темой.
   ─────────────────────────────────────────────────────────────────────── */
body.lg-pdf .lg-noprint{display:none!important}
body.lg-pdf .lg-root{max-width:none;background:#fff;color:#000}
body.lg-pdf .lg-paper{display:none}
body.lg-pdf .lg-doc + .lg-doc{margin-top:0}
body.lg-pdf .lg-break{break-before:page;page-break-before:always}
body.lg-pdf .lg-doc-head{margin:0 0 8px}
body.lg-pdf .lg-doc-head b{font-size:18px;color:#000}
body.lg-pdf .lg-doc-head span{font-size:11px;color:#000}
body.lg-pdf .lg-facts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;
  border:0;background:none;width:100%;box-sizing:border-box}
body.lg-pdf .lg-fact{display:block;box-sizing:border-box;padding:5px 9px;
  border:1px solid #000;border-radius:0;background:#fff}
body.lg-pdf .lg-fact b{display:block;font-size:14px;color:#000;line-height:1.1}
body.lg-pdf .lg-fact span{display:block;margin-top:1px;font-size:9px;color:#000;line-height:1.1}
body.lg-pdf .lg-sheet{background:#fff;border:2px solid #000!important}
body.lg-pdf .lg-sheet th,
body.lg-pdf .lg-sheet td{border:1px solid #9A9A9A;color:#000}
body.lg-pdf .lg-sheet thead th{position:static;background:#fff!important;color:#000;
  font-size:11px;border-top:2px solid #000;border-bottom:2px solid #000}

body.lg-pdf .lg-sheet thead th:last-child{border-right:0}
body.lg-pdf .lg-block > tr > td:last-child{border-right:0}
body.lg-pdf .lg-block > tr:first-child > td{border-top:2px solid #000}
body.lg-pdf .lg-block > tr:last-child > td{border-bottom:2px solid #000}
body.lg-pdf .lg-hhmm,body.lg-pdf .lg-name,body.lg-pdf .lg-cnt,
body.lg-pdf .lg-kg,body.lg-pdf .lg-car,body.lg-pdf .lg-nom{color:#000}
body.lg-pdf .lg-trip{color:#000;border:1px solid #000;border-radius:0}
body.lg-pdf .lg-part b,body.lg-pdf .lg-part span{color:#000}

/* ── Учётка старшего смены ────────────────────────────────────────────────
   Один раздел, знакомый вид сайта: сайдбар остаётся, но в нём только
   «Логистика», а внизу — кнопка «Выйти». Разделителей «Прочее» и нижней
   панели с чужими разделами нет: вести оттуда некуда.
   ─────────────────────────────────────────────────────────────────────── */
body.shift-only .tabbar{display:none}
body.shift-only .nav{padding-top:4px}
body.shift-only .topbar .title{font-weight:600}
/* Поиск по разделам ищет то, чего этой учётке не покажут. */
body.shift-only #global-search,
body.shift-only .topbar .search,
body.shift-only .topbar label.d2-find{display:none!important}

