/* 1.9.57: скрытие элементов управления, на которые у аккаунта нет права.
   Классы на <body> ставит mbApplyActionClasses() (170-account-permissions.js): mbp-no-<раздел>-<действие>, mbp-ro-<раздел>.
   У владельца и до загрузки прав классов нет — ничего не скрывается. */

/* ---------- Напитки: одна кнопка «⋯» вместо «Изменить / Удалить / +» ---------- */
body:not(#mbp) .select-row > .btn-delete-large,
body:not(#mbp) .select-row > .drink-add-small { display: none !important; }
body:not(#mbp) .select-row > .drink-more-btn {
    flex: 0 0 44px; width: 44px; min-width: 44px; max-width: 44px; height: 44px; box-sizing: border-box; margin: 0; padding: 0;
    border: 1.5px solid var(--border, #dfe6e9); border-radius: 12px; background: var(--card, #fff); color: var(--text, #2d3436);
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
body:not(#mbp) .select-row > .drink-more-btn:active { transform: translateY(1px); }
body:not(#mbp) .select-row > .drink-more-btn svg { stroke: currentColor; }
body:not(#mbp).mbp-ro-drinks .select-row > .drink-more-btn { display: none !important; }
body:not(#mbp).mbp-no-drinks-create .ttk-add-btn,
body:not(#mbp).mbp-no-drinks-edit .ttk-icon-btn[onclick*="openTtkModal"],
body:not(#mbp).mbp-no-drinks-delete .ttk-icon-btn[onclick*="deleteTtk"] { display: none !important; }

/* ---------- Инвентаризация ---------- */
body:not(#mbp).mbp-no-inventory-delete [onclick*="clearInventoryFacts"],
body:not(#mbp).mbp-no-inventory-delete [onclick*="clearInventoryBlank"],
body:not(#mbp).mbp-no-inventory-import [onclick*="inv-blank-input"],
body:not(#mbp).mbp-no-inventory-export [onclick*="openExportFactModal"],
body:not(#mbp).mbp-no-inventory-edit .inv-fact-del,
body:not(#mbp).mbp-no-inventory-edit .inv-fact-add,
body:not(#mbp).mbp-no-inventory-edit #inv-w-manage { display: none !important; }
body:not(#mbp).mbp-no-inventory-edit #inv-list .inv-item-name,
body:not(#mbp).mbp-no-inventory-edit #inv-list .inv-cat-in,
body:not(#mbp).mbp-no-inventory-edit #inv-list .inv-zone,
body:not(#mbp).mbp-no-inventory-edit #inv-list .vol-part,
body:not(#mbp).mbp-no-inventory-edit #inv-list .qty-part,
body:not(#mbp).mbp-no-inventory-edit #inv-list .u-seg-b,
body:not(#mbp).mbp-no-inventory-edit #inv-list .inv-unit-chip { pointer-events: none; -webkit-user-select: none; user-select: none; }

/* ---------- Списания ---------- */
body:not(#mbp).mbp-no-writeoffs-create #wo-new-card,
body:not(#mbp).mbp-no-writeoffs-create [onclick*="openWoTemplateForm"],
body:not(#mbp).mbp-no-writeoffs-edit #wo-tpl-edit-mode-btn,
body:not(#mbp).mbp-no-writeoffs-edit .wo-reason-edit-btn,
body:not(#mbp).mbp-no-writeoffs-delete #wo-tpl-delete-mode-btn,
body:not(#mbp).mbp-no-writeoffs-delete .wo-month-del,
body:not(#mbp).mbp-no-writeoffs-delete [onclick*="clearAllWriteoffs"],
body:not(#mbp).mbp-no-writeoffs-import [onclick*="wo-xlsx-import-input"],
body:not(#mbp).mbp-no-writeoffs-export [onclick*="exportWriteoffsXlsx"],
body:not(#mbp).mbp-no-writeoffs-edit.mbp-no-writeoffs-delete .wo-item-more,
body:not(#mbp).mbp-ro-writeoffs #wo-templates-card { display: none !important; }
body:not(#mbp).mbp-no-writeoffs-create #wo-templates-list { pointer-events: none; }

/* ---------- Остатки ---------- */
body:not(#mbp).mbp-no-residues-import [onclick*="res-file-input"],
body:not(#mbp).mbp-no-residues-delete #btn-clear-res,
body:not(#mbp).mbp-no-residues-export #btn-export-res,
body:not(#mbp).mbp-no-residues-create #btn-res-hist-save { display: none !important; }

/* ---------- Заказы ---------- */
body:not(#mbp).mbp-no-orders-export [onclick*="exportOrdersExcel"],
body:not(#mbp).mbp-no-orders-delete [onclick*="clearOrdersQuantities"],
body:not(#mbp).mbp-ro-orders #orders-admin-btn,
body:not(#mbp).mbp-no-orders-delete .orders-supplier-del,
body:not(#mbp).mbp-no-orders-delete .orders-swipe-delete,
body:not(#mbp).mbp-no-orders-edit .orders-swipe-edit,
body:not(#mbp).mbp-no-orders-edit .orders-send-btn:not(.sent),
body:not(#mbp).mbp-no-orders-edit .orders-icon-btn:not(.sent-on) { display: none !important; }
body:not(#mbp).mbp-no-orders-edit .orders-send-btn.sent,
body:not(#mbp).mbp-no-orders-edit .orders-icon-btn.sent-on,
body:not(#mbp).mbp-no-orders-edit #orders-list .orders-qty,
body:not(#mbp).mbp-no-orders-edit #orders-list .orders-text-input { pointer-events: none; }
body:not(#mbp).mbp-no-orders-edit.mbp-no-orders-delete .orders-swipe-actions { display: none !important; }

/* ---------- Задачи ---------- */
body:not(#mbp).mbp-no-tasks-delete #tasks-clear-btn,
body:not(#mbp).mbp-no-tasks-delete [data-task-action="delete"],
body:not(#mbp).mbp-no-tasks-edit [data-task-action="edit"],
body:not(#mbp).mbp-no-tasks-create #tasks-quick-add,
body:not(#mbp).mbp-no-tasks-create .tasks-fab { display: none !important; }
body:not(#mbp).mbp-no-tasks-edit .task-check { pointer-events: none; }
body:not(#mbp).mbp-no-tasks-edit.mbp-no-tasks-delete .task-swipe-actions,
body:not(#mbp).mbp-no-tasks-edit.mbp-no-tasks-delete .task-pc-tools { display: none !important; }

/* ---------- Учётные записи: «был(а) в сети …» на отдельной строке ---------- */
.acc-meta .acc-entry { flex: 1 0 100%; }

/* ---------- Электронное меню: кнопка «Блюдо» прячется атрибутом hidden, но .btn-main её показывал ---------- */
body:not(#mbp) #em-add[hidden] { display: none !important; }

/* ---------- 1.9.58: «Склад» → «Из журнала» (только владелец) ---------- */
body:not(#mbp).mbp-on .inv-restore-btn { display: none !important; }
.inv-restore-overlay { position: fixed; inset: 0; z-index: 9700; display: none; align-items: stretch; justify-content: stretch; background: var(--bg, #fff); }
.inv-restore-overlay.open { display: flex; }
.inv-restore-overlay .overlay-box { width: 100%; max-width: 560px; margin: 0 auto; height: 100%; display: flex; flex-direction: column; border: 0; border-radius: 0; box-shadow: none; }
.inv-restore-overlay .overlay-header { padding: calc(14px + env(safe-area-inset-top)) 18px 10px; }
.inv-restore-overlay .overlay-body { flex: 1 1 auto; overflow-y: auto; padding: 4px 14px 16px; -webkit-overflow-scrolling: touch; }
.inv-restore-overlay .overlay-actions { display: flex; gap: 10px; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); }
.inv-restore-overlay .overlay-actions .btn-main { flex: 1; min-height: 46px; }
.irs-note { font-size: 13px; line-height: 1.4; opacity: .8; padding: 8px 2px 10px; }
.irs-all { padding: 4px 2px 8px; font-size: 13px; }
.irs-row { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; margin: 0 0 8px; border: 1px solid var(--border, #dfe6e9); border-radius: 14px; background: var(--card-bg, var(--surface, #fff)); }
.irs-row input[type=checkbox], .irs-all input[type=checkbox] { width: 20px; height: 20px; margin-top: 2px; flex: 0 0 auto; }
.irs-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; }
.irs-vals { font-size: 14px; }
.irs-main small, .irs-foot { font-size: 11px; opacity: .6; line-height: 1.35; }
.irs-foot { padding: 6px 2px 0; }

/* ---------- 1.9.60: шторки меню без затемнения фона (остаются «ловить» нажатие, чтобы закрыть шторку) ---------- */
body:not(#mbp) #drawer-overlay, body:not(#mbp) #drawer-overlay.open,
body:not(#mbp) #tabs-drawer-overlay, body:not(#mbp) #tabs-drawer-overlay.open { background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
body:not(#mbp) #side-drawer.open, body:not(#mbp) #tabs-drawer.open { box-shadow: 0 0 32px rgba(0, 0, 0, .38); }

/* ---------- 1.9.60: заказы — общая сумма ---------- */
.orders-grand-total { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding: 8px 14px; border-radius: 12px; border: 1px dashed var(--border, #dfe6e9); background: transparent; font-size: 13px; }
.orders-grand-total .ogt-label { opacity: .7; }
.orders-grand-total .ogt-sum { font-size: 15px; margin-left: auto; font-variant-numeric: tabular-nums; }
.orders-grand-total .ogt-meta { flex: 1 0 100%; opacity: .55; font-size: 11px; margin-top: -4px; }

/* ---------- 1.9.60: учётные записи — переключатель «Люди | Шаблоны ролей» ---------- */
.acc-seg { display: flex; gap: 6px; padding: 4px; margin: 0 0 12px; border-radius: 14px; background: var(--card-bg, var(--surface, rgba(127,127,127,.12))); border: 1px solid var(--border, rgba(127,127,127,.2)); }
.acc-seg-b { flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 0 10px; border: 0; border-radius: 11px; background: transparent; color: inherit; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.acc-seg-b span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-seg-b b { font-size: 11px; min-width: 20px; padding: 1px 6px; border-radius: 999px; background: rgba(127,127,127,.18); font-weight: 700; }
.acc-seg-b.on { background: var(--primary, #1e6cff); color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.acc-seg-b.on b { background: rgba(255,255,255,.25); }

/* ---------- 1.9.60: ТТК — у карты одно «⋯» (+ значок фото); старые значки остаются в DOM скрытыми ---------- */
body:not(#mbp) .ttk-card-actions > .ttk-photo-btn,
body:not(#mbp) .ttk-card-actions > .ttk-icon-btn[onclick*="openTtkModal"],
body:not(#mbp) .ttk-card-actions > .ttk-icon-btn[onclick*="deleteTtk"] { display: none !important; }
.ttk-card-actions { display: flex; align-items: center; gap: 6px; }
.ttk-photo-badge { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; border: 1px solid var(--border, #dfe6e9); background: var(--accent-bg, rgba(30,108,255,.1)); color: var(--primary, #1e6cff); padding: 0; cursor: pointer; }
.ttk-photo-badge svg { stroke: currentColor; }
.ttk-card-actions > .ttk-more-btn { width: 36px; height: 36px; }
body.mbp-ro-drinks .ttk-more-btn { display: none !important; }

/* ---------- 1.9.60: редактор этикеток — размеры в три ровные колонки, шапка и полоса слоёв аккуратнее ---------- */
.lb-size3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 10px 0 12px; }
.lb-size3 label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; opacity: .95; min-width: 0; }
.lb-size3 label span { opacity: .7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-size3 input[type="number"] { width: 100%; height: 42px; box-sizing: border-box; border-radius: 12px; border: 1.5px solid var(--border); background: var(--card); color: var(--text); font: inherit; font-size: 15px; padding: 0 10px; }
.lbe-layers { scrollbar-width: none; -ms-overflow-style: none; }
.lbe-layers::-webkit-scrollbar { display: none; width: 0; height: 0; }
.lbe-body, .lbe-panel { scrollbar-width: none; }
.lbe-body::-webkit-scrollbar, .lbe-panel::-webkit-scrollbar { display: none; width: 0; }
.lbe-head .chat-head-main { min-width: 0; flex: 1 1 auto; }
.lbe-head .chat-title { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lbe-head .chat-subtitle { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lbe-head .chat-head-btn { width: 36px; min-width: 36px; padding: 0; }
.lbe-head .lbe-save { padding: 9px 12px; }
/* 1.9.60: в редакторе этикеток ряд элементов («слои») и кнопки сжимались до полоски — flex-колонка ужимала блоки с overflow */
.lbe-body > * { flex-shrink: 0; }
.lbe-layers { min-height: 34px; }

/* ===== 1.9.61: Склад — позиции свёрнуты в компактный список ===== */
#inv-list { gap: 6px; }
body:not(#mbp) #inv-list .inv-item.is-collapsed { gap: 0; padding: 9px 8px 9px 12px; border-radius: 14px; contain-intrinsic-size: auto 56px; cursor: pointer; }
body:not(#mbp) #inv-list .inv-item.is-collapsed > .inv-meta,
body:not(#mbp) #inv-list .inv-item.is-collapsed > .inv-item-fact-block,
body:not(#mbp) #inv-list .inv-item.is-collapsed > .inv-zone-sum { display: none !important; }
#inv-list .inv-item.is-collapsed .inv-item-top { align-items: center; }
#inv-list .inv-item.is-collapsed .inv-name-view { font-size: 15px; -webkit-line-clamp: 1; padding: 0; }
#inv-list .inv-item.is-collapsed .inv-item-name { pointer-events: none; }
#inv-list .inv-compact-sub { display: none; margin-top: 2px; font-size: 12px; line-height: 1.2; opacity: .55; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#inv-list .inv-item.is-collapsed .inv-compact-sub { display: block; }
#inv-list .inv-item.is-collapsed .inv-fact-total { margin-top: 0; }
#inv-list .inv-chev { flex: 0 0 auto; width: 30px; height: 30px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text); opacity: .45; display: inline-flex; align-items: center; justify-content: center; }
#inv-list .inv-chev svg { transition: transform .18s; }
#inv-list .inv-item:not(.is-collapsed) .inv-chev svg { transform: rotate(180deg); }
#inv-list .inv-item:not(.is-collapsed) { border-color: rgba(var(--primary-rgb), .45); }

/* ===== 1.9.61: кнопки сверху в Складе и Остатках — одинаковые плитки в одну строку (значок сверху, подпись снизу) ===== */
body:not(#mbp) #inventory .inv-actions,
body:not(#mbp) #residues .res-actions-row { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 6px !important; align-items: stretch; margin: 0 0 10px; padding: 0; }
body:not(#mbp) #inventory .inv-actions .btn,
body:not(#mbp) #residues .res-actions-row > .btn-main {
  flex: 1 1 0 !important; min-width: 0 !important; width: auto; height: 58px; min-height: 0; margin: 0; padding: 5px 2px !important; box-sizing: border-box;
  display: flex !important; flex-direction: column !important; align-items: center; justify-content: center; gap: 4px;
  border-radius: 12px; box-shadow: none; overflow: hidden;
  font-size: 10.5px !important; font-weight: 700 !important; line-height: 1.1; text-align: center; white-space: normal !important; word-break: normal; overflow-wrap: normal;
  background: var(--card) !important; color: var(--text) !important; border: 1.5px solid rgba(var(--primary-rgb), .35) !important;
}
body:not(#mbp) #inventory .inv-actions .btn svg,
body:not(#mbp) #residues .res-actions-row > .btn-main svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--primary); }
body:not(#mbp) #inventory .inv-actions .btn > span,
body:not(#mbp) #residues .res-actions-row > .btn-main > span { display: block !important; min-width: 0; }
body:not(#mbp) #inventory .inv-actions .btn.btn-danger,
body:not(#mbp) #residues .res-actions-row > .btn-main.res-del-btn { color: #e04646 !important; border-color: rgba(224, 70, 70, .4) !important; }
body:not(#mbp) #inventory .inv-actions .btn.btn-danger svg,
body:not(#mbp) #residues .res-actions-row > .btn-main.res-del-btn svg { color: #e04646; }
body:not(#mbp) #inventory .inv-actions .btn:active,
body:not(#mbp) #residues .res-actions-row > .btn-main:active { transform: scale(.96); }
body:not(#mbp) #residues .res-actions-row { margin-left: -14px; margin-right: -14px; gap: 5px !important; }
body:not(#mbp) #residues .res-actions-row > .btn-main { font-size: 9.5px !important; letter-spacing: -.1px; padding-left: 1px !important; padding-right: 1px !important; }
/* название и категория на складе только для чтения */
#inv-list .inv-item-name, #inv-list .inv-cat { pointer-events: none; }
#inv-list .inv-cat-in { cursor: default; }

/* ===== 1.9.61: Посуда — заказ ===== */
.ware-head-btns { display: flex; gap: 8px; }
body:not(#mbp) .ware-head .ware-head-btns .btn-main { flex: 1 1 0; width: auto; min-width: 0; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 14px; }
.ware-order-btn b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--primary); color: #fff; font-size: 12px; line-height: 20px; text-align: center; }
.ware-order-btn b[hidden] { display: none; }
.ware-cart { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 11px; border: 1.5px solid var(--border); background: var(--bg); color: var(--text); opacity: .75; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.ware-cart.on { background: var(--primary); border-color: var(--primary); color: #fff; opacity: 1; }
.ware-cart:disabled { opacity: .4; }
.ware-row.ordered { border-color: rgba(var(--primary-rgb), .5); }
.ware-inord { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 800; color: var(--primary); }
.ware-orow { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.ware-orow:last-child { border-bottom: 0; }
.ware-ounit { flex: 0 0 auto; font-size: 12px; opacity: .6; min-width: 28px; }
.ware-more-ph { flex: 0 0 34px; }
.ware-order-body { max-height: 52vh; overflow-y: auto; }
.ware-order-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ware-order-actions .btn-main { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
#ware-order-overlay { z-index: 12100; }
/* строка посуды: название сверху, корзина и количество — второй строкой (на узком экране всё в одну не помещалось) */
.ware-row { flex-wrap: wrap; row-gap: 8px; }
.ware-row .ware-photo { order: 1; }
.ware-row .ware-main { order: 2; flex: 1 1 calc(100% - 100px); min-width: 0; }
.ware-row .ware-more { order: 3; margin-left: auto; }
.ware-row .ware-cart { order: 4; margin-right: auto; }
.ware-row .ware-qty { order: 5; }
.ware-orow { flex-wrap: wrap; row-gap: 6px; }
.ware-orow .ware-main { flex: 1 1 100%; }
.ware-orow .ware-qty { margin-right: auto; }

/* права и скрытие кнопок плиток важнее раскладки плиток (у раскладки выше специфичность — повторяем скрытие с префиксом раздела) */
body:not(#mbp).mbp-no-inventory-delete #inventory .inv-actions [onclick*="clearInventoryFacts"],
body:not(#mbp).mbp-no-inventory-delete #inventory .inv-actions [onclick*="clearInventoryBlank"],
body:not(#mbp).mbp-no-inventory-import #inventory .inv-actions [onclick*="inv-blank-input"],
body:not(#mbp).mbp-no-inventory-export #inventory .inv-actions [onclick*="openExportFactModal"],
body:not(#mbp).mbp-on #inventory .inv-actions .inv-restore-btn,
body:not(#mbp).mbp-no-residues-import #residues .res-actions-row [onclick*="res-file-input"],
body:not(#mbp).mbp-no-residues-delete #residues .res-actions-row #btn-clear-res,
body:not(#mbp).mbp-no-residues-export #residues .res-actions-row #btn-export-res,
body:not(#mbp).mbp-no-residues-create #residues .res-actions-row #btn-res-hist-save,
body:not(#mbp) #residues .res-actions-row > .btn-main[style*="display: none"],
body:not(#mbp) #residues .res-actions-row > .btn-main[style*="display:none"],
body:not(#mbp) #inventory .inv-actions > .btn[hidden], body:not(#mbp) #residues .res-actions-row > .btn-main[hidden] { display: none !important; }

/* ===== 1.9.62: «Вес бутылок» — для большого числа позиций: поиск и свёрнутые строки ===== */
.inv-w-bg .sch-sheet.inv-bw { display: flex; flex-direction: column; max-height: 90vh; max-height: 90dvh; }
.inv-bw .inv-bw-list { flex: 1 1 auto; min-height: 120px; max-height: none; overflow-y: auto; margin: 8px 0 6px; -webkit-overflow-scrolling: touch; }
.inv-bw .sch-sheet-t { display: flex; align-items: center; gap: 8px; }
.inv-bw .inv-bw-count { margin-left: auto; font-size: 12px; font-weight: 600; opacity: .55; white-space: nowrap; }
.inv-bw .inv-bw-q { width: 100%; box-sizing: border-box; margin-top: 8px; }
.inv-bw-row { padding: 0; border-bottom: 1px solid var(--border); }
.inv-bw-row .inv-bw-h { width: 100%; display: flex; align-items: center; gap: 8px; margin: 0; padding: 11px 2px; background: transparent; border: 0; color: var(--text); text-align: left; font: inherit; cursor: pointer; }
.inv-bw-row .inv-bw-n { flex: 1 1 auto; min-width: 0; font-weight: 700; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal; }
.inv-bw-row .inv-bw-sum { flex: 0 1 auto; max-width: 42%; font-size: 12px; opacity: .6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-bw-row .inv-bw-chev { flex: 0 0 auto; display: inline-flex; opacity: .5; transition: transform .18s; }
.inv-bw-row:not(.is-collapsed) .inv-bw-chev { transform: rotate(180deg); }
.inv-bw-row .inv-bw-body { padding: 2px 0 12px; }
.inv-bw-row.is-collapsed .inv-bw-body { display: none; }
.inv-bw-row .inv-bw-add1 { margin-top: 2px; }
.inv-bw .inv-bw-add { flex: 0 0 auto; }
.inv-bw .sch-sheet-a { flex: 0 0 auto; }
.inv-bw .inv-bw-q { height: 42px; min-height: 42px; padding: 0 12px; }
