/* Палітра і тон — з прототипу «Склад» (sklad.html :root): спокійний синій акцент, темна навігація, світлі панелі. */
:root {
  --ground: #f3f4f6;
  --panel: #ffffff;
  --panel-alt: #f8f9fb;
  --line: #dfe3e8;
  --line-strong: #c5cbd3;
  --ink: #1b2430;
  --ink-2: #4b5563;
  --ink-3: #8a94a3;
  --accent: #2f5d8a;
  --accent-ink: #ffffff;
  --accent-soft: #e7eef6;
  --nav-bg: #1f2933;
  --nav-ink: #c9d2dc;
  --nav-ink-active: #ffffff;
  --warn: #b7791f;
  --warn-soft: #fbf1dc;
  --bad: #b0413e;
  --bad-soft: #f9e5e4;
  --ok: #2f7d4f;
  --mk: #5b3fa0;
  --mk-soft: #ece6f7;
  --shadow: 0 8px 24px rgba(27, 36, 48, .14);
  --mono: "IBM Plex Mono", Consolas, monospace;
  /* Bootstrap під ту саму палітру */
  --bs-primary: #2f5d8a;
  --bs-primary-rgb: 47, 93, 138;
  --bs-body-bg: #f3f4f6;
  --bs-body-color: #1b2430;
  --bs-border-color: #dfe3e8;
  --bs-link-color: #2f5d8a;
  --bs-link-hover-color: #244a6f;
  --bs-font-sans-serif: "IBM Plex Sans", "Segoe UI", Arial, sans-serif;
}

html { font-size: 14px; position: relative; min-height: 100%; }
body { margin-bottom: 60px; background: var(--ground); color: var(--ink); line-height: 1.45; }

/* Навігація — темна смуга, як у прототипі */
.erp-nav { background: var(--nav-bg); }
.erp-nav .navbar-brand { color: var(--nav-ink-active); font-weight: 600; letter-spacing: -.01em; }
.erp-nav .nav-link, .erp-nav .nav-link.text-dark, .erp-nav .btn-link.nav-link { color: var(--nav-ink) !important; }
.erp-nav .nav-link:hover, .erp-nav .nav-link.text-dark:hover { color: var(--nav-ink-active) !important; }
.erp-nav .navbar-toggler { border-color: var(--line-strong); }

h1, h2, h3, h4, h5 { font-weight: 600; letter-spacing: -.01em; }
.text-muted { color: var(--ink-2) !important; }

.btn-primary { --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent); --bs-btn-hover-bg: #27507a; --bs-btn-hover-border-color: #27507a; --bs-btn-active-bg: #214467; --bs-btn-active-border-color: #214467; }
.btn-outline-primary { --bs-btn-color: var(--accent); --bs-btn-border-color: var(--accent); --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent); }
.btn-outline-secondary { --bs-btn-color: var(--ink-2); --bs-btn-border-color: var(--line-strong); --bs-btn-hover-bg: var(--panel-alt); --bs-btn-hover-color: var(--ink); --bs-btn-hover-border-color: var(--line-strong); --bs-btn-active-bg: var(--accent); --bs-btn-active-border-color: var(--accent); --bs-btn-active-color: var(--accent-ink); }
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus, .form-select:focus { box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #4a86c5; border-color: #4a86c5; }
.form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
.form-check-input, .whmenu input { accent-color: var(--accent); }
.card { border-color: var(--line); border-radius: 8px; }
a.card:hover { border-color: var(--accent); box-shadow: var(--shadow); }
.card-title { color: var(--ink); }
.table { --bs-table-bg: var(--panel); --bs-table-hover-bg: var(--panel-alt); border-color: var(--line); border-radius: 8px; overflow: hidden; }
.table > :not(caption) > * > * { border-bottom-color: var(--line); }
.alert-success { --bs-alert-bg: #e3f2e8; --bs-alert-color: var(--ok); --bs-alert-border-color: #c6e4d1; }
.alert-warning { --bs-alert-bg: var(--warn-soft); --bs-alert-color: var(--warn); --bs-alert-border-color: #f0dfb5; }
.alert-danger { --bs-alert-bg: var(--bad-soft); --bs-alert-color: var(--bad); --bs-alert-border-color: #efc7c5; }
.modal-content { border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: 10px; }
.modal-header, .modal-footer { border-color: var(--line); }
.dropdown-menu { border-color: var(--line-strong); box-shadow: var(--shadow); }
.footer { background: var(--ground); border-color: var(--line) !important; color: var(--ink-3); }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder { color: var(--bs-secondary-color); text-align: end; }
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder { text-align: start; }

/* Моноширинні числа й артикули */
.sku, td.num, td.no { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.sku { font-weight: 600; }

/* Довідник товарів: крихти-папки, плитки підпапок, картки товарів (за прототипом «Склад») */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.crumbs .crumb { display: inline-flex; align-items: center; border: 1px solid var(--line); background: var(--panel); border-radius: 14px; padding: 3px 10px; font-size: .92rem; color: var(--ink-2); text-decoration: none; }
.crumbs a.crumb:hover { border-color: var(--accent); color: var(--ink); }
.crumbs .crumb.cur { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.crumbs .sep { color: var(--ink-3); padding: 0 2px; }
.folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.folder { display: flex; gap: 10px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; text-decoration: none; color: inherit; text-align: left; }
.folder:hover { border-color: var(--accent); box-shadow: 0 4px 12px rgba(27,36,48,.08); color: inherit; }
.folder .ficon { font-size: 1.4rem; }
.folder .fname { display: block; font-weight: 600; }
.folder .fmeta { display: block; font-size: .8rem; color: var(--ink-2); }
.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 10px; }
.pcard { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; display: grid; gap: 4px; transition: transform .12s, box-shadow .12s, border-color .12s; }
.pcard:hover { border-color: var(--accent); box-shadow: 0 4px 12px rgba(27,36,48,.08); transform: translateY(-1px); }
.pcard .pname { font-weight: 600; line-height: 1.3; }
.pcard .ppath, .pcard .pfoot { font-size: .8rem; color: var(--ink-2); }
.pcard .pfoot { display: flex; justify-content: space-between; margin-top: 2px; }
.pcard, tr[data-product], .folder { cursor: context-menu; }
.folder.deleted { border-style: dashed; }

/* Пілюлі залишків по складах (g2-pill у прототипі): назва складу і число; mk — «можна зробити» */
.pills { display: flex; flex-wrap: wrap; gap: 4px; }
.pill { display: inline-flex; gap: 6px; align-items: baseline; padding: 3px 9px; border-radius: 8px; background: var(--accent-soft); font-size: 12px; color: var(--ink-2); border: 1px solid transparent; white-space: nowrap; }
.pill b { font-family: var(--mono); color: var(--ink); font-size: 14px; }
.pill.rcv { background: #eef7ee; text-decoration: none; }   /* прихід (D-112): клік відкриває документ */
.pill.rcv:hover { border-color: var(--accent); }
.pill.rcv.late { background: #fdecec; color: #a12d2d; }   /* очікуваний прихід прострочено */
.pill.rcv.late b, .pill.rcv.late .text-muted { color: #a12d2d !important; }
.pill.zero { background: var(--panel-alt); border-color: var(--line); color: var(--ink-3); }
.pill.zero b { color: var(--ink-3); font-weight: 500; }
.pill.neg b { color: #b42318; }   /* мінус (D-152): витрат проведено більше, ніж приходів — видно, не ховаємо */
.pill.mk { background: var(--mk-soft); color: var(--mk); }
.pill.mk b { color: var(--mk); }
.pill.mk.zero { background: var(--panel-alt); color: var(--ink-3); }
/* Звіт «Замовлення товару по категоріях» (D-162): дерево, стовпчики динаміки, смужка запасу. */
.obc .tg { width: 20px; height: 20px; line-height: 16px; padding: 0; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--panel); font-family: var(--mono); font-weight: 700; color: var(--ink-2); }
.obc tr.lvl0 > td { background: var(--panel-alt); }
.obc tr.lvl1 > td:first-child, .obc tr.lvl1 > td:nth-child(2) { padding-left: 26px; }
.obc tr.lvl2 > td:nth-child(2) { padding-left: 48px; color: var(--ink-2); }
.obc tr.lvl3 > td:nth-child(2) { padding-left: 70px; }
.obc tr.urgent > td:nth-child(2) .mono { color: #b42318; }
.obc .spark { display: inline-flex; align-items: flex-end; gap: 1px; height: 16px; margin-right: 6px; vertical-align: middle; }
.obc .spark i { display: inline-block; width: 4px; background: #f0581f; opacity: .8; }
.obc .bar { width: 90px; height: 5px; background: var(--line); border-radius: 3px; overflow: hidden; }
.obc .bar b { display: block; height: 100%; background: #2e7d32; }
.obc tr.urgent .bar b { background: #b42318; }
.pill.mk .more { font-family: var(--mono); font-size: 12px; color: var(--ink-2); margin-left: 2px; }   /* «+N» з приходом деталей (D-161) */
td.pills { display: table-cell; }
td.pills .pill { margin: 1px 2px 1px 0; }

/* Вибір складів: кнопка і випадне меню з галочками */
.whpick { position: relative; }
.whmenu { position: absolute; top: calc(100% + 4px); left: 0; z-index: 20; background: var(--panel); border: 1px solid var(--line-strong); border-radius: 8px; box-shadow: var(--shadow); padding: 8px; min-width: 220px; display: grid; gap: 2px; }
.whmenu[hidden] { display: none; }
.whmenu label { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 5px; cursor: pointer; white-space: nowrap; margin: 0; }
.whmenu label:hover { background: var(--panel-alt); }
.whmenu-foot { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 4px; }

/* Довідник одиниць: три колонки-групи з картками одиниць */
.ucol { background: var(--panel-alt); border: 1px solid var(--line); border-radius: 10px; padding: 8px; min-height: 120px; }
.ucol-head { display: flex; justify-content: space-between; padding: 2px 6px 8px; }
.ucard { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; margin-bottom: 6px; }
.ucard .uname { font-weight: 600; }
.ucard .uact { grid-row: 1 / span 2; display: flex; gap: 4px; }
/* Довідник типів товарів: дерево */
.ttree, .ttree ul { list-style: none; padding-left: 0; margin: 0; }
.ttree ul { padding-left: 22px; border-left: 1px dashed var(--line); margin-left: 8px; }
.ttree .trow { display: flex; align-items: center; gap: 6px; padding: 4px 6px; border-radius: 6px; }
.ttree .trow:hover { background: var(--panel-alt); }
.ttree .tact { margin-left: auto; visibility: hidden; }
.ttree .trow:hover .tact { visibility: visible; }
/* Специфікація: вибір деталі з довідника по папках */
.pickbox { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: var(--panel-alt); }
.pickbox .pick-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; margin-bottom: 6px; }
.pickbox .folder { padding: 6px 10px; }
.pickbox .pick-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px; max-height: 220px; overflow: auto; }
.pickbox .pick-item { text-align: left; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px; }
.pickbox .pick-item:hover { border-color: var(--accent); }
/* Картка товару: секції з підписом, як у прототипі */
.csec { border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 8px; padding: 8px 12px 10px; margin-bottom: 10px; background: var(--panel); }
.csec > legend, .csec > summary { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); width: auto; padding: 0 4px; margin: 0 0 4px; float: none; cursor: default; }
.csec > summary { cursor: pointer; }
.csec .form-label { margin-bottom: 2px; font-size: .85rem; color: var(--ink-2); }
/* Картка: залишки по складах (g2-stocks у прототипі) */
.stocks { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; }
.stock { display: flex; align-items: baseline; gap: 6px; background: var(--accent-soft); border-radius: 8px; padding: 6px 10px; }
.stock .k { color: var(--ink-2); font-size: 12px; flex: 1; }
.stock b { font-family: var(--mono); font-size: 15px; }
.stock.cut { background: var(--warn-soft); }
.stock .btn-link { font-size: 12px; }
#productOffcuts { z-index: 1065; }
#productOffcuts + .modal-backdrop { z-index: 1060; }
/* Контекстне меню: bootstrap dropdown-menu, але позиціонуємо самі */
.ctxmenu { position: absolute; z-index: 1050; }
.ctxmenu.show { display: block; }

/* Панель групових дій над позначеними товарами й папками (ERP-9) */
.bulkbar { position: sticky; bottom: 12px; display: flex; gap: 8px; align-items: center; background: var(--panel); border: 1px solid var(--accent); border-radius: 10px; padding: 8px 12px; margin-top: 12px; box-shadow: var(--shadow); }
.folder .sel, .pcard .sel { margin: 0; cursor: pointer; }

/* Документ (ролетний рахунок, ERP-9) — за прототипом «Склад»: статус, панель кнопок, шапка полями, чіпи, картки параметрів */
.doc { display: grid; gap: 12px; }
/* Назва документа великими літерами (D-114): одразу видно, що це за документ. */
.doc-title { font-size: 1.6rem; font-weight: 700; margin: 0 0 8px; }
.doc-title .mono { font-family: var(--mono); }
.doc-status { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.doc-status .badge { font-size: .85rem; padding: 6px 12px; border-radius: 999px; }
.st-posted { background: #1f8a4c; color: #fff; }
.st-draft { background: var(--panel-alt); color: var(--ink-2); border: 1px solid var(--line-strong); }
.st-deleted { background: #b42318; color: #fff; }
.doc-meta { color: var(--ink-2); font-size: .9rem; }
.doc-toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.doc-toolbar form { display: inline; }
.doc-toolbar .btn { text-transform: uppercase; font-size: .8rem; letter-spacing: .03em; font-weight: 600; }
.doc-head { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.doc-head .f label { display: block; font-size: .8rem; color: var(--ink-2); margin-bottom: 4px; }
.doc-head .f .v { border: 1px solid var(--line-strong); border-radius: 8px; padding: 9px 12px; background: #fff; min-height: 42px; }
.doc-head .f-wide { grid-column: span 2; }
.doc-head .f.rate .v { background: var(--panel-alt); border-style: dashed; font-weight: 600; }
.doc-head2 { grid-template-columns: 1fr 3fr; }
.mono { font-family: var(--mono); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chip { display: inline-block; padding: 4px 10px; border-radius: 6px; font-family: var(--mono); font-weight: 600; font-size: .9rem; background: var(--panel); border-left: 3px solid var(--line-strong); color: var(--ink); }
.chip.c-size { background: #f0581f; color: #fff; border-left-color: #f0581f; border-radius: 999px; }
.chip.c-qty { border-left-color: var(--accent); }
.chip.c-box { border-left-color: #5b3fa0; }
.chip.c-lock { border-left-color: #b42318; }
.doc-cards { display: grid; grid-template-columns: 220px repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; align-items: start; }
.dcard { background: var(--panel); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: 10px; padding: 10px 14px; }
.dcard h6 { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 8px; }
.dcard dl { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; margin: 0; }
.dcard dt { font-weight: 400; color: var(--ink-2); }
.dcard dd { margin: 0; font-family: var(--mono); font-weight: 600; text-align: right; }
.dcard dd i { font-style: normal; font-weight: 400; color: var(--ink-2); font-size: .85em; margin-left: 4px; }
.dcard.k-size { border-top-color: #1f8a4c; } .dcard.k-profile { border-top-color: #2e8b57; } .dcard.k-control { border-top-color: #c47a1b; }
.dcard.k-box { border-top-color: #5b3fa0; } .dcard.k-lock { border-top-color: #b42318; } .dcard.k-pack { border-top-color: #6b7280; }
.draw { grid-row: span 2; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 12px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: 1fr auto; gap: 6px; font-family: var(--mono); font-size: .75rem; color: var(--accent); }
.draw-h { writing-mode: vertical-rl; transform: rotate(180deg); text-align: center; border-left: 1px solid var(--accent); padding-left: 4px; }
/* Схема ролети: короб зверху, шини з боків, полотно між ними, нижня планка */
.draw-fig { display: flex; flex-direction: column; min-height: 170px; }
.draw-box { height: 22px; background: #4a5059; border: 1px solid #2b2f36; border-radius: 3px 3px 0 0; }
.draw-mid { flex: 1; display: flex; }
.draw-rail { width: 9px; background: #6b7280; border: 1px solid #4a5059; }
.draw-canvas { flex: 1; background: #2b2f36; background-image: repeating-linear-gradient(to bottom, transparent 0 12px, #444a53 12px 14px); }
.draw-bar { height: 7px; background: #1f2933; border-radius: 0 0 3px 3px; }
.draw-w { grid-column: 2; text-align: center; border-top: 1px solid var(--accent); padding-top: 4px; }
.doc-lines th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-2); white-space: nowrap; }
.doc-lines td i { font-style: normal; font-size: .8em; }
@media (max-width: 992px) { .doc-head { grid-template-columns: repeat(2, 1fr); } .doc-cards { grid-template-columns: 1fr; } .draw { display: none; } }

/* Статус документа в журналі: квадратик зі знаком (✓ проведено, ✗ на видалення, порожньо — чернетка) */
.docst { display: inline-flex; width: 22px; height: 22px; align-items: center; justify-content: center; border: 1px solid var(--line-strong); border-radius: 4px; background: #fff; font-weight: 700; font-size: .9rem; }
.docst-ok { color: #1f8a4c; border-color: #1f8a4c; }
.docst-del { color: #b42318; border-color: #b42318; }
tr.doc-deleted td { color: var(--ink-3); text-decoration: line-through; }
tr.doc-deleted td:first-child, tr.doc-deleted td:nth-child(2) { text-decoration: none; }

/* Журнал документів (D-41) — спільний стиль для всіх журналів: сітка, компактні рядки, вузькі службові колонки.
   Таблиця: <table class="table journal">; статус — .docst, галочка — .sel. */
.table.journal { border: 1px solid var(--line-strong); border-collapse: separate; border-spacing: 0; font-size: .92rem; }
.table.journal > thead > tr > th { background: var(--panel-alt); color: var(--ink-2); font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; white-space: nowrap; padding: 7px 10px; border-bottom: 1px solid var(--line-strong); }
.table.journal > :not(caption) > * > * { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 5px 10px; vertical-align: middle; }
.table.journal > :not(caption) > * > *:last-child { border-right: 0; }
.table.journal > tbody > tr:last-child > td { border-bottom: 0; }
.table.journal > tbody > tr:nth-child(even) > td { background: #fbfcfd; }
.table.journal > tbody > tr:hover > td { background: var(--accent-soft); }
.table.journal td.num, .table.journal th.num { text-align: right; font-family: var(--mono); white-space: nowrap; }
.table.journal td.date { white-space: nowrap; font-family: var(--mono); font-size: .88rem; }
.table.journal td.sel-cell, .table.journal th.sel-cell, .table.journal td.st-cell, .table.journal th.st-cell { width: 34px; text-align: center; padding-left: 6px; padding-right: 6px; }
.table.journal .form-check-input { width: 14px; height: 14px; margin: 0; border-color: var(--line-strong); }
.table.journal .docst { width: 18px; height: 18px; font-size: .78rem; border-radius: 3px; }
.table.journal a { text-decoration: none; font-weight: 600; }
.table.journal a:hover { text-decoration: underline; }
.table.journal .badge { font-weight: 500; }
.journal-wrap { border-radius: 8px; }
.doc-head .f.total .v { background: #eef7f1; border-color: #1f8a4c; font-weight: 700; }

/* Документ залишків: рядок додавання позиції з пошуком товару */
.addline { display: flex; gap: 8px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.addline .pick { position: relative; flex: 1; }
.addline .pick .dropdown-menu { width: 100%; max-height: 320px; overflow: auto; }
.addline .pick .dropdown-menu.show { display: block; }

/* Пошук у журналі (D-50): збіги підсвічені, поточний — яскравіше; рядки не ховаються */
.table.journal > tbody > tr.hit > td, table[data-search] > tbody > tr.hit > td { background: #fff6d6 !important; }
.table.journal > tbody > tr.hit-cur > td, table[data-search] > tbody > tr.hit-cur > td { background: #ffe9a8 !important; box-shadow: inset 3px 0 0 #c47a1b; }
/* Повернення з документа в журнал (D-220): рядок, з якого виходили, на пару секунд підсвічується. */
.table.journal > tbody > tr.journal-back > td { background: #e3f1ff !important; box-shadow: inset 3px 0 0 var(--accent); transition: background 1s; }
.jqbox { display: flex; align-items: center; gap: 6px; }
.jqbox .jqinfo { color: var(--ink-2); font-size: .85rem; white-space: nowrap; min-width: 48px; }

/* Вкладки відкритих сторінок (D-51) */
.etabs { display: flex; gap: 4px; flex-wrap: wrap; margin: -8px 0 12px; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.etab { display: inline-flex; align-items: center; gap: 6px; max-width: 260px; padding: 4px 8px 4px 10px; border: 1px solid var(--line); border-radius: 8px 8px 0 0; background: var(--panel-alt); color: var(--ink-2); font-size: .85rem; text-decoration: none; white-space: nowrap; overflow: hidden; }
.etab:hover { color: var(--ink); border-color: var(--line-strong); }
.etab.active { background: var(--panel); color: var(--ink); border-color: var(--accent); border-bottom-color: var(--panel); font-weight: 600; }
.etab-x { border: 0; background: transparent; color: var(--ink-3); font-size: 1rem; line-height: 1; padding: 0 2px; cursor: pointer; }
.etab-x:hover { color: #b42318; }

/* Смуга курсів валют поруч із вкладками (D-55): EUR, USD, крос на сьогодні; застарілий курс — помаранчева дата. */
.erp-top { position: sticky; top: 0; z-index: 1030; background: var(--ground); box-shadow: 0 1px 0 var(--line); }   /* закріплена шапка (D-114) */
.etabs-row { display: flex; align-items: flex-start; gap: 12px; }
.etabs-row .etabs { flex: 1 1 auto; margin-right: 0; }
.ratesbar { display: inline-flex; gap: 12px; margin: -8px 0 12px auto; padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-alt); color: var(--ink-2); font-size: .82rem; text-decoration: none; white-space: nowrap; }
.ratesbar:hover { color: var(--ink); border-color: var(--line-strong); }
.ratesbar .rate b { color: var(--ink-3); font-weight: 600; margin-right: 3px; }
.ratesbar .stale { font-style: normal; color: var(--warn); margin-left: 3px; font-size: .75rem; }
.ratebox { font-weight: 600; }
@media (max-width: 900px) { .ratesbar { display: none; } }

/* Дерево підлеглості документів (D-62): підстава → підлеглі, поточний жирним. */
.doctree { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; margin: 12px 0; }
.doctree-title { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 6px; }
.doctree-node { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.doctree-node.lvl-1 { padding-left: 18px; }
.doctree-node.lvl-2 { padding-left: 36px; }
.doctree-node.here { background: var(--accent-soft); border-radius: 6px; padding-right: 8px; }
.doctree-branch { color: var(--ink-3); }
.doctree-kind { color: var(--ink-2); font-size: .85rem; min-width: 130px; }
.doc-params { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-top: 12px; }
.doc-params label { display: block; font-size: .78rem; color: var(--ink-2); margin-bottom: 2px; }

/* Вибір товарів із довідника галочками у вікні (D-64, _ProductPicker). */
#productPicker .pick-products.picker-list { max-height: 50vh; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
#productPicker .picker-row { display: flex; align-items: center; gap: 4px; cursor: pointer; margin: 0; }
#productPicker .picker-row:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }

/* Пошук у довідниках-деревах і колонках (D-70): підсвітка збігу поза таблицями. */
[data-search] li.hit > .tnode, [data-search] li.hit > span, [data-search] .ucard.hit { background: #fff6d6; }
[data-search] li.hit-cur > .tnode, [data-search] li.hit-cur > span, [data-search] .ucard.hit-cur { background: #ffe9a8; box-shadow: inset 3px 0 0 var(--accent); }

/* Поле вибору запису довідника вікном (D-69, _RecordPicker). */
.rpick .rpick-name { background: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rpick .rpick-name:empty::before { content: "— не обрано —"; color: var(--ink-3); }

/* Групи прав (D-72): колонки з перетягуванням. */
.pg-col { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; min-height: 160px; }
/* Згорнута група (D-72 уточнення): лише шапка; стрілка показує стан. */
.pg-col.collapsed { min-height: 0; }
.pg-col.collapsed .pg-list { display: none; }
.pg-toggle { border: 0; background: none; padding: 0 4px; color: var(--muted, #6c757d); cursor: pointer; }
.pg-col.collapsed .pg-toggle { transform: rotate(-90deg); }
.pg-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.pg-head .pg-name { max-width: 260px; }
.pg-list { min-height: 60px; display: flex; flex-direction: column; gap: 4px; padding: 4px; border-radius: 8px; }
.pg-list.over { background: var(--accent-soft); }
.pg-item { background: var(--panel-alt); border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px; font-size: .85rem; cursor: grab; }
.pg-item.dragging { opacity: .5; }
.pg-item { position: relative; padding-right: 22px; }
.pg-x { position: absolute; right: 4px; top: 2px; border: 0; background: transparent; color: var(--ink-3); cursor: pointer; }
.pg-x:hover { color: #b42318; }
.pg-source .pg-item { cursor: copy; }
.pg-source { position: sticky; top: 8px; max-height: calc(100vh - 90px); overflow: auto; }

/* Рамки прав у редакторі ролі (D-72): відокремити групи зорово. */
.permframe { border: 1px solid var(--line); border-radius: 10px; padding: 8px 14px 6px; background: var(--panel); }
.permframe > legend { float: none; width: auto; padding: 0 6px; margin-bottom: 4px; font-weight: 600; }
.permframe .form-check { margin-bottom: 2px; }
.pg-section { border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px 4px; margin-bottom: 8px; background: var(--panel-alt); }
.pg-section-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 4px; }
.pg-section .pg-item { background: var(--panel); margin-bottom: 4px; }
.pg-head .ms-auto { margin-left: auto; }

/* Коментарі на кнопках (D-85): позначка на кнопці з коментарем, підказка, меню правої кнопки. */
.has-comment { position: relative; }
.has-comment::after { content: ""; position: absolute; top: 2px; right: 2px; width: 7px; height: 7px; border-radius: 50%; background: #f59f00; box-shadow: 0 0 0 1px #fff; pointer-events: none; }
input.has-comment { box-shadow: inset 0 -3px 0 #f59f00; }
.btn-comment-tip { position: fixed; z-index: 2000; max-width: 360px; padding: 6px 10px; border-radius: 6px; background: #212529; color: #fff; font-size: .85rem; white-space: pre-wrap; pointer-events: none; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.btn-comment-menu { position: fixed; z-index: 2000; }
/* Підпис поля з коментарем (D-86): крапка праворуч від тексту, не налазить на нього. */
label.has-comment { padding-right: 11px; }
label.has-comment::after { top: 0; right: 0; }
textarea.has-comment, select.has-comment { box-shadow: inset 0 -3px 0 #f59f00; }
/* Згортання папок у дереві типів товарів: стрілка повертається, вміст згорнутої папки сховано. */
.ttree li.collapsed > ul { display: none; }
.ttree li[data-folder="1"] > .trow { cursor: pointer; user-select: none; }
.ttree .tcaret { display: inline-block; width: 1em; color: var(--muted, #6c757d); transition: transform .15s; }
.ttree li[data-folder="1"]:not(.collapsed) > .trow .tcaret { transform: rotate(90deg); }
/* Вибір папки деревом (типи товарів): верхні папки, стрілка відкриває підпапки. */
.fpick-menu { min-width: 280px; max-height: 340px; overflow: auto; padding: 6px; }
.fpick .ftree, .fpick .ftree ul { list-style: none; margin: 0; padding-left: 0; }
.fpick .ftree ul { padding-left: 18px; }
.fpick li.collapsed > ul { display: none; }
.fpick .frow { display: flex; align-items: center; gap: 2px; }
.fpick .fcaret, .fpick .fcaret-sp { width: 1.4em; flex: none; text-align: center; }
.fpick .fcaret { border: 0; background: none; padding: 0; color: var(--muted, #6c757d); transition: transform .15s; }
.fpick li:not(.collapsed) > .frow .fcaret { transform: rotate(90deg); }
.fpick .fname { border: 0; background: none; padding: 3px 6px; border-radius: 6px; text-align: left; flex: 1; }
.fpick .fname:hover { background: var(--panel-alt, #f1f3f5); }
.fpick .fname.active { background: var(--accent, #2c5d8a); color: #fff; }
.bulkbar .fpick .form-select { min-width: 180px; }

/* Зведення над вкладками документа («Прихід», «Корзини»): плитки з великою цифрою, значком і підписом. */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.stat { display: grid; grid-template-columns: 38px 1fr; gap: 0 10px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 10px; padding: 10px 12px; }
.stat .ic { grid-row: span 2; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--accent-soft); color: var(--accent); }
.stat .ic svg { width: 22px; height: 22px; }
.stat .n { font-family: var(--mono); font-weight: 600; font-size: 1.35rem; line-height: 1.1; }
.stat .n i { font-style: normal; font-size: .75rem; font-weight: 400; color: var(--ink-3); margin-left: 4px; }
.stat .l { font-size: .75rem; color: var(--ink-2); text-transform: uppercase; letter-spacing: .04em; }
.stat.s-ok { border-left-color: var(--ok); } .stat.s-ok .ic { background: #e3f1e8; color: var(--ok); }
.stat.s-warn { border-left-color: var(--warn); } .stat.s-warn .ic { background: var(--warn-soft); color: var(--warn); }
.stat.s-bad { border-left-color: var(--bad); } .stat.s-bad .ic { background: var(--bad-soft); color: var(--bad); }
.stat.s-mk { border-left-color: var(--mk); } .stat.s-mk .ic { background: var(--mk-soft); color: var(--mk); }
.stat.s-mute { border-left-color: var(--line-strong); } .stat.s-mute .ic { background: var(--panel-alt); color: var(--ink-3); }
/* Шкала заповнення в рядку таблиці: частка корзини або частка приходу від заявки. */
.bar { display: inline-block; width: 80px; height: 8px; border-radius: 4px; background: var(--panel-alt); border: 1px solid var(--line); vertical-align: middle; overflow: hidden; }
.bar > span { display: block; height: 100%; background: var(--accent); }
.bar.b-ok > span { background: var(--ok); } .bar.b-warn > span { background: var(--warn); } .bar.b-bad > span { background: var(--bad); }
/* Корзини на позиції: квадратики — повні зафарбовані, неповна — частково (D-117). */
.baskets { display: inline-flex; gap: 3px; align-items: center; vertical-align: middle; }
.basket { width: 14px; height: 14px; border: 1px solid var(--accent); border-radius: 3px; background: linear-gradient(to top, var(--accent) var(--fill, 100%), #fff var(--fill, 100%)); }
.basket.b-more { width: auto; border: 0; background: none; font-size: .75rem; color: var(--ink-2); font-family: var(--mono); }

/* Друк сторінки як є (звіти, журнали, D-119): без шапки, вкладок, кнопок і форм фільтра — лише вміст. */
@media print {
  nav.navbar, .tabs-bar, .doc-toolbar, .no-print, form.filters, .btn, footer, #ratesBar { display: none !important; }
  body { background: #fff; }
  main, .container { max-width: none !important; padding: 0 !important; }
  .journal-wrap { overflow: visible !important; }
}

/* Редактор друкованих форм (D-119): аркуш, плашки полів, маркери умов, рядки-повтори. */
.pf-toolbar { display: flex; flex-wrap: wrap; gap: 3px; align-items: center; padding: 6px; background: var(--panel-alt); border: 1px solid var(--line); border-bottom: 0; border-radius: 8px 8px 0 0; }
.pf-toolbar .vr { width: 1px; height: 22px; background: var(--line-strong); margin: 0 4px; }
.pf-sheet { min-height: 600px; background: #fff; border: 1px solid var(--line); border-radius: 0 0 8px 8px; padding: 16px 20px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; color: #000; outline: none; }
.pf-sheet:focus { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.pf-sheet table { border-collapse: collapse; margin: 6px 0; }
.pf-sheet td, .pf-sheet th { border: 1px solid #999; padding: 2px 6px; min-width: 24px; }
.pf-sheet th { background: #eee; }
.pf-sheet tr[data-loop] td { background: #eef6ee; }
.pf-sheet tr[data-loop^="^"] td { background: #fbf1dc; color: var(--ink-2); }
.pf { display: inline-block; padding: 0 6px; border-radius: 4px; background: var(--accent-soft); color: var(--accent); border: 1px solid #b9cce0; font-size: .92em; line-height: 1.5; white-space: nowrap; user-select: all; cursor: default; }
.pf.pf-s { background: var(--mk-soft); color: var(--mk); border-color: #cdbfe8; font-size: .8em; }

/* Значок контейнера в журналі заявок (D-120): клік веде в контейнер. */
.cont-ic { display: inline-flex; width: 22px; height: 22px; align-items: center; justify-content: center; border: 1px solid var(--mk); border-radius: 4px; color: var(--mk); background: var(--mk-soft); }
.cont-ic svg { width: 16px; height: 16px; }
.cont-ic:hover { background: var(--mk); color: #fff; }

/* Заголовок блоку постачальника в сітці карток (D-145): на всю ширину сітки. */
.pgrid-sect { grid-column: 1 / -1; margin-top: 6px; }
.pgrid-sect.pgrid-sub { margin-top: 0; padding-left: 8px; }

/* Режим заміни (D-147): поточний товар рядка підсвічений. */
.pcard.pcard-current { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft, #e7eef6); }

/* Незбережені зміни рядків (D-148): прибрана позиція закреслена, замінений товар підсвічений. */
.doc-lines tr.pending-removed td { text-decoration: line-through; opacity: .55; }
.doc-lines tr.pending-replaced td:nth-child(2), .doc-lines tr.pending-replaced td:nth-child(3) { background: var(--accent-soft, #e7eef6); }

/* D-165: чернетка з рядками без товару в довіднику — у журналі й у документі червоним, доки товар не створено. */
tr.doc-unmatched td, .doc-lines tr.line-unmatched td { background: #fde8e8; }
tr.doc-unmatched td:nth-child(2) a, .doc-lines tr.line-unmatched td.mono { color: #b42318; }

/* Графік виробництва (D-186): дошка по днях, картки замовлень, чіпи стану. */
.ps-chips { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.ps-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel); cursor: pointer; user-select: none; font-size: .85rem; color: var(--ink-2); }
.ps-chip b { font-family: var(--mono); font-weight: 600; font-size: .8rem; padding: 0 6px; border-radius: 999px; background: var(--panel-alt); color: var(--ink-2); }
.ps-chip.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); }
.ps-chip.on b { background: var(--accent); color: #fff; }
.ps-rows { display: flex; flex-direction: column; gap: 6px; }
.ps-row { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.ps-row.ps-weekend { background: var(--panel-alt); }
.ps-row.ps-past { opacity: .8; }
.ps-row.ps-idle .ps-rowhead { padding: 4px 10px; }
.ps-row.ps-today { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.ps-rowhead { display: grid; grid-template-columns: 110px 1fr 160px; gap: 12px; align-items: center; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.ps-row.ps-idle .ps-rowhead { border-bottom: 0; grid-template-columns: 110px 1fr; }
.ps-date { display: flex; align-items: baseline; gap: 6px; font-size: .95rem; }
.ps-date span { color: var(--ink-3); font-size: .8rem; }
.ps-date em { font-style: normal; font-size: .7rem; color: var(--accent); margin-left: auto; text-transform: uppercase; letter-spacing: .04em; }
.ps-sum { font-size: .82rem; color: var(--ink-2); white-space: nowrap; }
.ps-sum b { font-family: var(--mono); font-weight: 600; color: var(--ink); }
.ps-sum.ps-empty { color: var(--ink-3); }
.ps-load { position: relative; height: 6px; background: var(--line); border-radius: 3px; overflow: hidden; }
.ps-load i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); border-radius: 3px; }
.ps-load i.a { background: var(--warn); opacity: .55; }
.ps-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 6px; padding: 8px; }
.ps-card { border: 1px solid var(--line); border-left: 4px solid var(--ink-3); border-radius: 8px; padding: 6px 8px; background: var(--panel); cursor: pointer; font-size: .82rem; line-height: 1.3; }
.ps-card:hover { border-color: var(--accent); box-shadow: var(--shadow); }
.ps-card.ps-work { border-left-color: var(--accent); }
.ps-card.ps-ok { border-left-color: var(--ok); }
.ps-card.ps-overdue { background: var(--bad-soft); }
.ps-row1 { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.ps-row1 a { text-decoration: none; font-weight: 600; }
.ps-client { font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ps-size b { font-family: var(--mono); }
.ps-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.ps-tags span { font-size: .72rem; padding: 0 6px; border-radius: 999px; background: var(--panel-alt); border: 1px solid var(--line); }
.ps-badge { font-size: .7rem; padding: 0 6px; border-radius: 999px; font-family: var(--mono); }
.ps-badge-bad { background: var(--bad); color: #fff; }
@media print { .ps-cards { grid-template-columns: repeat(5, 1fr); } #psFilter, .stats { display: none; } }
.ps-loadv { float: right; font-family: var(--mono); font-weight: 600; color: var(--accent-ink); background: var(--accent-soft); padding: 0 6px; border-radius: 999px; font-size: .75rem; }
.ps-load i.a { display: none; }
@media (max-width: 700px) { .ps-rowhead { grid-template-columns: 90px 1fr; } .ps-rowhead .ps-load { grid-column: 1 / -1; } }

/* Плаваючий горизонтальний повзунок журналів (D-191). */
.hscroll-float { position: fixed; bottom: 0; height: 14px; overflow-x: auto; overflow-y: hidden; z-index: 1030; background: var(--panel); border-top: 1px solid var(--line-strong); box-shadow: 0 -2px 6px rgba(0,0,0,.06); display: none; }
.hscroll-float > div { height: 1px; }
@media print { .hscroll-float { display: none !important; } }

/* Звіт «Продажі за період» (D-195): графік на SVG, підказка, легенда, смужка частки. */
.sp-chart { position: relative; width: 100%; }
.sp-chart svg text { font-family: var(--mono); }
.sp-tip { position: absolute; z-index: 5; background: var(--panel); border: 1px solid var(--line-strong); border-radius: 8px; padding: 6px 10px; font-size: .82rem; box-shadow: var(--shadow); pointer-events: none; white-space: nowrap; }
.sp-tip i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.sp-legend { display: flex; gap: 14px; font-size: .85rem; color: var(--ink-2); }
.sp-key i { display: inline-block; width: 12px; height: 3px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.sp-bar { height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; }
.sp-bar i { display: block; height: 100%; background: var(--accent); border-radius: 4px; }

/* Індикатор заливки з 1С (D-197). */
.import-overlay { position: fixed; inset: 0; z-index: 1060; background: rgba(255,255,255,.75); display: flex; align-items: center; justify-content: center; }
.import-box { background: var(--panel); border: 1px solid var(--line-strong); border-radius: 12px; padding: 24px 32px; text-align: center; box-shadow: var(--shadow); min-width: 280px; }
.sp-bar-partial i { background: var(--ink-3); opacity: .55; }
.sp-months .sp-year { display: none; } .sp-months.sp-show-year .sp-year { display: table-cell; }   /* «до торішнього» за перемикачем (D-199) */
.table.journal tr.sp-total td { font-weight: 600; background: var(--panel-alt); border-top: 2px solid var(--line-strong); }
/* Ціни постачальників (D-204): багато колонок — вужчі клітинки, назва постачальника переноситься. */
.sp-prices th, .sp-prices td { padding: .15rem .35rem; font-size: .85rem; }
.sp-prices th.num { white-space: normal; max-width: 110px; font-size: .75rem; line-height: 1.15; vertical-align: bottom; }
.sp-prices td.sp-sale { color: var(--ink-3); border-right: 1px solid var(--line-strong); }
/* Довідник товарів: картка без типу товару (Юрій 27.10) — помітна позначка, бо такі товари випадають зі звітів по типах (D-162, D-201, D-204). */
.badge.notype { background: #fff3cd; color: #7a5a00; border: 1px solid #ffe08a; font-weight: 500; font-family: var(--sans, inherit); }

.sp-key[data-series] { cursor: pointer; user-select: none; } .sp-key.sp-off { opacity: .4; text-decoration: line-through; }   /* легенда-перемикач рядів графіка (D-206) */

/* Зона перетягування файлу (D-227): рамка підсвічується, коли файл над нею. */
.dropzone { border: 2px dashed #c6ccd4; border-radius: .5rem; padding: .75rem; transition: border-color .15s, background .15s; }
.dropzone.over { border-color: var(--accent); background: #eef6ff; }

/* Табло розкрою (D-231): хлист — смужка, відрізки пропорційні довжині, залишок кольором за класом. */
.cut-strip { display: flex; height: 2.6rem; border: 1px solid #adb5bd; border-radius: .25rem; overflow: hidden; background: #f8f9fa; }
.cut-piece { display: flex; flex-direction: column; justify-content: center; align-items: center; border-right: 2px solid #212529; background: #cfe2ff; font-size: .8rem; line-height: 1.1; overflow: hidden; white-space: nowrap; }
.cut-piece small { color: #495057; font-size: .65rem; }
.cut-rest { display: flex; align-items: center; justify-content: center; font-size: .75rem; }
.cut-liquid { background: #d1e7dd; } .cut-short { background: #fff3cd; } .cut-waste { background: #f8d7da; } .cut-defect { background: #e2e3e5; }
/* Картки тактик (D-241): різчик обирає варіант, обрана картка підсвічена, позначка «обрано» видна лише на ній. */
.cut-tactic { cursor: pointer; border-width: 2px; } .cut-tactic:hover { border-color: #86b7fe; }
.cut-tactic.active { border-color: var(--accent, #0d6efd); background: #eef6ff; }
.cut-tactic .cut-chosen { display: none; } .cut-tactic.active .cut-chosen { display: inline-block; }

/* Каркас цеху (D-236): планшет — більший шрифт і кнопки, без дрібного. */
body.shop { font-size: 1.1rem; }
body.shop .btn-lg, body.shop .form-control-lg { font-size: 1.2rem; min-height: 3rem; }
body.shop .card-title { font-size: 1.4rem; }

/* Табло розкрою: список обрізків згорнутий за замовчуванням (Юрій 2026-11-02), заголовок — клікабельний. */
#offcutsBox > summary { cursor: pointer; list-style: revert; }
/* Таблиці табло розкрою (Юрій 2026-11-02, «на свій смак»): чорна сітка читалась погано. М'яка сітка, світла шапка, зебра, назва товару
   другим рядком під артикулом, числа табличними цифрами. Рамка — на таблиці, лінії — між комірками. */
.cut-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #c9ced4; border-radius: 8px; overflow: hidden; background: #fff; margin-bottom: 1rem; }
.cut-table th, .cut-table td { border: 0; border-bottom: 1px solid #e1e5ea; border-right: 1px solid #e1e5ea; padding: .5rem .7rem; vertical-align: middle; }
.cut-table th:last-child, .cut-table td:last-child { border-right: 0; }
.cut-table tbody tr:last-child td { border-bottom: 0; }
.cut-table thead th { background: #eef1f4; color: #495057; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid #c9ced4; white-space: nowrap; }
.cut-table tbody tr:nth-child(even) td { background: #f8f9fb; }
.cut-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cut-table .sku { font-weight: 600; }
.cut-table .sub { display: block; font-size: .82rem; color: #6c757d; font-weight: 400; white-space: normal; }
.cut-table tr.table-danger td { background: #f8d7da; }
.cut-table .num .sub { white-space: nowrap; }
/* Смужка днів на екрані розкрою (D-247): день — кнопка з днем тижня, числом, ролетами й видатковими; обрані дні підсвічені. */
.cut-days { display: flex; gap: .35rem; overflow-x: auto; padding-bottom: .25rem; }
.cut-day { flex: 0 0 auto; min-width: 4.6rem; display: flex; flex-direction: column; align-items: center; gap: .05rem; padding: .4rem .3rem; border: 1px solid #c9ced4; border-radius: .5rem; background: #fff; line-height: 1.15; cursor: pointer; }
.cut-day:hover { border-color: #86b7fe; }
.cut-day.active { background: #0d6efd; border-color: #0d6efd; color: #fff; }
.cut-day.today:not(.active) { border-color: #0d6efd; }
.cut-day.weekend:not(.active) { background: #f3f4f6; }
.cut-day.empty:not(.active) { color: #8a929a; }
.cut-day-wd { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; opacity: .8; }
.cut-day-num { font-size: 1.35rem; font-weight: 700; }
.cut-day-rollers { font-size: 1rem; font-weight: 600; }
.cut-day-docs { font-size: .7rem; opacity: .8; }
#pickTo.active { background: #0d6efd; color: #fff; border-color: #0d6efd; }
/* Комплектування (D-248): заголовок дня, збивка дня, картки замовлень із бейджами дробів. */
.pick-day-title { font-size: 1.35rem; border-bottom: 2px solid #c9ced4; padding-bottom: .25rem; margin-bottom: .75rem; }
.pick-summary { border-color: #0d6efd; background: #f3f8ff; }
.pick-fractions .badge { font-size: .85rem; font-weight: 600; }
.pick-order .cut-table { margin-bottom: 0; }
.pick-summary > summary, .pick-order > summary { cursor: pointer; list-style: none; }
.pick-summary > summary::before, .pick-order > summary::before { content: "▸"; margin-right: .4rem; color: #6c757d; }
.pick-summary[open] > summary::before, .pick-order[open] > summary::before { content: "▾"; }
.pick-order > summary { display: block; }
.pick-order .pick-done { display: none; }
.pick-order.complete { border-color: #198754; background: #f1faf4; }
.pick-order.complete .pick-done { display: inline-block; }
.pick-order tr.picked td { background: #e9f7ee !important; }
.pick-order tr.picked .sku, .pick-order tr.picked .sub { text-decoration: line-through; opacity: .7; }
.pick-check { width: 1.6rem; height: 1.6rem; }
