/* ==========================================================================
   Стили печати для стандартных принтеров А4 (5мм поля, экономия бумаги и тонера)
   Поддерживает:
   1. Накладные (ЖҮКҚҰЖАТ): 2 компактных экземпляра (А5) на одном листе А4
      с линией отреза ножницами (✂).
   2. Сводка на кухню: многоколоночный компактный список блюд на листе А4.
   ========================================================================== */

#printable-waybill,
#printable-kitchen-summary {
  display: none;
}

/* Накладная печатается на альбомном А4 (именованная страница),
   сводка на кухню остаётся на книжном А4 (@page по умолчанию) */
@page {
  size: landscape;
  margin: 0mm !important;
}

@page waybill-landscape {
  size: landscape;
  margin: 0mm !important;
}

@page kitchen-portrait {
  size: A4 portrait;
  margin: 0mm !important;
}

/* ==========================================================================
   ОБЩИЕ СТИЛИ ДЛЯ БЛАНКОВ (и в окне предпросмотра, и при печати)
   ========================================================================== */

.waybill-copy {
  box-sizing: border-box;
  width: 100%;
  color: #000000;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 8pt;
  line-height: 1.15;
  padding: 1mm 0;
}

/* Шапка накладной */
.wb-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1.5px solid #000000;
  padding-bottom: 1.5mm;
  margin-bottom: 1.5mm;
}

.wb-header-left {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.wb-title {
  font-size: 10pt;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  line-height: 1.1;
  color: #000000;
}

.wb-sub {
  font-size: 7.5pt;
  color: #111111;
}

.wb-badge {
  display: inline-block;
  font-size: 7pt;
  font-weight: bold;
  border: 1px solid #000000;
  padding: 0.5px 5px;
  border-radius: 2px;
  margin-top: 1px;
  text-transform: uppercase;
  width: fit-content;
  color: #000000;
}

.wb-header-right {
  text-align: right;
  font-size: 7.5pt;
  line-height: 1.25;
  color: #000000;
}

/* Реквизиты сторон */
.wb-info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 7.5pt;
  margin-bottom: 1.5mm;
}

.wb-info-table tr {
  line-height: 1.2;
}

.wb-info-lbl {
  width: 26%;
  font-weight: bold;
  padding: 0.5mm 0;
  vertical-align: top;
  color: #000000;
}

.wb-info-val {
  width: 74%;
  border-bottom: 0.5px solid #666666;
  padding: 0.5mm 2px;
  vertical-align: top;
  color: #000000;
}

/* Таблица накладной */
.waybill-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1mm;
  margin-bottom: 1.5mm;
}

.waybill-table th,
.waybill-table td {
  border: 1px solid #000000;
  padding: 1.2mm 2mm;
  font-size: 7.5pt;
  line-height: 1.15;
  color: #000000;
}

.waybill-table th {
  background-color: #f2f2f2;
  text-align: center;
  font-weight: bold;
}

.wb-col-idx {
  width: 5%;
  text-align: center;
}

.wb-col-name {
  width: 48%;
  text-align: left;
  word-break: break-word;
}

.wb-col-unit {
  width: 10%;
  text-align: center;
}

.wb-col-qty {
  width: 10%;
  text-align: center;
}

.wb-col-price {
  width: 13%;
  text-align: right;
  white-space: nowrap;
}

.wb-col-sum {
  width: 14%;
  text-align: right;
  white-space: nowrap;
}

.wb-tfoot-row td {
  border-top: 1.5px solid #000000;
  padding: 1.2mm 2mm;
  font-weight: bold;
}

.wb-tfoot-lbl {
  text-align: right;
}

/* Блок сумм прописью и примечания */
.wb-summary-block {
  font-size: 7.5pt;
  line-height: 1.25;
  margin-top: 1mm;
  margin-bottom: 1.5mm;
  color: #000000;
}

.wb-sum-line {
  margin-bottom: 1px;
}

.wb-words-line {
  margin-bottom: 1px;
}

.wb-notes {
  margin-top: 1px;
}

/* Блок подписей сторон */
.wb-signatures {
  display: flex;
  justify-content: space-between;
  margin-top: 1.5mm;
  font-size: 7.5pt;
  color: #000000;
}

.wb-sig-box {
  width: 48%;
}

.wb-sig-line {
  white-space: nowrap;
}

.wb-sig-desc {
  font-size: 6.5pt;
  color: #555555;
  margin-top: 0.5mm;
}

/* Свободное место под подписи и пометки от руки (вместо строк «Отпустил / Получил») */
.wb-free-space {
  height: 16mm;
}

/* Пустая строка-разделитель перед блоком «Обмен» */
.wb-sep-row td {
  height: 1.6mm;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1;
  font-size: 1px;
  border-top: 2.5px solid #000000;
  border-bottom: 2.5px solid #000000;
}

/* Линия отреза ножницами между копиями */
.waybill-cut-line {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2.5mm 0;
  height: 4mm;
  color: #222222;
  font-size: 7pt;
  user-select: none;
  font-family: Arial, sans-serif;
}

.cut-scissors {
  font-size: 10pt;
  margin: 0 4px;
  line-height: 1;
}

.cut-line-dashes {
  flex: 1;
  border-bottom: 1px dashed #000000;
  height: 1px;
}

.cut-text {
  padding: 0 8px;
  font-weight: bold;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  font-size: 6.5pt;
  white-space: nowrap;
}

/* ==========================================================================
   СТИЛИ ПЕЧАТИ (@media print) ДЛЯ СТАНДАРТНОГО ПРИНТЕРА A4
   ========================================================================== */

@media print {
  @page {
    size: landscape;
    margin: 0mm !important;
  }

  *, *::before, *::after {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  body {
    background: #ffffff !important;
    color: #000000 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 8pt;
    line-height: 1.15;
    margin: 0 !important;
    padding: 8mm 10mm !important;
    box-sizing: border-box !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Печатается ТОЛЬКО бланк: всё остальное на странице (интерфейс CRM, любые окна,
     в том числе созданные скриптом на лету) скрыто — иначе выходит лишняя серая страница */
  html, body,
  html.light-theme:root, html.light-theme:root body,
  html:root body, html:root:not(.light-theme) body {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
  }
  body > *:not(#printable-waybill):not(#printable-kitchen-summary) {
    display: none !important;
  }
  /* Накладная: весь документ на именованной странице «A4 альбомный» */
  body:not(.printing-kitchen) {
    page: waybill-landscape;
  }

  /* Скрываем весь веб-интерфейс CRM, навигацию, модалки */
  #crm-app-container,
  #modal-preview,
  #modal-simulator,
  #modal-settings,
  #modal-add-order-item,
  #modal-menu-item,
  #modal-quick-courier,
  #modal-kitchen-summary,
  header,
  footer,
  nav,
  button,
  .no-print {
    display: none !important;
    visibility: hidden !important;
  }

  /* --------------------------------------------------------------------------
     РЕЖИМ 1: НАКЛАДНЫЕ (ЖҮКҚҰЖАТ) — 2 КОМПАКТНЫХ ЭКЗЕМПЛЯРА НА 1 ЛИСТЕ А4
     -------------------------------------------------------------------------- */
  body:not(.printing-kitchen) #printable-waybill {
    page: waybill-landscape;
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    background: #ffffff !important;
    color: #000000 !important;
  }

  body:not(.printing-kitchen) #printable-waybill * {
    visibility: visible !important;
  }

  .waybill-copy {
    max-height: 137mm;
    overflow: hidden;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .waybill-cut-line {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* --------------------------------------------------------------------------
     РЕЖИМ 2: СВОДКА НА КУХНЮ — МНОГОКОЛОНОЧНЫЙ ВИД НА ЛИСТЕ А4
     -------------------------------------------------------------------------- */
  body.printing-kitchen {
    page: kitchen-portrait;
    font-size: 8.5pt !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 8mm 10mm !important;
    box-sizing: border-box !important;
  }

  body.printing-kitchen #printable-kitchen-summary {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 100% !important;
    max-width: 200mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
  }

  body.printing-kitchen #printable-kitchen-summary * {
    visibility: visible !important;
  }

  .ks-a4-sheet {
    box-sizing: border-box;
    width: 100%;
  }

  /* --- Термопринтер 80 мм: лента ~72 мм, одна колонка, крупные количества --- */
  body.printing-kitchen.printing-kitchen-80 {
    padding: 2mm 3mm !important;
    width: 80mm !important;
    font-size: 10pt !important;
  }
  body.printing-kitchen-80 #printable-kitchen-summary {
    max-width: 74mm !important;
    margin: 0 !important;
  }
  body.printing-kitchen-80 .ks-a4-header { flex-direction: column; gap: 1.5mm; }
  body.printing-kitchen-80 .ks-a4-title { font-size: 12pt; }
  body.printing-kitchen-80 .ks-a4-meta { text-align: left; font-size: 8pt; }
  body.printing-kitchen-80 .ks-a4-dishes-grid,
  body.printing-kitchen-80 .ks-a4-dishes-grid.cols-3 { column-count: 1 !important; column-rule: none; }
  body.printing-kitchen-80 .ks-dish-card { padding: 1.6mm 0; font-size: 10.5pt; border-bottom: 1px dashed #000; }
  body.printing-kitchen-80 .ks-dish-idx { width: 6mm; font-size: 8.5pt; }
  body.printing-kitchen-80 .ks-dish-qty { font-size: 14pt; padding-left: 2mm; }
  body.printing-kitchen-80 .ks-dish-dots { display: none; }
  body.printing-kitchen-80 .ks-a4-footer { flex-direction: column; align-items: stretch; gap: 1.5mm; font-size: 8pt; }
  body.printing-kitchen-80 .ks-a4-footer-total { font-size: 11pt; display: flex; justify-content: space-between; }

  .ks-a4-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 2px solid #000000;
    padding-bottom: 2mm;
    margin-bottom: 3mm;
  }

  .ks-a4-title {
    font-size: 13pt;
    font-weight: 900;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.15;
  }

  .ks-a4-subtitle {
    font-size: 7.5pt;
    color: #222222;
    margin-top: 0.5mm;
  }

  .ks-a4-meta {
    font-size: 7.5pt;
    text-align: right;
    line-height: 1.35;
  }

  /* Многоколоночная сетка блюд (CSS columns) */
  .ks-a4-dishes-grid {
    column-count: 2;
    column-gap: 8mm;
    column-rule: 1px dashed #000000;
    width: 100%;
  }

  .ks-a4-dishes-grid.cols-3 {
    column-count: 3;
    column-gap: 6mm;
  }

  .ks-dish-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px dotted #888888;
    padding: 1.5mm 1mm;
    break-inside: avoid;
    page-break-inside: avoid;
    font-size: 8.5pt;
  }

  .ks-a4-dishes-grid.cols-3 .ks-dish-card {
    padding: 1.1mm 0.5mm;
    font-size: 7.5pt;
  }

  .ks-dish-left {
    display: flex;
    align-items: baseline;
    flex: 1;
    min-width: 0;
  }

  .ks-dish-idx {
    font-weight: bold;
    font-size: 7pt;
    color: #333333;
    width: 16px;
    flex-shrink: 0;
  }

  .ks-dish-name {
    font-weight: 700;
    color: #000000;
    word-break: break-word;
    line-height: 1.15;
  }

  .ks-dish-dots {
    flex: 1;
    border-bottom: 1px dotted #999999;
    margin: 0 4px 2px 4px;
    min-width: 6px;
  }

  .ks-dish-qty {
    font-size: 12pt;
    font-weight: 900;
    color: #000000;
    white-space: nowrap;
    flex-shrink: 0;
    text-align: right;
  }

  .ks-a4-dishes-grid.cols-3 .ks-dish-qty {
    font-size: 10.5pt;
  }

  .ks-dish-qty small {
    font-size: 7pt;
    font-weight: normal;
    color: #333333;
    margin-left: 1px;
  }

  .ks-a4-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 2px solid #000000;
    margin-top: 4mm;
    padding-top: 2mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .ks-a4-footer-left {
    font-size: 7pt;
    color: #444444;
    font-style: italic;
  }

  .ks-a4-footer-total {
    font-size: 9pt;
    font-weight: bold;
    display: flex;
    align-items: baseline;
    gap: 6px;
  }

  .ks-a4-footer-total strong {
    font-size: 14pt;
    font-weight: 900;
    color: #000000;
  }
}

/* Клиент (получатель) и курьер — жирно и с серой подложкой */
.wb-key-row td {
  background: #d9d9d9 !important;
  font-weight: bold !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.wb-key-row .wb-info-lbl { padding-left: 2px; }


/* ==========================================================================
   НАКЛАДНАЯ НА АЛЬБОМНОМ А4: 2 одинаковые половины
   («Экземпляр 1» слева, «Для клиента» справа, пунктир-линия отреза по центру)
   ========================================================================== */
.pil-sheet {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  background: #ffffff;
  color: #000000;
}

.pil-receipt {
  box-sizing: border-box;
  padding: 0 6mm;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size: 9pt;
  line-height: 1.25;
  color: #000000;
  break-inside: avoid;
}
.pil-receipt:first-child { padding-left: 0; border-right: 1.2px dashed #000000; }
.pil-receipt:last-child { padding-right: 0; }

.pil-copy-label {
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: .3px;
  text-align: center;
  border: 1.5px solid #000000;
  padding: 0.6mm 0;
  margin-bottom: 1.5mm;
}

.pil-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid #000000;
  padding-bottom: 0.6mm;
  margin-bottom: 1.2mm;
}
.pil-title { font-size: 9pt; font-weight: 700; line-height: 1.15; }
.pil-date { font-size: 8.5pt; font-weight: 700; text-align: right; line-height: 1.15; }

.pil-party {
  display: flex;
  gap: 3mm;
  padding: 1.6mm 2mm;
  margin-bottom: 1.2mm;
  font-weight: 700;
  background: #d1d5db !important;
  border: 1px solid #6b7280;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.pil-party-lbl { width: 22mm; flex-shrink: 0; font-weight: 800; letter-spacing: .3px; }
.pil-party-val { font-weight: 800; }

.pil-items {
  width: 100%;
  border-collapse: collapse;
  margin-top: 2.5mm;
  font-size: 8.5pt;
}
.pil-items th,
.pil-items td {
  border: 0.6px solid #000000;
  padding: 0.9mm 1.4mm;
  vertical-align: top;
}
.pil-items th {
  font-size: 7.5pt;
  font-weight: 800;
  text-transform: uppercase;
  background: #eeeeee !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.pil-items .pil-c { text-align: center; white-space: nowrap; }
.pil-items .pil-r { text-align: right; white-space: nowrap; }
.pil-items .pil-n { width: 6mm; text-align: center; }

.pil-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 2.5mm;
  padding-top: 1.5mm;
  border-top: 1.5px solid #000000;
  font-size: 12pt;
  font-weight: 900;
}

.pil-sign {
  display: flex;
  justify-content: space-between;
  gap: 6mm;
  margin-top: 6mm;
  font-size: 8pt;
}
.pil-sign span { flex: 1; border-top: 0.6px solid #000000; padding-top: 0.8mm; }

/* «Ёлочка» (зигзаг) над блюдами-обменами (они всегда внизу списка) */
.pil-items tr.pil-exchange-sep td {
  padding: 0.8mm 0 !important;
  line-height: 0;
  border-left: none !important;
  border-right: none !important;
  border-top: 0.6px solid #000000 !important;
  border-bottom: 0.6px solid #000000 !important;
  background: #ffffff !important;
}
.pil-items tr.pil-exchange-sep svg { display: block; width: 100%; height: 10px; }

/* Толстая линия между категориями блюд */
.pil-items tr.pil-cat-first td {
  border-top: 2.5px solid #000000 !important;
}

.pil-exchange-band { display: flex; align-items: center; gap: 2mm; }
.pil-exchange-band .pil-zz { flex: 1; line-height: 0; }
.pil-exchange-word { font-size: 6pt; font-weight: 700; letter-spacing: 0.6px; line-height: 1; color: #000000; }

/* Длинные накладные: ступенчато уменьшаем таблицу, чтобы всё влезло на один лист */
.pil-receipt.pil-dense-1 .pil-items { font-size: 7.5pt; }
.pil-receipt.pil-dense-1 .pil-items td { padding: 0.45mm 1.2mm; }
.pil-receipt.pil-dense-2 .pil-items { font-size: 6.6pt; }
.pil-receipt.pil-dense-2 .pil-items th { font-size: 6.5pt; padding: 0.4mm 1mm; }
.pil-receipt.pil-dense-2 .pil-items td { padding: 0.15mm 1mm; line-height: 1.1; }
.pil-receipt.pil-dense-2 .pil-party { padding: 1mm 2mm; }
.pil-receipt.pil-dense-2 .pil-sign { margin-top: 3mm; }
.pil-receipt.pil-dense-3 .pil-items { font-size: 5.8pt; }
.pil-receipt.pil-dense-3 .pil-items th { font-size: 5.8pt; padding: 0.2mm 0.8mm; }
.pil-receipt.pil-dense-3 .pil-items td { padding: 0 0.8mm; line-height: 1.05; }
.pil-receipt.pil-dense-3 .pil-party { padding: 0.6mm 2mm; margin-bottom: 0.8mm; }
.pil-receipt.pil-dense-3 .pil-copy-label { padding: 0.2mm 0; margin-bottom: 1mm; }
.pil-receipt.pil-dense-3 .pil-total { margin-top: 1.2mm; font-size: 10pt; }
.pil-receipt.pil-dense-3 .pil-sign { margin-top: 2mm; }
.pil-receipt.pil-dense-2 .pil-exchange-sep td,
.pil-receipt.pil-dense-3 .pil-exchange-sep td { padding: 0.3mm 0 !important; }
