/* =========================================================================
   Прототип №2 «Складской учет» (web) — надстройки над стилями клона.
   Панель прототипа — та же, что в №1; таблицы — группы колонок ag-grid
   (двухуровневая шапка), дашборды — сетка виджетов раздела.
   Токены — только из tokens.css.
   ========================================================================= */

/* ---------- сцена: клон слева, панель прототипа справа ---------- */
body.inv-proto{display:flex;overflow:hidden}
body.inv-proto #app{flex:1;min-width:0;width:auto}
body.inv-proto.proto-open .preview-master{right:380px}
body.inv-proto.proto-open .ao-snackbar{right:396px}
.proto-panel{
  flex:0 0 380px;width:380px;height:100vh;overflow-y:auto;scrollbar-width:none;
  background:#151B22;border-left:1px solid rgba(255,255,255,.08);padding:22px 22px 60px;color:#E7EAEE;
  font-family:var(--font-body);
}
.proto-panel::-webkit-scrollbar{display:none}
body.inv-proto:not(.proto-open) .proto-panel{display:none}
.proto-toggle{
  position:fixed;right:380px;top:50%;z-index:3000;transform:translateY(-50%);
  width:22px;height:64px;border-radius:8px 0 0 8px;background:#151B22;color:#B8BFC8;
  display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;
  box-shadow:-2px 0 8px rgba(0,0,0,.2);transition:right .2s ease;
}
body.inv-proto:not(.proto-open) .proto-toggle{right:0}
.proto-toggle .ao-icon{font-size:12px}
.proto-panel__eyebrow{font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#8CABCD;margin-bottom:6px}
.proto-panel__title{font-size:20px;font-weight:600;line-height:1.25;color:#fff}
.proto-panel__lead{font-size:12.5px;font-weight:400;line-height:1.5;color:#B8BFC8;margin:8px 0 0}
.proto-panel__lead b,.proto-panel__list b,.proto-flow b{color:#fff;font-weight:600}
.proto-panel__lead code,.proto-panel__list code{font-family:ui-monospace,Consolas,monospace;font-size:11px;background:rgba(255,255,255,.08);padding:1px 5px;border-radius:4px;color:#DCE4EC}
.proto-panel__now{margin-top:14px;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:500;background:rgba(74,134,199,.14);border:1px solid rgba(74,134,199,.4);color:#BFD6EE}
.proto-panel__now b{color:#fff;font-weight:600}
.proto-panel__section{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7E8894;margin:20px 0 10px}
.proto-flow{display:flex;gap:10px;padding:9px 11px;border-radius:10px;margin-bottom:6px;font-size:12px;line-height:1.5;color:#C7CDD5;border:1px solid transparent;transition:background .25s ease,border-color .25s ease}
.proto-flow__num{width:20px;height:20px;border-radius:50%;flex:0 0 20px;margin-top:1px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff}
.proto-flow--active{background:rgba(74,134,199,.14);border-color:rgba(74,134,199,.45)}
.proto-flow--active .proto-flow__num{background:#4A86C7;color:#fff}
.proto-panel__list{margin:0;padding:0 0 0 14px;display:flex;flex-direction:column;gap:8px;font-size:12px;line-height:1.5;color:#C7CDD5}
.proto-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4A86C7;box-shadow:0 0 6px rgba(74,134,199,.8);margin-right:4px;vertical-align:baseline}
.proto-var{margin-bottom:12px}
.proto-var__t{font-size:12px;font-weight:600;color:#E7EAEE;margin-bottom:6px}
.proto-var__chips{display:flex;flex-wrap:wrap;gap:6px}
.proto-var__chip{padding:4px 9px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;line-height:1.3;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#C7CDD5}
.proto-var__chip:hover{background:rgba(255,255,255,.12);color:#fff}
.proto-var__chip.is-on{background:rgba(74,134,199,.28);border-color:#4A86C7;color:#fff}
.proto-var__hint{margin-top:6px;font-size:11px;line-height:1.45;color:#8FA0B4}
.proto-check{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#C7CDD5;font-size:11px;cursor:pointer}
.proto-check:hover{color:#fff;background:rgba(255,255,255,.12)}
.proto-check__res{margin-top:8px;font-size:11px;color:#8FA0B4;white-space:pre-line}

/* ---------- таблицы реестров ---------- */
.insp-table th{white-space:nowrap}
.insp-table td{white-space:normal;max-width:320px}
.insp-table td.cell-top{vertical-align:top;padding-top:8px;padding-bottom:8px}
.insp-table td.cell-wrap{white-space:normal;min-width:180px;max-width:260px;font-size:12px}
.insp-thgroups th{height:26px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-600);border-bottom:1px solid var(--border-soft);background:var(--light-grey);position:sticky;top:0;z-index:3}
.insp-thgroups th.has-group{border-left:1px solid var(--border-soft)}
.insp-thgroups th:first-child{border-left:none}

/* ---------- TableMaster: пресеты, тулбар ---------- */
.inv-presets{align-items:center;gap:4px}
.inv-preset-more{position:relative;width:24px;height:24px;border-radius:var(--r);background:transparent;border:none;color:var(--text-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}
.inv-preset-more:hover,.inv-preset-more.is-open{background:var(--light-grey);color:var(--text-body)}
.inv-preset-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:245px;background:var(--surface);border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.16);padding:4px 0;display:flex;flex-direction:column;text-align:left}
.inv-preset-menu .module-link{height:36px;display:flex;align-items:center;gap:8px;padding:0 12px;font-size:12px;color:var(--text-body);border-radius:0}
.inv-preset-menu .module-link .ao-icon{font-size:14px;color:var(--icon-600)}
.inv-header .filters{gap:16px}
.inv-export{align-self:center}
.inv-header .toolbar{border-left:none;padding-left:0}
.inv-header .af-badge{display:inline-block}

/* ---------- ag-grid: двухрядная шапка с группами ---------- */
.inv-table th{font-weight:500;color:var(--text-body);font-size:12px;height:46px}
.inv-table td{font-size:12px;color:var(--text-body);height:39px;border-bottom:1px solid #EDF1F2}
.inv-table.is-compact td{height:28px}
.inv-table.is-compact th{height:32px}
.inv-table.is-compact .inv-thgroups th{height:26px}
.inv-thgroups th{height:44px;font-size:10px;font-weight:600;line-height:140%;letter-spacing:.5px;text-transform:uppercase;color:var(--text-700);border-bottom:1px solid #e2e2e2;background:var(--surface);position:sticky;top:0;z-index:3;vertical-align:middle}
.inv-thgroup{padding-right:0}
.inv-thgroup__label{vertical-align:middle}
.inv-thgroup__toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;border:none;background:transparent;color:var(--text-700);cursor:pointer;vertical-align:middle;border-radius:3px;font-size:12px}
.inv-thgroup__toggle:hover{background:var(--light-grey)}
.inv-thgroup.is-open .inv-thgroup__toggle .inv-chevron{transform:rotate(180deg)}
.inv-chevron{display:inline-flex;transition:transform .15s ease}
.inv-thgroup.is-open{background:var(--light-grey)}
.inv-table.has-groups thead tr:nth-child(2) th{top:44px;z-index:2}
.inv-table.is-compact.has-groups thead tr:nth-child(2) th{top:26px}
.inv-thgroups th.inv-th-solo{vertical-align:middle;text-transform:none;font-size:12px;font-weight:500;letter-spacing:0;color:var(--text-body)}
.inv-table th .sort-ico{opacity:0;transition:opacity .15s}
.inv-table th:hover .sort-ico,.inv-table th.sorted .sort-ico{opacity:1}
.inv-table th.inv-th-solo{border-bottom:1px solid #e2e2e2}
.inv-table td.inv-norows{height:calc(100vh - 360px);text-align:center;color:var(--text-body);font-size:12px;font-weight:500;border-bottom:none}
.inv-table td.inv-loading{height:calc(100vh - 360px);text-align:center;border-bottom:none}
.inv-table tfoot td{font-weight:400;font-size:12px;color:var(--text-body);background:var(--surface);border-top:1px solid #e2e2e2;height:46px}
.inv-table tbody tr.group-row td{height:36px}
.inv-cell-entity{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.inv-cell-entity .ao-icon{font-size:14px;color:var(--primary);cursor:pointer}
.inv-cell-culture{display:inline-flex;align-items:center;gap:8px}
.inv-cell-culture .ao-icon{font-size:14px;color:var(--text-700)}
.inv-cell-muted{color:var(--text-600)}

/* ---------- ModuleInDevelopment («Ожидаются данные») ---------- */
.inv-stub{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);min-height:0;overflow:hidden}
.inv-stub img{max-width:70%;max-height:100%;object-fit:contain}
.inv-stub h2{position:absolute;left:5%;bottom:5%;margin:0;font-size:16px;font-weight:500;color:var(--primary)}

/* ---------- превью (PreviewAdvancedList / PreviewInventoryItems) ---------- */
.inv-pv-status{margin:16px 0}
.inv-pv-items{margin-top:4px}
.inv-pv-items__row{display:flex;justify-content:space-between}
.inv-pv-items__row:nth-child(odd){background:var(--light-grey)}
.inv-pv-items__row .c{padding:12px;font-size:12px;font-weight:400;min-width:0}
.inv-pv-items__row.is-head .c{font-weight:500}
.inv-pv-items__row .c .s{font-size:10px;font-weight:400;color:var(--text-600);margin-top:2px}
.inv-pv-items__row .w50{width:50%}
.inv-pv-items__row .w25{width:25%}
.inv-pv-related{padding:8px 0}
.inv-pv-related + .inv-pv-related{border-top:1px solid var(--border-soft);margin-top:8px}
.inv-pv-related .t{font-size:12px;font-weight:500;color:var(--text-body)}
.inv-pv-related .s{font-size:12px;font-weight:400;color:var(--text-700)}
.inv-pv-related .r{display:flex;gap:8px;margin-top:4px;font-size:12px;color:var(--text-700);flex-wrap:wrap}
.inv-pv-related .r b{font-weight:500;color:var(--text-body)}
.inv-pv-nodata{font-size:12px;font-weight:500;margin-left:8px}
.inv-pv-opgroup{margin-top:8px}
.inv-pv-opgroup .preview-kv:first-child .k{color:var(--text-body);font-weight:500}

/* ---------- DashboardMaster: сетка isSingleScreen ---------- */
.inv-dash{flex:1;min-height:0;padding:12px;background:var(--background);display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:94px calc(50% - 47px - 22px) calc(50% - 47px - 22px);gap:22px;overflow:hidden}
.inv-dash .cell{grid-column:span 2;min-width:0;min-height:0}
.inv-dash .span3{grid-column:span 3}
.inv-dash .span4{grid-column:span 4}
.inv-dash .span6{grid-column:span 6}
.inv-dash .span8{grid-column:span 8}
.inv-dash .span12{grid-column:span 12}
.inv-card{background:var(--surface);border-radius:var(--r);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);height:100%;display:flex;flex-direction:column;min-height:0;padding:8px 16px 4px}
.inv-card--kpi{padding:8px 16px}
.inv-card__head{padding-bottom:8px;display:flex;align-items:flex-start;gap:8px}
.inv-card__title{font-size:12px;font-weight:500;line-height:140%;text-transform:uppercase;color:var(--text-700)}
.inv-card__sub{font-size:10px;font-weight:400;line-height:140%;color:var(--text-600)}
.inv-card__actions{margin-left:auto;display:flex;gap:4px}
.inv-card__body{flex:1;min-height:0;position:relative}
.inv-kpi{flex:1;display:flex;flex-direction:column;justify-content:center;font-size:18px;font-weight:600;line-height:135%;color:var(--text-body)}
.inv-kpi .note{font-size:12px;font-weight:400;line-height:150%;display:block}
.text-textMuted{color:var(--text-600)}
.text-text900{color:#0D1722}
.inv-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.inv-empty .ao-icon{font-size:18px;color:var(--text-600);margin-bottom:8px}
.inv-empty .t{font-size:12px;font-weight:500;color:var(--text-700)}
.inv-empty .s{font-size:10px;font-weight:400;color:var(--text-600)}
.inv-chart{position:absolute;inset:0}
.inv-dtable{position:absolute;inset:0;overflow:auto}
.inv-dtable table{width:100%;border-collapse:collapse}
.inv-dtable th{position:sticky;top:0;background:var(--surface);padding:4px;font-size:12px;font-weight:500;color:var(--text-body);text-align:right;white-space:nowrap;border-bottom:1px solid var(--border-soft)}
.inv-dtable th:first-child,.inv-dtable td:first-child{text-align:left;color:var(--text-700)}
.inv-dtable td{padding:4px;font-size:12px;font-weight:500;color:#3F464E;text-align:right;white-space:nowrap;border-bottom:1px solid transparent}
.inv-dtable tr:last-child td{border-bottom:1px solid var(--border-soft)}
.inv-label{display:inline-block;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:500;width:fit-content}
.inv-label--green{background:#ddf0e3;color:#42a162}
.inv-label--blue{background:#ecf1f7;color:#4a86c7}
.inv-label--red{background:#f9d8d1;color:#EA4C42}
.inv-label--orange{background:#faf4e6;color:#EAB631}
.inv-label--gray{background:#dee6e8;color:#576674}
.inv-share{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}
.inv-share .bar{width:64px;height:6px;border-radius:3px;background:var(--light-grey);overflow:hidden}
.inv-share .bar i{display:block;height:100%;background:var(--primary);border-radius:3px}
.inv-share .v{min-width:40px;text-align:right}
.inv-seg{display:inline-flex;background:var(--light-grey);border-radius:var(--r);padding:2px;gap:2px}
.inv-seg button{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border:none;border-radius:var(--r);background:transparent;color:var(--text-700);font-size:12px;font-family:inherit;cursor:pointer}
.inv-seg button .ao-icon{font-size:12px}
.inv-seg button.is-on{background:#DEE6E8;color:var(--text-body)}
.inv-modal{position:fixed;inset:0;z-index:4000;background:#fff;display:flex;flex-direction:column}
.inv-modal__head{display:flex;align-items:center;padding:24px;border-bottom:1px solid var(--border-soft);font-size:18px;font-weight:600}
.inv-modal__head .x{margin-left:auto}
.inv-modal__body{flex:1;min-height:0;overflow:auto;padding:24px}
.inv-modal__foot{padding:24px;border-top:1px solid var(--border-soft);display:flex;justify-content:flex-end}

/* ---------- дашборд: обёртка с боковой панелью фильтров ---------- */
.inv-dash-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
/* Взвешивания: 10 колонок, ряды 94px / 120px / остаток */
.inv-dash--wi{grid-template-columns:repeat(10,1fr);grid-template-rows:94px 120px minmax(0,1fr)}
.inv-dash--wi .cell--half{grid-column:span 5}
.inv-dash--wi .cell--full{grid-column:1 / -1;grid-row:3}
.inv-dash--wi .inv-card__head{align-items:center}
/* сводная таблица (TablePivotMaster, ag-theme-material) */
.inv-pivot th{text-align:right;vertical-align:middle;height:48px;padding:4px 8px;font-size:12px;font-weight:500;color:var(--text-body);line-height:1.3}
.inv-pivot th:first-child{text-align:left;position:sticky;left:0;z-index:2;min-width:360px}
.inv-pivot th .sub{font-weight:400}
.inv-pivot td{height:39px;padding:0 8px;border-bottom:1px solid #EDF1F2;font-size:12px;color:var(--text-body)}
.inv-pivot td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;text-align:left}
.inv-pivot__group{font-weight:500;white-space:nowrap}
.inv-pivot__arrow{display:inline-flex;margin-right:6px;color:var(--text-700);font-size:12px;vertical-align:middle}
.inv-pivot .lvl1 .inv-pivot__group{font-weight:400}
.inv-pivot .lvl2 .inv-pivot__group{font-weight:400;color:var(--text-800)}
.inv-pivot td .inv-spark{display:block;margin-left:auto}
.inv-group-menu-host{position:relative;align-self:center}
.inv-group-btn{height:24px;font-size:12px;font-weight:400;padding:0 8px;color:var(--text-body);background:var(--surface)}
.inv-group-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;background:var(--surface);border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.16);padding:12px;display:flex;flex-direction:column;gap:6px;min-width:200px}
.inv-group-menu .ao-checkbox{font-size:12px;margin:4px 0}
.inv-group-menu .ao-checkbox.is-disabled{opacity:.5}
/* глобальный фильтр «Дата» (элеваторы) */
.inv-gf-date .content{padding:16px}
.inv-gf-date input[type=date]{width:100%;border:none;border-bottom:1px solid var(--border-soft);font:inherit;font-size:12px;padding:4px 0;background:transparent}
.inv-gf-date__list{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.inv-gf-date__list button{font:inherit;font-size:11px;padding:3px 8px;border-radius:var(--r);border:1px solid var(--border-soft);background:var(--surface);cursor:pointer;color:var(--text-body)}
.inv-gf-date__list button.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}
/* попап «Список талонов» (WeighInsCombinerTicketsPopup) */
.inv-popup{position:fixed;z-index:3500;width:300px;background:var(--surface);border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.2);padding:12px 16px}
.inv-popup__head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:500;margin-bottom:8px}
.inv-popup__body{font-size:11px;font-weight:400}
.inv-popup__item{padding:6px 0;border-bottom:1px solid var(--border-soft)}
.inv-popup__item:last-child{border-bottom:none}
.inv-popup__item .t{color:var(--text-body)}
.inv-popup__item .s{color:var(--text-600);font-size:10px;margin-top:2px}

/* Остатки на токах: 5 KPI → сетка 10 колонок */
.inv-dash--tok{grid-template-columns:repeat(10,1fr)}
.inv-dash .span5{grid-column:span 5}
