/* Мёртвый :root (индиго/Pinterest-референс) удалён 09.07, Coder-CSS В3 — каждое его свойство уже
   переопределялось MOCKUP10-блоком ниже по каскаду (см. "MOCKUP10 DESIGN SYSTEM"), рендерилось 0.
   Убран, чтобы не плодить будущие коллизии токенов. Живой :root — там же, ниже. */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:-apple-system,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(1100px 600px at 92% -10%,rgba(155,184,33,.07),transparent 60%),radial-gradient(800px 560px at 0% 0%,rgba(111,121,255,.05),transparent 55%)}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}
select{appearance:none;cursor:pointer}
::placeholder{color:var(--faint)}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:rgba(20,30,60,.16);border-radius:8px}

.app{position:relative;z-index:1;display:flex;min-height:100vh}

/* rail */
.rail{width:74px;border-right:1px solid var(--line);padding:24px 0;display:flex;flex-direction:column;align-items:center;gap:6px;position:sticky;top:0;height:100vh}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,var(--accent2),var(--accent));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;color:#fff;margin-bottom:20px;box-shadow:0 6px 20px rgba(155,184,33,.35)}
.ri{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:18px;transition:.15s}
.ri:hover{color:var(--text);background:var(--card)}
.ri.on{background:var(--card2);color:var(--accent);border:1px solid var(--line)}

/* main */
.main{flex:1;padding:28px 36px 120px;max-width:1500px;margin:0 auto;width:100%}
.top{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.hello h1{font-size:24px;font-weight:700;letter-spacing:-.4px}
.hello p{color:var(--muted);font-size:13.5px;margin-top:3px}
.search{flex:1;max-width:300px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 15px;color:var(--text);font-size:13.5px;display:flex;align-items:center;gap:9px}
.search input{flex:1}
.spacer{flex:1}

/* spaces switcher */
.spaces{display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;gap:2px}
.spaces b{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px;padding:8px 14px;border-radius:9px;color:var(--muted);transition:.15s}
.spaces b span{font-size:15px}
.spaces b.on{background:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(155,184,33,.35)}
.spaces b.gen.on{background:linear-gradient(120deg,#5aa9ff,#b18cff);box-shadow:0 4px 14px rgba(120,140,255,.3)}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.card+.card{margin-top:22px}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}
.ch .lab{font-size:11.5px;letter-spacing:1.6px;color:var(--faint);font-weight:700;text-transform:uppercase}
.ch .meta{font-size:12.5px;color:var(--muted);font-weight:600}
.big{font-size:24px;font-weight:700;letter-spacing:-.4px;margin-bottom:14px}
.prog{height:5px;background:rgba(20,30,60,.08);border-radius:4px;overflow:hidden;margin-bottom:14px}
.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:4px;transition:width .4s}
.grid{display:grid;grid-template-columns:1.32fr 1fr;gap:22px;align-items:start}
.tbtn{font-size:12.5px;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:9px;border:1px solid var(--line)}
.tbtn:hover{color:var(--text);background:var(--card2)}

/* KPI-карточки сводки — 1-в-1 по референсу (метка + кружок ↗ + большое число + дельта-плашка) */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.kpis{grid-template-columns:1fr}}
.kpi-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 18px 15px 18px;box-shadow:var(--shadow);min-height:122px;display:flex;flex-direction:column}
.kpi-lbl{font-size:12.5px;color:var(--muted);font-weight:600;padding-right:42px;display:block}
.kpi-arrow{position:absolute;top:15px;right:15px;width:34px;height:34px;border-radius:50%;background:var(--card2);display:flex;align-items:center;justify-content:center;color:var(--limed);font-size:15px;transition:.15s}
.kpi-arrow:hover{background:var(--accentsoft)}
.kpi-main{display:flex;align-items:baseline;gap:8px;margin-top:auto;flex-wrap:wrap}
.kpi-num{font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:visible;flex:none}
.kpi-main .kpi-delta{flex:none}
.kpi-unit{font-size:14px;font-weight:700;color:var(--muted)}
/* визуальные графики (референс: столбцы + бублик) */
.barc{width:100%;height:auto;display:block;margin-top:10px;overflow:visible}
.bar-x{font-size:8.5px;fill:var(--faint);font-weight:600}
.bar-y{font-size:7.5px;fill:var(--faint);font-weight:600}
.bar-val{font-size:9px;fill:var(--accent);font-weight:800}
.donut-seg-lbl{font-size:9.5px;fill:#fff;font-weight:800;text-anchor:middle}
/* реестр: богатая легенда (донат + легенда, переиспользуется в Контроле качества) */
.donut-leg.rich{gap:14px}
.leg-row2{min-width:0}
.leg-r2t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.leg-n{font-size:13.5px;color:var(--text);font-weight:600;display:flex;align-items:center;gap:8px}
.leg-c{font-size:13px;font-weight:800;color:var(--text);flex:none}
.leg-bar{height:8px;background:var(--card2);border-radius:5px;overflow:hidden}
.leg-bar i{display:block;height:100%;border-radius:5px}
/* меню настроек */
.set-list{padding:6px 0}
.set-user{display:flex;align-items:center;gap:12px;padding:10px 18px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.set-av{width:38px;height:38px;border-radius:12px;background:linear-gradient(150deg,var(--peach),var(--peachd));color:#fff;font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;flex:none}
.set-role{font-size:12px;color:var(--muted);margin-top:1px}
.set-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 18px;font-size:14px;color:var(--text);background:none;border:none;cursor:pointer;border-radius:0}
.set-item:hover{background:var(--card2)}
.set-item .si{font-size:17px;width:22px;text-align:center}
.set-item.danger{color:var(--red)}
/* живой статус агента */
.agent-live{margin-bottom:16px}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#c5cad8;margin-right:8px;vertical-align:middle}
.live-dot.on{background:var(--green);box-shadow:0 0 0 0 rgba(35,193,151,.5);animation:livepulse 1.8s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(35,193,151,.45)}70%{box-shadow:0 0 0 7px rgba(35,193,151,0)}100%{box-shadow:0 0 0 0 rgba(35,193,151,0)}}
.ag-now{font-size:15px;font-weight:700;color:var(--text);margin:6px 0 14px;line-height:1.35}
.ag-feed{display:flex;flex-direction:column;gap:0;max-height:300px;overflow-y:auto}
.ag-fi{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.ag-fi:first-child{border-top:none}
.ag-ft{flex:none;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;width:42px}
.ag-fs{color:var(--muted);line-height:1.4}
.donut-wrap{display:flex;align-items:center;gap:18px;margin-top:10px;flex-wrap:wrap}
.donut{width:150px;height:150px;flex:none}
.donut-c{font-size:14px;font-weight:800;fill:var(--text)}
.donut-cl{font-size:8px;fill:var(--faint)}
.donut-leg{flex:1;min-width:130px;display:flex;flex-direction:column;gap:8px}
.leg-row{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:9px;font-weight:600}
.leg-row b{margin-left:auto;color:var(--text);font-weight:800}
.leg-dot{width:11px;height:11px;border-radius:4px;flex:none}
/* горизонтальный рейтинг выручки */
.hbars{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.hbar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:12px}
.hbar-l{font-size:13px;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar-v{font-size:12.5px;color:var(--muted);font-weight:700;flex:none;font-variant-numeric:tabular-nums}
.hbar-track{height:9px;background:var(--card2);border-radius:6px;overflow:hidden}
.hbar-fill{height:100%;border-radius:6px;transition:width .4s ease}
/* маяки-точки в ленте сигналов */
.sig-bk{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-right:7px;vertical-align:middle;box-shadow:0 0 0 3px rgba(232,76,76,.16)}
.sig-bk.warn{background:#e3a008;box-shadow:0 0 0 3px rgba(227,160,8,.16)}
/* сворачиваемые позиции заказа (стрелочка) */
/* сводка сроков заказа (помодельно) */
.rollup{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:4px}
@media(max-width:560px){.rollup{grid-template-columns:repeat(2,1fr)}}
.ru-it{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.ru-it i{display:block;font-size:10.5px;color:var(--muted);font-style:normal;font-weight:600;margin-bottom:3px}
.ru-it b{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums}
.ru-hint{font-size:11px;color:var(--faint);margin-top:9px;line-height:1.4}
.cell-sub{font-size:11px;color:var(--faint)}
.ord-postbl th,.ord-postbl td{white-space:nowrap}
/* таймлайн сроков заказа */
.otl-wrap{background:var(--card2);border:1px solid var(--line);border-radius:13px;padding:13px 14px;margin:0 0 12px}
.otl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:6px}
.otl-title{font-size:12.5px;font-weight:700;color:var(--text)}
.otl-drift{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}
.otl-drift.late{background:var(--redbg);color:var(--red)}.otl-drift.early,.otl-drift.ok{background:var(--greenbg);color:var(--green)}
.otl{display:flex;gap:0}
.otl-step{flex:1;position:relative;min-width:0;padding-right:6px}
.otl-dot{width:13px;height:13px;border-radius:50%;background:#fff;border:2.5px solid var(--line2);position:relative;z-index:2}
.otl-step.done .otl-dot{background:var(--accent);border-color:var(--accent)}
.otl-step.is-fc .otl-dot{border-color:var(--blue);border-style:dashed}
.otl-step.is-fact.done .otl-dot{background:var(--green);border-color:var(--green)}
.otl-line{position:absolute;top:5px;left:13px;right:0;height:2.5px;background:var(--line2);z-index:1}
.otl-step.done .otl-line{background:var(--accent)}
.otl-l{font-size:10.5px;color:var(--muted);font-weight:600;margin-top:7px;line-height:1.25}
.otl-tag{display:inline-block;font-size:8px;font-weight:700;text-transform:uppercase;color:var(--blue);background:var(--bluebg);border-radius:5px;padding:0 4px;vertical-align:middle}
.otl-tag.f{color:var(--green);background:var(--greenbg)}
.otl-tag.warn{color:var(--red);background:var(--redbg)}
.otl-d.stale{color:var(--faint);text-decoration:line-through;font-weight:600}
.ru-it b.stale-b{color:var(--faint);text-decoration:line-through}
td .fc-stale{color:var(--faint);text-decoration:line-through;cursor:help}
.otl-d{font-size:11.5px;font-weight:700;color:var(--text);margin-top:3px;font-variant-numeric:tabular-nums}
.otl-none{color:var(--faint);font-weight:400}
@media(max-width:560px){.otl{flex-direction:column;gap:0}.otl-step{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:5px 0}.otl-line{position:static;width:2.5px;height:14px;margin-left:5px;grid-row:2}.otl-l{margin:0}.otl-d{margin:0}.otl-step .otl-dot{grid-row:1}}
.ord-fold{margin-top:6px}
.ord-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--card2);border:1px solid var(--line);border-radius:11px;font-size:13px;font-weight:700;color:var(--text);user-select:none}
.ord-fold>summary::-webkit-details-marker{display:none}
.ord-fold>summary:hover{background:var(--accentsoft)}
.ord-fold .chev{width:16px;height:16px;flex:none;position:relative;transition:transform .2s}
.ord-fold .chev::before{content:"";position:absolute;left:3px;top:4px;width:6px;height:6px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.ord-fold[open] .chev{transform:rotate(90deg)}
.ord-fold-sum{margin-left:auto;font-weight:600;color:var(--muted);font-size:12px}
.ord-fold>.szed-scroll{margin-top:10px}
/* экран входа */
.auth-gate{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(150deg,var(--accent),var(--green))}
.auth-gate.on{display:flex}
.auth-box{background:#fff;border-radius:24px;padding:34px 30px 26px;width:100%;max-width:360px;box-shadow:0 24px 60px rgba(20,24,60,.4);text-align:center}
.auth-logo{width:54px;height:54px;border-radius:16px;background:linear-gradient(150deg,var(--accent2),var(--accent));color:#fff;font-weight:800;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.auth-box h2{margin:0;font-size:22px;color:var(--text)}
.auth-sub{margin:4px 0 20px;color:var(--muted);font-size:13.5px}
.auth-in{width:100%;box-sizing:border-box;padding:13px 15px;margin-bottom:11px;border:1px solid var(--line);border-radius:13px;font-size:15px;background:var(--card2);color:var(--text);outline:none}
.auth-in:focus{border-color:var(--accent);background:#fff}
.auth-err{color:var(--red);font-size:13px;min-height:18px;margin-bottom:4px;font-weight:600}
.auth-btn{width:100%;padding:14px;border:none;border-radius:13px;background:linear-gradient(150deg,var(--accent2),var(--accent));color:#fff;font-size:15.5px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(155,184,33,.34)}
.auth-btn:active{transform:translateY(1px)}
.auth-hint{margin:16px 0 0;color:var(--faint);font-size:11.5px;line-height:1.5}
/* панель доступов */
.acc-me{font-size:14px;color:var(--muted)}.acc-me b{color:var(--text)}
.acc-user{padding:16px;margin-bottom:12px}
.acc-row{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.acc-in{flex:1;min-width:120px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;font-size:14px;background:var(--card2);color:var(--text);outline:none}
.acc-in:focus{border-color:var(--accent);background:#fff}
.acc-lbl{font-size:13px;color:var(--muted);font-weight:600;min-width:42px}
.acc-tag{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:20px;background:var(--card2);color:var(--muted);flex:none}
.acc-tag.own{background:var(--accent);color:#fff}
.acc-views{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:7px;margin:8px 0 12px;padding-top:10px;border-top:1px solid var(--line)}
.acc-vk{font-size:12.5px;color:var(--text);display:flex;align-items:center;gap:7px;cursor:pointer}
.acc-vk.dis{opacity:.45;cursor:not-allowed}
.acc-vk input{accent-color:var(--accent)}
.acc-note{font-size:12px;color:var(--faint)}
.acc-del{color:var(--red);border-color:var(--redbg)}
.kpi-card.filled .kpi-unit{color:rgba(255,255,255,.82)}
.kpi-delta{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px}
.kpi-delta.up{background:var(--greenbg);color:var(--green)}
.kpi-delta.down{background:var(--redbg);color:var(--red)}
.kpi-delta.mid{background:rgba(227,160,8,.14);color:#b07d06}
.kpi-delta.zero{background:var(--card2);color:var(--muted)}
.kpi-cap{font-size:11.5px;color:var(--faint);margin-top:6px}
.kpi-card.acc-top{position:relative;overflow:hidden}
.kpi-card.acc-top{padding-top:21px}
.kpi-card.acc-top::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;border-radius:18px 18px 0 0}
.kpi-card.acc-b::before{background:var(--blue,#3da5ff)}
.kpi-card.acc-v::before{background:var(--violet,#a06bff)}
.kpi-card.acc-o::before{background:#ff8a3d}
.kpi-card.acc-g::before{background:var(--green,#23c197)}
.kpi-card.filled{background:linear-gradient(150deg,var(--accent),var(--green));border-color:transparent;color:#fff;box-shadow:0 14px 32px rgba(155,184,33,.32)}
.kpi-card.filled .kpi-lbl,.kpi-card.filled .kpi-cap{color:rgba(255,255,255,.82)}
.kpi-card.filled .kpi-num{color:#fff}
.kpi-card.filled .kpi-arrow{background:#fff;color:var(--accent)}
.kpi-card.filled .kpi-delta.up{background:rgba(255,255,255,.22);color:#fff}

/* Заказы: сетка позиций (артикул/наборы/единицы/цена/получено/✕) + факты */
.ord-head,.ord-row{grid-template-columns:minmax(80px,1.5fr) .7fr .7fr .8fr .8fr 24px!important;min-width:0!important;gap:8px}
.ord-head8,.ord-row8{grid-template-columns:minmax(90px,1.4fr) .65fr .65fr .7fr .7fr .95fr .95fr 24px!important;min-width:560px!important}
.ord-head span{padding-left:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-head span:last-child{padding-left:0}
#ordForm .szed-scroll{overflow-x:visible}
.ord-facts{grid-template-columns:repeat(4,1fr)}
@media(max-width:560px){.ord-facts{grid-template-columns:repeat(2,1fr)}}
/* ОБЩИЙ вид заказов: группа по дате + итоговая карточка */
.ord-group{margin-bottom:24px}
.ord-group-h{font-size:13px;font-weight:800;color:var(--accent);margin:0 0 12px;padding:8px 14px;background:var(--accentsoft);border-radius:10px;display:inline-block}
.ord-total{border:1.5px solid var(--accent);background:linear-gradient(180deg,var(--accentsoft),transparent)}
.ord-total .kpi-num,.ord-total .fact b{color:var(--accent)}
.ord-lock{background:rgba(224,163,15,.12);border:1px solid rgba(224,163,15,.4);color:#9a7b12;border-radius:11px;padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:14px}
.fv:disabled{background:#f0f1f5;color:#9aa0ab;cursor:not-allowed}

/* task row */
.t{display:flex;align-items:center;gap:13px;padding:12px 8px}
.box{width:20px;height:20px;border-radius:7px;border:1.7px solid var(--line2);flex:none;display:flex;align-items:center;justify-content:center;color:transparent;font-size:12px;transition:.12s}
.box:hover{border-color:var(--accent)}
.t.done .box{background:var(--accent);border-color:var(--accent);color:#fff}
.box.done{background:var(--accent);border-color:var(--accent);color:#fff}
@keyframes boxpop{0%{transform:scale(1)}45%{transform:scale(1.32)}100%{transform:scale(1)}}
.box.done,.t.done .box{animation:boxpop .26s ease}
.t .txt{flex:1;font-size:14.5px;word-break:break-word;cursor:pointer}
.t.done .txt{color:var(--faint);text-decoration:line-through}
.t .txt .sub{font-size:11.5px;color:var(--faint);margin-top:2px}
.tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;background:rgba(44,47,38,.06);color:var(--muted);white-space:nowrap;display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.tag.w{background:var(--bluebg);color:var(--blue)}.tag.p{background:var(--violetbg);color:var(--violet)}
.pri{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.time{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:42px;text-align:right}
.tz-mark{font-style:normal;font-size:8.5px;font-weight:700;color:var(--accent);margin-left:3px;vertical-align:super;letter-spacing:.2px}   /* #8: метка конвертации пояса — видна ТОЛЬКО когда пояс задачи и зрителя оба заданы и разные */
.del{color:var(--faint);font-size:15px;opacity:0;transition:.12s;padding:0 2px}
.t:hover .del{opacity:1}.del:hover{color:#ff6b6b}
.add{display:flex;align-items:center;gap:10px;margin-top:10px;padding:6px 4px}
.add .plus{width:20px;height:20px;border-radius:7px;border:1.5px dashed var(--line2);display:flex;align-items:center;justify-content:center;color:var(--faint);flex:none}
.add input{flex:1;font-size:13.5px}
.empty{color:var(--faint);font-size:14px;text-align:center;padding:34px 0}
/* ===== Тест-лист / Лист согласований ===== */
.qa-grp{margin-bottom:20px}
.qa-grp-h{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:0 4px 8px;border-bottom:1px solid var(--line);margin-bottom:2px}
.qa-row .qa-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.qa-row .qa-line b{font-size:14.5px;font-weight:600}
.qa-row.done .qa-line b{color:var(--faint);text-decoration:line-through}
.qa-detail{background:var(--card2);border:1px solid var(--line);border-radius:13px;padding:15px 17px;margin:0 0 13px 33px}
.qa-sec{margin-bottom:12px}
.qa-sec:last-child{margin-bottom:0}
.qa-sec-h{font-size:11.5px;font-weight:800;color:var(--muted);margin-bottom:4px}
.qa-sec-b{font-size:13.5px;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.qa-need{background:var(--accentsoft);border-left:3px solid var(--accent);border-radius:9px;padding:11px 13px}
.qa-need .qa-sec-h{color:var(--accent)}
.qa-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.qa-btn{font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;transition:.13s}
.qa-btn:hover{border-color:var(--line2)}
.qa-btn.qa-ok{background:var(--green);border-color:var(--green);color:#fff}
.qa-btn.qa-ok:hover{filter:brightness(1.06)}
.qa-btn.qa-link{color:var(--accent);border-color:var(--accentsoft)}
.qa-ts{font-size:11.5px;color:var(--faint);margin-left:auto}

/* projects mini / cards */
.pjg{font-size:11px;letter-spacing:1.2px;color:var(--faint);font-weight:700;margin:14px 0 10px;text-transform:uppercase}
.lsec{font-size:13px;font-weight:800;color:var(--accent);margin:20px 0 10px;padding:8px 12px;background:rgba(44,47,38,.04);border-radius:8px;border-left:3px solid var(--accent)}
.lsec.warn{color:var(--red);border-left-color:var(--red)}
.pjg:first-child{margin-top:0}
.pj-row{display:flex;align-items:center;gap:12px;margin-bottom:13px}
.pj-row .nm{flex:1;font-size:13.5px}
.pj-row .pc{font-size:12px;color:var(--muted);min-width:34px;text-align:right}
.bar{width:120px;height:5px;background:rgba(44,47,38,.07);border-radius:4px;overflow:hidden;flex:none}
.bar i{display:block;height:100%;border-radius:4px}
.bw{background:linear-gradient(90deg,#5aa9ff,#8fc4ff)}.bp{background:linear-gradient(90deg,#b18cff,#d0bcff)}
/* ВЛОЖЕННЫЕ ПОДПРОЕКТЫ — список проектов */
.sub-twig{color:var(--accent2);font-weight:700;margin-right:2px}   /* #11: бейдж стал кнопкой-шевроном — сброс браузерного вида кнопки */
/* ПОДПРОЕКТЫ на детальной странице */
/* ЗАМЕТКИ / ЗАГОЛОВКИ в проекте */

/* regular processes */
.proc{display:flex;align-items:center;gap:13px;padding:12px 8px}
.proc:last-child{border:0}
.proc .dotp{width:8px;height:8px;border-radius:50%;flex:none}
.proc .nm{flex:1;font-size:14.5px}
.cps{display:flex;gap:5px;margin-top:5px}
.cp{width:20px;height:6px;border-radius:3px;background:rgba(44,47,38,.1);cursor:pointer}
.cp.on{background:var(--accent)}
/* подсветка строк под курсором — единый приём для всех таблиц/списков */
.hrow:not(.hhead):hover,.prod-row:hover,.proc:hover,.ov-row:hover,.art-sz tbody tr:hover,.t:hover,.mp-t:hover{background:var(--card2)}
.art-sz tbody tr{transition:background .12s}
.hrow,.prod-row,.proc,.ov-row,.t,.mp-t{border-radius:8px;transition:background .12s}
/* единые цветные точки-статусы (вместо эмодзи-светофоров) */
.sdot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:6px;flex:none}
.sdot-g{background:var(--green)}.sdot-w{background:#e0a30f}.sdot-r{background:var(--red)}.sdot-b{background:var(--blue)}.sdot-n{background:var(--faint)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 11px 3px 9px;border-radius:20px;white-space:nowrap;line-height:1.5}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pill.ok,.pill.pill-green{background:var(--greenbg);color:var(--green)}
.pill.warn,.pill.pill-amber{background:rgba(227,160,8,.14);color:#b07d06}
.pill.bad,.pill.pill-red{background:var(--redbg);color:var(--red)}
.pill.due,.pill.pill-blue{background:var(--bluebg);color:var(--blue)}
.pill.pill-indigo{background:var(--accentsoft);color:var(--accent)}
.pill.pill-gray{background:var(--card2);color:var(--muted)}
.pill.pill-plain::before{display:none}
/* карточка артикула: строки размеров → мини-карточки на телефоне */
@media(max-width:560px){
  .sz-resp thead{display:none}
  .sz-resp,.sz-resp tbody,.sz-resp tr,.sz-resp td{display:block;width:auto}
  .sz-resp tr{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:9px;box-shadow:var(--shadow)}
  .sz-resp td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0!important;padding:3px 0;font-size:12.5px}
  .sz-resp td::before{content:attr(data-l);color:var(--muted);font-weight:600;flex:none}
  .sz-resp td.sz-main{font-size:17px;font-weight:800;border-bottom:1px solid var(--line)!important;padding-bottom:7px;margin-bottom:5px}
  .sz-resp td.sz-main::before{content:"Размер";font-size:11px;color:var(--faint);font-weight:600}
  .sz-resp td.sz-stock{font-weight:800;color:var(--accent)}
  .sz-resp td .cell-miss,.sz-resp td.cell-miss{margin-left:auto}
  /* косметика 08.07 (boss): .zkt-table td.sz-main::before раньше жил ВНЕ этого media-блока →
     ::before "Артикул" применялся и на десктопе, где td НЕ flex — текст лип прямо к коду без
     пробела («Артикул6029/ЦВ/42-44»). Здесь, внутри мобильного .sz-resp-режима (flex-строка,
     лейбл слева от значения), это к месту — переопределяет общий "Размер" выше для карточек заказа. */
  .zkt-table td.sz-main::before{content:"Артикул"}
}
.cd{text-align:center;min-height:96px;cursor:pointer;border-radius:12px;padding:4px 2px;transition:.12s}
.cd:hover{background:var(--card)}
.cd.drop{outline:2px dashed var(--accent);background:var(--accentsoft)}
.cd .dn{font-size:10.5px;letter-spacing:.6px;color:var(--faint);font-weight:700;text-transform:uppercase;margin-bottom:8px}
.cd .num{font-size:15px;font-weight:600;color:var(--muted);width:33px;height:33px;line-height:33px;border-radius:10px;margin:0 auto}
.cd.today .num{background:var(--accent);color:#fff;box-shadow:0 5px 14px rgba(155,184,33,.4)}
.cd.dim .num{opacity:.4}
.ev{margin-top:8px;display:flex;flex-direction:column;gap:5px;align-items:stretch}
.e-a{background:var(--accentsoft);color:var(--accent)}
.e-w{background:var(--bluebg);color:var(--blue)}.e-p{background:var(--violetbg);color:var(--violet)}

/* ===== POINTER-DnD: источники перетаскивания (мышь + тач) =====
   touch-action:none — палец двигает задачу, а не скроллит страницу во время drag. */
/* «призрак» — плавающий клон, следует за пальцем; тёмное стекло + оранжевый акцент */
.pdnd-ghost{position:fixed;left:0;top:0;transform:translate(-50%,-130%);z-index:9999;pointer-events:none;
  max-width:200px;padding:8px 12px;border-radius:11px;font-size:12px;font-weight:600;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:rgba(18,18,22,.86);color:var(--accent2);border:1px solid rgba(155,184,33,.45);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 0 1px rgba(155,184,33,.18)}

/* mini widgets */
.mini{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.mc{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);min-height:96px;display:flex;flex-direction:column}
.mc .v{margin-top:auto}
.mc .k{font-size:11px;letter-spacing:1px;color:var(--faint);font-weight:700;text-transform:uppercase}
.mc .v{font-size:26px;font-weight:700;margin-top:8px;letter-spacing:-.5px}
.mc .v small{font-size:13px;color:var(--muted);font-weight:600}
.mc .sub{font-size:11.5px;color:var(--muted);margin-top:4px}

/* views */
.view{display:none}
.view.on{display:block;animation:fade .25s}
/* СТАРТ: пока приложение не выбрало раздел по правам, не показываем НИ ОДИН (22.09.2026).
   Иначе у сотрудника без «Сводки» на долю секунды мелькала чужая пустая «Сводка» из разметки.
   Класс снимает app.js сразу после первой отрисовки, плюс страховочный таймер — белым экран не останется. */
body.aos-booting .view.on{display:none}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}   /* В2 «Открытый холст» (10.07, Coder-CSS): фон = общий --bg (#e6e8da), шов с телом страницы убран (было --cal-bg #F7F6EF светлее — grep подтвердил единственное использование токена, было именно здесь). --cal-bg остаётся объявлен в :root (стр.1468), просто больше нигде не читается — не удаляю токен, чтобы не задеть возможный будущий откат. */
.vtabs{display:flex;background:var(--card2);border:1px solid var(--line);border-radius:13px;padding:4px;gap:2px}
.vtabs b{font-weight:600;font-size:13px;padding:8px 16px;border-radius:10px;color:var(--muted);cursor:pointer;transition:.15s}
.vtabs b:hover{color:var(--text)}
.vtabs b.on{background:#fff;color:var(--accent);box-shadow:0 2px 8px rgba(20,24,60,.1);font-weight:700}
/* fix #4 (09.07, CSS-fixer): живой счётчик «📥 Inbox · N» (app.js:877) переносился на 2 строки —
   рельс узкий (268px - 2×22px padding = 224px), .ch flex-shrink давал .lab/.meta переноситься по словам.
   nowrap фиксирует .lab одной строкой; .meta чуть уменьшен и тоже не переносится некрасиво. */
/* ===== В3 Inbox-контракт (09.07, согласован с Coder-JS) =====
   .drag-task > .gr + .box.act-toggle + .task-main(min-width:0) > .task-title(ellipsis) + .task-sub > .proj-dot
   До обновления app.js:867 разметка ещё старая (голый текст+.dt-proj) — эти правила просто не находят
   своих классов и молчат; когда Coder-JS перейдёт на новую разметку, всё заработает без правок CSS. */
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.mhd{font-size:10.5px;letter-spacing:.8px;color:var(--muted);font-weight:700;text-transform:uppercase;text-align:center;padding-bottom:10px}
.mcell{min-height:120px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:8px;display:flex;flex-direction:column;gap:5px;transition:background .12s}
.mcell:hover{background:var(--card2)}
.mcell.dim{opacity:.45}
.mcell.today{border-color:var(--accent);border-width:1.5px;background:rgba(var(--accent-rgb),.06)}
.mcell{position:relative}
.mload{position:static;width:100%;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
/* ^ было position:absolute;left:8px;bottom:6px — вылезало за правый край ячейки и ложилось поверх .mcnt (В3, 09.07).
   Теперь обычный блок в потоке; фактическую высоту/цвет трека и заливку задаёт более специфичный .mcell .mload ниже. */
.mcell.drop{outline:2px dashed var(--accent)}
.mcell .d{font-size:13px;font-weight:600;color:var(--muted);align-self:flex-end;font-variant-numeric:tabular-nums}
.mcell.today .d{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.daycol{display:flex;flex-direction:column;gap:9px}
.hourrow{display:flex;gap:12px;align-items:flex-start;padding:9px 0}
.hr{font-size:12px;color:var(--faint);width:46px;flex:none;font-variant-numeric:tabular-nums}
.weekcols{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}

/* reports */
.btnrow{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px}
.rbtn{font-size:14px;font-weight:600;padding:11px 16px;border-radius:12px;background:var(--accentsoft);color:var(--accent2);border:1px solid rgba(155,184,33,.3)}
.rbtn:hover{background:var(--limesoft)}
.rbtn.s{background:var(--card2);color:var(--text);border-color:var(--line)}
.report-out{margin-top:18px;font-size:14.5px;line-height:1.6;white-space:pre-wrap;color:var(--text)}
.report-out:empty::before{content:"Нажми кнопку — соберу сводку.";color:var(--faint)}
.report-out h4{font-size:16px;margin:4px 0 10px}

/* agent */
.agent-card{display:flex;flex-direction:column;min-height:560px}
.msgs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:6px 2px;max-height:60vh}
.msg{max-width:80%;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.42}
.msg.me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}
.msg.ai{align-self:flex-start;background:var(--card2);border:1px solid var(--line);border-bottom-left-radius:5px;white-space:pre-wrap}
.qrow{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}
.q{font-size:13px;padding:8px 13px;border-radius:20px;background:var(--card2);border:1px solid var(--line);color:var(--muted)}
.q:hover{color:var(--text)}
.dform{display:flex;gap:10px;align-items:center}
.dform input{flex:1;background:var(--card2);border:1px solid var(--line2);border-radius:13px;padding:13px 15px;font-size:14px}
.icon-btn{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.mic{background:var(--accent);box-shadow:0 5px 16px rgba(155,184,33,.4);color:#fff}
.mic.live{animation:pulse 1s infinite}
@keyframes pulse{0%,100%{box-shadow:0 5px 16px rgba(155,184,33,.4)}50%{box-shadow:0 0 0 8px rgba(155,184,33,.18)}}

/* FAB */
.fab{position:fixed;right:26px;bottom:26px;width:58px;height:58px;border-radius:50%;background:linear-gradient(150deg,var(--accent2),var(--accent));color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(155,184,33,.5);z-index:30}
.fab:hover{transform:scale(1.05)}

/* modal / task sheet */
.modal{position:fixed;inset:0;z-index:60;display:none}
.modal.on{display:block}
.modal .scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.sheet{position:absolute;right:0;top:0;bottom:0;width:480px;max-width:94vw;background:var(--card);border-left:1px solid var(--line2);padding:24px;overflow-y:auto;animation:slide .25s;box-shadow:-18px 0 50px rgba(44,47,38,.14)}
@keyframes slide{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.sh-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.t-title{font-size:21px;font-weight:700;width:100%;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:10px}
.fld{margin-bottom:15px}
.fl{font-size:11.5px;letter-spacing:1px;color:var(--faint);font-weight:700;text-transform:uppercase;margin-bottom:7px}
.fv{width:100%;background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:12px 14px;font-size:15px;color:var(--text)}
textarea.fv.area{height:80px;resize:vertical;font-family:inherit}
.two{display:flex;gap:12px}.two .fld{flex:1}
.sh-foot{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.del-btn{color:var(--red);font-weight:600;padding:11px 16px;border-radius:11px;border:1px solid var(--redbg)}
.save-btn{background:var(--accent);color:#fff;font-weight:700;padding:11px 24px;border-radius:11px;box-shadow:0 5px 16px rgba(155,184,33,.35)}

/* tabbar (mobile) */
.tabbar{display:none}

/* responsive */
@media(max-width:980px){
  .rail{display:none}
  .main{padding:max(18px,env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));min-width:0}
  .grid{grid-template-columns:1fr}
  .top{gap:10px}.hello h1{font-size:20px}
  .search{order:6;max-width:none;width:100%}.spacer{display:none}
  .spaces{flex:1;order:5}.spaces b{flex:1;justify-content:center;padding:8px 6px}
  .cd{min-height:auto}.cd .ev .eb{font-size:9px}
  .month{gap:4px}.mcell{min-height:74px;padding:5px}
  .fab{bottom:90px}
  .tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;height:calc(76px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(12,12,14,.9);border-top:1px solid var(--line);backdrop-filter:blur(20px);justify-content:space-around;align-items:flex-start;padding-top:12px}
  .tb{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--faint);font-weight:600}
  .tb .i{font-size:20px}.tb.on{color:var(--accent)}
  .sheet{width:100%}
}
@media(max-width:440px){.cd .num{width:28px;height:28px;line-height:28px;font-size:13px}
  .mini{grid-template-columns:1fr}
  .spaces b span{display:none}.spaces b{padding:8px}
}

/* ===== v3: KPI / suppliers / departments ===== */
.kpi-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:7px;white-space:nowrap}
.kpi-pill.work{background:var(--accentsoft);color:var(--accent2)}
.kpi-pill.risk{background:rgba(255,140,60,.16);color:#cf7a2a}
.kpi-pill.fail{background:var(--redbg);color:var(--red)}
.kpi-pill.done{background:var(--greenbg);color:#7fdcab}
.kpi-box{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:6px 0 14px}
.kpi-row{display:flex;gap:12px;font-size:13.5px;padding:5px 0;line-height:1.4}
.kpi-row+.kpi-row{margin-top:2px}
.kpi-l{color:var(--faint);font-weight:600;min-width:150px;flex:none}
.card.sup{margin-bottom:18px}
.hrow{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;font-size:13px;padding:9px 8px;align-items:center}
.hrow.hhead{color:var(--faint);font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase}
.prod-row{display:flex;align-items:center;gap:12px;padding:12px 8px}
.prod-row:last-child{border:0}
.prod-row .pdot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--accent)}
.prod-row.ontime .pdot{background:var(--green)}.prod-row.late .pdot{background:#ff6b6b}.prod-row.prod .pdot{background:var(--accent)}
.prod-row .pinfo{flex:1;font-size:14px}
#deptCards .card,#supCards .card{margin-bottom:16px}
@media(max-width:980px){ .kpi-l{min-width:110px} .tabbar .tb{font-size:9px} .hrow{font-size:12px} }
/* priority colours */
.t.pri-high{border-left:3px solid #ff5a5a;padding-left:8px;box-shadow:-1px 0 8px rgba(255,90,90,.15)}
.t.pri-urg{border-left:3px solid #ffc14d;padding-left:8px}
.clocks{display:flex;gap:16px}
.clk{text-align:right}.clk .cz{display:block;font-size:10px;letter-spacing:.5px;color:var(--faint);text-transform:uppercase}
.clk b{font-size:15px;font-variant-numeric:tabular-nums;color:var(--text)}
@media(max-width:560px){.clocks{gap:12px}.clk b{font-size:13px}}
/* subtask expand */
.chev{color:var(--muted);font-size:13px;width:18px;flex:none;cursor:pointer}
.chev:hover{color:var(--accent)}
.subs-inline{margin:2px 0 8px 40px;border-left:2px solid var(--line2);padding-left:12px}
.subi{display:flex;align-items:center;gap:10px;padding:6px 2px;font-size:13.5px;color:var(--text)}
.box.sm{width:16px;height:16px;border-radius:5px;font-size:10px}
.rz{position:absolute;left:0;right:0;bottom:0;height:9px;cursor:ns-resize}
.now-line{position:absolute;left:0;right:0;height:2px;background:#ff5a5a;z-index:3}
.now-line::before{content:'';position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#ff5a5a}
/* priority normal (green) + brighter labels + grid drop */
.t.pri-norm{border-left:3px solid rgba(78,201,138,.55);padding-left:8px}
.ch .lab{color:#b9b4ad}  /* ярче, чем faint */
.card>.ch .lab,.view>.ch .lab{color:var(--muted)}
.t .txt{color:var(--text)}
/* МОБИЛЬНАЯ адаптация: меньше боковые поля, строки задач переносятся, текст не схлопывается в столбик */
@media(max-width:560px){
  .main{padding:max(16px,env(safe-area-inset-top)) 12px calc(96px + env(safe-area-inset-bottom))}
  .top .search{display:none}
  .card{padding:16px;border-radius:16px}
  .kpi-row{flex-direction:column;gap:2px}
  .kpi-row .kpi-l{min-width:0}
  .kpi-row>span:last-child{font-weight:600}
  /* Этап 1 — большие таблицы/воронка под телефон */
  .ord-row8,.ord-head8{grid-template-columns:1fr 1fr!important;min-width:0!important}
  .ord-head8{display:none}
  .supb-col{flex:0 0 80%;max-width:300px;scroll-snap-align:start}
  .supb-wrap{scroll-snap-type:x mandatory;gap:8px}
  .ord-postbl,.ff-tbl,.adm{font-size:11.5px}
  .ord-postbl th,.ord-postbl td,.ff-tbl th,.ff-tbl td,.adm th,.adm td{padding:5px 6px}
  .ff-in{width:46px;padding:4px 5px}
  .t{flex-wrap:wrap;gap:7px 10px}
  .t .txt{flex:1 1 62%;min-width:62%;word-break:break-word}
  .t .time{margin-left:auto}
  .grid{grid-template-columns:1fr;gap:14px}
  /* фильтры/табы — горизонтальный скролл вместо переноса в кашу */
  .fchips,.btnrow,.art-bar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .fchips::-webkit-scrollbar,.btnrow::-webkit-scrollbar,.art-bar::-webkit-scrollbar{display:none}
  .fchips>*,.btnrow>*,.art-bar>*{flex:none}
  /* мобайл-фикс 10.07: .art-bar (Реестр/Заказы) — перенос вместо немого свайпа, чтобы кнопка +Создать/+Заказ не пряталась за краем; .vtabs НЕ растягивать (QA Праман: иначе пустая зона) */
  .art-bar{flex-wrap:wrap;row-gap:8px;overflow-x:visible}
  .art-bar>div:not(.vtabs){flex:1 1 100%}
  /* кнопки действий заказа — компактнее, чтобы не переполнялись */
  .ord-card .tbtn{font-size:12px;padding:8px 11px;margin-left:0!important}
  .ord-card .tbtn{margin-top:8px;margin-right:6px}
  /* шапки карточек — перенос, чтобы пилюли/мета не съезжали */
  .ch{flex-wrap:wrap;gap:6px 10px}
}
/* ===== задачник доводка (v15): Inbox drop, чипы длительности, тост, overdue, фильтры, поиск ===== */
/* интервал времени в модалке */
.time-int{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.time-int .fv{flex:none;width:128px}
.time-int .dash{color:var(--faint)}
.fv.warn{outline:2px solid #ff8f8f;border-radius:8px}
/* тост undo */
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);z-index:90;background:#16161a;border:1px solid var(--line2);border-radius:13px;padding:11px 14px 11px 16px;display:flex;align-items:center;gap:14px;font-size:13.5px;box-shadow:0 12px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.22s}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.toast button{color:var(--accent);font-weight:700;font-size:13px;white-space:nowrap}
.toast button:hover{color:var(--accent2)}
/* блок просрочено */
.overdue-box{border:1px solid rgba(255,143,143,.35);background:var(--redbg);border-radius:13px;padding:12px 14px;margin-bottom:14px}
.overdue-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.overdue-h .lab{font-size:11.5px;letter-spacing:1.2px;color:var(--red);font-weight:700;text-transform:uppercase}
.overdue-h button{font-size:12px;font-weight:600;color:var(--accent);padding:5px 10px;border-radius:8px;border:1px solid rgba(155,184,33,.4)}
.overdue-h button:hover{background:var(--accentsoft)}
/* сворачивание просрочки (стрелочка) */
.ov-fold>summary{list-style:none;cursor:pointer;user-select:none;margin-bottom:0}
.ov-fold>summary::-webkit-details-marker{display:none}
.ov-fold[open]>summary{margin-bottom:8px}
.ov-fold .chev{width:15px;height:15px;flex:none;position:relative;transition:transform .2s}
.ov-fold .chev::before{content:"";position:absolute;left:3px;top:3px;width:6px;height:6px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg)}
.ov-fold[open] .chev{transform:rotate(90deg)}
.ov-hint{margin-left:auto;font-size:11px;color:var(--red);opacity:.6}
.ov-fold[open] .ov-hint{display:none}
.ov-allbtn{font-size:12px;font-weight:600;color:var(--accent);padding:6px 11px;border-radius:8px;border:1px solid rgba(155,184,33,.4);margin-bottom:6px}
.ov-allbtn:hover{background:var(--accentsoft)}
/* баннер демо-данных (раздел-витрина) */
.demo-banner{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#8a6d1a;background:repeating-linear-gradient(135deg,rgba(227,160,8,.08),rgba(227,160,8,.08) 12px,rgba(227,160,8,.14) 12px,rgba(227,160,8,.14) 24px);border:1px dashed rgba(227,160,8,.5);border-radius:12px;padding:10px 14px;margin-bottom:14px}
.kpi-demo{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#8a6d1a;background:rgba(227,160,8,.18);border-radius:6px;padding:1px 6px;margin-left:7px;vertical-align:middle}
.kpi-card.filled .kpi-demo{color:#fff;background:rgba(255,255,255,.28)}
.ov-row{display:flex;align-items:center;gap:10px;padding:7px 8px;font-size:13.5px}
.ov-row:first-of-type{border-top:0}
.ov-row .ov-d{font-size:11.5px;color:var(--red);white-space:nowrap}
.ov-row .ov-t{flex:1;cursor:pointer}.ov-row .ov-t:hover{color:var(--accent2)}
.ov-row .ov-mv{font-size:11.5px;font-weight:600;color:var(--accent);white-space:nowrap;padding:3px 8px;border-radius:7px;border:1px solid rgba(155,184,33,.4)}
.ov-row .ov-mv:hover{background:var(--accentsoft)}
/* SVG-ring переключатель проектов в rail */
/* pill активного проекта в шапке */
/* глобальный поиск Ctrl+K */
.gs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:none;align-items:flex-start;justify-content:center;padding-top:80px}
.gs-box{background:var(--card);border-radius:16px;width:min(600px,95vw);box-shadow:0 24px 60px rgba(0,0,0,.3);overflow:hidden}
.gs-head{display:flex;align-items:center;padding:14px 16px;gap:10px;border-bottom:1px solid var(--line)}
.gs-icon{font-size:18px;opacity:.6}
.gs-input{flex:1;border:none;background:transparent;font-size:16px;color:var(--text);outline:none}
.gs-close{background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer;padding:0 4px}
.gs-results{max-height:400px;overflow-y:auto}
.gs-row{display:flex;align-items:center;gap:12px;padding:11px 16px;cursor:pointer;transition:background .1s}
.gs-row:hover,.gs-row.gs-sel{background:var(--accentsoft)}
.gs-ico{font-size:16px;width:22px;text-align:center;flex-shrink:0}
.gs-text{flex:1;min-width:0}
.gs-lab{display:block;font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-sub{display:block;font-size:12px;color:var(--muted)}
.gs-tip,.gs-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:14px}
.gs-hint{padding:8px 16px;font-size:11.5px;color:var(--faint);border-top:1px solid var(--line);text-align:center}
/* быстрый переключатель недавних проектов */
.recent-projs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px;padding:7px 10px;background:var(--card2);border-radius:9px}
.rp-lab{font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.rp-chip{font-size:12px;font-weight:600;color:var(--accent2);padding:4px 11px;border-radius:20px;border:1px solid rgba(155,184,33,.25);background:var(--accentsoft);cursor:pointer;transition:background .15s}
.rp-chip:hover{background:rgba(155,184,33,.18)}
/* фильтры-чипы */
.fchips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.fchips .fchip{font-size:12.5px;font-weight:600;color:var(--muted);padding:6px 13px;border-radius:9px;border:1px solid var(--line)}
.fchips .fchip:hover{color:var(--text);background:var(--card2)}
.fchips .fchip.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* ТЕРМИНАЛ */
/* аналитика закупа в реестре (светофор дозаказа + сводка) */
.art-dash{margin:4px 0 12px}
.adash-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:8px}
.adash-kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow)}
.adash-kpi i{display:block;font-size:11px;color:var(--muted);font-weight:600;font-style:normal;margin-bottom:3px}
.adash-kpi b{display:block;font-size:18px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.adash-kpi s{display:block;font-size:10.5px;color:var(--faint);text-decoration:none;margin-top:2px}
.adash-lights{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.adl{font-size:12px;font-weight:700;padding:5px 10px;border-radius:8px;background:var(--card2);border:1px solid var(--line)}
.adl.red{color:#d92d20}.adl.warn{color:#e07a00}.adl.zero{color:var(--muted)}
.adl-btn{margin-left:auto;font-size:12px;font-weight:700;padding:6px 12px;border-radius:8px;border:1px solid var(--accent);color:var(--accent);background:none;cursor:pointer}
.adl-btn.on{background:var(--accent);color:#fff}
.art-days{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:7px;font-size:11px;font-weight:800;vertical-align:middle}
.art-days.red{background:#fde8e8;color:#d92d20}
.art-days.warn{background:#fff1e0;color:#e07a00}
.art-days.amber{background:#fef7e0;color:#b88600}
.art-days.green{background:#e8f7ef;color:#1faa6b}
/* сводный дашборд закупа — матрица ВБ/Озон/Итого */
.adm-wrap{overflow-x:auto;margin-bottom:8px}
.adm{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:13px;box-shadow:var(--shadow)}
.adm thead th{background:var(--card2);color:var(--muted);font-size:11.5px;font-weight:700;padding:9px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.adm thead th:first-child{text-align:left}
.adm td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.adm tr:last-child td{border-bottom:none}
.adm .adm-l{text-align:left;color:var(--muted);font-weight:600}
.adm .adm-tot{color:var(--accent);font-weight:800}
.art-facts .fact.accent b{color:var(--accent)}
.adash-note{font-size:11px;color:var(--faint);margin-top:7px;line-height:1.4}
/* исполнитель + комментарии задачи */
.t-asgn{font-size:11px;font-weight:700;color:var(--accent);background:var(--accentsoft);border-radius:7px;padding:2px 7px;white-space:nowrap;flex:none}
.cmt{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:7px 26px 7px 10px;margin-bottom:6px;position:relative}
.cmt-h{font-size:11px;color:var(--faint);font-weight:600;margin-bottom:2px}
.cmt-b{font-size:13px;color:var(--text);line-height:1.4;word-break:break-word}
.cmt-del{position:absolute;top:6px;right:8px;opacity:.5}
/* сверка ФФ */
.ff-tbl td{padding:6px 8px}
.ff-tbl .ff-art{text-align:left;font-weight:600;max-width:150px;white-space:normal;font-size:12px}
.ff-in{width:62px;padding:5px 7px;border:1px solid var(--line2);border-radius:7px;background:var(--card2);color:var(--text);font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums}
.ff-r{color:var(--muted)}.ff-r.bad{color:#d92d20;font-weight:800}
.ff-d.neg{color:#d92d20;font-weight:800}
.ff-tbl tfoot td{border-top:2px solid var(--line2);font-weight:700}
/* CRM поставщиков */
.supc-list{display:flex;flex-direction:column;gap:8px}
.supc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
.supc:hover{border-color:var(--accent)}
.supc-top{display:flex;align-items:center;gap:8px}
.supc-nm{flex:1;font-weight:700;font-size:14px;color:var(--text)}
.supc-rate{font-size:12px;font-weight:700;color:#e0a000;white-space:nowrap}
.supc-meta{font-size:12px;color:var(--muted);margin-top:4px}
.sup-rax{display:flex;gap:5px;flex-wrap:wrap}
.sup-rax select{width:52px;padding:6px 4px}
/* контроль качества */
.qci-list{display:flex;flex-direction:column;gap:8px}
.qci{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
.qci:hover{border-color:var(--accent)}
.qci-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.qci-art{font-weight:700;font-size:14px;color:var(--text)}
.qci-st{font-size:11px;color:var(--muted);margin-left:auto}
.qci-desc{font-size:12.5px;color:var(--text);margin-top:5px;line-height:1.4}
.qci-meta{font-size:11px;color:var(--faint);margin-top:4px}
.qci-rep{font-size:12.5px;color:var(--muted);padding:6px 0;border-top:1px solid var(--line)}
.qci-rep:first-child{border-top:none}
.term-card{display:flex;flex-direction:column}
.dlg{display:flex;flex-direction:column;gap:10px;max-height:56vh;overflow-y:auto;padding:6px 2px 10px;margin:6px 0 4px}
.dmsg{max-width:88%;padding:9px 13px;border-radius:16px;box-shadow:var(--shadow)}
.dmsg .dmeta{font-size:11px;color:var(--faint);margin-bottom:3px;font-weight:600}
.dmsg .dtext{font-size:14.5px;line-height:1.46;color:var(--text);word-wrap:break-word;overflow-wrap:anywhere}
.dmsg.me{align-self:flex-end;background:var(--accentsoft);border:1px solid rgba(155,184,33,.18);border-bottom-right-radius:5px}
.dmsg.me .dmeta{color:var(--accent)}
.dmsg.bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:5px}
.term-actions{margin:4px 0}
.term-actions>summary{cursor:pointer;font-size:12.5px;color:var(--muted);padding:6px 2px;user-select:none;list-style:none}
.term-actions>summary::-webkit-details-marker{display:none}
.term-actions>summary:before{content:'▸ ';color:var(--faint)}
.term-actions[open]>summary:before{content:'▾ '}
.term-out{background:#07070a;border:1px solid #1e1e22;border-radius:12px;padding:12px 14px;margin:10px 0;
  font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#cdc8c0;
  white-space:pre-wrap;word-break:break-word;overflow-y:auto;max-height:62vh;min-height:340px}
/* сегмент-переключатель диалог/зеркало */
.term-seg{display:flex;gap:4px;background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:4px;margin:6px 0 8px}
.term-seg .tseg{flex:1;font-size:13px;font-weight:600;color:var(--muted);padding:8px 10px;border-radius:8px;border:none;background:none;cursor:pointer;transition:.15s}
.term-seg .tseg.on{background:var(--accent);color:#fff;box-shadow:0 3px 12px rgba(155,184,19,.3)}
/* Стратегический вектор — фокус команды, виден в окне «Агент» */
.vec-strip{margin:2px 0 12px;display:flex;flex-direction:column;gap:8px}
.vec-card{position:relative;background:var(--limesoft,#eef4c6);border:1px solid var(--line2);border-left:4px solid var(--accent);border-radius:14px;padding:11px 14px;box-shadow:var(--shadow)}
.vec-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.vec-badge{font-size:10.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--limed,#5f7510)}
.vec-num{margin-left:auto;font-size:11px;font-weight:800;color:var(--limed,#5f7510);opacity:.7}
.vec-title{font-size:14.5px;font-weight:800;color:var(--text);line-height:1.32}
.vec-why{font-size:12px;color:var(--muted);line-height:1.46;margin-top:5px}
.vec-foot{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--faint)}
.vec-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--limesoft,#eef4c6);flex:none}
/* Голос (▶) + картинки + нить команды (28.06) */
.tts-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;padding:0;font-size:9.5px;line-height:1;border:none;border-radius:50%;background:var(--accentsoft,#eef4c6);color:var(--limed,#5f7510);cursor:pointer;vertical-align:middle;transition:.15s}
.tts-btn:hover{background:var(--accent);color:#fff}
.tts-btn.on{background:var(--accent);color:#fff;animation:ttspulse 1s infinite}
@keyframes ttspulse{0%,100%{opacity:1}50%{opacity:.45}}
.dimg{display:block;max-width:100%;border-radius:12px;margin:6px 0;border:1px solid var(--line2)}
.term-clip{display:inline-flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;padding:0 4px;opacity:.55;transition:.15s}
.term-clip:hover{opacity:1}
.term-card.drag{outline:2px dashed var(--accent);outline-offset:4px}
.team{display:flex;flex-direction:column;gap:2px;max-height:64vh;overflow:auto;padding:2px}
.team-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;margin-bottom:4px;background:var(--limesoft,#eef4c6);border:1px solid var(--line2);border-radius:12px}
.team-vec{font-size:12.5px;font-weight:800;color:var(--text);flex:1;min-width:0}
.team-cnt{font-size:11px;color:var(--limed,#5f7510);font-weight:800;white-space:nowrap}
.team-clear{flex:none;background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:3px 8px;font-size:13px;cursor:pointer;line-height:1}
.team-clear:active{transform:scale(.94)}
.team-link{color:var(--limed,#5f7510);font-weight:700;cursor:pointer}
/* ростер команды — состав вчетвером, роли и живой статус */
.team-roster{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:2px 0 10px}
.tm-card{display:flex;align-items:center;gap:9px;padding:7px 9px;background:var(--card2);border:1px solid var(--line);border-radius:12px;min-width:0}
.tm-av{position:relative;flex:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;border:1.5px solid}
.tm-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--card2);background:var(--faint)}
.tm-dot.live{background:#22c55e;animation:scrpulse 1.6s infinite}
.tm-dot.idle{background:var(--faint)}
.tm-dot.blocked{background:#ef4444}
.tm-info{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tm-info b{font-size:12.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-role{font-size:10.5px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-meta{font-size:9.5px;color:var(--faint);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ── Пульс команды: кто над чем думает прямо сейчас ── */
.pulse-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:6px 4px 4px;margin:2px 0 12px;box-shadow:var(--shadow)}
.pulse-h{display:flex;align-items:center;justify-content:space-between;padding:6px 12px 8px;font-size:10.5px;font-weight:800;letter-spacing:.13em;color:var(--accent);text-transform:uppercase}
.pulse-upd{font-size:10px;font-weight:600;color:var(--faint);letter-spacing:.02em;text-transform:none}
.pl-row{display:flex;align-items:flex-start;gap:9px;padding:8px 12px;border-top:1px solid var(--line);border-left:2px solid transparent}
.pl-row.thinking{border-left-color:rgba(154,184,19,.4);background:rgba(154,184,19,.045)}
.pl-dot{flex:none;width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--faint)}
.pl-dot.thinking{background:var(--accent);animation:plpulse 1.8s ease-in-out infinite}
.pl-dot.blocked{background:#8a6f3e;animation:plblink 3s step-end infinite}
@keyframes plpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}
@keyframes plblink{0%,89%{opacity:1}90%,100%{opacity:.2}}
.pl-emoji{flex:none;font-size:17px;line-height:1;margin-top:1px}
.pl-mid{flex:1;min-width:0}
.pl-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pl-top b{font-size:13px;font-weight:800}
.pl-role{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pl-pill{margin-left:auto;font-size:10px;font-weight:700;border-radius:20px;padding:2px 9px;white-space:nowrap;background:rgba(184,178,154,.18);color:#7a7460}
.pl-pill.thinking{background:rgba(154,184,19,.14);color:var(--limed)}
.pl-pill.blocked{background:rgba(138,111,62,.15);color:#8a6f3e}
.pl-focus{font-size:12px;line-height:1.4;color:var(--text);opacity:.78;font-style:italic;margin-top:3px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pl-at{font-style:normal;font-size:10px;color:var(--faint);margin-left:7px;letter-spacing:.02em}
@media(max-width:480px){.pl-row{padding:9px 11px}.pl-focus{-webkit-line-clamp:2}.pl-top b{font-size:13px}}
/* Лента раундов — синтез-итоги команды (вектор v1: живая работа ботов видима Евгению) */
.rounds-feed{margin:2px 0 12px}
.rf-h{display:flex;align-items:baseline;gap:8px;padding:2px 4px 8px}
.rf-title{font-size:13px;font-weight:800;color:var(--text);margin:0}
.rf-sub{font-size:11px;color:var(--muted)}
.round-card{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:11px 13px;margin-bottom:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.round-card:hover{box-shadow:var(--shadow)}
.round-card--partial{border-left-color:var(--line2)}
.rc-top{display:flex;align-items:center;gap:8px}
.rc-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.round-card--partial .rc-dot{background:var(--line2)}
.rc-topic{flex:1;min-width:0;margin:0;font-size:13.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rc-time{flex:none;font-size:10.5px;color:var(--faint);white-space:nowrap}
.rc-parts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.bot-pill{font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--accentsoft);color:var(--limed,#5f7a00)}
.bot-pill--timeout{background:rgba(184,178,154,.18);color:#8f9382}
.rc-note{font-size:11px;color:var(--muted);margin-top:6px}
.rc-synth{display:none;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.round-card--open .rc-synth{display:block}
.round-card--open{cursor:default}
.rc-synth-l{margin:0 0 4px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.rc-synth-t{margin:0;font-size:12.5px;line-height:1.55;color:var(--text);opacity:.92;white-space:normal}
.team-round{display:flex;align-items:center;gap:8px;margin:11px 2px 5px;color:var(--faint);font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase}
.team-round:before,.team-round:after{content:"";flex:1;height:1px;background:var(--line)}
.tturn{display:flex;gap:9px;padding:7px 2px;align-items:flex-start}
.tt-av{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;border:1.5px solid}
.tt-body{flex:1;min-width:0}
.tt-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;margin-bottom:3px}
.tt-meta b{font-size:12.5px;font-weight:800}
.tt-kind{color:var(--muted);font-weight:600}
.tt-ts{color:var(--faint)}
.tt-text{font-size:13px;line-height:1.5;color:var(--text);background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:9px 12px;overflow-wrap:anywhere}
.tturn.boss .tt-text{background:var(--limesoft,#eef4c6);border-color:var(--line2)}
.tturn.arjuna .tt-text{background:var(--blu2soft,#e9f4fb);border-color:var(--blu2,#c4e2f5)}
/* итог-карточка: команда завершила раунд */
.team-done{margin:14px 2px 6px;padding:12px 14px;background:var(--limesoft,#eef4c6);border:1px solid var(--lime,#a3c93a);border-radius:14px}
.td-h{font-size:13.5px;font-weight:800;color:var(--limed,#5f7510);margin-bottom:7px}
.td-body{font-size:12.5px;line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.td-more{margin-top:6px;font-size:11px;color:var(--faint);font-weight:600}
.td-meta{font-size:12px;color:var(--muted);font-weight:600}
/* живое зеркало действий агента */
.scr{background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:4px 0 10px}
.scr-head{display:flex;align-items:center;gap:9px;padding-bottom:9px;margin-bottom:8px;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--text)}
.scr-now-dot{width:9px;height:9px;border-radius:50%;background:var(--faint);flex:none}
.scr-now-dot.live{background:#22c55e;animation:scrpulse 1.6s infinite}
@keyframes scrpulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.scr-now-txt{flex:1;line-height:1.35;word-break:break-word}
.scr-feed{display:flex;flex-direction:column;max-height:58vh;overflow-y:auto}
.scr-fi{display:flex;align-items:baseline;gap:9px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.scr-fi:first-child{border-top:none}
.scr-ic{flex:none;width:20px;text-align:center;font-size:14px}
.scr-ft{flex:none;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;width:40px;font-size:12px}
.scr-fs{color:var(--muted);line-height:1.4;word-break:break-word}
/* ── шапка детализации агента (клик по карточке в Пульсе → #scrBox показывает не boss, а конкретного агента) ── */
.scr-agent-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 9px;margin:0 0 10px;background:var(--card);border:1px solid var(--line);border-radius:11px}
.scr-ab-back{flex:none;font-size:12.5px;font-weight:700;color:var(--accent);background:var(--accentsoft);border:1px solid transparent;border-radius:9px;padding:7px 12px;min-height:32px;cursor:pointer;transition:.12s}
.scr-ab-back:hover{background:var(--accent);color:#fff}
.scr-ab-id{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.scr-ab-emoji{font-size:16px;flex:none}
.scr-ab-name{font-size:13.5px;font-weight:800;color:var(--text)}
.scr-ab-role{font-size:11.5px;color:var(--muted)}
.scr-ab-model{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accentsoft);border-radius:7px;padding:2px 8px}
.term-form{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--line2);border-radius:12px;padding:8px 12px}
.term-prompt{color:var(--accent);font:15px ui-monospace,monospace;font-weight:700}
.term-form input{flex:1;background:none;border:none;outline:none;color:var(--text);font:14.5px -apple-system,system-ui,sans-serif}
.term-form input::placeholder{color:var(--faint)}
.tdot{width:8px;height:8px;border-radius:50%;background:#555;display:inline-block;margin-right:7px;vertical-align:middle}
.tdot.live{background:#4ec98a;box-shadow:0 0 8px #4ec98a;animation:tpulse 1.4s infinite}
@keyframes tpulse{50%{opacity:.4}}

/* ===== v14: CRM Этап 1 ===== */
/* план продаж */
.forecast{padding:4px 0}
.fc-big{font-size:28px;font-weight:800;letter-spacing:-.5px}
.fc-big small{font-size:14px;font-weight:600;color:var(--muted)}
.fc-sub{font-size:13px;color:var(--muted);margin:6px 0 14px}
.pace-wrap{position:relative;height:9px;margin-bottom:8px}
.pace-mark{position:absolute;top:-3px;width:5px;height:15px;background:#fff;border-radius:2px;box-shadow:0 0 6px rgba(44,47,38,.6)}
.fc-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.pace-leg{color:var(--muted)}
.hrow.phead,.hrow.prow{grid-template-columns:2.4fr 1.2fr 1.2fr .7fr .7fr .5fr}
.hrow.phead{color:var(--faint);font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase}
.hrow.prow b{color:var(--text)}

/* товары */
.prod-card{margin-bottom:16px}
.ue-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.ue-box{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ue-h{font-size:11px;letter-spacing:.6px;color:var(--faint);font-weight:700;text-transform:uppercase}
.ue-v{font-size:22px;font-weight:700;margin:6px 0 2px;letter-spacing:-.4px}

/* процессы компании (9 доменов) */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
.dept-grid .card{margin:0}

/* новинки */
.launch-row{margin-bottom:14px;transition:.12s}
.launch-row:hover{border-color:var(--line2);transform:translateY(-1px)}
.lr-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lr-prog{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.pipe{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:6px 0 4px}
.pipe-step{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:62px}
.pipe-dot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--card2);border:1.5px solid var(--line2);color:var(--faint)}
.pipe-step.done .pipe-dot{background:var(--greenbg);border-color:var(--green);color:#7fdcab}
.pipe-step.cur .pipe-dot{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(155,184,33,.45)}
.pipe-name{font-size:10.5px;color:var(--faint);text-align:center;line-height:1.15}
.pipe-step.cur .pipe-name{color:var(--accent2);font-weight:700}
.pipe-step.done .pipe-name{color:var(--muted)}
.pipe-arr{flex:1;min-width:8px;height:2px;background:var(--line2);border-radius:2px;margin-top:-16px}
.gate-lock{background:var(--redbg)!important;color:var(--red)!important;border-color:rgba(255,107,107,.4)!important;cursor:not-allowed;opacity:.85}
@media(max-width:980px){.ue-row{grid-template-columns:1fr}.dept-grid{grid-template-columns:1fr}.hrow.phead,.hrow.prow{grid-template-columns:2fr 1fr 1fr .6fr .6fr .4fr;font-size:12px}}

/* ===== РЕЕСТР АРТИКУЛОВ ===== */
.art-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.art-card{background:var(--card);border:1px solid var(--line);border-radius:13px;margin-bottom:9px;overflow:hidden}
.art-card[open]{border-color:var(--line2)}
/* новинка: жёлтая рамка-подсветка в реестре */
.art-card.art-new{border-color:#e3c64d;box-shadow:inset 0 0 0 1px rgba(227,198,77,.35)}
.art-card.art-new[open]{border-color:#e3c64d}
.art-badge{font-size:9.5px;font-weight:800;letter-spacing:.6px;padding:2px 6px;border-radius:6px;text-transform:uppercase}
.art-badge.new{background:rgba(227,198,77,.18);color:#9a7b12;border:1px solid rgba(227,198,77,.5)}
.art-mini.in1c-ok{color:#76c98a}
.art-mini.in1c-no{color:#e2a23a}
.art-sz .cell-miss{color:#e2a23a}
/* единый toggle-переключатель — дизайн-стандарт форм (вместо «колхозного» чекбокса) */
.tgl{display:flex;align-items:center;gap:12px;cursor:pointer;margin-top:14px;user-select:none}
.tgl>input{position:absolute;opacity:0;width:0;height:0}
.tgl-sw{position:relative;width:44px;height:26px;border-radius:14px;background:var(--card2);border:1px solid var(--line);transition:background .18s,border-color .18s;flex:none}
.tgl-sw::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#8d8d88;transition:transform .18s,background .18s}
.tgl>input:checked+.tgl-sw{background:var(--accent2);border-color:var(--accent2)}
.tgl>input:checked+.tgl-sw::after{transform:translateX(18px);background:#fff}
.tgl>input:focus-visible+.tgl-sw{box-shadow:0 0 0 3px var(--accentsoft)}
.tgl-lbl{font-size:14px;color:var(--text);font-weight:600}
/* умный фильтр: иконка + всплывающая панель с галочками */
.filt-wrap{position:relative;display:inline-block}
.filt-btn{display:inline-flex;align-items:center;gap:7px}
.filt-btn svg{opacity:.85}
.filt-btn.on-f{background:var(--accentsoft);color:var(--accent2);border-color:rgba(155,184,33,.4)}
.filt-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:236px;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:8px;box-shadow:0 16px 40px rgba(0,0,0,.45);display:none}
.filt-pop.open{display:block}
.filt-h{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--faint);font-weight:700;padding:6px 10px 8px}
.filt-opt{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;cursor:pointer;font-size:14px;color:var(--text)}
.filt-opt:hover{background:var(--card2)}
.filt-opt input{width:18px;height:18px;accent-color:var(--accent2);flex:none;margin:0}
.filt-clear{width:100%;margin-top:6px;padding:9px;border-radius:10px;background:none;border:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.filt-clear:hover{color:var(--text);border-color:var(--line2)}
.art-sum{list-style:none;cursor:pointer;padding:12px 14px}
.art-sum::-webkit-details-marker{display:none}
.art-l{display:flex;align-items:center;gap:9px}
.art-name{font-size:15px;font-weight:700}
.art-r2{display:flex;gap:12px;margin-top:7px;flex-wrap:wrap}
.art-mini{font-size:11.5px;color:var(--muted)}.art-mini b{color:var(--text);font-weight:600}
.art-det{padding:4px 14px 14px;border-top:1px solid var(--line)}
.art-kv{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:3px 0;color:var(--muted)}
.art-kv span:last-child{color:var(--text);font-weight:500;text-align:right;max-width:62%}
.art-sz{width:100%;border-collapse:collapse;margin-top:9px;font-size:11px}
.art-sz th{color:var(--faint);font-weight:700;text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}
.art-sz td{padding:4px 6px;border-bottom:1px solid var(--line);color:var(--text)}
.art-sec{border:1px solid var(--line);border-radius:11px;margin-bottom:9px;overflow:hidden}
.art-sec>summary{list-style:none;cursor:pointer;padding:11px 14px;font-weight:700;font-size:13px;background:var(--card)}
.art-sec>summary::-webkit-details-marker{display:none}
.art-sec>summary::before{content:'▸ ';color:var(--muted)}
.art-sec[open]>summary::before{content:'▾ '}
.art-sec>*:not(summary){padding:0 14px}
.art-sec>.fld:first-of-type{margin-top:10px}  /* только прямой первый .fld секции; НЕ ячейки внутри .two (иначе левая колонка съезжала на 10px) */
.fv.sm{padding:8px 10px;font-size:13px}
.art-szrow{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.art-szrow .fv.sm{flex:1;min-width:0}
.art-szx{color:var(--red);font-size:14px;padding:0 6px;flex:none}

/* ===== РЕЕСТР АРТИКУЛОВ v2 (фикс вёрстки + редизайн) ===== */
/* фикс «поехавших» полей: равные колонки + поля выровнены по НИЗУ ячейки
   (подписи разной длины/в 1-2 строки больше не сдвигают инпуты по вертикали) */
/* margin:0 КРИТИЧНО: гасит .art-sec .fld:first-of-type{margin-top:10px}, который
   попадал на левую колонку .two и опускал её на 10px → подписи/инпуты были на разных уровнях */
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;align-items:stretch}
.two .fld{min-width:0;display:flex;flex-direction:column;margin:0}
.two .fld .fv{width:100%;box-sizing:border-box;margin-top:auto}
.two .fl{min-height:13px;line-height:1.25}
.fld .fv{width:100%;box-sizing:border-box}
@media(max-width:440px){.two{grid-template-columns:1fr}}
/* карточка-список: 2 строки, иерархия */
.art-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.art-top>.art-l{flex:1;min-width:0;flex-wrap:wrap}
.art-plat{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--card2);padding:2px 8px;border-radius:7px}
.art-stock{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.art-stock.art-zero{color:var(--red)}
.art-stock.nodata{font-size:11px;font-weight:600;color:var(--faint);background:var(--card2);padding:3px 9px;border-radius:20px}
/* фото модели */
.art-thumb{width:42px;height:42px;border-radius:10px;object-fit:cover;flex:none;border:1px solid var(--line);background:var(--card2)}
.art-thumb.empty{background:repeating-linear-gradient(135deg,var(--card2),var(--card2) 6px,var(--line) 6px,var(--line) 12px)}
.art-photo-edit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.art-photo-prev{width:96px;height:96px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:var(--card2)}
.art-photo-prev.empty{display:inline-block;background:repeating-linear-gradient(135deg,var(--card2),var(--card2) 8px,var(--line) 8px,var(--line) 16px)}
.apx-btns{display:flex;gap:8px;flex-wrap:wrap}
.art-thumb{cursor:zoom-in}.art-thumb.empty{cursor:default}
.art-wh b{color:var(--accent)}
/* лайтбокс фото */
.lightbox{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;background:rgba(15,18,40,.85);padding:24px;cursor:zoom-out}
.lightbox.on{display:flex}
.lightbox img{max-width:94%;max-height:94%;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5);object-fit:contain}
.lightbox .lb-x{position:absolute;top:18px;right:22px;color:#fff;font-size:24px;opacity:.8}
.ord-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* ═══ ВОЛНЫ ОТПРАВОК (Заказ Китай, zkw-): трёхдольная полоса долей + блок «Отправки» ═══ */
.zkw-bar-wrap{padding:2px 2px 10px}
.zkw-bar-wrap.with-lbl{padding:2px 0 10px;margin-top:2px}
.zkw-bar-track{display:flex;height:8px;border-radius:5px;overflow:hidden;gap:2px;background:var(--card2)}
.zkw-seg{border-radius:3px;transition:flex .6s ease}
.zkw-seg-prod{background:#c7ccbb}          /* производство — тёплый серо-салат */
.zkw-seg-transit{background:#3b82f6}       /* в пути — голубой (сигнальный цвет спеки) */
.zkw-seg-recv{background:var(--accent)}    /* принято — салат-акцент */
.zkw-bar-labels{display:flex;gap:16px;margin-top:7px;font-size:11.5px;flex-wrap:wrap}
.zkw-lbl-prod{color:var(--muted)}
.zkw-lbl-transit{color:#2563eb}
.zkw-lbl-recv{color:var(--limed)}
.zkw-lbl-val{font-weight:800}
.pill.pill-transit{background:var(--blu2soft);color:var(--blu2d)}
@media(max-width:600px){.zkw-bar-labels{gap:10px}}

/* ═══ ЗАКАЗ КИТАЙ · ШАПКА РАЗДЕЛА (zkv-, Кодер-2): статус-KPI + лента прибытий + сегмент-фильтры + бейджи ═══ */
/* — СТАТУС-KPI строка (4 карточки по статусам заказов) — */
/* #ordCards имеет класс .kpis (grid 4×1fr) → наш ряд занимает всю ширину (grid-column:1/-1) и сам становится сеткой 4×1fr */
.zkv-kpi-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;width:100%}
.zkv-kpi{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px 14px;box-shadow:var(--shadow);overflow:hidden}
.zkv-kpi-val{font-size:30px;font-weight:800;line-height:1;letter-spacing:-.5px;color:var(--text);font-variant-numeric:tabular-nums}
.zkv-kpi-lbl{font-size:12px;color:var(--muted);margin-top:6px;font-weight:600;display:flex;align-items:center;gap:6px}
.zkv-kpi-dot{width:9px;height:9px;border-radius:50%;flex:none}
.zkv-kpi-dot.dot-conf{background:var(--peachd)}
.zkv-kpi-dot.dot-prod{background:var(--blu2d)}
.zkv-kpi-dot.dot-transit{background:var(--lavd)}
.zkv-kpi-dot.dot-done{background:var(--accent)}
/* тонкая цветная полоска сверху карточки (акцент по статусу) */
.zkv-kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--line2)}
.zkv-kpi:nth-child(1)::before{background:var(--peach)}
.zkv-kpi:nth-child(2)::before{background:var(--blu2)}
.zkv-kpi:nth-child(3)::before{background:var(--lav)}
.zkv-kpi:nth-child(4)::before{background:var(--accent)}

/* — «Осталось довезти» строка в денежном блоке — */
.zkv-left-line{margin:12px 0 0;padding:11px 15px;background:var(--limesoft);border:1px solid #dbe7a8;border-radius:12px;font-size:14px;color:var(--limed);font-weight:600}
.zkv-left-line b{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.zkv-left-sub{color:var(--muted);font-weight:500;font-size:12.5px}

/* — ЛЕНТА «БЛИЖАЙШИЕ ПРИБЫТИЯ» (чипы = волны) — */
.zkv-arrivals{margin:16px 0 0}
.zkv-arr-lbl{font-size:11.5px;color:var(--muted);font-weight:700;letter-spacing:.3px;margin-bottom:9px}
.zkv-arr-row{display:flex;gap:9px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}
.zkv-arr-row::-webkit-scrollbar{height:5px}
.zkv-arr-row::-webkit-scrollbar-thumb{background:var(--line2);border-radius:3px}
.zkv-chip{flex:0 0 auto;min-width:158px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:10px 13px;box-shadow:var(--shadow);transition:.15s}
.zkv-chip:hover{box-shadow:var(--shadow2);transform:translateY(-1px)}
.zkv-chip-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.zkv-chip-date{font-weight:800;font-size:14.5px;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}
.zkv-chip-sets{font-size:12px;color:var(--muted);font-weight:700;white-space:nowrap}
.zkv-chip-who{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zkv-chip-wave{font-size:11px;color:var(--limed);font-weight:700;margin-top:2px}
.zkv-chip.next{background:var(--limesoft);border-color:var(--accent)}
.zkv-chip.next .zkv-chip-date{color:var(--limed)}
.zkv-chip.past{opacity:.72;background:var(--greenbg);border-color:transparent}
.zkv-chip.past .zkv-chip-date{color:var(--green)}
.zkv-chip.past .zkv-chip-wave{color:var(--green)}
.zkv-chip-more{min-width:auto;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;color:var(--limed);background:var(--card2);border:1px dashed var(--accent);cursor:pointer;white-space:nowrap}
.zkv-chip-more:hover{background:var(--accentsoft);transform:none}
.zkv-arr-empty{font-size:13px;color:var(--faint);padding:10px 0;font-style:italic}

/* — СЕГМЕНТ-ФИЛЬТР ВИДА (Все виды / Трусы / Бюсты) — */
.zkv-segbar{display:inline-flex;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:4px;gap:2px;margin:0 0 14px}
.zkv-seg{font-size:13px;font-weight:600;padding:7px 15px;border-radius:9px;color:var(--muted);cursor:pointer;transition:.14s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.zkv-seg:hover{color:var(--text)}
.zkv-seg.on{background:#fff;color:var(--limed);box-shadow:0 2px 8px rgba(70,75,55,.10)}
.zkv-seg-n{font-size:11px;font-weight:800;color:var(--faint);background:var(--card);border-radius:20px;padding:1px 7px}
.zkv-seg.on .zkv-seg-n{color:var(--limed);background:var(--limesoft)}

/* — БЕЙДЖИ карточки заказа [WB|OZON] + [ТРУСЫ|БЮСТЫ] (цвета мокапа, палитра салат-темы) — */
.zkv-badge{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:7px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;vertical-align:middle}
.zkv-badge.badge-wb{background:var(--blu2soft);color:var(--blu2d)}
.zkv-badge.badge-ozon{background:var(--peachsoft);color:var(--peachd)}
.zkv-badge.badge-trusy{background:var(--greenbg);color:var(--green)}
.zkv-badge.badge-busty{background:var(--lavsoft);color:var(--lavd)}

/* ══ ДОРАБОТКА 3/4/7 (Форж) — «Общий заказ» рабочий экран + окно Приёмки ══ */
.zkt-card{padding:16px 16px 14px}
.zkt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.zkt-abtn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--text);background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:9px 16px;cursor:pointer;transition:.14s}
.zkt-abtn:hover{border-color:var(--accent);color:var(--limed)}
.zkt-abtn.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 5px 16px rgba(155,184,33,.32)}
.zkt-abtn.primary:hover{filter:brightness(1.06);color:#fff}
.zkt-table th,.zkt-table td{white-space:nowrap}
.zkt-term-fc{color:var(--muted);font-style:italic}
.zkt-more{display:block;width:100%;text-align:center;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--limed);background:var(--card2);border:1px dashed var(--accent);border-radius:10px;padding:9px;cursor:pointer;transition:.14s}
.zkt-more:hover{background:var(--accentsoft)}
/* окно Приёмки (zkr-) */
.zkr-list{max-height:52vh;overflow-y:auto;margin-top:4px;border-top:1px solid var(--line)}
.zkr-row{padding:12px 2px;border-bottom:1px solid var(--line)}
.zkr-row-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.zkr-row-art{font-weight:800;font-size:13.5px;color:var(--text)}
.zkr-row-ordered{font-size:11.5px;color:var(--muted)}
.zkr-row-grid{display:grid;grid-template-columns:1fr auto 1fr 1fr;gap:10px;align-items:end}
.zkr-f{display:flex;flex-direction:column;gap:5px;font-size:10.5px;color:var(--faint);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.zkr-f .fv.sm{padding:8px 10px;font-size:14px;font-weight:700;color:var(--text)}
.zkr-formula{align-self:center;justify-self:center;font-size:11px;font-weight:700;color:var(--limed);background:var(--limesoft,var(--accentsoft));border-radius:8px;padding:6px 10px;white-space:nowrap;margin-bottom:2px}
@media(max-width:640px){.zkr-row-grid{grid-template-columns:1fr 1fr}.zkr-formula{grid-column:1/-1;justify-self:start}}

/* — МОБИЛА ≤560px: KPI 2×2, лента скролл, фильтры лентой — */
@media(max-width:560px){
  .zkv-kpi-row{grid-template-columns:repeat(2,1fr);gap:10px}
  .zkv-kpi{padding:13px 14px 11px;border-radius:15px}
  .zkv-kpi-val{font-size:25px}
  .zkv-kpi-lbl{font-size:11px}
  .zkv-arr-row{margin-right:-14px;padding-right:14px}
  .zkv-chip{min-width:150px}
  .zkv-segbar{display:flex;overflow-x:auto;scrollbar-width:none}
  .zkv-segbar::-webkit-scrollbar{display:none}
  .zkv-seg{flex:1 0 auto;justify-content:center}
  .zkv-left-line{font-size:13px}
}
.pdf-ck{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text);padding:7px 0;cursor:pointer}
.pdf-ck input{accent-color:var(--accent);width:16px;height:16px}
/* ВБ/Озон распределение + кольцо получено в деньги-дашборде */
.split-bar{display:flex;height:8px;border-radius:5px;overflow:hidden;margin-top:8px;background:var(--card2)}
.split-bar i{display:block;height:100%}
.split-bar .s-wb{background:var(--accent)}.split-bar .s-oz{background:#23c197}
.split-leg{display:flex;gap:12px;margin-top:7px;font-size:11px;color:var(--muted);font-weight:600}
.split-leg b{color:var(--text)}
.split-leg .ld{display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:5px;vertical-align:middle}
.ring{--p:0;width:48px;height:48px;border-radius:50%;flex:none;background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--line2) 0);display:flex;align-items:center;justify-content:center}
.ring::after{content:attr(data-p)"%";width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--text)}
.kpi-card.filled .ring::after{background:var(--green);color:#fff}
.art-colors{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}
/* факты-сетка в раскрытой карточке */
.art-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px;margin:6px 0 12px}
.art-facts .fact i{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--faint);font-weight:700;font-style:normal}
.art-facts .fact b{font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:560px){.art-facts{grid-template-columns:repeat(2,1fr)}}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.art-sz td,.art-sz th{font-variant-numeric:tabular-nums}
/* редактор размеров: сетка с подписями + горизонтальный скролл */
.szed-scroll{overflow-x:auto;margin:0 -22px;padding:0 22px}
.szed-head,.szed-row{display:grid;grid-template-columns:64px 128px 128px 120px 128px 128px 62px 62px 62px 64px 26px;gap:8px;align-items:center;min-width:max-content}
.szed-head{padding:2px 0 6px}
.szed-head span{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--faint);font-weight:700}
.szed-row{margin-bottom:6px}
.szed-row .fv.sm{width:100%;padding:8px 10px;font-size:12.5px}
.art-szx{color:var(--red);font-size:14px;flex:none}
/* модалка артикула: липкие шапка/футер, прокрутка тела */
#artModal .sheet{padding:0;display:flex;flex-direction:column;overflow:hidden}
#artModal .sh-head{position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--line);padding:18px 22px;z-index:2;margin:0}
#artModal #artForm{flex:1;overflow-y:auto;padding:16px 22px}
#artModal .sh-foot{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:14px 22px;margin:0;display:flex;justify-content:space-between;gap:12px}

/* полировка: компактные поля в окне артикула */
#artForm .fv{font-size:13.5px;padding:10px 12px}
#artForm .fl{margin-bottom:5px}
#artForm .fld{margin-bottom:12px}

.pipe-step{cursor:pointer}
.pipe-step:hover .pipe-name{color:var(--accent)}

.art-link{color:var(--accent);cursor:pointer;border-bottom:1px dashed rgba(155,184,33,.45)}
.art-link:hover{border-bottom-style:solid}

.fchip-x{font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:9px;background:var(--accentsoft);color:var(--accent2);border:1px solid rgba(155,184,33,.3);white-space:nowrap}
.fchip-x:hover{background:rgba(155,184,33,.18)}

/* эмодзи-иконка задачи */
.title-row{display:flex;align-items:center;gap:12px;position:relative;margin-bottom:18px}
.title-row .t-title{flex:1;width:auto;margin-bottom:0;padding-bottom:8px}
.t-emoji{margin-right:7px;font-size:.95em}

/* ── V2: сверка ФФ — регламент, импорт, контроль наборов ── */
.ff-head{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.ff-reg{margin:0 0 14px}
.ff-reg-ta{width:100%;box-sizing:border-box;border:1px solid var(--line,#ece7df);border-radius:12px;padding:12px 14px;font:inherit;font-size:13px;line-height:1.5;resize:vertical;background:var(--bg,#faf7f2);color:var(--text);white-space:pre-wrap}
.ff-reg-ta:focus{outline:none;border-color:var(--accent,#4b57f5);background:#fff}
.ff-imp{margin:0 0 14px;background:var(--card,#fff);border:1px solid var(--line,#ece7df);border-radius:12px;padding:12px 14px}
.ff-imp-lab{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}
.ff-imp textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#ece7df);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;resize:vertical;margin-bottom:8px}
.ff-sec{font-weight:800;font-size:15px;color:var(--text);margin:8px 0 8px}
.ff-sec-sub{font-weight:500;font-size:12px;color:var(--muted)}
.ffb-in{width:100%;box-sizing:border-box;border:1px solid var(--line,#ece7df);border-radius:8px;padding:5px 7px;font:inherit;font-size:13px;background:var(--bg,#faf7f2)}
.ffb-in:focus{outline:none;border-color:var(--accent,#4b57f5);background:#fff}
.ff-tbl td.bad{color:var(--red,#d9483b);font-weight:800}

/* ── V3: CRM поставщиков — KPI Ксении + воронка-доска ── */
/* ============================================================================
   KPI — ЕДИНЫЙ премиальный визуал плашки (kpiPlate). Всё на var(--*) → в активной
   теме (warm-olive + lime, :root @1185) автоматически салатовый акцент, без диссонанса.
   Переиспользует .ring (conic + % внутри) и .prog. Уровни: done/green/warn/red.
   ============================================================================ */
.kplate-wrap{margin:2px 0 16px}
.kplate-cap{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  font-size:12px;letter-spacing:1.2px;text-transform:uppercase;font-weight:800;
  color:var(--limed);margin-bottom:11px}   /* было --accent2 #cfe24a на --bg #e6e8da = 1.16:1 (замер) — шапку не видно; --limed #5f7510 */
.kplate-tip{font-size:11px;letter-spacing:.2px;text-transform:none;color:var(--faint);font-weight:600}
/* flex-wrap, НЕ grid auto-fill: при 2 карточках auto-fill оставлял ~900px пустых треков
   (замер 1440: 2×264px в контейнере на всю ширину). flex:1 1 260px — карточки делят строку
   поровну и растут; max-width:420px — одна карточка НЕ растягивается на всю ширину. */
.kplate-row{display:flex;flex-wrap:wrap;gap:12px}
.kplate{position:relative;display:flex;align-items:center;gap:15px;flex:1 1 260px;max-width:420px;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:16px;padding:15px 17px 15px 16px;box-shadow:var(--shadow);
  transition:transform .12s,box-shadow .12s}
/* Узкий экран — строго ПОСЛЕ базового .kplate: @media не добавляет специфичности, при равной
   специфичности (0,1,0) выигрывает правило НИЖЕ по файлу. Стояло выше — и max-width:none был
   мёртвым (замер @480: computed max-width оставался 420px в ряду 456px → 36px пустоты справа). */
@media(max-width:560px){.kplate{flex:1 1 100%;max-width:none}}
.kplate:hover{transform:translateY(-1px);box-shadow:var(--shadow2)}
.kplate-ring{width:54px;height:54px;flex:none}
.kplate-body{flex:1;min-width:0}
/* Заголовок карточки ПЕРЕНОСИТСЯ (Notion-стандарт, якорь — .kpi-lbl@58
   и .kplate-sub в этой же карточке). Было nowrap+ellipsis — резало «Поставщики в переговорах+»
   (177px текста в 157px поля) и «Подошедшие фабрики · бюсты» (192→157). Убран и display:flex —
   он обслуживал .kplate-who, а 6-й аргумент whoName не передаёт ни один вызов card() (app.js
   6537/6543), т.е. мёртвый CSS. min-height:2.6em = ровно 2 строки → карточки в ряду не прыгают. */
.kplate-h{font-size:12.5px;font-weight:700;color:var(--text);line-height:1.3;
  min-height:2.6em;overflow-wrap:anywhere}
.kplate-who{font-size:11px;font-weight:700;color:var(--accent2);background:var(--accentsoft);
  border-radius:20px;padding:1px 9px;margin-left:auto;flex:none;white-space:nowrap}
.kplate-v{display:flex;align-items:baseline;gap:6px;margin:6px 0 9px;font-variant-numeric:tabular-nums}
.kplate-v b{font-size:24px;font-weight:800;letter-spacing:-.6px;color:var(--text)}
.kplate-tg{font-size:13px;font-weight:700;color:var(--muted)}
.kplate .prog{margin-bottom:0}
.kplate-sub{font-size:11px;font-weight:600;color:var(--faint);margin-top:8px}
.kplate-done{color:var(--green);font-weight:800}
.kplate-green{border-left-color:var(--green)}      .kplate-green .kplate-ring{--accent:var(--green)}
.kplate-warn{border-left-color:#d99a00}            .kplate-warn .kplate-ring{--accent:#d99a00}
.kplate-red{border-left-color:var(--red)}          .kplate-red  .kplate-ring{--accent:var(--red)}
.kplate.kplate-done{border-left-color:var(--green);background:linear-gradient(135deg,var(--greenbg),#fff 62%)}
.kplate.kplate-done .kplate-ring{--accent:var(--green)}
.kplate-empty{font-size:13px;color:var(--muted);background:var(--card2);border:1px dashed var(--line);
  border-radius:14px;padding:14px 16px;line-height:1.5}
.supb-wrap{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
.supb-col{flex:0 0 200px;background:var(--bg,#faf7f2);border:1px solid var(--line,#ece7df);border-radius:12px;padding:8px}
.supb-h{font-size:12.5px;font-weight:800;color:var(--text);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.supb-n{background:var(--accent,#4b57f5);color:#fff;font-size:11px;border-radius:20px;padding:1px 8px}
.supb-card{background:var(--card,#fff);border:1px solid var(--line,#ece7df);border-radius:10px;padding:9px 10px;margin-bottom:7px;cursor:pointer}
.supb-card:active{transform:scale(.98)}
.supb-nm{font-weight:700;font-size:13px}
.supb-mt{font-size:11.5px;color:var(--muted);margin-top:2px}
.supb-eta{font-size:11px;color:var(--accent,#4b57f5);margin-top:3px}
.supb-empty{font-size:12px;color:var(--muted);text-align:center;padding:10px 0}
.qc-bad{color:var(--red,#d9483b)}
/* брак из сверки ФФ в заказе */
.ord-def{font-size:11px;font-weight:700;color:var(--accent,#4b57f5);background:var(--accentsoft);border-radius:6px;padding:1px 6px;white-space:nowrap}
.ord-def.hi{color:#fff;background:var(--red,#d9483b)}

/* ============================================================
   MOCKUP10 DESIGN SYSTEM — warm grey-olive + lime (approved)
   Overrides at end of file win by cascade. JS untouched.
   ============================================================ */
:root{
  --bg:#e6e8da; --text:#2c2f26; --muted:#8f9382; --faint:#b6b9a8;
  --card:#ffffff; --card2:#f3f4ee;
  --line:#e6e8db; --line2:#d9dccb;
  --accent:#9ab813; --accent2:#cfe24a; --accentsoft:#eef4c6;
  --lime:#cfe24a; --limed:#5f7510; --limesoft:#eef4c6;
  --green:#6e8a2f; --greenbg:#e9f1cf;
  --blue:#4a86ad; --bluebg:#e6f1f9;
  --violet:#8868bf; --violetbg:#efe9f8;
  --red:#cf5a86; --redbg:#fbe6f0;
  --pink:#f6c9ec; --pinksoft:#fcecf7; --pinkd:#b85a98;
  --blu2:#c4e2f5; --blu2soft:#e9f4fb; --blu2d:#4a86ad;
  --peach:#ffd6b0; --peachsoft:#fff0e1; --peachd:#c47a3c;
  --lav:#e1d6f3; --lavsoft:#f3edfb; --lavd:#8868bf;
  /* --orange/--orangebg: не были определены нигде (баг), хотя уже использовались в .ig-* —
     раздел Инфографика 08.07 первым реально включает статус «в работе»/приоритет «средний».
     Алиас на существующий тёплый тон палитры (peachd/peachsoft), новых hex не вводим. */
  --orange:var(--peachd); --orangebg:var(--peachsoft);
  --radius:20px;
  --shadow:0 6px 18px rgba(70,75,55,.05);
  --shadow2:0 16px 40px rgba(70,75,55,.12);

  /* ---- В3 Календарь-редизайн (09.07, Coder-CSS, синтез утверждён) ----
     Новые токены — читают ТОЛЬКО календарные правила (.mcell, .drag-task, .wl-card, .mpop и т.п. ниже по файлу).
     Реестр и остальной app их не используют; --accentsoft/--green/--red/--radius НЕ тронуты. */
  --accent-rgb:154,184,19;      /* = #9ab813, единый источник alpha вместо руками вписанных rgba(154,184,19,..)/rgba(155,184,33,..) */
  --cal-bg:#F7F6EF;             /* светлый тёплый фон календаря — светлее общего --bg, чтобы олива-акцент выступала */
  --green-ok:#1FAA6B;           /* успех в календаре, отделён от бренд-оливы */
  --red-over:#D64545;           /* просрочка в календаре, отделена от розового --red */
  --r-sm:8px; --r-md:12px; --r-lg:16px;   /* 3 токена радиуса для календарных карточек/попперов */
}
body{background:var(--bg);color:var(--text)}
/* warm ambient glow instead of indigo */
body::before{background:radial-gradient(1100px 600px at 92% -10%,rgba(207,226,74,.10),transparent 60%),radial-gradient(800px 560px at 0% 0%,rgba(180,185,160,.08),transparent 55%)!important}

/* ---------- NAVIGATION: top-menu (desktop) ---------- */
.mb .rail{display:none}
.mb-top{display:flex;align-items:center;gap:16px;margin:0 0 20px;flex-wrap:wrap}
.mb-logo{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:800;color:var(--text)}
.mb-logo .m{width:30px;height:30px;border-radius:9px;background:var(--lime);display:flex;align-items:center;justify-content:center;color:#3a4408;font-weight:800}
.mb-nav{display:flex;gap:6px;margin:0 auto;flex-wrap:wrap}
.mb-nav a{height:38px;padding:0 14px;border-radius:12px;background:#eceee4;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:.14s;white-space:nowrap}
.mb-nav a:hover{color:var(--text);background:#e3e6d8}
.mb-nav a.on{background:var(--lime);color:#3a4408}
.mb-tr{display:flex;align-items:center;gap:9px}
.mb-tr .ic{width:38px;height:38px;border-radius:50%;background:#eceee4;display:flex;align-items:center;justify-content:center}
.mb-tr .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--peach),var(--pink))}
/* header strip (greeting/search/clocks) stays, restyled soft */
.mb .top{margin-bottom:18px}
.mb .logo{background:linear-gradient(150deg,var(--lime),#9ab813);box-shadow:0 6px 20px rgba(155,184,33,.32);color:#3a4408}
.search{background:var(--card);border:1px solid var(--line);border-radius:13px}

/* ---------- CARDS ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.ch .lab{color:var(--muted);font-weight:800;letter-spacing:.3px;text-transform:none;font-size:13.5px}
.ch .meta{color:var(--faint)}
.big{color:var(--text)}

/* ---------- KPI cards (pastel + wave pulse) ---------- */
.kpis{gap:14px}
.kpi-card{overflow:hidden}
.kpi-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;opacity:.55;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'><path d='M0,28 Q30,14 60,24 T120,20 T200,12 L200,40 L0,40Z' fill='%23c4d94a'/></svg>");
  background-size:100% 100%;background-repeat:no-repeat}
.kpis>.kpi-card:nth-child(4n+1){background:var(--limesoft)}
.kpis>.kpi-card:nth-child(4n+2){background:var(--pinksoft)}
.kpis>.kpi-card:nth-child(4n+2)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'><path d='M0,24 Q30,28 60,20 T120,26 T200,22 L200,40 L0,40Z' fill='%23eab4d8'/></svg>")}
.kpis>.kpi-card:nth-child(4n+3){background:var(--blu2soft)}
.kpis>.kpi-card:nth-child(4n+3)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'><path d='M0,24 Q40,16 80,22 T160,18 T200,14 L200,40 L0,40Z' fill='%23a8d0ec'/></svg>")}
.kpis>.kpi-card:nth-child(4n+4){background:var(--peachsoft)}
.kpis>.kpi-card:nth-child(4n+4)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'><path d='M0,22 Q40,18 80,20 T160,16 T200,18 L200,40 L0,40Z' fill='%23f0c79a'/></svg>")}
.kpi-card>*{position:relative;z-index:1}
.kpi-card.filled{background:linear-gradient(150deg,#cfe24a,#b6cf2e)!important;color:#2c3a06;box-shadow:0 14px 30px rgba(155,184,33,.30)}
.kpi-card.filled .kpi-lbl,.kpi-card.filled .kpi-num,.kpi-card.filled .kpi-unit{color:#2c3a06}
.kpi-card.filled::after{opacity:.4;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'><path d='M0,28 Q30,14 60,24 T120,20 T200,12 L200,40 L0,40Z' fill='%23ffffff'/></svg>")}
.kpi-num{color:var(--text)}
.kpi-arrow{background:rgba(255,255,255,.7);color:var(--text)}
.kpi-arrow:hover{background:#fff}
.kpi-delta.up{background:var(--greenbg);color:var(--green)}
.kpi-delta.down{background:var(--redbg);color:var(--red)}
.mc{border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}

/* ---------- tasks / list rows ---------- */
.box{border-radius:7px;border:2px solid var(--line2)}
.box.done{background:var(--lime);border-color:var(--lime);color:#3a4408}
.t.pri-high{border-left:3px solid var(--red)}
.t.pri-urg{border-left:3px solid var(--peach)}
.tag{border-radius:20px;background:#eceee4;color:var(--muted)}
.tag.w{background:var(--blu2soft);color:var(--blu2d)}
.tag.p{background:var(--lavsoft);color:var(--lavd)}

/* ---------- chips / filters / pills ---------- */
.fchip{border-radius:20px;border:1px solid var(--line);color:var(--muted);background:#f3f4ee}
.fchip.on{background:var(--text);border-color:var(--text);color:#fff}
.pill{border-radius:20px}
.pill.ok,.pill.pill-green{background:var(--greenbg);color:var(--green)}
.pill.warn,.pill.pill-amber{background:var(--peachsoft);color:var(--peachd)}
.pill.bad,.pill.pill-red{background:var(--redbg);color:var(--red)}
.pill.due,.pill.pill-blue{background:var(--blu2soft);color:var(--blu2d)}
.pill.pill-indigo{background:var(--limesoft);color:var(--limed)}
.pill.pill-gray{background:#eceee4;color:var(--muted)}

/* ---------- progress ---------- */
.prog i,.bar i{background:linear-gradient(90deg,var(--lime),var(--peach))}

/* ---------- vtabs (view switch: day/week/month/list) ---------- */
.vtabs{background:#eceee4;border:1px solid var(--line);border-radius:13px}
.vtabs b.on{background:#fff;color:var(--limed);box-shadow:0 2px 8px rgba(70,75,55,.10)}

/* ---------- calendar / week ---------- */
.cd.today .num{background:var(--lime);color:#3a4408;box-shadow:0 5px 14px rgba(155,184,33,.4)}

/* ---------- buttons ---------- */
.save-btn{background:var(--lime);color:#3a4408;box-shadow:0 5px 16px rgba(155,184,33,.32);font-weight:800}
.del-btn{color:var(--red);border:1px solid var(--redbg)}
.rbtn{background:var(--limesoft);color:var(--limed);border:1px solid #dbe7a8}
.rbtn.s{background:var(--card2);color:var(--text);border-color:var(--line)}
.tbtn{border:1px solid var(--line);color:var(--muted)}
.tbtn:hover{background:var(--card2);color:var(--text)}
.icon-btn.mic{background:var(--lime);color:#3a4408;box-shadow:0 5px 16px rgba(155,184,33,.4)}

/* ---------- modal / sheet ---------- */
.sheet{background:var(--card);border-left:1px solid var(--line2);border-radius:24px 0 0 24px}
.fv{background:var(--card2);border:1px solid var(--line);border-radius:11px}
.fv:focus{border-color:var(--accent);background:#fff}
.fl{color:var(--faint)}

/* ---------- projects ---------- */

/* ---------- tables ---------- */
.adm{border:1px solid var(--line);border-radius:14px}
.adm thead th{background:var(--card2);color:var(--muted)}
.adm .adm-tot{color:var(--limed)}

/* ---------- chat (alamu/agent) ---------- */
.msg.me{background:var(--lime);color:#2c3a06}
.q{background:var(--card2);border:1px solid var(--line)}

/* ---------- demo banner ---------- */
.demo-banner{background:var(--limesoft);border:1px solid #dbe7a8;color:var(--limed);border-radius:14px}

/* ---------- mobile: hide top-menu, keep tabbar ---------- */
@media(max-width:980px){
  .mb-top{display:none}
  .tabbar{background:rgba(255,255,255,.96);border-top:1px solid var(--line)}
  .tb.on{color:var(--limed)}
}

/* ============================================================
   MOCKUP10 — FORMS, CONTROLS & SCREENS polish (round 2, 26.06)
   CSS-only. app.js & index.html untouched (functional guarantee).
   Goal: every field / control / checkbox / chip / login screen
   speaks the SAME warm grey-olive + lime language. No native colхоз.
   ============================================================ */

/* ---------- field labels: crisper (were washed-out --faint) ---------- */
.fl{color:var(--muted);font-weight:700;letter-spacing:.6px}

/* ---------- fields: warmer, rounder, soft lime focus-glow ---------- */
.fv{border-radius:13px;border:1px solid var(--line2);transition:border-color .15s,box-shadow .15s,background .15s}
.fv:hover{border-color:#cdd1bd}
.fv:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accentsoft);outline:none}
/* custom select caret on theme (selects only — date/time keep native pickers) */
select.fv{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%238f9382' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}

/* ---------- duration chips: pastel pills, lime active ---------- */

/* ---------- TOGGLE SWITCH for boolean checkboxes (all-day, access) ---------- */
.acc-vk{gap:11px}
.allday-row input[type=checkbox],
.acc-vk input[type=checkbox]{appearance:none;-webkit-appearance:none;margin:0;flex:none;cursor:pointer;
  width:42px;height:24px;border-radius:13px;background:var(--card2);border:1px solid var(--line);
  position:relative;transition:background .18s,border-color .18s}
.allday-row input[type=checkbox]::before,
.acc-vk input[type=checkbox]::before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;
  border-radius:50%;background:#9a9d8e;box-shadow:0 1px 2px rgba(0,0,0,.18);transition:transform .18s,background .18s}
.allday-row input[type=checkbox]:checked,
.acc-vk input[type=checkbox]:checked{background:var(--accent2);border-color:var(--accent2)}
.allday-row input[type=checkbox]:checked::before,
.acc-vk input[type=checkbox]:checked::before{transform:translateX(18px);background:#fff}

/* ---------- CUSTOM CHECKBOX for multi-select (filters, pdf cols, checklist) ---------- */
.filt-opt input[type=checkbox],
.pdf-ck input[type=checkbox]{appearance:none;-webkit-appearance:none;margin:0;flex:none;cursor:pointer;
  width:20px;height:20px;border-radius:6px;background:var(--card);border:2px solid var(--line2);
  position:relative;transition:.15s}
.filt-opt input[type=checkbox]:hover,
.pdf-ck input[type=checkbox]:hover{border-color:var(--accent)}
.filt-opt input[type=checkbox]:checked,
.pdf-ck input[type=checkbox]:checked{background:var(--lime);border-color:var(--lime)}
.filt-opt input[type=checkbox]:checked::after,
.pdf-ck input[type=checkbox]:checked::after{content:"";position:absolute;left:5px;top:1px;
  width:5px;height:10px;border:solid #3a4408;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---------- validation outline on theme ---------- */
.fv.warn{outline:2px solid var(--red)!important}

/* ---------- LOGIN screen on theme (was indigo) ---------- */
.auth-gate{background:linear-gradient(160deg,#eef1e3,#dfe3d0)!important}
.auth-logo{background:linear-gradient(150deg,var(--lime),#9ab813)!important;color:#3a4408!important;box-shadow:0 10px 26px rgba(155,184,33,.34)!important}
.auth-in{background:var(--card2)!important}
.auth-in:focus{border-color:var(--accent)!important;background:#fff!important;box-shadow:0 0 0 3px var(--accentsoft)}
.auth-btn{background:linear-gradient(150deg,var(--lime),#9ab813)!important;color:#3a4408!important;box-shadow:0 10px 24px rgba(155,184,33,.32)!important}

/* ============================================================
   V1 — TASK MODAL as pastel category-cards (approved 27.06)
   Scoped to #taskModal. Inputs & IDs untouched (HTML wrap + CSS).
   ============================================================ */
.tcard{border-radius:18px;padding:14px 15px;margin-bottom:11px;box-shadow:var(--shadow)}
.tcard.t-white{background:#fff;border:1px solid var(--line)}
.tcard.t-lav{background:var(--lavsoft)}
.tcard.t-blue{background:var(--blu2soft)}
.tcard.t-peach{background:var(--peachsoft)}
.tcard.t-pink{background:var(--pinksoft)}
.tcard.t-grey{background:var(--card2)}
.tcard-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.tcard-ic{width:34px;height:34px;border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:var(--shadow);flex:none}
.tcard-l{font-size:13.5px;font-weight:800;color:var(--text);letter-spacing:.2px}
.tcard .fld{margin-bottom:0}
.tcard .fl{margin-bottom:6px;color:var(--muted)}
.tcard .fl.tcard-sub{margin-top:11px}
.tcard .fv{background:#fff}
.tcard .fv:focus{background:#fff}
.tcard .dchip{background:#fff}
.tcard .allday-row{margin-top:12px}
.tcard .add{margin-top:8px}
/* priority pills + space segment (tappable, sync to hidden selects) */
.scseg{display:flex;background:#fff;border-radius:13px;padding:4px;gap:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.scseg button{flex:1;border:none;background:transparent;border-radius:10px;padding:10px 8px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:.14s}
.scseg button.on{background:var(--lime);color:var(--limeInk);font-weight:700;box-shadow:0 3px 8px rgba(155,184,33,.28)}

/* ============================================================
   V1 — big auto-forms: .art-sec sections as pastel cards
   (article / order / supplier / inspection — all <details.art-sec>)
   CSS-only: render & logic untouched.
   ============================================================ */
.art-sec{border:1px solid var(--line);border-radius:16px;margin-bottom:11px;overflow:hidden;box-shadow:var(--shadow)}
.art-sec>summary{padding:13px 15px;font-weight:800;font-size:13.5px;color:var(--text);background:transparent;display:flex;align-items:center}
.art-sec>summary::before{content:'▸';color:var(--limed);margin-right:9px;font-size:11px;display:inline-block;transition:transform .15s;font-weight:900}
.art-sec[open]>summary::before{content:'▸';transform:rotate(90deg)}
.art-sec:nth-of-type(5n+1){background:var(--limesoft)}
.art-sec:nth-of-type(5n+2){background:var(--lavsoft)}
.art-sec:nth-of-type(5n+3){background:var(--blu2soft)}
.art-sec:nth-of-type(5n+4){background:var(--peachsoft)}
.art-sec:nth-of-type(5n+5){background:var(--pinksoft)}
.art-sec .fv{background:#fff}
.art-sec>*:not(summary){padding-left:14px;padding-right:14px}
.art-sec>*:last-child:not(summary){padding-bottom:13px}
/* fix: внутри пастельной art-sec у таблицы размеров негативный margin (-22px) при
   padding 14px утаскивал первую колонку «РАЗМЕР» за левый край карточки и обрезал её.
   Согласуем bleed с паддингом секции (14px) — горизонтальный скролл сохраняется. */
.art-sec .szed-scroll{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
/* PDF export: checkbox chips in a 2-col grid inside a tcard */
.pdf-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tcard .pdf-ck{background:#fff;border-radius:11px;padding:10px 12px;margin:0;box-shadow:0 1px 3px rgba(44,47,38,.05);transition:.14s}
.tcard .pdf-ck:hover{box-shadow:0 2px 7px rgba(44,47,38,.10)}
/* proj switcher SVG ring */
.tcard .pdf-ck.on{background:var(--limesoft)}
/* шапка: колокольчик + аватар как кнопки */
.mb-tr .ic,.mb-tr .av{border:none;cursor:pointer;padding:0;font:inherit;position:relative;color:inherit}
.mb-tr .ic{font-size:19px}
.mb-tr .av{color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}
.bell-badge{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;background:var(--accent);color:#fff;border-radius:9px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
/* панель уведомлений */
.notif-list{max-height:62vh;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:4px 0}
.notif-row{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:transparent;border:none;border-radius:10px;padding:11px 12px;cursor:pointer}
.notif-row:hover{background:rgba(0,0,0,.05)}
.nt-ic{font-size:19px;flex:0 0 auto}
.nt-tx{display:flex;flex-direction:column;gap:2px}
.nt-tx b{font-size:14px}
.nt-sub{font-size:12px;color:#8a8170}
/* личный кабинет */
.prof-card{display:flex;gap:14px;align-items:center;padding:6px 4px 16px}
.prof-av{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--peach));color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;flex:0 0 auto}
.prof-meta b{font-size:17px}
.prof-sub{font-size:13px;color:#6E6354;margin-top:2px}
.prof-login{font-size:12px;color:#9a8e76;margin-top:3px}
/* #8 (13.07): self-service часовой пояс в личном кабинете */
.prof-tzrow{display:flex;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:2px}
.prof-tz-lab{font-size:13px;color:var(--text);font-weight:600;flex:none}
.prof-tzrow select{flex:1;min-width:0}
.prof-switch{margin:2px 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;display:flex;flex-direction:column;gap:2px}
.ps-h{font-size:11.5px;text-transform:uppercase;letter-spacing:1px;color:#9a8e76;padding:2px 4px 6px;font-weight:700}
.prof-switch .set-item{display:flex;align-items:center;gap:10px}
.ps-role{margin-left:auto;font-size:11.5px;color:#9a8e76}
.ps-return{color:var(--accent);font-weight:600}
/* стрелка KPI: ЖЁСТКО в правый верхний угол (перебивает скрытое relative/left, которое наезжало на число) */
.kpi-card>.kpi-arrow{position:absolute!important;top:14px!important;right:14px!important;left:auto!important;bottom:auto!important;margin:0!important}
/* читаемость подписи под числом (была слишком бледной и терялась) */
.kpi-card:not(.filled) .kpi-cap{color:#6f675a}
/* ===== Мобильная шапка: кабинет (аватар) доступен на телефоне + greeting не наезжает на время ===== */
.top .mb-tr{order:9;margin-left:12px;flex:none}
@media(max-width:560px){
  .top{flex-wrap:wrap;align-items:center;row-gap:10px}
  .top .hello{order:1;flex:1 1 auto;min-width:0}
  .top .mb-tr{order:2;margin-left:auto}
  .top .clocks{order:3;flex:1 1 100%;justify-content:space-between}
  .top .clocks .clk:first-child{text-align:left}
  .top .search{order:4;flex:1 1 100%}
}
/* ===== Тест-лист · чип «+ Пункт» + модалка добавления ===== */
.qa-addchip{border-style:dashed!important;color:var(--accent)!important;font-weight:700}
.qa-addchip:hover{background:var(--accentsoft)!important;border-color:var(--accent)!important}
.qam-body{display:flex;flex-direction:column;gap:12px;padding:2px}
.qam-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qam-fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.qam-lbl{font-size:12px;font-weight:700;color:var(--muted)}
.qam-in{width:100%;box-sizing:border-box;border:1px solid var(--line2);background:var(--card);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit}
.qam-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accentsoft)}
.qam-ta{min-height:52px;resize:vertical;font-size:13.5px;line-height:1.4}
.qam-foot{margin-top:16px;display:flex;justify-content:flex-end}
/* ===== Проекты · команда проекта (участники совместных) ===== */
.mem-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 6px}
.mem-owner{font-size:13px;font-weight:700;color:var(--text);background:var(--accentsoft);border-radius:20px;padding:5px 12px}
.mem-chip{font-size:13px;font-weight:600;color:var(--text);background:var(--card2);border:1px solid var(--line);border-radius:20px;padding:5px 10px;display:inline-flex;align-items:center;gap:4px}
.mem-x{border:none;background:none;color:var(--muted);cursor:pointer;font-size:12px;padding:0 0 0 2px;line-height:1}
.mem-x:hover{color:var(--red)}
.mem-add{border:1px dashed var(--line2);background:transparent;color:var(--accent);border-radius:20px;padding:5px 12px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.mem-add:focus{outline:none;border-color:var(--accent)}
/* Inbox задача — метка проекта */
.dt-proj{font-size:10.5px;font-weight:600;color:var(--accent2);background:var(--accentsoft);border-radius:6px;padding:1px 6px;margin-left:6px;white-space:nowrap}
/* ===== Мобильные фиксы (jun30 #63, командный раунд 30.06) — все @media-guarded, без .mb ===== */
/* 1. KPI-число вылезало за карточку (.kpi-num white-space:nowrap;overflow:visible, L69) */
@media(max-width:560px){
  .kpi-num{white-space:normal;overflow-wrap:anywhere;font-size:clamp(15px,5.2vw,22px);line-height:1.15}
}
/* 2. План продаж: 6 колонок не помещались на узком экране (.hrow.phead/.prow L962, был только 980-брейкпоинт) */
@media(max-width:560px){
  .hrow.phead,.hrow.prow{grid-template-columns:1.7fr 1fr 1fr .6fr .6fr .5fr;font-size:10.5px;gap:3px}
}
/* 3. Модалка задачи: два инпута времени по 128px тесны на телефоне (.time-int .fv L635) */
@media(max-width:440px){
  .time-int .fv{width:calc(50% - 12px)}
}
/* B Этап 2 · «/»-меню типов блока заметок (Notion slash menu) */
/* подсказка-хинт в панели чипов */
/* Команда: карточка бота кликабельна → личное обращение */
.pl-click{cursor:pointer;transition:.12s;border-radius:10px}
.pl-click:hover{background:var(--accentsoft)}
.pl-click:active{transform:scale(.99)}

/* ===== Неделя — лента по дням (01.07) ===== */
.wl-modebar{display:flex;justify-content:flex-end;margin:0 0 12px}
.seg-mode{display:flex;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;gap:2px}
.segm{font-size:12.5px;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:8px;border:0;background:none;cursor:pointer}
.segm.on{background:#fff;color:var(--text);box-shadow:var(--shadow)}
.wl-wrap{display:flex;flex-direction:column;gap:2px}
.wl-day{margin-bottom:6px}
.wl-h{display:flex;align-items:center;gap:9px;padding:10px 4px 7px}
.wl-h .wl-dd{font-size:15px;font-weight:800}
.wl-h .wl-dn{font-size:12.5px;color:var(--muted);font-weight:600}
.wl-h.tod .wl-dd{color:var(--limed)}
.wl-h .wl-cnt{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--card2);padding:4px 10px;border-radius:20px}
.wl-h.tod .wl-cnt{background:var(--accentsoft);color:var(--limed)}
.wl-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden;padding:0 13px}
.wl-card.tod{border-color:var(--accent);box-shadow:0 6px 20px rgba(155,184,33,.14)}
.wl-empty{display:flex;align-items:center;gap:10px;padding:9px 6px;color:var(--faint);font-size:13px;font-weight:500}
.wl-empty b{font-weight:700;color:var(--muted)}
.wl-empty .wl-line{flex:1;height:1px;background:var(--line)}
/* «+»-контракт В3: добавление — accent-пилюля, НЕ бледный текст-глиф (текст-ссылка «→» зарезервирована за навигацией) */
.wl-empty .wl-add{cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 12px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:11px;box-shadow:0 4px 12px rgba(var(--accent-rgb),.3);transition:.12s}
.wl-empty:hover .wl-add{background:var(--limed)}
/* fix #2 (09.07, CSS-fixer): у ЗАНЯТЫХ дней .wl-add (app.js:937, рядом с .wl-cnt внутри .wl-h)
   был голым текстом «+ добавить» — стилизован был только .wl-empty .wl-add. Тот же акцент-пилюля
   контракт, чуть компактнее (сидит в шапке рядом со счётчиком, а не на всю ширину строки-разделителя). */
.wl-h .wl-add{cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 10px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:10.5px;box-shadow:0 4px 12px rgba(var(--accent-rgb),.3);transition:.12s}
.wl-h .wl-add:hover{background:var(--limed)}

/* ===== Месяц — точки-приоритеты + поповер раскрытия (01.07) ===== */
.mdots{display:flex;gap:4px;align-items:center;height:8px;overflow:hidden}
.mdot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.mdot.hi{background:var(--red)}.mdot.ur{background:#e6a52e}.mdot.a{background:var(--accent)}
.mdot.done{opacity:.4}
/* fix #3 (09.07, CSS-fixer): margin-top:auto толкал .mcnt на низ выросшей 120px-ячейки —
   зазор полоса↔счётчик ~17px. Убран: .mcell — flex-column c gap:5px, кластер точки/полоса/счётчик
   и так пакуется плотно сверху, пустое место остаётся снизу. Позиции остаются static (не absolute). */
.mcell .mcnt{font-size:11px;font-weight:700;color:var(--muted);background:var(--card2);padding:2px 8px;border-radius:20px;align-self:flex-start}
.mcell.today .mcnt{background:#fff;color:var(--limed)}
.mcell .mload{position:static;display:block;height:4px;border-radius:4px;background:var(--line);overflow:hidden;width:100%}
.mcell .mload i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.mcell.open{overflow:visible;z-index:20}
/* fix #1 (09.07, CSS-fixer): app.js:895 рендерит <span class="madd" data-addday> для каждой не-dim
   ячейки, но правила .madd не было — голый «+» был виден ПОСТОЯННО. По одобренному мокапу
   (variant3_synthesis.html .c3-add-pill): плавающий слой, скрыт по умолчанию, виден только по hover
   ячейки. .mcell уже position:relative (стр.458) — абсолютный ребёнок safe. */
.madd{position:absolute;top:8px;right:8px;height:22px;min-width:22px;padding:0 8px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:13px;font-weight:800;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(-3px) scale(.9);transition:opacity .14s,transform .14s;
  box-shadow:0 6px 16px rgba(var(--accent-rgb),.4);pointer-events:none}
.mcell:hover .madd{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.month{position:relative}
.mpop{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:288px;max-width:84vw;background:#fff;border:1.5px solid var(--accent);border-radius:var(--r-lg);box-shadow:var(--shadow2);overflow:hidden;z-index:30;cursor:default;text-align:left}
.mp-h{display:flex;align-items:center;gap:8px;padding:11px 14px;background:var(--accentsoft);border-bottom:1px solid var(--line)}
.mp-h b{font-size:14px;font-weight:800;color:var(--limed)}
.mp-h span{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--limed)}
.mp-t{display:flex;align-items:center;gap:10px;padding:10px 13px}
.mp-t:last-of-type{border-bottom:0}
.mp-box{width:18px;height:18px;border-radius:6px;border:1.7px solid var(--line2);flex:none;display:flex;align-items:center;justify-content:center;color:transparent;font-size:11px;cursor:pointer}
.mp-t.done .mp-box{background:var(--accent);border-color:var(--accent);color:#fff}
.mp-pri{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.mp-pri.hi{background:var(--red)}.mp-pri.ur{background:#e6a52e}
.mp-x{flex:1;font-size:13.5px;font-weight:500;cursor:pointer}
.mp-t.done .mp-x{color:var(--faint);text-decoration:line-through}
.mp-tm{font-size:12px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.mp-more{padding:10px 14px;font-size:12px;color:var(--accent);font-weight:700;text-align:center;cursor:pointer}
.mp-empty{padding:16px;text-align:center;color:var(--faint);font-size:13px}

/* 7. Заголовки */

/* 8. Чекбокс */

/* 9. Панель добавления */

/* 10. Important → callout-семейство */

/* 11. Буллеты */

/* ===== /v184 ===== */

/* v185-fix: грид-колонки не раздуваются широким контентом (мобильная доска скроллится) */
.grid>*{min-width:0}   /* мобайл-фикс 10.07: .unsched/.cal-area не раздувают .cal-wrap шире вьюпорта → сетка месяца и список задач не режутся справа (Евгений msg1473) */

/* ============================================================
   СВЕРКА ФФ v2 — классы ff2- (макет _mock_ffrecon.html, тёплая палитра)
   ============================================================ */
.ff2-page{max-width:1180px;margin:0 auto;font-variant-numeric:tabular-nums}
.ff2-page *{box-sizing:border-box}
/* локальные алиасы под палитру приложения */
.ff2-page,.ff2-up-body,.ff2-disp-body{
  --fx-card:var(--card);--fx-card2:var(--card2);--fx-line:var(--line);
  --fx-text:var(--text);--fx-muted:var(--muted);--fx-faint:var(--faint);
  --fx-accent:var(--accent);--fx-accentd:var(--limed);--fx-accentsoft:var(--accentsoft);
  --fx-warn:var(--peachd,#c47a3c);--fx-warnd:var(--peachd,#b5652a);--fx-warnsoft:var(--peachsoft,#fff0e1);
  --fx-r:16px;--fx-r-sm:11px;
  --fx-shadow:var(--shadow,0 6px 18px rgba(70,75,55,.05));
}
/* ── шапка ── */
.ff2-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.ff2-title{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.4px;flex:none}
.ff2-title-ico{width:38px;height:38px;background:var(--accentsoft);border:1.5px solid var(--accent);border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}
.ff2-decided{font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;margin-left:4px}
.ff2-decided.ok{background:var(--accentsoft);color:var(--limed)}
.ff2-decided.warn{background:var(--peachsoft,#fff0e1);color:var(--peachd,#c47a3c)}
.ff2-month-tabs{display:flex;align-items:center;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;flex:none;overflow-x:auto}
.ff2-month-tab{padding:7px 15px;border-radius:9px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap;border:none;background:none}
.ff2-month-tab:hover{color:var(--text);background:var(--card2)}
.ff2-month-tab.ff2-active{background:var(--accent);color:#fff;box-shadow:0 3px 10px rgba(154,184,19,.35)}
.ff2-month-tab.ff2-dim{color:var(--faint);font-weight:500}
.ff2-hdr-right{margin-left:auto}
.ff2-btn-primary{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;background:var(--accent);color:#fff;font-size:13.5px;font-weight:700;border:none;border-radius:12px;cursor:pointer;box-shadow:0 4px 14px rgba(154,184,19,.30);transition:all .15s;white-space:nowrap}
.ff2-btn-primary:hover{background:var(--limed);box-shadow:0 6px 20px rgba(154,184,19,.40)}
.ff2-btn-sec{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;background:var(--card);color:var(--muted);font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:11px;cursor:pointer;transition:all .15s;white-space:nowrap}
.ff2-btn-sec:hover{color:var(--text);background:var(--card2)}
/* ── KPI ── */
.ff2-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
.ff2-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--fx-r);padding:18px;box-shadow:var(--fx-shadow);display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.ff2-kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--fx-r) var(--fx-r) 0 0;background:var(--line)}
.ff2-kpi-total::before{background:var(--text)}
.ff2-kpi-ok::before{background:var(--accent)}
.ff2-kpi-warn::before{background:var(--peachd,#c47a3c)}
.ff2-kpi-grey::before{background:var(--faint)}
.ff2-kpi-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--faint)}
.ff2-kpi-num{font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--text);line-height:1.1}
.ff2-kpi-ok .ff2-kpi-num{color:var(--limed)}
.ff2-kpi-warn .ff2-kpi-num{color:var(--peachd,#c47a3c)}
.ff2-kpi-grey .ff2-kpi-num{color:var(--muted)}
.ff2-kpi-sub{font-size:12px;color:var(--faint);font-weight:500}
.ff2-kpi-pct{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:20px;margin-top:2px;align-self:flex-start;background:var(--accentsoft);color:var(--limed)}
.ff2-kpi-grey .ff2-kpi-pct{background:var(--card2);color:var(--muted)}
/* ── секция ── */
.ff2-section{background:var(--card);border:1px solid var(--line);border-radius:var(--fx-r);box-shadow:var(--fx-shadow);margin-bottom:16px;overflow:hidden}
.ff2-sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 14px;border-bottom:1px solid var(--line)}
.ff2-sec-title{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.ff2-sec-title span{color:var(--faint);font-weight:500;font-size:13px}
.ff2-sec-meta{font-size:12px;color:var(--faint);font-weight:500}
/* ── таблица ── */
.ff2-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ff2-tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
.ff2-tbl thead tr{background:var(--card2)}
.ff2-tbl th{padding:9px 13px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);white-space:nowrap;border-bottom:1px solid var(--line)}
.ff2-tbl th:first-child{width:210px;position:sticky;left:0;background:var(--card2);z-index:2}
.ff2-tbl th.ff2-num{text-align:right}
.ff2-tbl tbody tr{transition:background .12s}
.ff2-tbl tbody tr:hover{background:rgba(154,184,19,.05)}
.ff2-tbl td{padding:11px 13px;vertical-align:middle;border-bottom:1px solid var(--line);color:var(--text)}
.ff2-tbl tbody tr:last-child td{border-bottom:none}
.ff2-tbl td:first-child{position:sticky;left:0;background:var(--card);z-index:1;font-weight:600;font-size:13px}
.ff2-tbl tbody tr:hover td:first-child{background:var(--card2)}
.ff2-tbl td.ff2-num{text-align:right;color:var(--muted);font-size:13px}
.ff2-tbl td.ff2-sum{text-align:right;font-weight:700;color:var(--text)}
.ff2-tbl td.ff2-our{text-align:right}
.ff2-our-ok{color:var(--limed);font-weight:600}
.ff2-our-warn{color:var(--peachd,#c47a3c);font-weight:700}
.ff2-our-dash{color:var(--faint)}
.ff2-rate-pair{display:flex;flex-direction:column;gap:1px;text-align:right}
.ff2-rate-pair .ff2-r-them{font-size:13px}
.ff2-rate-pair .ff2-r-price{font-size:11px;color:var(--faint)}
.ff2-rate-pair.ff2-tdiff .ff2-r-them{color:var(--peachd,#c47a3c);font-weight:700}
.ff2-rate-pair.ff2-tdiff .ff2-r-price{color:var(--limed)}
.ff2-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap}
.ff2-badge.ok{background:var(--accentsoft);color:var(--limed)}
.ff2-badge.warn{background:var(--peachsoft,#fff0e1);color:var(--peachd,#c47a3c)}
.ff2-badge.grey{background:var(--card2);color:var(--muted)}
.ff2-badge.calc{background:var(--blu2soft,#e9f4fb);color:var(--blu2d,#4a86ad)}
.ff2-tbl tfoot td{padding:12px 13px;background:var(--card2);font-weight:700;font-size:13px;border-top:2px solid var(--line)}
.ff2-tbl tfoot td:first-child{position:sticky;left:0;background:var(--card2);z-index:1}
.ff2-tbl tfoot td.ff2-num,.ff2-tbl tfoot td.ff2-sum{text-align:right}
/* ── наши данные ── */
.ff2-our-data{padding:18px 20px}
.ff2-our-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.ff2-our-cell{background:var(--card2);border:1px solid var(--line);border-radius:var(--fx-r-sm);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.ff2-our-cell-label{font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.5px}
.ff2-our-input{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.3px;border:none;background:transparent;border-bottom:2px solid var(--line);padding:2px 0;width:100%;outline:none}
.ff2-our-input:focus{border-bottom-color:var(--accent)}
.ff2-our-cell-sub{font-size:11px;color:var(--faint)}
/* ── оплаты ── */
.ff2-payment{padding:18px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ff2-pay-items{display:flex;gap:16px;flex-wrap:wrap;flex:1}
.ff2-pay-item{display:flex;flex-direction:column;gap:3px}
.ff2-pay-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--faint)}
.ff2-pay-num{font-size:18px;font-weight:800;color:var(--text)}
.ff2-pay-num.ff2-pay-ok{color:var(--limed)}
.ff2-pay-num.ff2-pay-warn{color:var(--peachd,#c47a3c)}
.ff2-pay-sub{font-size:11px;color:var(--faint)}
.ff2-divider-v{width:1px;height:40px;background:var(--line);flex:none}
.ff2-pay-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;align-items:center}
.ff2-await{font-size:12.5px;font-weight:600;color:var(--peachd,#c47a3c);background:var(--peachsoft,#fff0e1);padding:8px 14px;border-radius:11px}
/* ── история ── */
.ff2-history{background:var(--card);border:1px solid var(--line);border-radius:var(--fx-r);box-shadow:var(--fx-shadow);overflow:hidden;margin-bottom:16px}
.ff2-hist-inner{display:flex;overflow-x:auto;padding:14px 16px;gap:8px}
.ff2-hist-item{flex:0 0 auto;background:var(--card2);border:1px solid var(--line);border-radius:var(--fx-r-sm);padding:10px 14px;min-width:150px;cursor:pointer;transition:all .14s}
.ff2-hist-item:hover{border-color:var(--accent);background:var(--accentsoft)}
.ff2-hist-item.ff2-hist-active{border-color:var(--accent);background:var(--accentsoft);box-shadow:0 0 0 2px rgba(154,184,19,.18)}
.ff2-hist-month{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}
.ff2-hist-status{font-size:11.5px;display:flex;align-items:center;gap:5px}
.ff2-hist-dot{width:7px;height:7px;border-radius:50%;flex:none}
.ff2-hist-dot.ok{background:var(--accent)}
.ff2-hist-dot.warn{background:var(--peachd,#c47a3c)}
.ff2-hist-dot.pend{background:var(--faint)}
/* ── пусто ── */
.ff2-empty{text-align:center;padding:60px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--fx-r);box-shadow:var(--fx-shadow)}
.ff2-empty-ico{font-size:44px;margin-bottom:12px}
.ff2-empty-t{font-size:17px;font-weight:700;color:var(--text);margin-bottom:8px}
.ff2-empty-s{font-size:13.5px;color:var(--muted);max-width:420px;margin:0 auto 20px;line-height:1.5}
/* ── загрузка (слоты) ── */
.ff2-up-body{padding:6px 4px}
.ff2-up-note{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.45}
.ff2-slot{display:flex;align-items:center;gap:12px;background:var(--card2);border:1.5px dashed var(--line2,var(--line));border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:all .15s}
.ff2-slot:hover{border-color:var(--accent);background:var(--accentsoft)}
.ff2-slot-done{border-style:solid;border-color:var(--accent);background:var(--accentsoft)}
.ff2-slot-ic{font-size:22px;flex:none}
.ff2-slot-tx{display:flex;flex-direction:column;gap:2px}
.ff2-slot-tx b{font-size:13.5px;color:var(--text)}
.ff2-slot-sub{font-size:11.5px;color:var(--faint)}
.ff2-up-msg{margin-top:6px}
.ff2-up-err{background:var(--peachsoft,#fff0e1);color:var(--peachd,#c47a3c);border-radius:10px;padding:11px 14px;font-size:12.5px;line-height:1.4}
/* ── оспорить ── */
.ff2-disp-body{padding:6px 4px}
.ff2-disp-ta{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.5;font-family:inherit;color:var(--text);background:var(--card2);resize:vertical;margin-bottom:12px}
.ff2-disp-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
/* ── мобайл ── */
@media (max-width:700px){
  .ff2-header{gap:10px}
  .ff2-title{font-size:18px}
  .ff2-kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .ff2-kpi-num{font-size:20px}
  .ff2-hdr-right{width:100%}
  .ff2-btn-primary{width:100%;justify-content:center}
  .ff2-month-tabs{width:100%}
  .ff2-sec-head{flex-wrap:wrap;gap:6px;padding:13px 14px 11px}
  .ff2-sec-meta{width:100%;font-size:11.5px}
  .ff2-payment{flex-direction:column;align-items:flex-start;gap:14px}
  .ff2-pay-actions{margin-left:0;width:100%;flex-direction:column;align-items:stretch}
  .ff2-pay-actions .ff2-btn-sec,.ff2-pay-actions .ff2-btn-primary{width:100%;justify-content:center}
  .ff2-divider-v{display:none}
  .ff2-our-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  /* строки таблицы → карточки */
  .ff2-tbl{min-width:0}
  .ff2-tbl thead,.ff2-tbl tfoot{display:none}
  .ff2-tbl,.ff2-tbl tbody,.ff2-tbl tr,.ff2-tbl td{display:block;width:auto}
  .ff2-tbl tr{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
  .ff2-tbl td{border:none!important;padding:4px 0;position:static!important;text-align:left!important;display:flex;justify-content:space-between;align-items:center;gap:12px}
  .ff2-tbl td:first-child{font-size:14px;font-weight:700;margin-bottom:4px}
  .ff2-rate-pair{text-align:right}
  .ff2-tbl td.ff2-our,.ff2-tbl td.ff2-sum,.ff2-tbl td.ff2-num{text-align:right!important}
}

/* ── Лента дня команды (feedfix 03.07): «Сегодня через команду» во вкладке Команда ── */
.df2-card{background:var(--card);border-radius:16px;padding:12px 14px;margin:2px 0 12px;box-shadow:var(--shadow)}
.df2-h{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.df2-cnt{font-size:12.5px;font-weight:600;color:var(--muted);margin-top:6px}
.df2-cnt b{color:var(--accent);font-weight:800}
.df2-rows{margin-top:8px;display:flex;flex-direction:column;gap:3px;max-height:240px;overflow-y:auto}
.df2-row{display:flex;align-items:baseline;gap:7px;font-size:12.5px;padding:4px 9px;border-radius:9px;background:var(--accentsoft,rgba(154,184,19,.08))}
.df2-t{font-size:10.5px;color:var(--muted);min-width:34px;font-weight:700}
.df2-who{font-weight:700;white-space:nowrap}
.df2-task{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.df2-more{margin-top:7px;font-size:11px;font-weight:700;color:var(--accent);cursor:pointer;text-align:center}

/* ═══════════ ИНФОГРАФИКА (раздел Алёны, префикс ig-, редизайн 08.07 одобрен Евгением: ig_redesign_*.html) ═══════════ */
/* 14.08.2026: колонка 900px делала Инфографику единственным «узким» разделом системы —
   раздел разъехался с Реестром/Качеством, которые идут во всю ширину. Ограничение снято. */
#view-infographics{max-width:none;margin:0}
.ig-header{margin-bottom:18px}
.ig-header h1{font-size:22px;font-weight:800;letter-spacing:-.4px;color:var(--text);margin-bottom:4px}
.ig-header p{font-size:13.5px;color:var(--muted)}
/* фильтр-чипы — единственный источник счётчиков (KPI-строка убрана как дубль) */
.ig-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.ig-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:30px;border:1.5px solid var(--line);background:var(--card);font-size:13px;font-weight:650;color:var(--muted);cursor:pointer;transition:all .15s;user-select:none;white-space:nowrap}
.ig-chip:hover{border-color:var(--accent);color:var(--text)}
.ig-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}
.ig-chip .dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--line2)}
.ig-chip .dot.new{background:var(--blue)}
.ig-chip .dot.wip{background:var(--orange)}
.ig-chip .dot.done{background:var(--green)}
.ig-chip.active .dot{background:#fff}
.ig-chip-count{background:rgba(255,255,255,.25);border-radius:20px;padding:1.5px 7px;font-size:11px;font-weight:700}
.ig-chip:not(.active) .ig-chip-count{background:var(--card2);color:var(--muted)}
/* тулбар + Модель */
.ig-toolbar{margin-bottom:14px}
.ig-add-model-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:12px;border:1.5px solid var(--accent);background:var(--accentsoft,rgba(154,184,19,.10));color:var(--accent);font-size:13.5px;font-weight:700;cursor:pointer;transition:all .15s}
.ig-add-model-btn:hover{background:var(--accent);color:#fff}
/* SVG-иконка «+» (см. igPlus() в app.js) — currentColor, поэтому красится в цвет любой кнопки-хозяина */
.ig-plus-ico{flex:none;display:inline-block;vertical-align:-2px}
/* инлайн-форма модели (создание/правка бирки-группы-тега) — замена prompt-флоу, стиль как у .ig-addform */
.ig-modelform{background:var(--card);border:1.5px solid var(--accent);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}
.ig-mf-lbl{font-size:12px;font-weight:700;color:var(--muted);margin:14px 0 6px}
.ig-mf-lbl:first-child{margin-top:0}
.ig-mf-in{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text);background:var(--bg)}
.ig-mf-in:focus{outline:none;border-color:var(--accent)}
.ig-mf-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);margin:16px 0 2px;cursor:pointer}
.ig-mf-check input{width:16px;height:16px;accent-color:var(--accent)}
.ig-mf-grprow{margin-top:2px}
/* список моделей (только с задачами — пустые уходят в disclosure ниже) */
.ig-list{display:flex;flex-direction:column;gap:10px}
.ig-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;display:flex;align-items:center;gap:14px;cursor:pointer;box-shadow:var(--shadow);transition:box-shadow .15s,border-color .15s,opacity .15s}
.ig-row:hover{border-color:var(--accent);box-shadow:var(--shadow2)}
.ig-row.empty{opacity:.55;cursor:pointer}
.ig-dot,.ig-menu-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;background:var(--line2)}
.ig-menu-dot{width:8px;height:8px}
.ig-dot.new,.ig-menu-dot.new{background:var(--blue)}
.ig-dot.wip,.ig-menu-dot.wip{background:var(--orange)}
.ig-dot.done,.ig-menu-dot.done{background:var(--green)}
.ig-dot.none{background:var(--line2)}
.ig-row-title{display:flex;align-items:center;gap:8px;min-width:220px;flex:none}
.ig-birka{font-size:16.5px;font-weight:750;color:var(--text);letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-group-badge{display:inline-flex;align-items:center;gap:4px;background:var(--accentsoft,rgba(154,184,19,.10));color:var(--accent);border-radius:8px;padding:3px 9px;font-size:10.5px;font-weight:700;white-space:nowrap}
.ig-row-type{flex:1;min-width:0;display:flex;align-items:center}
.ig-type-chip{display:inline-flex;font-size:11px;font-weight:650;padding:4px 10px;border-radius:8px;background:var(--card2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ig-meta{flex:none;text-align:right;min-width:92px}
.ig-meta-tasks{font-size:13px;font-weight:700;color:var(--text)}
.ig-meta-status{font-size:11.5px;font-weight:650;margin-top:3px}
.ig-meta-status.new{color:var(--blue)}
.ig-meta-status.wip{color:var(--orange)}
.ig-meta-status.done{color:var(--green)}
.ig-meta-empty{font-size:12.5px;color:var(--faint);font-style:italic}
.ig-arrow{color:var(--faint);font-size:16px;flex:none}
/* ── disclosure «▸ Без задач · N» — пустые модели свёрнуты, но кликабельны (см. .ig-row.empty выше) ── */
.ig-disclosure{font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none;padding:14px 4px 2px;margin-top:8px;border-top:1px solid var(--line)}
.ig-disclosure:hover{color:var(--accent)}
.ig-disclosure .n{color:var(--faint);font-weight:600}
.ig-list-empty{margin-top:10px}
/* ── карточка модели ── */
.ig-card-wrap{max-width:860px;margin:0 auto}
.ig-back{font-size:13px;font-weight:600;color:var(--accent);cursor:pointer;padding:7px 14px;background:var(--accentsoft,rgba(154,184,19,.10));border-radius:10px;border:none;margin-bottom:16px}
.ig-card-head{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.ig-card-title-block{display:flex;align-items:baseline;gap:10px;flex:1;min-width:150px}
.ig-card-birka{font-size:30px;font-weight:800;letter-spacing:-.5px;color:var(--text);line-height:1.15}
.ig-card-head-actions{display:flex;align-items:center;gap:10px;flex:none}
/* статус — цветная пилюля с выпадающим меню (замена сегмент-переключателя) */
.ig-status-pill-wrap{position:relative}
.ig-status-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;line-height:1;border:none;cursor:pointer;font-family:inherit}
.ig-status-pill .chev{font-size:9px;opacity:.55;margin-left:1px}
.ig-status-pill.s-new{background:var(--bluebg);color:var(--blue)}
.ig-status-pill.s-wip{background:var(--orangebg);color:var(--orange)}
.ig-status-pill.s-done{background:var(--greenbg);color:var(--green)}
/* «⋯» кебаб-меню модели (замена двух больших кнопок правки/удаления) */
.ig-kebab-wrap{position:relative}
.ig-kebab-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line2);background:var(--card2);color:var(--text);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;letter-spacing:1px;line-height:1;transition:.15s}
.ig-kebab-btn:hover{border-color:var(--accent);color:var(--accent)}
.ig-menu{position:absolute;top:calc(100% + 8px);right:0;width:236px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow2);padding:6px;z-index:30}
.ig-status-menu{width:172px}
.ig-menu-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;font-size:13.5px;font-weight:650;color:var(--text);white-space:nowrap;line-height:1.2;cursor:pointer}
.ig-menu-item:hover{background:var(--card2)}
.ig-menu-item.active{background:var(--accentsoft,rgba(154,184,19,.10));color:var(--accent)}
.ig-menu-item .ico{font-size:14px;flex:none;width:16px;text-align:center;line-height:1.1}
.ig-menu-item.danger{color:var(--red)}
.ig-menu-item.danger:hover{background:var(--redbg)}
.ig-menu-divider{height:1px;background:var(--line);margin:4px 8px}
.ig-card-divider{height:1px;background:var(--line);margin:0 0 26px}
.ig-danger{color:var(--red)!important}
.ig-tasks-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px}
/* пустое состояние карточки (0 задач) — иконка + подпись + сплошная CTA */
.ig-empty-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:56px 28px 48px;display:flex;flex-direction:column;align-items:center;text-align:center}
.ig-empty-icon{margin-bottom:18px}
.ig-empty-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}
.ig-empty-caption{font-size:13px;color:var(--faint);line-height:1.55;max-width:270px;margin-bottom:24px;font-weight:500}
.ig-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent);color:#fff;border:none;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px var(--accentsoft,rgba(154,184,19,.32));transition:.15s;font-family:inherit}
.ig-btn-primary:hover{background:var(--accent2)}
.ig-task-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:12px;box-shadow:var(--shadow)}
.ig-task-card.ig-task-done{opacity:.62}
.ig-task-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.ig-task-num{font-size:11px;font-weight:700;color:var(--faint);flex:none;padding-top:2px}
.ig-task-essence{font-size:14.5px;font-weight:700;color:var(--text);line-height:1.4;flex:1}
.ig-task-date-post{font-size:11.5px;color:var(--muted);font-weight:600;flex:none;white-space:nowrap}
.ig-task-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ig-tc{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:10px;font-size:11.5px;font-weight:600;background:var(--card2);color:var(--muted);border:1px solid var(--line)}
.ig-tc.priority-high{background:var(--redbg);color:var(--red);border-color:transparent}
.ig-tc.priority-med{background:var(--orangebg);color:var(--orange);border-color:transparent}
.ig-tc.priority-low{background:var(--greenbg);color:var(--green);border-color:transparent}
.ig-tc.designer{background:var(--accentsoft,rgba(154,184,19,.10));color:var(--accent);border-color:transparent}
/* фото-место */
.ig-task-photo{background:var(--card2);border:1.5px dashed var(--line2);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--faint);margin-bottom:10px;flex-wrap:wrap}
.ig-task-photo>span:first-child{font-size:18px}
.ig-task-photo.has{display:block;border-style:solid;padding:10px}
.ig-task-photo.has img{width:100%;max-width:260px;border-radius:10px;display:block;margin-bottom:8px}
.ig-photo-none{flex:1}
.ig-photo-acts{display:flex;gap:6px;margin-left:auto}
.ig-task-photo.has .ig-photo-acts{margin-left:0}
.ig-photo-btn{font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;transition:all .15s}
.ig-photo-btn:hover{border-color:var(--accent);color:var(--accent)}
/* флаг-комментарий */
.ig-task-flag{background:#fffbeb;border:1px solid #fde68a;border-left:3px solid #f59e0b;border-radius:10px;padding:9px 13px;font-size:12.5px;color:#92400e;font-weight:600;line-height:1.4;margin-bottom:10px;display:flex;gap:8px;align-items:flex-start}
.ig-task-flag-icon{flex:none;font-size:14px}
/* низ задачи: действия */
.ig-task-foot{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:11px;margin-top:2px}
.ig-task-act{font-size:12px;font-weight:600;padding:5px 12px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;transition:all .15s}
.ig-task-act:hover{border-color:var(--accent);color:var(--accent)}
.ig-task-act.ig-danger:hover{border-color:var(--red);background:var(--redbg)}
/* + Задача + инлайн-форма */
.ig-add-task{display:flex;align-items:center;gap:9px;padding:14px 18px;background:var(--accentsoft,rgba(154,184,19,.06));border:1.5px dashed var(--accent);border-radius:var(--radius);font-size:14px;font-weight:700;color:var(--accent);cursor:pointer;transition:all .15s;width:100%;margin-top:4px}
.ig-add-task:hover{background:var(--accentsoft,rgba(154,184,19,.10))}
.ig-addform{background:var(--card);border:1.5px solid var(--accent);border-radius:var(--radius);padding:16px;margin-top:4px;box-shadow:var(--shadow)}
.ig-af-essence{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text);resize:vertical;background:var(--bg);margin-bottom:10px}
.ig-af-essence:focus{outline:none;border-color:var(--accent)}
.ig-af-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ig-af-f{padding:8px 11px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-family:inherit;color:var(--text);background:var(--card)}
.ig-af-f:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accentsoft,rgba(154,184,19,.10))}
/* нативный <input type=date> — подгоняем под дизайн-систему (рамка/шрифт/радиус уже даёт .ig-af-f выше);
   тут только то, что живёт внутри UA-шедоу-дома и не берётся общими правилами: цвет пикера и курсор */
.ig-af-f[type="date"]{color-scheme:light;cursor:pointer}
.ig-af-f[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;border-radius:6px;transition:opacity .15s}
.ig-af-f[type="date"]::-webkit-calendar-picker-indicator:hover{opacity:.85}
.ig-af-foot{display:flex;justify-content:flex-end;gap:10px}
.ig-af-cancel{padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.ig-af-save{padding:8px 18px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:700;cursor:pointer}
.ig-af-save:hover{background:var(--accent2,#b4d420)}
/* выполненные — коллапс */
.ig-done-toggle{font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;padding:10px 4px;margin-top:6px;user-select:none}
.ig-done-toggle:hover{color:var(--accent)}
.ig-done-list{margin-top:6px}
/* ── мобила ── */
@media (max-width:560px){
  .ig-header h1{font-size:19px}
  .ig-chips{gap:6px}
  .ig-chip{padding:6px 12px;font-size:12.5px}
  .ig-row{flex-wrap:wrap;padding:14px 16px;gap:10px}
  .ig-row-title{min-width:unset}
  .ig-birka{font-size:15.5px}
  .ig-row-type{display:none}
  .ig-meta{text-align:left}
  .ig-card-head{flex-direction:column;align-items:flex-start;gap:12px}
  .ig-card-birka{font-size:22px}
  .ig-card-head-actions{align-self:stretch;justify-content:space-between}
  .ig-task-top{flex-wrap:wrap}
  .ig-task-date-post{margin-left:auto}
  .ig-af-row{flex-direction:column}
  .ig-af-f{width:100%;box-sizing:border-box}
  .ig-mf-in{box-sizing:border-box}
}

/* ═══════════ Глубокий цикл (карточка во вкладке Команда, префикс dc-, deep-cycle 03.07) ═══════════ */
/* Тёплая карточка «где сейчас цикл» + точки контроля Евгения по развилкам. Без линий, var(--accent). */
.dc-card{background:var(--accentsoft,rgba(154,184,19,.08));border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:16px;padding:12px 14px;margin:2px 0 12px;box-shadow:var(--shadow)}
.dc-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.dc-title{font-size:12.5px;font-weight:800;letter-spacing:.03em;color:var(--accent)}
.dc-vec{font-size:11.5px;color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
/* точка контроля — заметный тёплый бейдж (развилка: решение Евгения) */
.dc-gate{margin-top:9px;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:11px;font-size:12.5px;font-weight:800;color:#8a4b00;background:linear-gradient(180deg,rgba(255,176,32,.28),rgba(255,148,0,.20));border:1.5px solid rgba(255,148,0,.55);box-shadow:0 2px 10px rgba(255,148,0,.18)}
/* полоса этапов: 6 сегментов, на мобиле 3+3 */
.dc-bar{margin-top:10px;display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.dc-seg{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 7px;border-radius:11px;text-align:center;min-width:0;transition:.15s}
.dc-seg-ic{font-size:12px;line-height:1}
.dc-seg-n{font-size:13px;font-weight:800;line-height:1.1}
.dc-seg-nm{font-size:9.5px;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
/* пройдено — салатовая заливка */
.dc-seg.dc-done{background:var(--accentsoft,rgba(154,184,19,.14));color:var(--accent)}
.dc-seg.dc-done .dc-seg-n{color:var(--accent)}
/* текущий — акцентная рамка + пульс-точка */
.dc-seg.dc-cur{background:var(--card);border:1.5px solid var(--accent);color:var(--text);box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 20%,transparent)}
.dc-seg.dc-cur .dc-seg-n,.dc-seg.dc-cur .dc-seg-nm{color:var(--accent)}
.dc-pulse{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:dcPulse 1.6s ease-out infinite}
@keyframes dcPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
/* ждёт — серый */
.dc-seg.dc-pend{background:var(--card2,rgba(0,0,0,.03));color:var(--faint,#9aa0ab)}
.dc-seg.dc-pend .dc-seg-n{color:var(--faint,#9aa0ab)}
/* владелец текущего этапа + вердикт приёмки */
.dc-owner{margin-top:9px;font-size:12px;color:var(--muted);font-weight:600}
.dc-owner b{color:var(--text);font-weight:800}
.dc-owner-idle{color:var(--muted);font-weight:600}
.dc-verdict{margin-top:6px;font-size:12px;color:var(--muted);font-weight:600}
.dc-verdict b{color:var(--accent);font-weight:800}
.dc-verdict-wait{color:var(--accent);font-weight:700}
@media(hover:none),(pointer:coarse){.dc-pulse{animation:none}}
@media(max-width:560px){.dc-bar{grid-template-columns:repeat(3,1fr)}.dc-seg-nm{-webkit-line-clamp:2}}

/* ═══════════════════════════════════════════════════════════
   РЕЕСТР АРТИКУЛОВ v20+ — стили (префикс rx-)
   Источник: _mock_reestr20.html <style>. Добавлено аддитивно.
   Жёсткие цвета мокапа заменены токенами.
   Локальные токены секции (не переопределяют глобальные):
     --rx-accent  = #9ab813  (салат-акцент Реестра)
     --rx-aclo    = rgba(154,184,19,.12) (мягкий фон акцента)
     --rx-warn    = #e8820c  (янтарь/оранжевый)
     --rx-warnlo  = #fef0e0
     --rx-crit    = var(--red)
     --rx-critlo  = rgba(229,72,77,.10)
     --rx-ok      = var(--green)
     --rx-oklo    = var(--greenbg)
   Строки: 2533 — конец файла
   ═══════════════════════════════════════════════════════════ */

/* ─── Локальные токены секции ─── */
.rx-wrap,
.rx-topbar,
.rx-warn-banner,
.rx-kpi-row,
.rx-filter-bar,
.rx-list-area,
.rx-list-header,
.rx-card,
.rx-modal-overlay,
.rx-mass-select-bar,
.rx-mass-layout,
.rx-mass-right,
.rx-upload-sheet,
.rx-warn,
.rx-sorts,
.rx-list,
.rx-row,
.rx-lhead,
.rx-msel,
.rx-up-ov,
.rx-hist,
.rx-fg,
.rx-cnt,
.rx-econ-note,
.rx-ord-btn {
  --rx-accent: #9ab813;
  --rx-aclo: rgba(154,184,19,.12);
  --rx-warn: #e8820c;
  --rx-warnlo: #fef0e0;
  --rx-crit: var(--red);
  --rx-critlo: rgba(229,72,77,.10);
  --rx-ok: var(--green);
  --rx-oklo: var(--greenbg);
  --rx-r-lg: 10px;
}
/* --rx-r (6px) убран — форма артикула (.rx-fv и т.д.) теперь на фикс. radius13 (геометрия .fv), см. ниже.
   Остальные rx-* элементы (.rx-btn/.rx-card/.rx-row/…) не трогаем — у них уже есть свой инлайн-фолбэк var(--rx-r, 6px). */

/* ─── Шапка раздела ─── */
.rx-topbar {
  height: 52px;
  background: var(--card);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  flex-shrink: 0;
}
.rx-topbar-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.01em;
}
.rx-topbar-meta {
  font-size: 12px;
  color: var(--muted);
}
.rx-topbar-space { flex: 1; }

/* ─── Кнопки (внутри Реестра) ─── */
.rx-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  height: 32px;
  border-radius: var(--rx-r, 6px);
  font-size: 13px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
}
.rx-btn:hover { opacity: .85; }
.rx-btn-primary { background: var(--rx-accent, #9ab813); color: #fff; }
.rx-btn-outline {
  background: transparent;
  border: 1.5px solid var(--line);
  color: var(--text);
}
.rx-btn-warn { background: var(--rx-warn, #e8820c); color: #fff; }

/* ─── Баннер свежести данных ─── */
.rx-warn-banner,
.rx-warn {
  background: var(--rx-warnlo, #fef0e0);
  border-bottom: 1px solid rgba(232,130,12,.30);
  padding: 7px 20px;
  font-size: 12px;
  color: #7a4a0a;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rx-warn-banner strong, .rx-warn b { font-weight: 700; }
.rx-warn-banner.rx-stale-amber {
  background: #fffbeb;
  border-color: rgba(245,158,11,.35);
  color: #92400e;
}

/* ─── KPI-строка ─── */
.rx-kpi-row {
  display: flex;
  gap: 12px;
  padding: 14px 20px 0;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.rx-kpi {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 14px;
  min-width: 120px;
  flex: 1;
  box-shadow: var(--shadow);
}
.rx-kpi-label,
.rx-kpi-l {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
}
.rx-kpi-val,
.rx-kpi-v {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  margin-top: 2px;
}
.rx-kpi-val.rx-crit, .rx-kpi-v.crit { color: var(--rx-crit, var(--red)); }
.rx-kpi-val.rx-warn, .rx-kpi-v.warn { color: var(--rx-warn, #e8820c); }
.rx-kpi-val.rx-ok, .rx-kpi-v.ok { color: var(--rx-ok, var(--green)); }

/* ─── Панель фильтров ─── */
.rx-filter-bar {
  padding: 12px 20px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  flex-shrink: 0;
}
.rx-search-box {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: var(--rx-r, 6px);
  padding: 0 12px;
  height: 34px;
  width: 320px;
  max-width: 100%;
  font-size: 13px;
  color: var(--text);
}
.rx-search-box input {
  border: none;
  outline: none;
  background: transparent;
  font-size: 13px;
  color: var(--text);
  width: 100%;
}
.rx-search-box input::placeholder { color: var(--muted); }
.rx-search-ico { color: var(--muted); font-size: 14px; }

/* ─── Чипы сортировок ─── */
.rx-sort-chips,
.rx-sorts {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.rx-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 11px;
  height: 30px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  background: var(--card2);
  color: var(--muted);
  border: 1.5px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s, color .12s;
  user-select: none;
}
.rx-chip:hover { background: var(--line); color: var(--text); }
.rx-chip.active {
  background: var(--text);
  color: #fff;
  border-color: var(--text);
}
.rx-chip-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--rx-crit, var(--red));
  flex-shrink: 0;
}
/* msg2464 R2: «По продажам»/«По дням запаса» уместились в ОДНУ кнопку-зону (не разные чипы-блоки) —
   один pill-контейнер с двумя сегментами и тонким разделителем; сегмент кликается 3-кликовым циклом
   (убыв → возр → сброс), активное направление — стрелкой ▼/▲ прямо в подписи сегмента. */
.rx-chip-combo {
  display: inline-flex;
  align-items: center;
  height: 30px;
  border-radius: 99px;
  background: var(--card2);
  overflow: hidden;
}
.rx-chip-seg {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 11px;
  font-size: 12px;
  font-weight: 600;
  background: transparent;
  color: var(--muted);
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s, color .12s;
  user-select: none;
}
.rx-chip-seg:hover { background: var(--line); color: var(--text); }
.rx-chip-seg.active {
  background: var(--text);
  color: #fff;
}
.rx-chip-sep {
  width: 1px; height: 16px;
  background: var(--line2, var(--line));
  flex: none;
}

/* ─── Зона списка ─── */
.rx-list-area {
  flex: 1;
  overflow-y: auto;
  padding: 0 20px 20px;
}
.rx-list-header,
.rx-lhead {
  display: grid;
  grid-template-columns: 24px 36px 1fr 80px 90px 90px 90px 90px 70px;
  gap: 0 12px;
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
  align-items: center;
  position: sticky;
  top: 0;
  background: var(--bg);
  z-index: 2;
}

/* ─── Строка-карточка артикула ─── */
.rx-card,
.rx-row {
  display: grid;
  grid-template-columns: 24px 36px 1fr 80px 90px 90px 90px 90px 70px;
  gap: 0 12px;
  align-items: center;
  padding: 8px 12px;
  background: var(--card);
  border-radius: var(--rx-r, 6px);
  margin-bottom: 3px;
  border: 1px solid var(--line);
  position: relative;
  cursor: pointer;
  transition: box-shadow .15s, border-color .15s;
}
.rx-card:hover, .rx-row:hover { box-shadow: var(--shadow); border-color: var(--line2); }

/* Семафорная полоса (4 модификатора) */
.rx-card::before,
.rx-row::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  border-radius: var(--rx-r, 6px) 0 0 var(--rx-r, 6px);
}
.rx-card.s-red::before, .rx-row.s-red::before { background: var(--rx-crit, var(--red)); }
.rx-card.s-orange::before, .rx-row.s-orange::before { background: var(--rx-warn, #e8820c); }
.rx-card.s-green::before, .rx-row.s-green::before { background: var(--rx-ok, var(--green)); }
.rx-card.s-grey::before, .rx-row.s-grey::before { background: var(--line2); }
/* псевдонимы для совместимости с мокапом */
.rx-card.s-crit::before, .rx-row.s-crit::before { background: var(--rx-crit, var(--red)); }
.rx-card.s-warn::before, .rx-row.s-warn::before { background: var(--rx-warn, #e8820c); }
.rx-card.s-ok::before, .rx-row.s-ok::before { background: var(--rx-ok, var(--green)); }
.rx-card.s-fine::before, .rx-row.s-fine::before { background: var(--line2); }

/* Чекбокс выбора */
.rx-cb input {
  width: 14px; height: 14px;
  cursor: pointer;
  accent-color: var(--rx-accent, #9ab813);
}

/* ─── Фото-слот 34×34 ─── */
.rx-thumb {
  width: 34px; height: 34px;
  border-radius: 4px;
  background: var(--card2);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--muted);
  flex-shrink: 0;
  border: 1px solid var(--line);
}
.rx-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rx-thumb.rx-no-photo, .rx-thumb.rx-empty { color: var(--faint); font-size: 9px; }

/* ─── Инфо-блок артикула ─── */
.rx-info { min-width: 0; }
.rx-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -.01em;
}
.rx-sub {
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ─── Числовые ячейки ─── */
.rx-num {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  text-align: right;
  color: var(--text);
}
.rx-num.muted { color: var(--muted); font-weight: 400; }
.rx-num.rx-disabled {
  color: var(--faint);
  opacity: .6;
  pointer-events: none;
}

/* ─── Бейдж «дней запаса» ─── */
.rx-days {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  min-width: 48px;
}
.rx-days.crit { background: var(--rx-critlo, rgba(229,72,77,.10)); color: var(--rx-crit, var(--red)); }
.rx-days.warn { background: var(--rx-warnlo, #fef0e0); color: var(--rx-warn, #e8820c); }
.rx-days.ok   { background: var(--rx-oklo, var(--greenbg)); color: var(--rx-ok, var(--green)); }
.rx-days.fine { background: var(--card2); color: var(--muted); }

/* ─── Бейдж маркетплейса ─── */
.rx-mp {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--card2);
  color: var(--muted);
}
.rx-mp.wb  { background: #e8f0fd; color: #2b5ccc; }
.rx-mp.oz  { background: #fbe8ff; color: #7c2da8; }

/* ─── Бейдж «⚡ срочно» ─── */
.rx-urgent,
.rx-urg {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  font-weight: 700;
  color: var(--rx-warn, #e8820c);
  white-space: nowrap;
}

/* ─── Теги типов товара ─── */
.rx-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: middle;
  margin-left: 4px;
}
.rx-tag-bra, .rx-tag.bra { background: #fbe8ff; color: #7c2da8; }
.rx-tag-pants, .rx-tag.pants { background: #e8f0fd; color: #1a4caa; }
.rx-tag-other { background: var(--card2); color: var(--muted); }

/* ─── Бейдж флага-заказа ─── */
.rx-order-flag {
  font-size: 11px;
  font-weight: 700;
  color: var(--rx-warn, #e8820c);
  white-space: nowrap;
}

/* ─── Модальное окно — карточка модели (слайд справа) ─── */
.rx-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26,26,24,.28);
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  z-index: 20;
}
.rx-modal {
  width: 680px;
  max-width: 98vw;
  height: 100%;
  background: var(--card);
  border-left: 1px solid var(--line);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow2);
}
.rx-modal-header {
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 16px;
  align-items: flex-start;
  flex-shrink: 0;
}

/* ─── Фото-слот карточки 80×80 ─── */
.rx-modal-photo {
  width: 80px; height: 80px;
  border-radius: 8px;
  background: var(--card2);
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: var(--muted);
  border: 1px solid var(--line);
  position: relative;
}
.rx-modal-photo-add {
  position: absolute;
  bottom: 0; right: 0;
  background: var(--rx-accent, #9ab813);
  color: #fff;
  width: 22px; height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  cursor: pointer;
}
.rx-modal-title { flex: 1; min-width: 0; }
.rx-modal-art-name {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.2;
}
.rx-modal-meta {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.rx-modal-status-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.rx-modal-close {
  width: 28px; height: 28px;
  border-radius: 6px;
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  cursor: pointer;
  color: var(--muted);
  flex-shrink: 0;
  background: none;
  transition: background .12s;
}
.rx-modal-close:hover { background: var(--card2); }

/* ─── Таблица размеров (горизонтальный скролл внутри) ─── */
.rx-sizes-wrap {
  padding: 0 24px;
  border-bottom: 1px solid var(--line);
}
.rx-sizes-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 12px 0 8px;
}
.rx-sizes-scroll { overflow-x: auto; }
.rx-sizes-tbl {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.rx-sizes-tbl th {
  text-align: right;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 5px 8px;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.rx-sizes-tbl th:first-child { text-align: left; }
.rx-sizes-tbl td {
  text-align: right;
  padding: 6px 8px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  font-weight: 500;
}
.rx-sizes-tbl td:first-child { text-align: left; font-weight: 700; }
.rx-sizes-tbl tr:last-child td { border-bottom: none; }
.rx-sizes-tbl tr:hover td { background: var(--card2); }
.rx-sz-light {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}
.rx-sz-light.crit { background: var(--rx-crit, var(--red)); }
.rx-sz-light.warn { background: var(--rx-warn, #e8820c); }
.rx-sz-light.ok   { background: var(--rx-ok, var(--green)); }

/* ─── Сворачиваемые блоки карточки (details/acc-паттерн) ─── */
.rx-acc {
  border-bottom: 1px solid var(--line);
}
.rx-acc-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  user-select: none;
  color: var(--text);
  background: transparent;
  transition: background .1s;
  list-style: none;
  border: none;
  width: 100%;
  text-align: left;
}
.rx-acc-head:hover { background: var(--card2); }
.rx-acc-icon { font-size: 15px; }
.rx-acc-hint {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 600;
}
.rx-acc-hint.warn { color: var(--rx-warn, #e8820c); }
.rx-acc-hint.ok   { color: var(--rx-ok, var(--green)); }
.rx-acc-hint.muted { color: var(--muted); }
.rx-acc-arrow {
  margin-left: auto;
  color: var(--muted);
  font-size: 11px;
  transition: transform .15s;
  flex-shrink: 0;
}
.rx-acc.open .rx-acc-arrow { transform: rotate(90deg); }
.rx-acc-body {
  padding: 0 24px 16px;
  display: none;
}
.rx-acc.open .rx-acc-body { display: block; }

/* ─── Сетка полей (2 колонки) ─── */
.rx-field-grid,
.rx-fg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.rx-field-item label,
.rx-fi label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.rx-field-val,
.rx-fv {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  padding: 6px 10px;
  background: var(--bg);
  border-radius: 13px;   /* геометрия как у .fv — единый стиль формы артикула, было var(--rx-r,6px) */
  border: 1px solid var(--line);
  min-height: 32px;
}
.rx-field-val.placeholder,
.rx-fv.placeholder {
  color: var(--muted);
  font-style: italic;
  font-weight: 400;
}
/* Серые заглушки экономики — видны, но выглядят неактивно */
.rx-field-val.rx-econ-stub,
.rx-fv.computed.grey {
  color: var(--faint);
  font-style: italic;
  font-weight: 400;
  opacity: .75;
  cursor: default;
  background: var(--card2);
}
.rx-field-val.computed,
.rx-fv.computed {
  color: var(--rx-accent, #9ab813);
  font-weight: 700;
  background: var(--rx-aclo, rgba(154,184,19,.12));   /* салатовая заливка расчётного поля */
  border-color: rgba(154,184,19,.30);
}
.rx-field-val.computed.red, .rx-fv.computed.red {
  color: var(--rx-crit, var(--red));
  background: var(--rx-critlo, rgba(229,72,77,.10));   /* отрицательная маржа — заливка тревоги, не «хорошего» салата */
  border-color: rgba(229,72,77,.30);
}
/* метка «авто» рядом с подписью расчётного поля (объём/маржа) */
.rx-auto-badge {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 7px;
  border-radius: 99px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  background: var(--rx-aclo, rgba(154,184,19,.12));
  color: var(--rx-accent, #9ab813);
  vertical-align: middle;
}

/* ─── Лента истории цен ─── */
.rx-hist-list, .rx-hist { list-style: none; }
.rx-hist-item,
.rx-hi {
  display: flex;
  gap: 10px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  background: var(--card);
  border-radius: var(--rx-r, 6px);
  margin-bottom: 3px;
  align-items: baseline;
}
.rx-hist-item:last-child, .rx-hi:last-child { border-bottom: none; margin-bottom: 0; }
.rx-hist-date,
.rx-hd {
  color: var(--muted);
  white-space: nowrap;
  font-size: 11px;
  flex-shrink: 0;
}
.rx-hist-ev,
.rx-he {
  flex: 1;
  color: var(--text);
  font-weight: 600;
}
/* стрелка old→new внутри текста истории */
.rx-hist-arrow {
  color: var(--muted);
  margin: 0 3px;
  font-size: 10px;
}
.rx-hist-who,
.rx-hw {
  color: var(--muted);
  font-size: 11px;
  flex-shrink: 0;
}

/* ─── Sparkline-обёртка ─── */
.rx-spark-wrap {
  margin-top: 10px;
  background: var(--card2);
  border-radius: var(--rx-r, 6px);
  border: 1px solid var(--line);
  padding: 10px 14px;
}
.rx-spark-label {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 6px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* ─── Режим масс-выбора ─── */
/* Подсветка выбранной строки */
.rx-card.rx-selected,
.rx-row.rx-on {
  border-color: var(--rx-accent, #9ab813);
  background: rgba(154,184,19,.06);
}

/* Нижняя sticky-панель массовых правок */
.rx-mass-select-bar,
.rx-msel {
  background: var(--text);
  color: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  font-size: 13px;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 10;
}
.rx-mass-select-bar .rx-count { font-weight: 700; }
.rx-mass-cancel-btn {
  font-size: 12px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: var(--rx-r, 6px);
  background: rgba(255,255,255,.15);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background .15s;
}
.rx-mass-cancel-btn:hover { background: rgba(255,255,255,.25); }
.rx-mass-apply-btn {
  font-size: 12px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: var(--rx-r, 6px);
  background: var(--rx-accent, #9ab813);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: opacity .15s;
}
.rx-mass-apply-btn:hover { opacity: .85; }
.rx-mass-space { flex: 1; }

/* ─── Раскладка экрана массовых правок ─── */
.rx-mass-layout {
  flex: 1;
  display: flex;
  overflow: hidden;
}
.rx-mass-list {
  flex: 1;
  overflow-y: auto;
  padding: 12px 16px;
}
.rx-mass-right {
  width: 340px;
  border-left: 1px solid var(--line);
  background: var(--card);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.rx-mass-right-head {
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  font-weight: 700;
}

/* ─── Поле-действие (массовое изменение) ─── */
.rx-field-action {
  padding: 14px 20px;
  border-bottom: 1px solid var(--line);
}
.rx-field-action label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.rx-field-action input,
.rx-field-action select {
  width: 100%;
  height: 34px;
  border: 1.5px solid var(--line);
  border-radius: var(--rx-r, 6px);
  padding: 0 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  background: var(--bg);
  outline: none;
}
.rx-field-action input:focus,
.rx-field-action select:focus {
  border-color: var(--rx-accent, #9ab813);
}

/* ─── Слоты выгрузки (2 × dashed, disabled-вид) ─── */
.rx-upload-sheet {
  margin: 14px 20px;
}
.rx-upload-slot,
.rx-up {
  border: 2px dashed var(--line2);
  border-radius: var(--rx-r-lg, 10px);
  padding: 18px 16px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s;
  margin-bottom: 10px;
  background: var(--card2);
  opacity: .65;
  pointer-events: none;
}
.rx-upload-slot.rx-ready {
  opacity: 1;
  pointer-events: auto;
  background: var(--card);
}
.rx-upload-slot.rx-ready:hover { border-color: var(--rx-accent, #9ab813); }
.rx-upload-slot-icon, .rx-up-ic { font-size: 22px; margin-bottom: 8px; }
.rx-upload-slot-title,
.rx-up-t {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--text);
}
.rx-upload-slot-sub, .rx-up-s { font-size: 11px; color: var(--muted); line-height: 1.5; }

/* ─── Разделитель секций ─── */
.rx-section-head {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 14px 20px 8px;
  border-bottom: 1px solid var(--line);
}

/* ─── МОБИЛА ≤560px — полная версия, не урезать! ─── */
@media (max-width: 560px) {

  /* KPI: 2 колонки × скролл */
  .rx-kpi-row {
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px 0;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .rx-kpi-row::-webkit-scrollbar { display: none; }
  .rx-kpi {
    min-width: 130px;
    flex: 1 1 calc(50% - 8px);
  }

  /* Чипы сортировок — горизонтальная лента со скроллом */
  .rx-filter-bar { padding: 10px 12px 8px; gap: 8px; }
  .rx-sort-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .rx-sort-chips::-webkit-scrollbar { display: none; }
  .rx-chip { flex-shrink: 0; }

  /* Поиск — полная ширина */
  .rx-search-box { width: 100%; }

  /* Шапка списка — скрыта на мобиле (заменяется карточкой) */
  .rx-list-header { display: none; }

  /* Строка-карточка: переход на двухстрочную раскладку */
  .rx-card {
    grid-template-columns: 24px 36px 1fr auto;
    grid-template-rows: auto auto;
    gap: 4px 8px;
    padding: 10px 10px 10px 12px;
  }
  /* чекбокс и фото — первая строка, колонка 1-2 */
  .rx-card .rx-cb  { grid-column: 1; grid-row: 1; }
  .rx-card .rx-thumb { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  /* название/подзаголовок */
  .rx-card .rx-info { grid-column: 3; grid-row: 1; }
  /* бейдж дней — первая строка справа */
  .rx-card .rx-days-cell { grid-column: 4; grid-row: 1; text-align: right; }
  /* числа (склад, продажи, к заказу) — вторая строка, колонка 3-4 */
  .rx-card .rx-nums-row {
    grid-column: 3 / 5;
    grid-row: 2;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
  }
  /* срочно + МП — вторая строка */
  .rx-card .rx-urgent { font-size: 10px; }

  /* Таблица размеров — горизонтальный скролл ВНУТРИ контейнера */
  .rx-sizes-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .rx-sizes-tbl { min-width: 400px; }

  /* Нижняя панель масс-правок — во всю ширину */
  .rx-mass-select-bar {
    padding: 10px 14px;
    font-size: 12px;
    flex-wrap: wrap;
    gap: 8px;
  }

  /* Панель правок — стековая */
  .rx-mass-layout { flex-direction: column; }
  .rx-mass-right {
    width: 100%;
    border-left: none;
    border-top: 1px solid var(--line);
  }

  /* Модальное окно — во всю ширину снизу/сбоку */
  .rx-modal { width: 100%; }
  .rx-field-grid { grid-template-columns: 1fr; }
  .rx-modal-header { padding: 14px 16px 12px; }
  .rx-acc-body { padding: 0 16px 14px; }
  .rx-sizes-wrap { padding: 0 16px; }
}

/* ═══════════════════════════════════════════════════════════
   СИНК-ВОЛНА 05.07 (вердикт 0704-reestr): короткие emit-классы
   Кодера-1 (app.js artRowRx/rxMassBar/rxCardBlocks/rxOpenUpload).
   Базовые стили подключены comma-join'ом выше; здесь — контекст
   реального DOM (#artList в section.view, не мокап-рамка) + новые
   элементы, которых в мокапе не было. Аддитивно.
   ═══════════════════════════════════════════════════════════ */

/* контейнер списка строк */
.rx-list { margin-top: 2px; }

/* правые колонки шапки списка */
.rx-lhead .rx-r,
.rx-list-header .rx-r { text-align: right; }

/* баннер свежести в потоке вкладки: скруглённая карточка, не edge-to-edge */
.rx-warn {
  border: 1px solid rgba(232,130,12,.30);
  border-radius: 11px;
  margin: 2px 0 10px;
  padding: 8px 12px;
  flex-wrap: wrap;
}
/* кнопка «Обновить выгрузкой» внутри баннера */
.rx-warn-up {
  margin-left: auto;
  flex-shrink: 0;
  background: var(--rx-warn, #e8820c);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s;
}
.rx-warn-up:hover { opacity: .85; }

/* KPI-строка и чипы в потоке вкладки: без мокапных отступов краёв */
.rx-kpi-row { padding: 0; margin: 0 0 10px; }
.rx-sorts { margin: 0 0 10px; }

/* контейнер чекбокса строки */
.rx-cb { display: flex; align-items: center; justify-content: center; }

/* тег НОВИНКА — тёплый жёлтый (конвенция app: новинка = жёлтая подсветка) */
.rx-tag.ip { background: #fdf3d0; color: #9a7b00; }

/* ─── Масс-панель (тёмная, над списком): поля инлайн, «Применить» — салат ─── */
.rx-msel {
  bottom: auto;
  top: 0;
  z-index: 11;
  border-radius: 11px;
  flex-wrap: wrap;
  margin: 0 0 8px;
}
/* липкая шапка списка ныряет под липкую масс-панель */
.rx-msel ~ .rx-lhead { top: 46px; }
.rx-msel .rx-fa {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  white-space: nowrap;
}
.rx-msel select,
.rx-msel input {
  height: 30px;
  border: none;
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-size: 12.5px;
  font-weight: 600;
  padding: 0 9px;
  outline: none;
  min-width: 0;
}
.rx-msel input { width: 130px; }
.rx-msel .rx-chip { background: rgba(255,255,255,.14); color: #fff; border-color: transparent; }
.rx-msel .rx-chip:hover { background: rgba(255,255,255,.24); color: #fff; }
.rx-msel .rx-chip.active {
  background: var(--rx-accent, #9ab813);
  border-color: var(--rx-accent, #9ab813);
  color: #fff;
}

/* ─── Карточка модели: счётчик заполненности, подсказка экономики, кнопка заказов ─── */
.rx-cnt { margin-left: 8px; font-size: 11px; font-weight: 700; }
.rx-cnt.warn { color: var(--rx-warn, #e8820c); }
.rx-cnt.ok   { color: var(--rx-ok, var(--green)); }

.rx-econ-note {
  margin-top: 10px;
  padding: 8px 11px;
  background: var(--rx-warnlo, #fef0e0);
  border-radius: 8px;
  font-size: 12px;
  color: #7a4a0a;
  line-height: 1.45;
}

.rx-ord-btn { border-color: var(--rx-accent, #9ab813); color: var(--rx-accent, #9ab813); font-weight: 700; }
.rx-ord-btn:hover { background: var(--rx-accent, #9ab813); color: #fff; border-color: var(--rx-accent, #9ab813); }

/* ─── Блок «Статус» формы артикула: хинт под тумблером «Новинка» ─── */
.art-status-hint { font-size: 11.5px; color: var(--muted); line-height: 1.5; margin-top: 10px; }

/* ─── История изменений формы артикула: свёрнутый по умолчанию аккордеон (нативный details) ─── */
.art-hist-acc > .art-hist-sum {
  list-style: none;
  cursor: pointer;
}
.art-hist-acc > .art-hist-sum::-webkit-details-marker { display: none; }
.art-hist-acc > .art-hist-sum::after {
  content: '▸';
  margin-left: auto;
  color: var(--muted);
  font-size: 11px;
  flex-shrink: 0;
  transition: transform .15s;
}
.art-hist-acc[open] > .art-hist-sum::after { transform: rotate(90deg); }

/* ─── Sheet выгрузки: fixed-оверлей (.on = показать) + карточка с 2 слотами ─── */
.rx-up-ov {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(23,26,33,.45);
  padding: 20px;
}
.rx-up-ov.on { display: flex; }
.rx-up-sheet {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow2);
  width: 100%;
  max-width: 460px;
  padding: 16px 18px 14px;
  max-height: 86vh;
  overflow-y: auto;
}
.rx-up-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 14.5px;
  margin-bottom: 12px;
}
.rx-up-slots { display: flex; flex-direction: column; gap: 10px; }
.rx-up { margin: 0; }
.rx-up[data-disabled] { opacity: .65; pointer-events: none; background: var(--card2); }
.rx-up:not([data-disabled]) { opacity: 1; pointer-events: auto; background: var(--card); }
.rx-up:not([data-disabled]):hover { border-color: var(--rx-accent, #9ab813); }
.rx-up-note { margin-top: 12px; font-size: 11.5px; color: var(--muted); line-height: 1.55; }

/* ─── Интерактивные хуки (data-rx-*) ─── */
[data-rx-open], [data-rx-sort], [data-rx-sel], [data-rx-mass],
[data-rx-apply], [data-rx-clearsel], [data-rx-upload],
[data-rx-upclose], [data-rx-orders] { cursor: pointer; }
[data-rx-apply][disabled] { opacity: .55; pointer-events: none; cursor: default; }

/* ─── МОБИЛА ≤560px — синк на реальный DOM (полная версия, данные не прячем) ─── */
@media (max-width: 560px) {

  /* десктоп-шапку колонок убираем — числа получают подписи в строке */
  .rx-lhead { display: none; }

  /* баннер: кнопка переносится вниз */
  .rx-warn-up { margin-left: 0; }

  /* чипы — горизонтальная лента */
  .rx-sorts {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .rx-sorts::-webkit-scrollbar { display: none; }
  .rx-sorts .rx-chip { flex-shrink: 0; }
  .rx-sorts .rx-chip-combo { flex-shrink: 0; }

  /* KPI 2×2: rx-kpi-row/rx-kpi матчатся, подгонка размера */
  .rx-kpi-row { gap: 8px; }
  .rx-kpi { min-width: calc(50% - 8px); flex: 1 1 calc(50% - 8px); padding: 9px 12px; }
  .rx-kpi-v, .rx-kpi-val { font-size: 19px; }

  /* строка-карточка: этаж 1 = чекбокс+фото+имя+дни, этаж 2 = все числа с подписями */
  .rx-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    padding: 10px 12px 10px 14px;
  }
  .rx-row > * { order: 2; }
  .rx-row > *:nth-child(1) { order: 0; flex: 0 0 auto; }
  .rx-row > div:first-child:empty { display: none; }
  .rx-row .rx-thumb { order: 0; }
  .rx-row .rx-info { order: 0; flex: 1 1 calc(100% - 175px); min-width: 0; }
  .rx-row > *:nth-child(7) { order: 1; flex: 0 0 auto; margin-left: auto; }
  .rx-row .rx-num { flex: 0 0 auto; text-align: left; font-size: 12.5px; }
  .rx-row .rx-urg { flex: 0 0 auto; font-size: 10.5px; }
  .rx-row .rx-urg:empty { display: none; }
  /* подписи к числам второго этажа (вместо скрытой шапки — НЕ прячем данные) */
  .rx-row > *:nth-child(5)::before { content: "склад "; font-size: 10px; font-weight: 600; color: var(--faint); }
  .rx-row > *:nth-child(6)::before { content: "прод/д "; font-size: 10px; font-weight: 600; color: var(--faint); }
  .rx-row > *:nth-child(8)::before { content: "заказ "; font-size: 10px; font-weight: 600; color: var(--faint); }

  /* масс-панель во всю ширину, поля стеком */
  .rx-msel {
    position: static;
    width: 100%;
    flex-wrap: wrap;
    gap: 8px 10px;
    padding: 10px 12px;
  }
  .rx-msel .rx-fa { flex: 1 1 100%; }
  .rx-msel select, .rx-msel input { flex: 1; width: auto; }

  /* карточка: сетка полей в 1 колонку; история переносится */
  .rx-fg { grid-template-columns: 1fr; }
  .rx-hi { flex-wrap: wrap; }

  /* sheet выгрузки — нижний лист во всю ширину */
  .rx-up-ov { align-items: flex-end; padding: 0; }
  .rx-up-sheet {
    max-width: none;
    border-radius: 16px 16px 0 0;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
}

/* ═══════════════════════════════════════════════════════════
   ГЛАВНОЕ 06.07: аккордеон-разворот первичной детализации артикула
   (паттерн A, эталон art_variant_a_final.png, Евгений одобрил).
   Клик по .rx-row → панель .rx-pd вставляется СИБЛИНГОМ под строкой
   в потоке .rx-list (не модалка) — read-only снимок, список не
   покидаем. Префикс rx-pd- (Первичная Детализация) — НЕ путать с
   уже существующим .rx-acc* (сворачиваемые блоки формы, др. фича).
   Палитра: крем/чёрный из активной темы (--card/--text), оранж
   #e07a00 (акцент действия/срочности, конвенция .art-days.warn),
   салат var(--rx-accent,#9ab813) (акцент бренда/ссылок).
   ═══════════════════════════════════════════════════════════ */

/* строка в открытом состоянии — визуально «стыкуется» с панелью снизу */
.rx-row.rx-open {
  margin-bottom: 0;
  border-radius: var(--rx-r-lg, 10px) var(--rx-r-lg, 10px) 0 0;
  border-color: var(--line2);
  box-shadow: var(--shadow);
}
.rx-chev { display: inline-block; margin-left: 6px; color: var(--faint); font-size: 9px; vertical-align: middle; }
.rx-row.rx-open .rx-chev { color: var(--rx-accent, #9ab813); }

/* панель первичной детализации */
.rx-pd {
  background: var(--card);
  border: 1px solid var(--line2);
  border-top: none;
  border-radius: 0 0 var(--rx-r-lg, 10px) var(--rx-r-lg, 10px);
  box-shadow: var(--shadow);
  margin-bottom: 3px;
  padding: 16px 18px 14px;
  animation: rxPdIn .16s ease;
}
@keyframes rxPdIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* шапка: фото + название/бейджи/ИП/пара артикулов */
.rx-pd-top { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 14px; }
.rx-pd-photo { position: relative; flex: none; }
.rx-pd-photo .art-thumb { width: 104px; height: 104px; border-radius: 12px; }
/* msg2464 (V5 §2): пустое фото — спокойная иконка-рамка на заливке карточки, НЕ диагональная штриховка
   базового .art-thumb.empty (styles.css выше) — та выглядит как «битая картинка»/техническая заглушка,
   тут — норма (133 из 134 моделей без фото). background переопределён специфичностью этого селектора. */
.rx-pd-photo .art-thumb.empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: 10.5px; color: var(--faint); text-align: center; padding: 6px; background: var(--card2); }
.rx-pd-photo .art-thumb.empty svg { opacity: .5; }
.rx-pd-photo .art-thumb.empty i { font-style: normal; }
/* фикс Сейджа: лупа поверх фото (эталон) — визуальная подсказка к зуму; клик ловит уже существующий глобальный хук на .art-thumb */
.rx-pd-zoom {
  position: absolute; right: -6px; bottom: -6px; width: 26px; height: 26px; border-radius: 50%;
  background: #fff; border: 1px solid var(--line); box-shadow: 0 3px 8px rgba(0,0,0,.28);
  display: flex; align-items: center; justify-content: center; font-size: 12px; line-height: 1;
  pointer-events: none;   /* клик проходит сквозь на img.art-thumb под ней */
}
.rx-pd-head { flex: 1; min-width: 0; }
.rx-pd-hrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rx-pd-title { font-size: 19px; font-weight: 800; letter-spacing: -.02em; color: var(--text); }
.rx-pd-badges { display: flex; align-items: center; gap: 7px; margin-left: auto; flex-wrap: wrap; }
.rx-pd-new {
  display: inline-flex; align-items: center; gap: 4px;
  background: #e07a00; color: #fff;
  font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 99px;
}
.rx-pd-light { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 99px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.rx-pd-light i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.rx-pd-light.red   { background: #fde8e8; color: #d92d20; }
.rx-pd-light.warn  { background: #fff1e0; color: #e07a00; }
.rx-pd-light.amber { background: #fef7e0; color: #b88600; }
.rx-pd-light.green { background: #e8f7ef; color: #1faa6b; }
.rx-pd-light.none  { background: var(--card2); color: var(--muted); }
.rx-pd-x {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: 13px; flex: none; transition: background .15s, color .15s;
}
.rx-pd-x:hover { background: var(--card2); color: var(--text); }
.rx-pd-ip { font-size: 12px; color: var(--muted); margin-top: 5px; }
.rx-pd-ip b { color: var(--text); font-weight: 700; }

/* блок статов (label+value тайлы) — переиспользуется ДВАЖДЫ (msg2464 V5, app.js: artAccPanel/artAccTagCard):
   вверху карточки для «Маркетплейс/Продаётся», и внутри КАЖДОЙ карточки-бирки для «Остаток ФФ/МП/Себестоимость».
   Изначально (фикс Евгения 06.07) был вынесен из .rx-pd-head рядом с фото — на мобильном терял ширину. */
.rx-pd-arts {
  display: flex; gap: 10px; margin-bottom: 14px; padding: 12px 16px;
  background: var(--card2); border-radius: 12px; flex-wrap: wrap;
}
.rx-pd-art { flex: 1; min-width: 140px; }
.rx-pd-art-l { display: block; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.rx-pd-art:first-child .rx-pd-art-l { color: var(--rx-accent, #9ab813); }
.rx-pd-art-v { font-size: 14.5px; font-weight: 800; color: var(--text); }
.rx-pd-tag {
  display: inline-block; background: var(--rx-accent, #9ab813); color: #fff;
  padding: 2px 10px; border-radius: 7px; font-size: 13px; font-weight: 800;
}

/* msg2464: старый «итог-герой» (хватит на N дней/продаётся/к заказу, фон rx-warnlo) убран V5 — модельный
   агрегат «хватит на 91 день» вводил в заблуждение (обе бирки видны рядом со своими днями, см. artAccPanel).
   Осталась только тихая строка-предупреждение, если худший размер модели красный (фикс Сейджа 06.07,
   перенесён на двухконцевой светофор — работает и для дефицита, и для пересорта симметрично). */
.rx-pd-heroflag { margin-bottom: 14px; }
.rx-pd-hero-crit { display: inline-flex; align-items: center; gap: 4px; font-style: normal; color: #d92d20; font-weight: 700; font-size: 12.5px; }

/* msg2464 R3/R4: размеры по бирке склада — вертикальный СТЕК карточек-бирок (rx-pd-grp), полная ширина,
   одна под другой (НЕ 2 колонки бок о бок — это была структура V5-мокапа ДО голосовой правки Евгения).
   Геометрия/палитра карточки-бирки и таблицы — по эстетик-спеке Музы (scratchpad/reestr_curve_spec.md
   §2.1/§2.2), классы .rx-tbl-* её именования, не переизобретаю. */
.rx-pd-sizes-h { font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; padding: 0 16px; }
.rx-pd-grp {
  margin-bottom: 16px;
  background: var(--card);
  border: 1px solid var(--line2);
  border-radius: 12px;
  overflow: hidden;   /* шапка не вылезает за скруглённые углы */
}
.rx-pd-grp:last-child { margin-bottom: 0; }
.rx-pd-grp.crit { border-color: rgba(217,45,32,.3); }
.rx-pd-grp-h {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: var(--accentsoft);
  padding: 12px 16px;
}
.rx-pd-grp-l { font-size: 12.5px; font-weight: 800; color: var(--text); }
.rx-pd-grp-n { font-size: 11.5px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.rx-pd-grp .rx-pd-arts { margin: 12px 16px 0; }
.rx-pd-grp-flag { padding: 10px 16px 0; }
.rx-pd-sz-empty { font-size: 12.5px; color: var(--faint); padding: 12px 16px; }

/* таблица размеров (мокап V5 слайд 4) — CSS grid (не flex): держит вертикальные линии колонок ровно на
   любом числе строк, это и есть ощущение «настоящей таблицы», не «вроде похоже на форму». */
.rx-tbl { background: var(--card); margin-top: 12px; }
.rx-tbl-head, .rx-tbl-row {
  display: grid; grid-template-columns: 72px 1fr 1fr auto; column-gap: 12px; align-items: center; padding: 0 16px;
}
.rx-tbl-head {
  padding-top: 8px; padding-bottom: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--muted);
  border-bottom: 1px solid var(--line);
}
.rx-tbl-head > span:nth-child(2), .rx-tbl-head > span:nth-child(3), .rx-tbl-head > span:nth-child(4) { text-align: right; }
.rx-tbl-row { padding-top: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); cursor: pointer; transition: background .12s; }
.rx-tbl-row:last-child { border-bottom: none; }
.rx-tbl-row:hover { background: var(--card2); }
.rx-tbl-row.open { background: var(--card2); border-bottom-color: var(--card2); }
.rx-tbl-c-size { font-size: 14px; font-weight: 800; color: var(--text); }
.rx-tbl-c-ff, .rx-tbl-c-mp { text-align: right; font-size: 13.5px; color: var(--text); font-variant-numeric: tabular-nums; }
.rx-tbl-c-ff.dash, .rx-tbl-c-mp.dash { color: var(--faint); font-weight: 400; }
.rx-tbl-c-days { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.rx-tbl-chev { color: var(--faint); font-size: 9px; transition: transform .15s, color .15s; }
.rx-tbl-row.open .rx-tbl-chev { color: var(--rx-accent, #9ab813); transform: rotate(180deg); }

/* msg2464 R5: клик по строке размера → SKU-факты + кривая (Муза §2.4) — тот же приём «панель-сиблинг» */
.rx-tbl-detail { padding: 14px 16px 16px; background: var(--card2); border-bottom: 1px solid var(--line); animation: rxPdIn .16s ease; }
.rx-tbl-detail:last-child { border-bottom: none; }
.rx-tbl-facts { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.rx-tbl-facts .rx-fv.mono { font-variant-numeric: tabular-nums; font-family: ui-monospace, "SF Mono", Menlo, monospace; }

/* msg2464 R5 — кривая-динамика (Муза §1). Токены/радиусы — 100% из живой палитры, новых hex нет. */
.rx-crv-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.rx-crv-lbl { font-size: 10.5px; font-weight: 700; color: var(--muted); }
.rx-crv-val { font-size: 12.5px; font-weight: 800; color: var(--text); font-variant-numeric: tabular-nums; }
.rx-crv-val i { font-style: normal; color: var(--muted); font-weight: 600; font-size: 11px; margin-left: 2px; }
.rx-crv-delta { font-weight: 700; font-size: 11px; color: var(--muted); margin-left: 6px; }   /* приглушённый: не дублируем цвет светофора */
.rx-crv-val-dash { color: var(--faint); font-weight: 600; }
.rx-crv-svg { display: block; width: 100%; height: 40px; }
.rx-crv-baseline { stroke: var(--faint); stroke-width: 1.5; stroke-dasharray: 4 4; stroke-linecap: round; }
.rx-crv-empty-cap { margin-top: 4px; font-size: 11px; color: var(--faint); text-align: center; }
.rx-crv-empty-cap span { color: var(--faint); }
.rx-crv-line { fill: none; stroke: var(--rx-accent, #9ab813); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rx-crv-area { stroke: none; }
.rx-crv-dot { fill: var(--rx-accent, #9ab813); stroke: var(--card2); stroke-width: 1.5; }

/* msg2464 R6 «гвоздь глубины»: модель одновременно в дефиците и в пересорте — actionable-бар, тёмный фон
   (как чёрная плашка в мокапе), одна строка на всю карточку, не на каждую бирку (не дублируем таблицы выше). */
.rx-pd-insight {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 14px; padding: 11px 16px; border-radius: 12px;
  background: #1c1c1c; color: #fff; font-size: 13px; font-weight: 600;
}
.rx-pd-insight b { font-weight: 800; }
.rx-pd-insight-sub { color: rgba(255,255,255,.62); font-weight: 500; font-size: 12px; }

/* футер: обновлено + Редактировать → полная форма (openArtModal, не трогаем) */
.rx-pd-foot { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.rx-pd-upd { font-size: 11.5px; color: var(--faint); font-style: italic; }
.rx-pd-edit {
  margin-left: auto; background: #e07a00; color: #fff;
  font-size: 13px; font-weight: 700; padding: 9px 16px;
  border-radius: 9px; transition: opacity .15s; flex: none;
}
.rx-pd-edit:hover { opacity: .87; }

@media (max-width: 560px) {
  .rx-pd { padding: 14px; }
  .rx-pd-top { gap: 12px; }
  .rx-pd-photo .art-thumb { width: 76px; height: 76px; border-radius: 10px; }
  .rx-pd-zoom { width: 22px; height: 22px; font-size: 10.5px; }
  .rx-pd-title { font-size: 16px; }
  .rx-pd-badges { margin-left: 0; width: 100%; order: 3; }
  /* msg2464 R5 (Муза §2.5): тот же брейкпоинт/значения, что у соседних rx-pd-* блоков — 4 колонки не схлопываем, помещаются и на 360px */
  .rx-pd-grp-h { padding: 10px 12px; }
  .rx-pd-grp .rx-pd-arts { margin: 10px 12px 0; }
  .rx-pd-grp-flag { padding: 8px 12px 0; }
  .rx-tbl-head, .rx-tbl-row { grid-template-columns: 56px 1fr 1fr auto; column-gap: 8px; padding: 0 12px; }
  .rx-tbl-head { padding-top: 6px; padding-bottom: 6px; }
  .rx-tbl-row { padding-top: 10px; padding-bottom: 10px; }
  .rx-tbl-detail { padding: 12px; }
  .rx-pd-insight { padding: 10px 12px; font-size: 12.5px; }
  .rx-pd-foot { flex-wrap: wrap; }
  .rx-pd-edit { margin-left: 0; width: 100%; text-align: center; }
}

/* ═══════════ Раздел «Команда» v2 (префикс tm2-, wave2 0607, мокап _mock_team2.html) ═══════════ */
/* Живой дашборд: шапка-сводка + карта векторов + пульс с бейджами модели + лента циклов.       */
/* Цвета тиров семантичны (amber Fable/Opus · салат/зелёный Sonnet · серый Haiku), фон/линии — токены темы. */

/* ── Шапка-сводка ── */
.tm2-header{background:var(--card);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);margin:2px 0 14px}
.tm2-header-top{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.tm2-lab{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.tm2-title{font-size:18px;font-weight:800;letter-spacing:-.3px;color:var(--text);margin-top:2px}
.tm2-chips{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}
.tm2-chip{display:inline-flex;align-items:center;gap:5px;border-radius:9px;padding:4px 10px;font-size:12px;font-weight:700}
.tm2-chip-fable{background:rgba(124,60,20,.10);color:#7a3a00}
.tm2-chip-opus{background:rgba(122,74,0,.11);color:#7a4a00}
.tm2-chip-sonnet{background:var(--greenbg);color:#0c6930}
.tm2-chip-haiku{background:var(--card2);color:var(--muted)}
.tm2-cdot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.tm2-cdot-fable{background:#c05a14}
.tm2-cdot-opus{background:#7a4a00}
.tm2-cdot-sonnet{background:var(--green)}
.tm2-cdot-haiku{background:var(--faint)}
.tm2-today-row{display:flex;align-items:center;gap:16px;padding-top:11px;border-top:1px solid var(--line);flex-wrap:wrap}
.tm2-today-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.tm2-today-item b{color:var(--text);font-weight:800;font-variant-numeric:tabular-nums}
.tm2-live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:tm2pulse 1.8s infinite;flex:none}
@keyframes tm2pulse{0%{box-shadow:0 0 0 0 rgba(31,170,107,.5)}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}

/* ── Двухколонная сетка ── */
.tm2-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:820px){.tm2-body{grid-template-columns:1fr}}
.tm2-sec{display:flex;flex-direction:column;gap:11px;min-width:0}
.tm2-sec-label{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 4px;margin-bottom:-3px}

/* ── Карта векторов ── */
.tm2-vectors{background:var(--card);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.tm2-vecs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.tm2-vecs-title{font-size:13px;font-weight:800;color:var(--text)}
.tm2-vecs-meta{font-size:11.5px;color:var(--faint);font-weight:600}
.tm2-vec{padding:12px 14px;border-radius:13px;background:var(--card2);margin-bottom:8px}
.tm2-vec:last-child{margin-bottom:0}
.tm2-vec-active{background:var(--accentsoft);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent)}
.tm2-vec-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tm2-vec-ic{font-size:14px;flex:none}
.tm2-vec-name{font-size:13.5px;font-weight:800;letter-spacing:-.1px;color:var(--text);flex:1;min-width:0}
.tm2-vec-badge{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:3px 7px;border-radius:6px;white-space:nowrap}
.tm2-badge-active{background:var(--bluebg);color:#1d4ed8}
.tm2-badge-idle{background:var(--card);color:var(--muted);border:1px solid var(--line)}
.tm2-vec-desc{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}
.tm2-vec-prog{margin-top:9px;height:4px;background:color-mix(in srgb,var(--accent) 16%,transparent);border-radius:3px;overflow:hidden}
.tm2-vec-prog i{display:block;height:100%;background:var(--accent);border-radius:3px}
.tm2-vec-cyc{font-size:11px;color:var(--muted);margin-top:6px;font-weight:600}
.tm2-vec-ghost{border:1.5px dashed var(--line2);background:transparent;opacity:.72}
.tm2-vec-ghost .tm2-vec-name{color:var(--faint)}
.tm2-vec-ghost .tm2-vec-ic{opacity:.6}

/* ── Пульс команды v2 (компактные карточки с бейджем модели) ── */
.tm2-pulse{background:var(--card);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.tm2-pulse-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.tm2-pulse-title{font-size:13px;font-weight:800;color:var(--text)}
.tm2-pulse-meta{font-size:11px;color:var(--faint);font-weight:600}
.tm2-bots{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.tm2-bot{position:relative;background:var(--card2);border-radius:12px;padding:9px 10px;cursor:pointer;transition:background .15s;min-width:0}
.tm2-bot:hover{background:var(--line)}
.tm2-bot-top{display:flex;align-items:center;gap:7px;margin-bottom:5px;padding-right:26px}
.tm2-bot-pen{position:absolute;top:0;right:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:0 12px;color:var(--faint);font-size:14px;line-height:1;cursor:pointer;transition:.12s;z-index:2;padding:0}
.tm2-bot-pen:hover{background:var(--accentsoft);color:var(--accent)}
.tm2-bot-pen:active{transform:scale(.92)}
.tm2-bot-av{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;color:#fff;flex:none}
.av-fable{background:linear-gradient(135deg,#8a3d10,#c8641a)}
.av-opus{background:linear-gradient(135deg,#7a4a00,#c47d00)}
.av-sonnet{background:linear-gradient(135deg,#0c6930,#1faa6b)}
.av-haiku{background:linear-gradient(135deg,#4a5568,#6b7280)}
.av-guest{background:linear-gradient(135deg,#9aa0ab,#c5cad8)}
.tm2-bot-id{min-width:0}
.tm2-bot-name{font-size:12.5px;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm2-bot-model{font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:4px;margin-top:1px}
.model-fable{color:#a84e10}
.model-opus{color:#7a4a00}
.model-sonnet{color:#0c6930}
.model-haiku{color:var(--faint)}
.model-guest{color:var(--faint)}
.tm2-mdot{width:6px;height:6px;border-radius:50%;flex:none}
.dot-fable{background:#c05a14}
.dot-opus{background:#7a4a00}
.dot-sonnet{background:var(--green)}
.dot-haiku{background:var(--faint)}
.dot-guest{background:var(--faint)}
.tm2-bot-status{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm2-bot-last{font-size:10.5px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm2-bot-active .tm2-bot-status{color:var(--blue);font-weight:700}
.tm2-bot-active .tm2-bot-av{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent)}
.tm2-bot-guest{opacity:.55}
/* retryfix 05.08: третье состояние карточки — «упал на задаче». Раньше упавший агент
   рисовался ровно как отработавший (серое «свободен») и провал был не виден вовсе. */
.tm2-bot-failed .tm2-bot-status{color:var(--red);font-weight:700}
.tm2-bot-failed .tm2-bot-status::before{content:'⛔ '}
.tm2-bot-failed .tm2-bot-av{box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 45%,transparent)}
.tm2-bot-failed{border-left:2px solid var(--red)}

/* ── Лента циклов ── */
.tm2-feed{background:var(--card);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.tm2-feed-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.tm2-feed-title{font-size:13px;font-weight:800;color:var(--text)}
.tm2-cycle-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.tm2-cycle-row:first-child{border-top:none;padding-top:0}
.tm2-cycle-ic{font-size:14px;flex:none}
.tm2-cycle-body{flex:1;min-width:0}
.tm2-cycle-name{font-size:12.5px;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm2-cycle-meta{font-size:11px;color:var(--muted);margin-top:1px}
.tm2-cycle-right{text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end}
.tm2-cycle-score{font-size:12px;font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
.tm2-cycle-date{font-size:11px;color:var(--faint);font-weight:600}

/* ── Нить команды: слим-заголовок над лентой раундов/чатом ── */
.tm2-body + .team-head{margin-top:14px}

/* ── Мобила ≤560px (по мокапу: тир-чипы переносятся, пульс 2 колонки) ── */
@media(max-width:560px){
  .tm2-header{padding:14px 15px}
  .tm2-title{font-size:16px}
  .tm2-chips{margin-left:0;margin-top:8px;width:100%}
  .tm2-today-row{gap:12px}
  .tm2-today-item{font-size:12px}
  .tm2-bots{grid-template-columns:repeat(2,1fr)}
  .tm2-vectors,.tm2-pulse,.tm2-feed{padding:14px 15px}
}
@media(max-width:380px){
  .tm2-bots{grid-template-columns:1fr}
}

/* ═══════════ Команда 1/2 + 🌉 Мост (префикс brg-, вектор «вторая команда» 07.07) ═══════════ */
/* Переключатель #teamVtabs — реюз .vtabs (как #artTabs), 1 своя строка: К2 активный тонируется синим (--blu2d). */
.vtabs b.on.vt-team2{color:var(--blu2d)}

/* ── Мост: карта владения сверху ── */
.brg-own{margin-bottom:12px}
.brg-own-row{display:flex;flex-wrap:wrap;gap:8px}
.brg-lock-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9px;font-size:12px;font-weight:700;white-space:nowrap}
.brg-lock-chip.t1{background:var(--accentsoft);color:var(--accent);border:1px solid rgba(154,184,19,.28)}
.brg-lock-chip.t2{background:var(--blu2soft);color:var(--blu2d);border:1px solid var(--blu2)}
.brg-wait-chip{margin-left:2px;padding:5px 10px;font-size:11px}

/* ── 3 колонки: Пульс К1 · лента · Пульс К2 ── */
.brg-cols{display:grid;grid-template-columns:1fr 2fr 1fr;gap:14px;align-items:start}
.brg-col{background:var(--card);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);min-width:0}
.brg-col-h{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 11px;display:flex;align-items:center;gap:7px}
summary.brg-col-h{cursor:pointer;list-style:revert}
.brg-col-h .brg-dot{width:8px;height:8px;border-radius:50%;flex:none}
.brg-col-t1 .brg-dot{background:var(--accent)}
.brg-col-t2 .brg-dot{background:var(--blu2d)}
.brg-col-n{color:var(--muted);font-weight:700;margin-left:auto}

/* ── мини-пульс боковых колонок (реюз tm2-bot-av/av-* — аватары тиров НЕ трогаем) ── */
.brg-mini{display:flex;flex-direction:column;gap:5px}
.brg-mbot{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:var(--card2);cursor:pointer;transition:background .15s}
.brg-mbot:hover{background:var(--line)}
.brg-mbot-nm{font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.brg-mbot-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none;animation:tm2pulse 1.8s infinite}

/* ── лента моста: 3 типа строк ── */
.brg-feed{max-height:540px;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding-right:2px}
.brg-row{display:flex;width:100%}
.brg-row-msg.t1{justify-content:flex-start}
.brg-row-msg.t2{justify-content:flex-end}
.brg-row-evg,.brg-row-sys{justify-content:center}
.brg-bubble{max-width:84%;padding:9px 13px;border-radius:16px;box-shadow:var(--shadow)}
.brg-bubble.t1{background:var(--accentsoft);border:1px solid rgba(154,184,19,.28);border-bottom-left-radius:5px}
.brg-bubble.t2{background:var(--blu2soft);border:1px solid var(--blu2);border-bottom-right-radius:5px}
.brg-bmeta{font-size:11px;color:var(--faint);margin-bottom:3px;font-weight:600;display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.brg-bubble.t1 .brg-bmeta b{color:var(--accent)}
.brg-bubble.t2 .brg-bmeta b{color:var(--blu2d)}
.brg-barrow{opacity:.75}
.brg-bkind{text-transform:uppercase;font-size:9px;letter-spacing:.05em;background:rgba(20,24,20,.07);padding:1px 6px;border-radius:5px}
.brg-btext{font-size:13.5px;line-height:1.45;color:var(--text);word-wrap:break-word;overflow-wrap:anywhere}
.brg-sys-chip{font-size:11.5px;color:var(--muted);background:var(--card2);border-radius:20px;padding:5px 13px;font-weight:600;text-align:center}

/* ── мобила ≤820px: 1 колонка, лента — главная (наверх), мини-пульсы — свёрнутые аккордеоны под ней ── */
@media(max-width:820px){
  .brg-cols{grid-template-columns:1fr}
  .brg-col-feed{order:-1}
}

/* ═══════════════════════════════════════════════════════════
   ПОДБОР ЗАКАЗА (Заказ Китай, блок 6, вердикт msg2330 / доска zk-impl 08.07)
   Задача Евгения: голая таблица → карточки как в Реестре (фото + остаток +
   светофор + рекомендация + кол-во), сперва ПРАКТИЧНО, потом красиво.
   Паттерн — тот же, что у Реестра (.rx-row/.rx-card, см. ~2543 выше):
     · тот же грид-приём фото|инфо|правая часть,
     · тот же приём семафорной полосы слева (::before), с ТЕМИ ЖЕ именами
       состояний s-crit/s-warn/s-ok/s-fine (в файле нигде не встречаются
       голыми — только в паре с .rx-card/.rx-row, поэтому компоновать их
       заново с .pick-card ниже безопасно: коллизий нет, второй словарь
       состояний не заводим),
     · тот же мобильный разворот грида в 2 строки — БЕЗ горизонтального
       скролла (в отличие от старой формы-таблицы).
   Разметку рендерит APP-кодер (волна zk-impl); здесь только классы.
   Токены — салат var(--accent)/var(--accentsoft), тема живого UI (НЕ
   бумага/оранж card-style-standard — это для других разделов, тут грабли
   были с оранжем в живом UI, см. память).
   Цвета светофора взяты 1-в-1 как у rx-warn/rx-crit/rx-ok (визуальное
   совпадение с Реестром), без правки самих rx-правил.
   ═══════════════════════════════════════════════════════════ */

/* ─── Локальные токены секции (значения как у Реестра — пиксель-в-пиксель) ───
   .pick-picker включён, чтобы точки/бейджи в списке кандидатов реестра тоже получали цвет светофора (иначе var() без фолбэка → прозрачно). */
.pick-wrap, .pick-list, .pick-card, .pick-picker, .pick-results, .pick-res-row {
  --pick-crit: var(--red);
  --pick-critlo: rgba(229,72,77,.10);
  --pick-warn: #e8820c;
  --pick-warnlo: #fef0e0;
  --pick-ok: var(--green);
  --pick-oklo: var(--greenbg);
}

/* ─── Обёртка экрана + список карточек ─── */
.pick-wrap { display: flex; flex-direction: column; gap: 10px; }
.pick-list { display: flex; flex-direction: column; gap: 8px; }
/* пустой список — переиспользовать общий .empty, свой класс не заводим */

/* ─── Карточка позиции подбора — КОМПАКТНАЯ (практично: заказ бывает 100+ позиций) ───
   ⚠️ Живёт ТОЛЬКО в модалке заказа (.sheet ≤480px). Раскладка компактная ПО УМОЛЧАНИЮ
   (media на вьюпорт ширину модалки не ловит). ~90px высотой (в 5× ниже старой): фото + [артикул/мета] +
   [предложено/кол-во] в 2 плотные строки; вторичное (наборы/цена/сроки) — под клик <details>, высоту не ест.
   Артикул целиком, числа в строку, светофор, салат-тема. Виден с ходу: артикул+остаток+предложено+кол-во. */
.pick-card {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  grid-template-areas:
    "photo name reco"
    "photo meta qty"
    "foot  foot foot";
  gap: 2px 11px;
  padding: 9px 13px 8px 16px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  transition: box-shadow .15s, border-color .15s;
}
.pick-card:hover { border-color: var(--line2); box-shadow: var(--shadow2); }
.pick-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  border-radius: 12px 0 0 12px;
}
.pick-card.s-crit::before { background: var(--pick-crit); }
.pick-card.s-warn::before { background: var(--pick-warn); }
.pick-card.s-ok::before   { background: var(--pick-ok); }
.pick-card.s-fine::before { background: var(--line2); }

/* фото 44 — слева, по центру высоты */
.pick-thumb {
  grid-area: photo; align-self: center;
  width: 44px; height: 44px;
  border-radius: 8px;
  background: var(--card2);
  border: 1px solid var(--line);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  color: var(--faint); font-size: 9px; text-align: center; flex-shrink: 0;
}
.pick-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pick-thumb.pick-no-photo { color: var(--faint); }

/* артикул ЦЕЛИКОМ (перенос, не обрез) */
.pick-name {
  grid-area: name; align-self: center; min-width: 0;
  font-size: 13.5px; font-weight: 800; color: var(--text); letter-spacing: -.01em;
  line-height: 1.24; overflow-wrap: anywhere;
}
.pick-name-sz { color: var(--muted); font-weight: 700; }

/* мета: точка + остаток + продажи/дни — числа в строку (nowrap) */
.pick-meta {
  grid-area: meta; align-self: center; min-width: 0;
  display: flex; align-items: center; flex-wrap: wrap; gap: 3px 7px;
  font-size: 11.5px; color: var(--muted);
}
.pick-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pick-dot.s-crit { background: var(--pick-crit); }
.pick-dot.s-warn { background: var(--pick-warn); }
.pick-dot.s-ok   { background: var(--pick-ok); }
.pick-dot.s-fine { background: var(--line2); }
.pick-stock {
  display: inline-flex; align-items: center;
  padding: 1px 8px; border-radius: 999px;
  font-size: 11.5px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap;
  color: var(--text); background: var(--card2);
}
.pick-stock.s-crit { background: var(--pick-critlo); color: var(--pick-crit); }
.pick-stock.s-warn { background: var(--pick-warnlo); color: var(--pick-warn); }
.pick-stock.s-ok   { background: var(--pick-oklo); color: var(--pick-ok); }
.pick-sales { white-space: nowrap; }

/* «предл. N» — компактный салат-пилюль, справа сверху */
.pick-reco {
  grid-area: reco; align-self: center; justify-self: end;
  display: inline-flex; align-items: baseline; gap: 4px;
  padding: 3px 10px; border-radius: 999px;
  background: var(--accentsoft); color: var(--accent);
  font-size: 11px; font-weight: 700; white-space: nowrap;
}
.pick-reco-lbl { font-weight: 600; opacity: .82; }
.pick-reco-val { font-size: 13px; font-weight: 800; }
.pick-reco-none {
  grid-area: reco; align-self: center; justify-self: end;
  padding: 3px 10px; border-radius: 999px;
  background: var(--card2); color: var(--muted); font-size: 11px; font-weight: 700;
}

/* кол-во — компактный степпер, справа снизу */
.pick-qty { grid-area: qty; align-self: center; justify-self: end; display: flex; align-items: center; gap: 5px; }
.pick-qty-btn {
  width: 26px; height: 26px;
  border-radius: 7px;
  border: 1px solid var(--line2);
  background: var(--card2);
  color: var(--text);
  font-size: 15px; font-weight: 700; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; user-select: none; flex: none;
  transition: border-color .15s, color .15s, background .15s;
}
.pick-qty-btn:hover { border-color: var(--accent); color: var(--accent); }
.pick-qty-btn:active { transform: scale(.92); }
.pick-qty-input {
  width: 56px; text-align: center;
  font-size: 13.5px; font-weight: 800; font-variant-numeric: tabular-nums;
  color: var(--text); background: var(--card2);
  border: 1px solid var(--line2); border-radius: 8px; padding: 5px 3px;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pick-qty-input:focus { border-color: var(--accent); background: #fff; box-shadow: 0 0 0 3px var(--accentsoft); outline: none; }
.pick-qty-input.pick-edited { border-color: var(--accent); background: var(--accentsoft); }
.pick-qty-unit { font-size: 10.5px; color: var(--muted); font-weight: 600; }

/* ─── Подвал: тонкая строка — раскрытие «детали» (наборы/цена/сроки) + удалить. Свёрнуто = ~20px, высоту не ест ─── */
.pick-foot { grid-area: foot; display: flex; align-items: flex-start; gap: 10px; margin-top: 2px; }
.pick-extra { flex: 1; min-width: 0; }
.pick-extra > summary {
  cursor: pointer;
  list-style: revert;
  user-select: none;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 700;
  white-space: nowrap;
  padding: 2px 0;
}
.pick-extra > summary:hover { color: var(--accent); }
.pick-extra-hint { color: var(--faint); font-weight: 600; }
.pick-extra[open] > summary { margin-bottom: 8px; }
.pick-extra-body { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pick-xf {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; color: var(--muted); font-weight: 600; white-space: nowrap;
}
.pick-xf .fv.sm { width: 74px; padding: 5px 7px; font-size: 12px; }
.pick-track-row { display: flex; flex-wrap: wrap; gap: 8px 12px; width: 100%; }
.pick-del {
  flex: none;
  border: none; background: none;
  color: var(--faint); font-size: 13px;
  cursor: pointer; padding: 3px 7px; border-radius: 7px; line-height: 1;
  transition: color .12s, background .12s;
}
.pick-del:hover { color: var(--red); background: var(--redbg); }
.pick-note-missing { font-size: 11px; color: var(--rx-warn, #e8820c); font-weight: 700; white-space: nowrap; }
/* locked — приглушить состав (сроки/получено остаются редактируемыми) */
.pick-card.pick-locked .pick-name { color: var(--muted); }

/* совсем узко (≤380px, телефон в упор): фото и инпут чуть меньше */
@media (max-width: 380px) {
  .pick-card { grid-template-columns: 40px minmax(0,1fr) auto; gap: 2px 9px; padding: 9px 11px 8px 15px; }
  .pick-thumb { width: 40px; height: 40px; }
  .pick-qty-input { width: 50px; }
  .pick-xf .fv.sm { width: 68px; }
}

/* ═══════════ Подбор заказа — реализация (блоки 2+6): выбор из реестра + вторичные поля позиции ═══════════
   Дополняет базовые .pick- выше. Тема — салат var(--accent)/var(--accentsoft). Реализация Музы (app.js ordItemRow/pickResultsHtml). */

/* ─── Блок 2: панель выбора артикула ИЗ РЕЕСТРА (поиск + карточки-кандидаты) ─── */
.pick-picker { margin: 2px 0 12px; }
.pick-results {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 288px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.pick-res-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 10px;
  border-radius: 10px;
  background: var(--card2);
  border: 1px solid transparent;
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.pick-res-row:hover { border-color: var(--accent); background: var(--accentsoft); }
.pick-res-thumb {
  width: 30px; height: 30px;
  border-radius: 7px;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  color: var(--faint);
}
.pick-res-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pick-res-name {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pick-res-sz { color: var(--muted); font-weight: 600; }
.pick-res-type {
  font-size: 10px;
  font-weight: 700;
  color: var(--faint);
  text-transform: uppercase;
  letter-spacing: .03em;
}
.pick-res-reco { font-size: 12.5px; font-weight: 800; color: var(--accent); white-space: nowrap; }
.pick-res-plus { font-size: 17px; font-weight: 800; color: var(--accent); flex: none; line-height: 1; }
.pick-res-empty { padding: 16px 12px; text-align: center; color: var(--muted); font-size: 13px; }
/* «Вся команда»: доп.кружок в тесном чипе не должен ломать ряд — .eb-x (стр.393)
   без min-width:0 не сжимался под соседа-флекс-айтем (обрез становился «жёстким»,
   без «…»). .eb уже режет overflow снаружи (стр.390) — регресса по ширине нет,
   только более аккуратный обрез текста рядом с кружком. */

/* ── .cal-overdue — маркер просрочки, доп.класс поверх .mcell/.drag-task/.wl-card/
   .mp-t/.t/.eb. Одно кодирование цветом (принцип В3 №2) — hairline-полоска слева
   (border-left), а НЕ box-shadow (у .drag-task/.wl-card уже занят var(--shadow)/
   .tod-свечением — было бы наложение) и НЕ абсолютный дот (top-right в .mcell уже
   занят .d/.madd, а .wl-card/.mpop — overflow:hidden, выступ обрежется).
   border-left — отдельное под-свойство border, не спорит с border-color/box-shadow
   модификаторов .today/.tod/.pri-* — оба сигнала читаются одновременно. Приём уже
   в файле: .t.pri-high (стр.1517), .tgev (стр.596). Специфичность 2 класса — как у
   .mcell.today/.wl-card.tod, тай-брейк по порядку в каскаде (этот блок — в конце
   файла, то есть позже) отдаёт левый край нам, остальные 3 стороны — модификатору.
   Фикс-B (09.07, фиксер): .t.cal-overdue отсутствовал в контракте — корневой класс
   строки taskRow() это .t (app.js стр.506), не .wl-card/.drag-task; JS вешает класс
   cal-overdue классом на этот же .t (был пустой <span> внутри — 0 высоты во flex-ряду,
   border-left нечего было рисовать). Правило добавлено тем же приёмом, что выше —
   побеждает .t.pri-high/.pri-urg/.pri-norm по порядку каскада (этот блок в конце файла). */
.cal-overdue,
.mcell.cal-overdue,.drag-task.cal-overdue,.wl-card.cal-overdue,.mp-t.cal-overdue,.t.cal-overdue,.eb.cal-overdue{
  border-left:3px solid var(--red-over)
}

/* ===== Контроль качества v2 (13.07) — дашборд отзывов + список моделей + карточка + пикер артикула =====
   Функциональная база (Форж, гибрид B+C утв. Евгением msg2483). 13.07 после QA Виджила — точечные
   фиксы списка по спеке Музы (scratchpad/qc_ui_spec.md): формат рейтинга N,NN / тип-тег всегда /
   --qc-grid анти-дрейф колонок / tabular-nums везде. Полный переход строки на её .rx-row/.qc-row/
   .qc-rating/.qc-status разметку НЕ сделан осознанно: голый .rx-row на мобильной раскладке Реестра
   (styles.css ~3878-3897) несёт позиционные nth-child хаки («склад »/«прод/д »/«заказ » по номеру
   ребёнка) — у 5-колоночной QC-строки это протекло бы мусорным текстом в чужие ячейки. Оставлен
   класс .qc-mrow, но 4 принципа спеки применены к нему 1:1 (см. также --qc-grid ниже). */
#qcBox{--qc-grid: 44px 1.3fr 90px 1.6fr 22px}
.qc-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}
.qc-hero .adash-kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.qc-hero .adash-kpi i{font-size:11.5px;color:var(--muted);font-style:normal;font-weight:600}
.qc-hero .adash-kpi b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--text)}
.qc-setdef{margin:0 0 12px}
.qc-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.qc-panel-h{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;margin-bottom:10px}
.qc-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.qc-hbar{margin-bottom:10px}
.qc-hbar:last-child{margin-bottom:0}
.qc-hbar-row{margin-bottom:10px;cursor:pointer}
.qc-hbar-row:last-child{margin-bottom:0}
.qc-hbar-row:hover .qc-hbar-l{text-decoration:underline}
.qc-hbar-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;font-size:12.5px;margin-bottom:3px;gap:4px 8px}
.qc-hbar-l{font-weight:700;color:var(--text)}
.qc-hbar-n{color:var(--faint);font-size:11px;font-weight:500}
.qc-hbar-v{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);flex:none}
.qc-hbar-track{height:9px;background:var(--card2);border-radius:6px;overflow:hidden}
.qc-hbar-fill{height:100%;border-radius:6px;transition:width .3s ease}
.qc-hbar-fill.gray{background:var(--faint,#c7c7c7)}
.qc-hbar-fill.crit{background:var(--red)}
.qc-hbar-fill.s5{background:var(--green)}
.qc-hbar-fill.s4{background:#8fb93a}
.qc-hbar-fill.s3{background:var(--faint,#c7c7c7)}
.qc-hbar-fill.s2{background:#e0a458}
.qc-hbar-fill.s1{background:var(--red)}
.qc-note{font-size:11px;color:var(--faint);margin-top:9px;line-height:1.4}
.qc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 10px}
.qc-toolbar select{border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);font-size:12.5px;padding:6px 10px;font-weight:600}
.qc-toolbar .fchips{margin:0}
.qc-toolbar .fchip{background:var(--card)}
.qc-mhead,.qc-mrow{display:grid;grid-template-columns:var(--qc-grid, 44px 1.3fr 90px 1.6fr 22px);align-items:center;gap:10px;padding:10px 14px}
.qc-mhead{padding:0 14px;height:30px;font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.02em}
.qc-mh-rate{text-align:right}
.qc-mlist{display:flex;flex-direction:column;gap:6px}
.qc-mrow{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s}
.qc-mrow:hover{border-color:var(--accent)}
.qc-mrow.open{border-color:var(--accent)}
.qc-mrow.sem-red{border-left-color:var(--red)}
.qc-mrow.sem-amber{border-left-color:var(--peachd,#c47a3c)}
.qc-mrow.sem-green{border-left-color:var(--green)}
.qc-m-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--card2)}
.qc-m-thumb.empty{display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--faint)}
.qc-m-name{font-weight:700;font-size:13.5px;color:var(--text)}
.qc-m-sub{font-size:11.5px;color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}
.qc-m-rate{font-variant-numeric:tabular-nums;font-weight:800;font-size:15px;text-align:right;color:var(--text)}
.qc-m-flag{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.qc-m-chev{color:var(--faint);font-size:11px;text-align:center}
.qc-m-lbl{display:none}
.qc-card{margin:2px 0 8px;background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:14px}
.qc-card-tabbody{margin-top:12px}
.qc-rev-row{border-bottom:1px solid var(--line);padding:9px 0}
.qc-rev-row:last-child{border-bottom:none}
.qc-rev-stars{color:#e0a458;font-size:12px;letter-spacing:1px}
.qc-pickbox{border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:4px}
.qc-pick-cur{display:flex;align-items:center;gap:8px;padding:4px 2px}
.qc-pick-cur img{width:32px;height:32px;border-radius:7px;object-fit:cover}
/* item7 (14.07, Муза) — направление тренда: 3 цвета, ИЗ ПАЛИТРЫ (var(--green)/--red/--muted),
   новых hex нет. currentColor — чтобы ОДНА и та же тройка правил красила и текст (статус/пилюля-
   значок в барах), и SVG-спарклайн (stroke/fill:currentColor ниже) без дублирования. */
.qc-trend{font-style:normal;font-weight:800;font-variant-numeric:tabular-nums}
.qc-trend-down{color:var(--green)}
.qc-trend-up{color:var(--red)}
.qc-trend-flat{color:var(--muted)}

/* точка-маркер «тихо ухудшается» в барах (UI-треб.4) — компактный аналог пилюли (места нет).
   1:1 паттерн уже существующей .sig-bk (styles.css:139), только тон amber/peachd (уже используется
   для sem-amber/pill-amber — НЕ новый цвет, тот же «внимание», что и везде в QC). */
.qc-rise-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--peachd);margin-left:5px;vertical-align:middle;box-shadow:0 0 0 3px var(--peachsoft)}

/* мини-спарклайн в карточке модели (UI-треб.3). Фон --card (не --card2, как у родителя .qc-card) —
   иначе панель сливается с карточкой невидимо; --card тут же связывает её визуально с остальными
   панелями дашборда (.qc-panel тоже --card) — «мини-панель статистики», та же семья. */
.qc-spark{margin-top:10px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.qc-spark-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}
.qc-spark-lbl{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.qc-spark-val{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.qc-spark-svg{display:block;width:100%;height:40px}
.qc-spark-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.qc-spark-dot{fill:currentColor;stroke:var(--card);stroke-width:1.5}
.qc-spark-foot{margin-top:3px;font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
@media(max-width:900px){
  .qc-panels{grid-template-columns:1fr}
}
@media(max-width:560px){
  .qc-hero{grid-template-columns:repeat(2,1fr)}
  .donut-wrap{flex-direction:column;align-items:flex-start}
  .donut-wrap .donut-leg{width:100%}
  .qc-mhead{display:none}
  .qc-mrow{
    display:grid;
    grid-template-columns:56px 1fr auto;
    grid-template-areas:"thumb main chev" "rate flag flag";
    align-items:center;
    column-gap:10px;row-gap:6px;
    padding:12px;
  }
  .qc-m-thumb{grid-area:thumb}
  .qc-m-main{grid-area:main}
  .qc-m-chev{grid-area:chev;justify-self:end}
  .qc-m-rate{grid-area:rate;text-align:left}
  .qc-m-flag{grid-area:flag;line-height:1.5;min-height:52px}
  .qc-m-lbl{display:block;font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.02em;margin-bottom:2px}
}

/* ==== ZK ПЛАН ОТПРАВОК (t2, аддитивно) ==== */
/* Источник: _zk_v5_list.html + _zk_v5_order.html (одобрены Евгением, синтез 15.07).
   Скоуп строго .zk-*: ни одного селектора .rx-* / .ord*(без zk) / глобальных .card/.main/.tbtn/.vtabs —
   домен boss (реестр) не трогаем. Там, где мокап клал стиль через анцестор-скоуп чужого класса
   (.zk-ord .rx-row и т.п.) или напрямую переопределял общий rx-*, здесь тот же визуальный результат
   получен без единого упоминания .rx-*/.ord* в селекторе:
     (а) добавочный .zk-* класс на тот же узел ДОПОЛНИТЕЛЬНО к rx-row/rx-lhead — блок в конце файла,
         при равной специфичности каскад побеждает (.zk-plan-row, .zk-ord-row/.zk-ord-head);
     (б) позиционный nth-child под .zk-* анцестором вместо имени чужого класса — для ячеек, что
         остаются на общих rx-info/rx-chev/rx-urg, включая ЗАЩИТНЫЕ сбросы ::before там, где на
         mobile ≤560px иначе цепляет нескоуп-хак реестра boss (~styles.css:3878-3897) — тот же приём,
         что уже применён в самом мокапе на .zk-plan-row;
     (в) новые компоненты (степпер количества, кнопки), которых нет в живом styles.css вообще —
         переименованы с rx-ord-*/rx-ord-btn.* на zk-ord-*/zk-btn-* (нулевой риск коллизии, гринфилд).
   .zk-ord-row/.zk-ord-head — ДОБАВОЧНЫЕ классы: Агни вешает их РЯДОМ с rx-row/rx-lhead (не вместо) —
   иначе теряется chrome (display:grid/паддинги/бордер/hover/семафор-полоса) из общего компонента.
   Ни одного нового hex — только существующие :root-токены. Манифест классов и рисков — оркестратору. */

/* ---- шапка суммы заказа (Слот-2, .zk-hdr-sum) ---- */
.zk-hdr-sum b{font-size:13px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.zk-meta-short{display:none}

/* ---- подсказка «клик по строке — детали позиции» ---- */
.zk-disc-hint{display:flex;align-items:center;gap:4px;padding:0 12px;margin-bottom:4px;font-size:10.5px;font-weight:600;color:var(--faint)}
.zk-disc-hint span{margin-left:0}

/* ---- сетка строки/шапки деталки заказа — вешать ДОПОЛНИТЕЛЬНО к rx-row/rx-lhead ---- */
.zk-ord-head, .zk-ord-row{grid-template-columns: 24px 36px 1fr 92px 84px 96px 152px 76px}
.zk-ord-row>*:nth-child(3){position:sticky;left:0;background:var(--card);z-index:1}
.zk-ord-row>*:nth-child(8) span{color:var(--muted);font-weight:800;font-size:11px}

/* ---- степпер количества «В заказ» (новый компонент, живёт только на этом экране) ---- */
.zk-ord-qty{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.zk-ord-step{width:24px;height:24px;flex:none;border-radius:6px;border:1px solid var(--line2);background:var(--card);color:var(--text);font-size:15px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s,color .12s}
.zk-ord-step:hover{border-color:var(--rx-accent,#9ab813);color:var(--rx-accent,#9ab813)}
.zk-ord-input{width:56px;height:32px;border-radius:6px;border:1px solid var(--line2);background:var(--card);text-align:center;font-size:13.5px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;outline:none;transition:border-color .12s,box-shadow .12s}
.zk-ord-input::placeholder{color:var(--faint);font-weight:600}
.zk-ord-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accentsoft)}
.zk-ord-input.edited{border-color:var(--rx-accent,#9ab813);background:var(--accentsoft);color:var(--limed)}
.zk-ord-unit{font-size:10.5px;color:var(--faint);font-weight:700;white-space:nowrap}
/* БЛОКЕР 1 (Ачарья, эстет-гейт): без recHint содержимое ~146px < 152px колонки — ок. С recHint («рек. N наб»)
   строка распухает до ~210px и переливается в соседнюю 76px-колонку, где рисуется .rx-urg «⚡срочно» —
   отсюда наезд молнии на цифру. Фикс: recHint падает на свою строку ВНУТРИ той же 152px-колонки (как уже
   сделано для мобилы, где .zk-ord-qty full-width) — нулевые правки .rx-urg. */
.zk-ord-qty .cell-sub{flex:0 0 100%;text-align:right}

/* ---- кнопки — самодостаточные (не требуют чужого .rx-ord-btn как базы) ---- */
.zk-btn-primary{background:var(--accent);color:#fff;border:1.5px solid var(--accent);height:40px;border-radius:11px;padding:0 20px;font-size:13.5px}
.zk-btn-primary:hover{opacity:.9}
.zk-btn-outline-dark{background:transparent;border:1.5px solid rgba(255,255,255,.32);color:#fff;height:40px;border-radius:11px;padding:0 18px;font-size:13.5px}
.zk-btn-outline-dark:hover{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.08)}
.zk-btn-outline-light{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--rx-accent,#9ab813);border-radius:9px;color:var(--rx-accent,#9ab813);cursor:pointer;font-weight:700;transition:background .12s,color .12s}
.zk-btn-outline-light:hover{background:var(--rx-accent,#9ab813);color:#fff}

/* ---- ось тайминга заказа (Слот-2, .zk-tl-*, свой неймспейс) ---- */
.zk-tl{padding:16px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.zk-tl-track{display:flex;align-items:flex-start}
.zk-tl-step{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;position:relative}
.zk-tl-dot{width:12px;height:12px;border-radius:50%;background:var(--card);border:2.5px solid var(--line2);flex:none;z-index:2}
.zk-tl-step.done .zk-tl-dot{background:var(--rx-accent,#9ab813);border-color:var(--rx-accent,#9ab813)}
.zk-tl-step.next .zk-tl-dot{background:#fff;border-color:var(--blu2d);box-shadow:0 0 0 4px var(--blu2soft)}
.zk-tl-seg{flex:1 1 auto;height:4px;background:var(--line2);border-radius:2px;margin-top:5px;position:relative;align-self:flex-start}
.zk-tl-seg.done{background:var(--rx-accent,#9ab813)}
.zk-tl-seg.now{background:linear-gradient(90deg,var(--rx-accent,#9ab813) var(--now-pct,27%),var(--line2) var(--now-pct,27%))}
.zk-tl-seg i{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:10.5px;font-style:normal;font-weight:600;color:var(--muted);white-space:nowrap}
.zk-tl-lbl{margin-top:10px;text-align:center;font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}
.zk-tl-lbl b{display:block;font-size:13.5px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;margin-top:2px}

/* ---- список «План отправок» (Слот-1, .zk-plan-*) — вешать ДОПОЛНИТЕЛЬНО к rx-row ---- */
.zk-plan-rows{display:flex;flex-direction:column;gap:8px}
.zk-plan-row{grid-template-columns:auto 1fr 108px 168px 108px 120px 16px;align-items:center;gap:12px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.zk-plan-row:hover{border-color:var(--rx-accent,#9ab813);box-shadow:var(--shadow)}
.zk-plan-badges{display:flex;flex-direction:column;gap:4px}
.zk-plan-date{display:flex;flex-direction:column;gap:2px}
.zk-plan-date-l{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.zk-plan-date b{font-size:13px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.zk-plan-editable b{border-bottom:1.5px dashed var(--line2);width:fit-content}
/* ПРАВКА B (Евгений): убрать значок-карандаш у даты «начало работы менеджеров» — пунктир .zk-plan-editable
   остаётся единственным намёком на редактируемость. */
.zk-plan-pencil{display:none}

/* ==== mobile ≤560px — один брейкпоинт, как в живом ==== */
@media(max-width:560px){
  /* -- план отправок -- */
  .zk-plan-row{display:flex;flex-wrap:wrap;padding:10px 12px;gap:8px 10px}
  .zk-plan-badges{flex-direction:row;gap:6px;order:1;flex:0 0 auto}
  .zk-plan-row>*:nth-child(2){order:2;flex:1 1 auto;min-width:0}
  .zk-plan-row>*:nth-child(7){order:3;flex:0 0 auto}
  .zk-plan-row .zk-plan-date{order:4;flex:0 0 100%;flex-direction:row;align-items:baseline;gap:4px;min-width:0}
  .zk-plan-row .zk-plan-date-l{display:none}
  .zk-plan-row>*:nth-child(3)::before{content:"заказ ";font-size:9.5px;font-weight:700;color:var(--faint)}
  .zk-plan-row>*:nth-child(4)::before{content:"начало ";font-size:9.5px;font-weight:700;color:var(--faint)}
  .zk-plan-row>*:nth-child(5)::before{content:"сдача ";font-size:9.5px;font-weight:700;color:var(--faint)}
  .zk-plan-row>*:nth-child(6)::before{content:none} /* гасим нескоуп-хак реестра boss на этой позиции (styles.css:3878-3897) */
  .zk-plan-row .zk-plan-date b{font-size:11.5px}
  .zk-plan-row .zk-plan-status{order:5;flex:0 0 100%}

  /* -- деталка заказа -- */
  .zk-meta-full{display:none}
  .zk-meta-short{display:inline}
  /* БЛОКЕР 3 (Ачарья, эстет-гейт): тулбар сортировки (Критичные/По дням/Пересорт/Все) на 390px обрезан
     краем без намёка на скролл — «Пересорт»/«Все» не видны. Скоуп #zkOrdDetail (НЕ трогаем глобальный
     .rx-sorts Реестра): форсируем гориз.скролл + fade-маска справа как визуальный хинт «листай». */
  #zkOrdDetail .rx-sorts{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-right:24px;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%)}
  #zkOrdDetail .rx-sorts::-webkit-scrollbar{display:none}
  #zkOrdDetail .rx-sorts .rx-chip{flex-shrink:0}
  .zk-ord-row>*:nth-child(6)::before,
  .zk-ord-row>*:nth-child(8)::before{content:none} /* гасим нескоуп-хак реестра boss — позиции 6/8 несут чужой смысл в нашей 8-колоночной сетке */
  .zk-ord-row>*:nth-child(4)::before{content:"запас ";font-size:10px;font-weight:600;color:var(--faint)}
  .zk-ord-row>*:nth-child(5)::before{content:"в пути ";font-size:10px;font-weight:600;color:var(--faint)}
  .zk-ord-row>*:nth-child(6){order:1;flex:0 0 auto;margin-left:auto}
  .zk-ord-row .zk-ord-qty{order:3;flex:0 0 100%;margin-top:8px}
  .zk-ord-row .zk-ord-input{height:42px;width:76px;font-size:17px;border-radius:8px}
  .zk-ord-row .zk-ord-step{width:34px;height:34px;font-size:19px;border-radius:8px}
  .zk-ord-row .zk-ord-unit{font-size:12px}
  .zk-ord-row>*:nth-child(8){order:4;flex:0 0 100%;justify-content:flex-end;margin-top:2px}
  .zk-ord-foot{flex-wrap:wrap;padding:12px 14px}

  /* -- ось тайминга -- */
  .zk-tl-track{flex-direction:column;align-items:flex-start;gap:0}
  .zk-tl-step{flex-direction:row;align-items:center;gap:10px;width:100%}
  .zk-tl-lbl{margin-top:0;text-align:left;display:flex;gap:6px;align-items:baseline}
  .zk-tl-lbl b{margin-top:0}
  .zk-tl-seg{width:4px;height:28px;margin:0 0 0 3.5px;align-self:flex-start}
  .zk-tl-seg.now{background:linear-gradient(180deg,var(--rx-accent,#9ab813) var(--now-pct,27%),var(--line2) var(--now-pct,27%))}
  .zk-tl-seg i{position:static;display:block;margin:2px 0 2px 18px;text-align:left}
}
/* ==== /ZK ПЛАН ОТПРАВОК ==== */


/* ═══════════ ДОСТУПЫ · вариант А (утв. Евгением 01.08.2026) ═══════════
   Слева плоский список людей, справа карточка + плоский список разделов с переключателями.
   Токены и размеры 1:1 из утверждённого макета access-2026-08-01/w1-rupa.html. Новых hex нет. */
.acc-sub{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:64ch;margin:-4px 0 16px;padding:0 4px}
.acc-sub b{color:var(--text)}
.acc-layout{display:grid;grid-template-columns:308px minmax(0,1fr);gap:24px;align-items:start;max-width:1120px}
.acc-roster{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:4px}
.acc-prow{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;text-align:left;width:100%;border:none;background:none;font:inherit;color:inherit;cursor:pointer;transition:background .14s}
.acc-prow:hover{background:var(--card2)}
.acc-prow .av{flex:none;width:32px;height:32px;border-radius:50%;background:var(--card2);color:var(--limed);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.acc-prow .tx{min-width:0;flex:1}
.acc-prow .tx b{display:block;font-size:13px;font-weight:700;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-prow .tx b.short{display:none}
.acc-prow .tx span{display:block;font-size:11.5px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-prow.sel{background:var(--accentsoft)}
.acc-prow.sel .av{background:var(--accent);color:#fff}
.acc-prow.sel .tx b{color:var(--limed)}
.acc-addrow{margin-top:4px;padding-top:12px;border-top:1px solid var(--line);border-radius:0 0 12px 12px}
.acc-addrow .av{background:var(--accentsoft);color:var(--accent);font-size:17px}
.acc-addrow .tx b{color:var(--limed)}

.acc-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}
.acc-head{display:flex;align-items:center;gap:16px}
.acc-head .av{flex:none;width:48px;height:48px;border-radius:50%;background:var(--accentsoft);color:var(--limed);font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center}
.acc-head-tx{min-width:0;flex:1}
.acc-head h2{margin:0;font-size:20px;font-weight:800;letter-spacing:-.2px;color:var(--text)}
.acc-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}

.acc-flds{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:20px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.acc-fld{display:block;min-width:0}
.acc-fl{display:block;font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.4px;margin-bottom:6px}
.acc-flds .acc-in{width:100%;flex:none;min-width:0}
.acc-flds select.acc-in{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%238f9382' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}
.acc-flds .acc-in:disabled{opacity:.55;cursor:not-allowed}

.acc-hint{margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.6;max-width:60ch}
.acc-seclist{list-style:none;margin:8px 0 0;padding:0}
.acc-secrow{padding:16px 4px;border-bottom:1px solid var(--line)}
.acc-secrow:last-child{border-bottom:none}
.acc-secrow label{display:flex;align-items:center;gap:12px;width:100%;cursor:pointer}
.acc-secrow .ic{flex:none;width:24px;text-align:center;font-size:16px;line-height:1}
.acc-secrow .lbl{flex:1;min-width:0;font-size:14.5px;font-weight:600;color:var(--text);line-height:1.4}
/* тумблер — те же значения, что у .acc-vk (styles.css:1651-1660) */
.acc-secrow input[type=checkbox]{appearance:none;-webkit-appearance:none;margin:0;flex:none;cursor:pointer;
  width:42px;height:24px;border-radius:13px;background:var(--card2);border:1px solid var(--line);
  position:relative;transition:background .18s,border-color .18s}
.acc-secrow input[type=checkbox]::before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;
  border-radius:50%;background:#9a9d8e;box-shadow:0 1px 2px rgba(0,0,0,.18);transition:transform .18s,background .18s}
.acc-secrow input[type=checkbox]:checked{background:var(--accent2);border-color:var(--accent2)}
.acc-secrow input[type=checkbox]:checked::before{transform:translateX(18px);background:#fff}
.acc-secrow input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}

.acc-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.acc-foot .acc-del{background:var(--redbg);color:var(--red);border:1px solid rgba(207,90,134,.28)}
.acc-foot .acc-del:hover{background:#f8dce9}

@media (max-width:760px){
  .acc-layout{grid-template-columns:1fr;gap:16px}
  .acc-roster{flex-direction:row;overflow-x:auto;gap:8px;-webkit-overflow-scrolling:touch}
  .acc-prow{flex-direction:column;gap:8px;width:74px;flex:none;padding:8px 4px;text-align:center}
  .acc-prow .av{width:40px;height:40px;font-size:14px}
  .acc-prow .tx{width:100%}
  .acc-prow .tx b{white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.25;text-align:center;text-overflow:clip;overflow:visible}
  .acc-prow .tx b.full{display:none}
  .acc-prow .tx b.short{display:block}
  .acc-prow .tx span{display:none}
  .acc-addrow{margin-top:0;padding-top:8px;padding-left:10px;border-top:none;border-left:1px solid var(--line);border-radius:0}
  .acc-panel{padding:20px}
  .acc-head .av{width:40px;height:40px;font-size:15px}
  .acc-head h2{font-size:18px}
  .acc-flds{grid-template-columns:1fr;gap:10px;margin-top:16px;padding-top:16px}
  .acc-hint{margin-top:16px;padding-top:12px}
  .acc-secrow{padding:14px 4px}
  .acc-secrow .lbl{font-size:14px}
}

/* ============================================================
   РЕЕСТР АРТИКУЛОВ (.nr-*) и ЗАКАЗ КИТАЙ (.nz-*) — сборка 13.08.2026.
   Префиксы новые намеренно: старые art-, ord- и zk- остаются в файле до
   отдельной чистки, и пересечение классов дало бы правки «через раз».
   Ни одного нового hex: всё из токенов MOCKUP10 выше по файлу.
   ============================================================ */
.nr-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.nr-top h2{font-size:23px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.nr-sb{color:var(--muted);font-size:13.5px;margin-top:5px;font-weight:500}
.nr-fresh{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:13px;padding:0 15px;height:40px;font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.nr-fresh i{width:7px;height:7px;border-radius:50%;background:var(--green);display:block;flex:none}

.nr-pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.nr-pills a{height:36px;padding:0 15px;border-radius:12px;background:#eceee4;display:flex;align-items:center;
  font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer;transition:.14s}
.nr-pills a:hover{background:#e3e6d8;color:var(--text)}
.nr-pills a.on{background:var(--lime);color:#3a4408}
.nr-pills .gap{width:10px;flex:none}
.nr-srch{width:280px;height:36px;background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:0 14px;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500}
.nr-srch input{flex:1;background:none;border:0;outline:none;color:var(--text);font:inherit}
.nr-srch input::placeholder{color:var(--faint)}

/* микроподпись — одна спека на все колонки */
.nr-lab{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--muted)}
.nr-sect{font-size:11px;font-weight:800;letter-spacing:.5px;color:var(--muted);margin-bottom:12px}

/* витрины */
.nr-sh{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:9px;
  font-size:12px;font-weight:700;white-space:nowrap;line-height:1}
.nr-sh.wb{background:var(--lavsoft);color:var(--lavd)}
.nr-sh.oz{background:var(--blu2soft);color:var(--blu2d)}
.nr-sh.no{background:#f0f1ea;color:var(--faint);font-weight:600}
.nr-mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;letter-spacing:0}
.nr-dim{color:var(--muted);font-weight:500}

/* ---------- раскладка ---------- */
.nr-wrap{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:18px;align-items:start}
@media(max-width:1100px){.nr-wrap{grid-template-columns:1fr}}

.nr-list{padding:10px}
.nr-grid{display:grid;grid-template-columns:48px minmax(0,1fr) 124px 74px;align-items:center;gap:16px}
.nr-lhead{padding:4px 14px 12px;border-bottom:1px solid var(--line)}
.nr-lhead .rr{text-align:right}
.nr-row{position:relative;padding:11px 14px;border-radius:12px;margin-top:2px;cursor:pointer;transition:.14s}
.nr-lhead + .nr-row{margin-top:6px}
.nr-row:hover{background:#fafbf6}
.nr-row.on{background:var(--card2)}
.nr-row.on::before{content:"";position:absolute;left:4px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--accent)}
.nr-ph{width:48px;height:48px;border-radius:13px;background:linear-gradient(150deg,#eef0e6,#dde1cf);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.nr-ph img{width:100%;height:100%;object-fit:cover}
.nr-nm{font-size:14px;font-weight:800;letter-spacing:-.2px;line-height:1.25}
.nr-ty{font-size:12px;font-weight:600;color:var(--muted);margin-top:3px}
.nr-vit{display:grid;grid-template-columns:repeat(2,59px);gap:6px}
.nr-vit .nr-sh{width:100%;justify-content:center;padding:0}
.nr-szn{font-size:14px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.nr-more{text-align:center;padding:16px 0 8px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}
.nr-empty{padding:44px 20px;text-align:center;color:var(--muted);font-size:13.5px;font-weight:600}

/* ---------- карточка модели ---------- */
.nr-det{padding:24px}
.nr-dhead{display:grid;grid-template-columns:104px minmax(0,1fr);gap:20px;align-items:center;
  padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.nr-dph{position:relative;width:104px;height:104px;border-radius:22px;overflow:hidden;
  background:linear-gradient(150deg,#eef0e6,#dde1cf);display:flex;align-items:center;justify-content:center}
.nr-dph img{width:100%;height:100%;object-fit:cover}
.nr-dph .ed{position:absolute;right:-7px;bottom:-7px;width:34px;height:34px;border-radius:50%;
  background:var(--card);border:1px solid var(--line2);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer}
.nr-ttl{display:flex;align-items:center;gap:12px}
.nr-ttl h3{font-size:21px;font-weight:800;letter-spacing:-.45px;line-height:1.15}
.nr-ttl .nr-chip{margin-left:auto}
.nr-meta{font-size:13px;font-weight:600;color:var(--muted);margin-top:7px}
.nr-chip{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:9px;
  font-size:12px;font-weight:700;white-space:nowrap;line-height:1;background:var(--limesoft);color:var(--limed)}
.nr-blk{margin-bottom:24px}
.nr-blk:last-child{margin-bottom:0}

.nr-shops{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nr-shop{background:var(--card2);border-radius:16px;padding:16px 18px;
  display:grid;grid-template-rows:26px auto auto;row-gap:13px;align-content:start}
.nr-shop .hd{display:flex;align-items:center;gap:9px;margin-left:-10px}
.nr-shop .store{font-size:12px;font-weight:600;color:var(--muted)}
.nr-shop .val{font-size:18px;font-weight:800;letter-spacing:-.4px;line-height:1;word-break:break-all}
.nr-shop .cap{font-size:12px;font-weight:700;color:var(--muted);line-height:1.35;margin-top:-6px}
.nr-shop.off .val{color:var(--faint)}

.nr-tbl{width:100%;border-collapse:separate;border-spacing:0}
.nr-tbl th{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--muted);text-align:left;
  padding:0 14px 10px;white-space:nowrap}
.nr-tbl td{padding:0 14px;height:48px;border-top:1px solid var(--line);font-size:13px;font-weight:600;
  vertical-align:middle;font-variant-numeric:tabular-nums}
.nr-tbl th:first-child,.nr-tbl td:first-child{padding-left:0}
.nr-tbl th:last-child,.nr-tbl td:last-child{padding-right:0}
.nr-tbl td.s1{font-weight:800}

.nr-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.nr-kv{display:grid;grid-template-columns:auto 1fr;gap:12px 18px;align-items:baseline}
.nr-kv dt{font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.nr-kv dd{font-size:13.5px;font-weight:700;text-align:left}
.nr-kv dd.num{text-align:right;font-variant-numeric:tabular-nums}
.nr-tot{display:flex;align-items:baseline;justify-content:space-between;
  border-top:1px solid var(--line2);margin-top:16px;padding-top:16px}
.nr-tot .k{font-size:13.5px;font-weight:800}
.nr-tot .v{font-size:16px;font-weight:800;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.nr-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.nr-btn{height:40px;padding:0 18px;border-radius:13px;background:var(--accent);color:#fff;font-size:13px;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;
  box-shadow:0 4px 14px rgba(155,184,33,.32);white-space:nowrap}
.nr-btn.ghost{background:var(--card);color:var(--muted);border:1px solid var(--line2);box-shadow:none}

/* конфликт исходных записей — модель видна, факт не спрятан */
.nr-warn{background:var(--peachsoft);color:var(--peachd);border-radius:12px;padding:12px 14px;
  font-size:12.5px;font-weight:700;line-height:1.4;margin-top:14px}

/* ============================ ЗАКАЗ КИТАЙ ============================ */
.nz-orders{padding:8px;margin-bottom:18px}
.nz-o{display:grid;grid-template-columns:270px 96px 1fr 118px 128px;align-items:center;gap:24px;
  padding:15px 16px;border-radius:12px;cursor:pointer;transition:.14s}
.nz-o + .nz-o{border-top:1px solid var(--line)}
.nz-o:hover{background:#fafbf6}
.nz-o.on{background:var(--card2);border-top-color:transparent;box-shadow:inset 0 0 0 1px var(--line2)}
.nz-o.on + .nz-o{border-top-color:transparent}
.nz-sp{font-size:12px;font-weight:600;color:var(--muted);margin-top:4px}
.nz-shops{display:grid;grid-template-columns:38px 52px;gap:6px}
.nz-shops .nr-sh{width:100%;justify-content:center;padding:0;height:22px;font-size:11px}
.nz-qty{text-align:right}
.nz-qty b{font-size:18px;font-weight:800;letter-spacing:-.4px;display:block;line-height:1;font-variant-numeric:tabular-nums}
.nz-qty span{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-top:4px}
.nz-lots{display:flex;align-items:center;gap:3px;margin-bottom:16px}
.nz-lots i{flex:1;height:6px;border-radius:3px;background:var(--line2)}
.nz-lots i.acc{background:var(--accent)}
.nz-lots i.arr{background:var(--peach)}
.nz-lots i.way{background:var(--accent2)}
.nz-lotc{font-size:12px;font-weight:600;color:var(--muted)}
.nz-st{justify-self:end}
.nz-chip{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:9px;
  font-size:12px;font-weight:700;white-space:nowrap;line-height:1}
.nz-chip.ok{background:var(--greenbg);color:var(--green)}
.nz-chip.soon{background:var(--peachsoft);color:var(--peachd)}
.nz-chip.info{background:var(--bluebg);color:var(--blue)}
.nz-chip.lime{background:var(--limesoft);color:var(--limed)}
.nz-chip.crit{background:var(--redbg);color:var(--red)}

.nz-blank{padding:56px 24px;text-align:center}
.nz-blank .ic{font-size:34px;margin-bottom:14px}
.nz-blank h3{font-size:17px;font-weight:800;letter-spacing:-.2px;margin-bottom:8px}
.nz-blank p{font-size:13.5px;font-weight:500;color:var(--muted);line-height:1.5;max-width:520px;margin:0 auto 20px}

/* ---------- Заказ Китай: формирование заказа (полный экран) ---------- */
.nz-head{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.nz-back{width:40px;height:40px;border-radius:13px;background:var(--card);border:1px solid var(--line2);
  display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--muted);flex:none;cursor:pointer}
.nz-params{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 372px;gap:18px;margin-bottom:20px}
@media(max-width:1100px){.nz-params{grid-template-columns:1fr 1fr}}
.nz-fld{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 15px}
.nz-fld .v{margin-top:6px;display:flex;align-items:center;gap:6px;min-height:26px;flex-wrap:wrap}
.nz-fld input[type=date]{font:inherit;font-size:14.5px;font-weight:700;color:var(--text);background:none;border:0;outline:none}
.nz-opt{height:26px;padding:0 11px;border-radius:9px;background:#eceee4;color:var(--muted);
  font-size:12px;font-weight:700;display:inline-flex;align-items:center;cursor:pointer;white-space:nowrap}
.nz-opt.on{background:var(--lime);color:#3a4408}

.nz-nw{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:18px;align-items:start}
@media(max-width:1100px){.nz-nw{grid-template-columns:1fr}}
.nz-pick{padding:24px}
.nz-ptop{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.nz-ptop .t{font-size:17px;font-weight:800;letter-spacing:-.2px}
.nz-mgrp{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.nz-mgrp:first-of-type{border-top:0;padding-top:0;margin-top:0}
.nz-mhd{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.nz-mph{width:36px;height:36px;border-radius:11px;overflow:hidden;flex:none;
  background:linear-gradient(150deg,#eef0e6,#dde1cf);display:flex;align-items:center;justify-content:center}
.nz-mph img{width:100%;height:100%;object-fit:cover}
.nz-qin{width:96px;height:34px;border:1px solid var(--line2);border-radius:10px;background:var(--card);
  text-align:right;padding:0 11px;font:inherit;font-size:13.5px;font-weight:800;
  font-variant-numeric:tabular-nums;color:var(--text);outline:none}
.nz-qin:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(154,184,19,.14)}
.nz-qin.zero{color:var(--faint);font-weight:600;border-style:dashed}

.nz-cart{padding:24px;position:sticky;top:28px}
.nz-cart h3{font-size:17px;font-weight:800;letter-spacing:-.2px;margin-bottom:16px}
.nz-tot{background:var(--card2);border-radius:16px;padding:16px 18px;margin-bottom:18px}
.nz-tr{display:flex;align-items:baseline;justify-content:space-between;padding:7px 0}
.nz-tr + .nz-tr{border-top:1px solid var(--line)}
.nz-tr .k{font-size:12.5px;font-weight:600;color:var(--muted)}
.nz-tr .v{font-size:15px;font-weight:800;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.nz-tr.big{padding-top:11px}
.nz-tr.big .v{font-size:21px;letter-spacing:-.5px}
.nz-ci{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.nz-ci:first-child{border-top:0}
.nz-ci .n{flex:1;min-width:0}
.nz-ci .a{font-size:12px;font-weight:700;font-family:ui-monospace,"SF Mono",Menlo,monospace}
.nz-ci .s{font-size:12px;font-weight:600;color:var(--muted);margin-top:2px}
.nz-ci .q{font-size:13.5px;font-weight:800;font-variant-numeric:tabular-nums}
.nz-hint{background:var(--limesoft);border-radius:12px;padding:16px 18px;font-size:12.5px;
  font-weight:600;color:var(--limed);line-height:1.45;margin:16px 0}
.nz-cbt{display:grid;gap:9px}
.nz-cbt .nr-btn{width:100%;height:46px;font-size:14px;border-radius:14px}

/* ================= ЗАКАЗ КИТАЙ: карточка заказа и календарь (14.08.2026) =================
   Префиксы zd- (деталка) и zc- (календарь) — новые, коллизий с прежними блоками нет. */
.nz-vsw{display:flex;gap:6px;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:4px}
.nz-fbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nz-fsep{width:1px;height:18px;background:var(--line2);margin:0 4px}

.zd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
@media(max-width:900px){.zd-kpis{grid-template-columns:1fr 1fr}}
.zd-kpi{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 17px;box-shadow:var(--shadow)}
.zd-kpi .k{font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
.zd-kpi .v{font-size:20px;font-weight:800;letter-spacing:-.4px;margin-top:5px;font-variant-numeric:tabular-nums}
.zd-kpi .warn{font-size:11.5px;font-weight:600;color:var(--peachd);margin-top:4px}

.zd-sec{padding:20px 24px;margin-bottom:18px}
.zd-st{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.zd-st .tt{font-size:16px;font-weight:800;letter-spacing:-.2px}
/* числовые колонки таблиц раздела: правила .r не существовало нигде в файле */
.nr-tbl th.r,.nr-tbl td.r{text-align:right}
.zd-st .c{font-size:12px;font-weight:700;color:var(--muted);background:var(--card2);border-radius:8px;padding:3px 8px}
.zd-none{font-size:13px;font-weight:600;color:var(--muted);padding:14px 0 6px}
.zd-note{background:var(--bluebg);color:var(--blue);border-radius:12px;padding:11px 14px;
  font-size:12.5px;font-weight:600;line-height:1.45;margin-top:12px}
.zd-in{height:32px;border:1px solid var(--line2);border-radius:9px;background:var(--card);
  padding:0 9px;font:inherit;font-size:12.5px;font-weight:700;color:var(--text);outline:none}
.zd-in:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(154,184,19,.14)}
.zd-in.num{width:88px;text-align:right;font-variant-numeric:tabular-nums}
.zd-lotswrap{overflow-x:auto}
.zd-lots td{height:52px}
.zd-del{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--faint);cursor:pointer;font-size:15px;font-weight:700}
.zd-del:hover{background:var(--redbg);color:var(--red)}
.zd-tblwrap{overflow:visible} /* позиции — основная зона карточки, без внутренней коробки (замечание владельца) */
.zd-tblwrap thead th{position:sticky;top:0;background:var(--card);z-index:1}

.zc-sers{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
@media(max-width:900px){.zc-sers{grid-template-columns:1fr}}
.zc-ser{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 18px;box-shadow:var(--shadow)}
.zc-sh{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.zc-sh b{font-size:15.5px;font-weight:800;letter-spacing:-.2px;flex:1}
.zc-sf{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.zc-sf label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;
  letter-spacing:.3px;color:var(--muted);text-transform:uppercase}
.zc-cal{padding:20px 24px}
.zc-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.zc-top b{font-size:16px;font-weight:800;letter-spacing:-.2px;min-width:150px;text-align:center}
.zc-nav{width:32px;height:32px;border-radius:10px;border:1px solid var(--line2);background:var(--card);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);font-weight:700}
.zc-nav:hover{background:var(--card2)}
.zc-nav.td{width:auto;padding:0 12px;font-size:12px}
.zc-leg{display:flex;align-items:center;gap:9px;font-size:11.5px;font-weight:600;color:var(--muted)}
.zc-leg i{width:10px;height:10px;border-radius:4px;display:inline-block}
.zc-leg .l-t{background:var(--lime)}
.zc-leg .l-b{background:var(--peach)}
.zc-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.zc-wd span{font-size:10.5px;font-weight:700;letter-spacing:.5px;color:var(--faint);text-align:center}
.zc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.zc-d{min-height:86px;border:1px solid var(--line);border-radius:12px;background:var(--card);
  padding:7px 8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;overflow:hidden}
.zc-d.off{background:transparent;border-color:transparent}
.zc-d.today{border-color:var(--accent);box-shadow:0 0 0 2px rgba(154,184,19,.18)}
.zc-d .n{font-size:11.5px;font-weight:700;color:var(--muted)}
.zc-d.today .n{color:var(--limed)}
.zc-prep{width:100%;height:4px;border-radius:2px;flex:none}
.zc-prep.zc-t{background:var(--lime)}
.zc-prep.zc-b{background:var(--peach)}
.zc-mk{max-width:100%;font-size:10.5px;font-weight:700;border-radius:7px;padding:2px 6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.5}
.zc-mk.zc-t{background:var(--limesoft);color:var(--limed)}
.zc-mk.zc-b{background:var(--peachsoft);color:var(--peachd)}
.zc-mk.arr{background:var(--greenbg);color:var(--green)}
.zc-mk.eta{background:var(--bluebg);color:var(--blue)}
.zc-mk.plan.zc-t{background:var(--limesoft);color:var(--limed);border:1px dashed var(--accent)}
.zc-mk.plan.zc-b{background:var(--peachsoft);color:var(--peachd);border:1px dashed var(--peachd)}

/* ============================================================
   ДОРАБОТКА 14.08.2026 (утв. Евгением по ролику-презентации):
   1) HEADER SWAP — приветствие над меню, компактно, БЕЗ чипов;
   2) Маркеры-подсветки в Реестре (.mk*);
   3) Липкая карточка на десктопе + шторка на мобильном;
   4) Титул «Информация о …» + панель менеджера (демо-цифры).
   Ни одного нового hex: токены MOCKUP10 либо rgba от них.
   Префиксы новых классов: .mk-, .nr-copy, .nr-sheet, .nrm-.
   ============================================================ */

/* ---------- 1. HEADER SWAP: приветствие первой строкой, компактно ---------- */
.mb .top{margin:0 0 12px;padding:10px 16px;background:var(--card);border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);flex-wrap:nowrap}
.mb .hello h1{font-size:16.5px;font-weight:800;letter-spacing:-.2px;line-height:1.2}
.mb .hello p{font-size:12px;margin-top:1px;font-weight:600}
.mb .top .clocks{gap:14px}
.mb .top .clk b{font-size:13.5px}
.mb .top .clk .cz{font-size:9.5px}
.mb .top .mb-tr{order:9;margin-left:12px;flex:none}
.mb .top .mb-tr .ic,.mb .top .mb-tr .av{width:34px;height:34px}
@media(max-width:760px){.mb .top{flex-wrap:wrap}.mb .top .clocks{display:none}}

/* ---------- 2. Маркер-подсветка (текстовыделитель): плоско, снизу ---------- */
.mk{border-radius:3px;padding:0 3px;margin:0 -1px;
  background:linear-gradient(transparent 55%, var(--mkc) 55%, var(--mkc) 94%, transparent 94%)}
.mk-lime {--mkc:rgba(207,226,74,.60)}   /* --lime  #cfe24a — Бюсты, склад, итоги */
.mk-peach{--mkc:rgba(255,214,176,.70)}  /* --peach #ffd6b0 — Трусы */
.mk-lav  {--mkc:rgba(225,214,243,.85)}  /* --lav   #e1d6f3 — Wildberries */
.mk-blu  {--mkc:rgba(196,226,245,.80)}  /* --blu2  #c4e2f5 — Ozon */
.mk-pink {--mkc:rgba(246,201,236,.65)}  /* --pink  #f6c9ec — совпадение поиска */

/* строка «найдено в …» под именем модели при активном поиске */
.nr-hit{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}
.nr-hit .nr-mono{font-size:11px}

/* ---------- 2б. Копия бирки/баркода в одно касание ---------- */
.nr-copy{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border-radius:8px;
  padding:2px 7px 2px 5px;transition:.14s;border:1px dashed transparent}
.nr-copy:hover{background:var(--card2);border-color:var(--line2)}
.nr-copy u{text-decoration:none;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px}
.nr-copy s{text-decoration:none;font-size:11px;color:var(--faint)}
.nr-copy.copied{background:var(--greenbg);border-color:transparent}
.nr-copy.copied s{color:var(--green);font-weight:700}

/* ---------- 3. Скролл: липкая карточка (десктоп) ---------- */
@media(min-width:1101px){
  .nr-det{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;overscroll-behavior:contain}
}

/* ---------- 3б. Скролл: шторка снизу (мобильный, тот же брейкпоинт, что складывает nr-wrap) ---------- */
.nr-sheetwrap{display:none}
@media(max-width:1100px){
  .nr-wrap > .nr-det{display:none}  /* карточка живёт в шторке, а не под списком */
  .nr-sheetwrap{display:block;position:fixed;inset:0;z-index:80;background:rgba(44,47,38,.28)} /* RGB = --text */
  .nr-sheet{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;overscroll-behavior:contain;
    background:var(--card);border-radius:26px 26px 0 0;box-shadow:0 -18px 44px rgba(70,75,55,.18); /* чернила теней --shadow2 */
    padding:8px 16px 18px}
  .nr-sheet .nr-det{border:0;box-shadow:none;border-radius:0;padding:6px 2px 14px}
  .nr-grab{width:44px;height:5px;border-radius:3px;background:var(--line2);margin:6px auto 4px}
  .nr-sheet-x{position:sticky;top:2px;float:right;width:30px;height:30px;border-radius:50%;border:0;
    background:var(--card2);color:var(--muted);font-size:14px;cursor:pointer;z-index:2}
}

/* ---------- 4. Титул карточки + панель менеджера ---------- */
.nr-cardtitle{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.nr-cardtitle h2{font-size:19px;font-weight:800;letter-spacing:-.3px}
.nr-cardtitle .nr-chip{margin-left:auto}

.nrm{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}
.nrm-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.nrm-fold{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700;
  cursor:pointer;border:0;background:none;padding:4px 6px;border-radius:8px}
.nrm-fold:hover{background:var(--card2)}
.nrm-fold i{display:inline-block;font-style:normal;transition:.15s}
.nrm-fold.open i{transform:rotate(90deg)}
.nrm-seg{display:flex;background:var(--card2);border-radius:11px;padding:3px;gap:2px;margin-left:auto}
.nrm-seg span{height:28px;padding:0 13px;display:flex;align-items:center;border-radius:9px;
  font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}
.nrm-seg .on{background:var(--card);box-shadow:var(--shadow);color:var(--text)}
.nrm table{width:100%;border-collapse:collapse}
.nrm th{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--muted);text-align:left;
  padding:7px 9px;border-bottom:1px solid var(--line)}
.nrm td{padding:9px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;
  font-variant-numeric:tabular-nums}
.nrm tr:last-child td{border-bottom:0}
.nrm .num,.nrm th.num{text-align:right}
.nrm-days{display:inline-flex;align-items:center;height:23px;padding:0 8px;border-radius:8px;
  font-size:11.5px;font-weight:700;background:var(--greenbg);color:var(--green)}
.nrm-days.mid{background:var(--peachsoft);color:var(--peachd)}
.nrm-days.low{background:var(--redbg);color:var(--red)}
.nrm-total td{background:var(--card2);font-weight:800}
.nrm-total td:first-child{border-radius:12px 0 0 12px}
.nrm-total td:last-child{border-radius:0 12px 12px 0}
.nrm-gap{display:flex;align-items:center;gap:10px;background:var(--peachsoft);color:var(--peachd);
  border-radius:12px;padding:9px 13px;font-size:12px;font-weight:700;margin-top:11px}
.nrm-demo{font-size:11px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:7px;margin:9px 2px 0}
.nrm-demo i{width:7px;height:7px;border-radius:50%;background:var(--peach);display:block;flex:none;font-style:normal}

/* Лого в плашке приветствия (вариант 1, утв. 14.08): квадратик «A», надписи нет */
.top-logo{width:34px;height:34px;border-radius:10px;background:var(--lime);display:flex;
  align-items:center;justify-content:center;color:#3a4408;font-weight:800;font-size:16px;flex:none}
.mb-nav{margin:0}

/* ================= Заказ Китай: вкладка «Аналитик» (14.08, вариант В) ================= */
.za-wrap{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}
@media(max-width:1100px){.za-wrap{grid-template-columns:1fr}}
.za-left{padding:22px 26px}
.za-lh{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.za-ava{width:42px;height:42px;border-radius:13px;background:linear-gradient(150deg,var(--accent2),var(--accent));
  display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.za-nm{font-size:16px;font-weight:800;letter-spacing:-.2px}
.za-st{font-size:12px;font-weight:600;color:var(--green);margin-top:2px}
.za-st.busy{color:var(--peachd)}
.za-rm{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:10px}
.za-rt{font-size:14px;line-height:1.62;font-weight:500}
.za-rt b{font-weight:800}
.za-chat{padding:0;display:flex;flex-direction:column;height:min(640px,calc(100vh - 210px));position:sticky;top:20px}
.za-ch{padding:15px 18px;border-bottom:1px solid var(--line);font-size:14.5px;font-weight:800}
.za-out{flex:1;overflow:auto;padding:15px 18px;display:flex;flex-direction:column;gap:11px;background:var(--card2)}
.za-out .dmsg.za-rep .dtext{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.za-out .empty{color:var(--faint);font-size:13px;font-weight:600;text-align:center;margin-top:24px}
.za-in{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:9px}
.za-in input{flex:1;height:42px;border:1px solid var(--line2);border-radius:13px;padding:0 14px;
  font:inherit;font-size:13.5px;background:var(--card);outline:none;color:var(--text)}
.za-in input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(154,184,19,.14)}
.za-in .nr-btn{height:42px;padding:0 16px}
.nr-btn.sm{height:28px;padding:0 11px;font-size:11.5px}
.nr-btn.danger{color:var(--red);border-color:var(--redbg)}

/* ================= КАЛЕНДАРЬ (Сингулярити фаза 2, 14.08) — префикс cg- ================= */
.sgb{height:34px;min-width:34px;padding:0 10px;border-radius:10px;background:var(--card);
  border:1px solid var(--line2);font:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.sgb.wide{padding:0 14px}
.sgb.on{background:var(--limesoft);color:var(--limed);border-color:var(--accent)}
#tkSlash{position:absolute;left:8px;top:100%;margin-top:-6px;z-index:60;background:var(--card);
  border:1px solid var(--accent);border-radius:12px;box-shadow:0 16px 40px rgba(70,75,55,.28);
  padding:5px;display:flex;flex-direction:column;min-width:190px}
#tkSlash span{padding:6px 10px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer}
#tkSlash span:hover{background:var(--limesoft);color:var(--limed)}
/* гант: ручка срока */
/* пикер переноса / участников */
/* подсказки-клавиши в пустых состояниях */
.kbd,.tk-none .kbd{display:inline-flex;height:19px;padding:0 6px;border:1px solid var(--line2);border-radius:5px;
  background:var(--card2);font-size:10px;font-weight:800;color:var(--muted);align-items:center;font-style:normal}

/* быстрый поповер создания в календаре */
#cgQa{position:absolute;z-index:30;left:6px;right:6px;top:8px;background:var(--card);border:1px solid var(--accent);
  border-radius:14px;box-shadow:0 16px 40px rgba(70,75,55,.25);padding:12px 13px;display:flex;flex-direction:column;gap:9px}
#cgQa .qh{font-size:11px;font-weight:800;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
#cgQa #cgQaT{border:0;background:none;outline:none;font:inherit;font-size:13.5px;font-weight:700;color:var(--text)}
#cgQa .qr{display:flex;gap:7px;align-items:center}
#cgQa #cgQaTm{height:30px;border:1px solid var(--line2);border-radius:9px;background:var(--card2);
  padding:0 8px;font:inherit;font-size:12px;font-weight:600;color:var(--text);outline:none}

/* ============================================================
   ПОСТАВЩИКИ V2 + ИНФОГРАФИКА V2 — 14.08.2026, утв. Евгением
   по ролику «три раздела». Язык Реестра/Заказа Китай.
   Токены MOCKUP10, новые классы только с префиксами s2- / ig2-.
   ============================================================ */

/* --- общее: недостающие тоны статус-чипов --- */
.nz-chip.lav{background:var(--lavsoft);color:var(--lavd)}
.nz-chip.neu{background:var(--card2);color:var(--muted)}
.nz-chip.blu2{background:var(--blu2soft);color:var(--blu2d)}

/* --- Поставщики: аватар-инициал, сетка строк --- */
.s2-av{width:44px;height:44px;border-radius:13px;background:linear-gradient(150deg,#eef0e6,#dde1cf);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:var(--muted);flex:none}
.s2-grid{display:grid;grid-template-columns:44px minmax(0,1fr) 132px 118px;align-items:center;gap:14px}
.s2-dots{display:inline-flex;gap:3px;vertical-align:middle}
.s2-dots i{width:8px;height:8px;border-radius:50%;background:var(--line2);font-style:normal}
.s2-dots i.on{background:var(--accent)}
.s2-kpi{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:6px 12px;font-size:12px;font-weight:700;white-space:nowrap}
.s2-kpi .bar{width:64px;height:5px;border-radius:3px;background:var(--card2);overflow:hidden}
.s2-kpi .bar i{display:block;height:100%;border-radius:3px;background:var(--accent)}
.s2-kpi small{color:var(--muted);font-weight:600}
/* цепочка этапов образца */
.s2-chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.s2-chain .sep{color:var(--faint)}
.s2-chain .nz-chip{cursor:pointer}
/* цель: инлайн-редактирование */
.s2-goal{width:56px;height:30px;border:1px solid var(--line2);border-radius:9px;background:var(--card);
  font:inherit;font-weight:800;font-size:13px;text-align:center;color:var(--text)}
.s2-goal:focus{outline:none;border-color:var(--accent)}
.s2-fact{font-size:22px;font-weight:800}
.s2-fact.bad{color:var(--red)}
.s2-fact.good{color:var(--green)}
/* критерии */
.s2-crit{width:100%;min-height:320px;border:1px solid var(--line);border-radius:14px;background:var(--card);
  padding:16px 18px;font:inherit;font-size:13.5px;line-height:1.6;resize:vertical}
.s2-crit:focus{outline:none;border-color:var(--accent)}

/* --- Инфографика: сетка строк и карточки задач --- */
.ig2-grid{display:grid;grid-template-columns:48px minmax(0,1fr) 112px 118px;align-items:center;gap:14px}
.ig2-t{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:10px}
.ig2-t.done{opacity:.62}
.ig2-th{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ig2-th b{font-size:13px;font-weight:800;flex:1;min-width:0}
.ig2-t p{font-size:13px;line-height:1.55;font-weight:500;white-space:pre-wrap}
.ig2-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.ig2-route{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--muted);flex-wrap:wrap}
.ig2-route b{color:var(--text)}
.ig2-route .late{color:var(--red)}
.ig2-flag{display:flex;align-items:center;gap:9px;background:var(--peachsoft);color:var(--peachd);
  border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700;margin-top:10px}
.ig2-ph{width:56px;height:56px;border-radius:12px;background:var(--card2);overflow:hidden;
  display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.ig2-ph img{width:100%;height:100%;object-fit:cover}
.ig2-add{width:56px;height:56px;border-radius:12px;border:1.5px dashed var(--line2);background:none;
  display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:18px;cursor:pointer;flex:none}
.ig2-add:hover{border-color:var(--accent);color:var(--accent)}
/* инлайн-форма задачи/модели */
.ig2-form{border:1.5px dashed var(--line2);border-radius:14px;padding:14px 16px;margin-bottom:10px;
  display:flex;flex-direction:column;gap:9px}
.ig2-form input[type=text],.ig2-form textarea,.ig2-form select,.ig2-form input[type=date]{
  border:1px solid var(--line);border-radius:10px;background:var(--card);padding:8px 11px;font:inherit;font-size:13px}
.ig2-form textarea{min-height:64px;resize:vertical}
.ig2-form .row2{display:flex;gap:8px;flex-wrap:wrap}
.ig2-form .row2>*{flex:1;min-width:120px}
.ig2-mini{font-size:11px;color:var(--faint);font-weight:600}

/* ============================================================
   КАЧЕСТВО V2 — 14.08.2026, утв. Евгением («добро есть, на боевую»).
   CEO-сводка по магазинам + журнал проблем с таймлайном + модели.
   Токены MOCKUP10; классы только с префиксом q2-.
   ============================================================ */
.q2-ceo{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:12px}
@media(max-width:1100px){.q2-ceo{grid-template-columns:repeat(2,1fr)}}
.q2-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:16px 18px}
.q2-kpi.off{border-style:dashed;background:var(--card2);box-shadow:none}
.q2-kpi .hd{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;
  font-weight:700;color:var(--muted);letter-spacing:.4px}
.q2-kpi .v{font-size:26px;font-weight:800;line-height:1.1}
.q2-kpi .v small{font-size:13px;color:var(--muted);font-weight:600}
.q2-kpi .sub{font-size:12px;color:var(--muted);font-weight:600;margin-top:3px}
.q2-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
@media(max-width:1100px){.q2-two{grid-template-columns:1fr}}
.q2-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 18px}
.q2-bar{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;cursor:pointer;padding:2px 0}
.q2-bar .nm{width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q2-bar .tr{flex:1;height:6px;border-radius:3px;background:var(--card2);overflow:hidden}
.q2-bar .tr i{display:block;height:100%;border-radius:3px}
/* журнал проблем */
.q2-grid{display:grid;grid-template-columns:minmax(0,1fr) 104px 118px;align-items:center;gap:14px}
.q2-sev{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:7px;font-size:11px;font-weight:700}
.q2-sev.hi{background:var(--redbg);color:var(--red)}
.q2-sev.mid{background:var(--peachsoft);color:var(--peachd)}
.q2-sev.lo{background:var(--card2);color:var(--muted)}
.q2-rep{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:7px;
  font-size:11px;font-weight:700;background:var(--lavsoft);color:var(--lavd)}
/* таймлайн пути проблемы */
.q2tl{position:relative;padding-left:26px}
.q2tl::before{content:"";position:absolute;left:8px;top:8px;bottom:14px;width:2px;background:var(--line2)}
.q2tl-step{position:relative;padding:0 0 15px}
.q2tl-step i{position:absolute;left:-26px;top:2px;width:18px;height:18px;border-radius:50%;
  background:var(--card);border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;
  font-size:10px;font-style:normal;color:#fff}
.q2tl-step.done i{background:var(--accent);border-color:var(--accent)}
.q2tl-step.cur i{background:var(--peachd);border-color:var(--peachd);box-shadow:0 0 0 4px var(--peachsoft)}
.q2tl-step .t{font-size:13px;font-weight:700}
.q2tl-step.off .t{color:var(--faint);font-weight:600}
.q2tl-step .d{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:1px}
.q2tl-step .q{margin-top:6px;background:var(--card2);border-radius:10px;padding:8px 12px;
  font-size:12.5px;line-height:1.5;font-weight:500;white-space:pre-wrap}
.q2tl-step.cur .q{background:var(--peachsoft);color:var(--peachd);font-weight:600}
/* фото брака */
.q2-ph{width:74px;height:74px;border-radius:14px;background:var(--card2);overflow:hidden;
  display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;cursor:pointer}
.q2-ph img{width:100%;height:100%;object-fit:cover}
.q2-addph{width:74px;height:74px;border-radius:14px;border:1.5px dashed var(--line2);background:none;
  display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:20px;cursor:pointer}
.q2-addph:hover{border-color:var(--accent);color:var(--accent)}
/* модели и отзывы */
.q2m-grid{display:grid;grid-template-columns:48px minmax(0,1fr) 84px 96px 108px;align-items:center;gap:12px}
.q2-stars{display:flex;flex-direction:column;gap:5px}
.q2-star{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:var(--muted)}
.q2-star .tr{flex:1;height:5px;border-radius:3px;background:var(--card2);overflow:hidden}
.q2-star .tr i{display:block;height:100%;border-radius:3px;background:var(--accent)}
.q2-rev{border:1px solid var(--line);border-radius:12px;padding:10px 13px;margin-bottom:8px;font-size:12.5px;line-height:1.5}
.q2-rev .hd{display:flex;gap:8px;align-items:center;font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:4px}
.q2-spark{display:block}

/* ============================================================
   РЕЕСТР: форма правки модели, журнал изменений, квитанция (14.08.2026)
   Кнопки «Редактировать»/«История» были заглушками — тут их оформление.
   Ни одного нового hex: только токены MOCKUP10.
   ============================================================ */
.nr-modal{position:fixed;inset:0;z-index:80;background:rgba(44,47,38,.28);
  display:flex;align-items:center;justify-content:center;padding:24px}
.nr-mbox{background:var(--card);border-radius:22px;box-shadow:var(--shadow2);width:100%;max-width:560px;
  max-height:86vh;display:flex;flex-direction:column;overflow:hidden}
.nr-mh{display:flex;align-items:flex-start;gap:14px;padding:20px 22px 16px;border-bottom:1px solid var(--line)}
.nr-mh h3{font-size:18px;font-weight:800;letter-spacing:-.4px}
.nr-mh p{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:4px}
.nr-mx{margin-left:auto;width:32px;height:32px;border-radius:10px;background:var(--card2);border:0;
  color:var(--muted);font-size:14px;cursor:pointer;flex:none}
.nr-mbody{padding:18px 22px;overflow:auto}
.nr-fld{display:block;margin-bottom:13px}
.nr-fld span{display:block;font-size:11px;font-weight:800;letter-spacing:.5px;color:var(--muted);
  text-transform:uppercase;margin-bottom:6px}
.nr-fld input,.nr-fld select{width:100%;height:42px;border-radius:13px;border:1px solid var(--line2);background:var(--card);
  padding:0 14px;font:inherit;font-size:14px;font-weight:600;color:var(--text);outline:none}
.nr-fld input:focus,.nr-fld select:focus{border-color:var(--accent2);box-shadow:0 0 0 3px var(--accentsoft)}
.nr-mnote{font-size:12px;font-weight:600;color:var(--muted);background:var(--card2);
  border-radius:12px;padding:10px 13px;line-height:1.45}
.nr-mf{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px;border-top:1px solid var(--line)}
.nr-hrow{display:grid;grid-template-columns:118px minmax(0,1fr) 96px;gap:12px;align-items:center;
  padding:11px 0;border-bottom:1px solid var(--line)}
.nr-hrow:last-child{border-bottom:0}
.nr-hts{font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.nr-hb b{font-size:13px;font-weight:800}
.nr-hd{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:12.5px;font-weight:600;flex-wrap:wrap}
.nr-hd s{text-decoration:line-through;color:var(--muted)}
.nr-hd i{font-style:normal;color:var(--faint)}
.nr-hd u{text-decoration:none;color:var(--limed);background:var(--limesoft);border-radius:7px;padding:1px 7px}
.nr-hwho{font-size:11.5px;font-weight:700;color:var(--muted);text-align:right}
.nr-flash{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:90;
  background:var(--lime);color:#3a4408;border-radius:14px;padding:12px 18px;font-size:13px;font-weight:700;
  box-shadow:var(--shadow2);transition:opacity .5s}
.nr-flash.out{opacity:0}

/* Хозяин раздела в шапке (Качество ведёт Алёна) — 14.08.2026 */
.nr-owner{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);
  border-radius:13px;padding:0 14px 0 8px;height:40px;white-space:nowrap}
.nr-owner .av{width:26px;height:26px;border-radius:50%;background:linear-gradient(140deg,var(--peach),var(--pink));
  color:var(--peachd);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none}
.nr-owner b{display:block;font-size:12.5px;font-weight:800;line-height:1.15}
.nr-owner span:not(.av){display:block;font-size:11px;font-weight:600;color:var(--muted)}

/* ============================================================
   «+ Проблема» в Контроле качества — под новый дизайн (14.08.2026).
   Форма жила в боковой шторке .sheet времён старого интерфейса и выезжала
   сбоку, хотя раздел давно пересобран в языке Реестра. Разметку и логику
   (openQCModal/saveQC) не трогаем — меняем только оболочку, scoped на #qcModal.
   ============================================================ */
#qcModal .scrim{background:rgba(44,47,38,.28);backdrop-filter:blur(3px)}
#qcModal.on{display:flex;align-items:center;justify-content:center;padding:24px}
#qcModal .sheet{position:relative;right:auto;top:auto;bottom:auto;inset:auto;width:100%;max-width:600px;
  max-height:88vh;border:0;border-radius:22px;box-shadow:var(--shadow2);padding:0;animation:none;
  display:flex;flex-direction:column;overflow:hidden}
#qcModal .sh-head{margin:0;padding:19px 22px 15px;border-bottom:1px solid var(--line);flex:none}
#qcModal .sh-head .lab{font-size:18px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
#qcModal #qcForm{flex:1;overflow:auto;padding:16px 22px 4px!important}
#qcModal .tcard{box-shadow:none;border:1px solid var(--line);border-radius:16px;background:var(--card)}
#qcModal .tcard.t-peach{background:var(--peachsoft);border-color:transparent}
#qcModal .tcard.t-lav{background:var(--lavsoft);border-color:transparent}
#qcModal .tcard-l{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
#qcModal .fv{font-size:14px;border-radius:12px}
#qcModal .sh-foot{margin:0!important;padding:14px 22px 18px;border-top:1px solid var(--line);flex:none;background:var(--card)}
#qcModal .save-btn{background:var(--lime);color:#3a4408;border:0;border-radius:12px;height:38px;padding:0 18px;font-weight:800}

/* Верхняя строка карточки поставщика 14.08.2026: показатель + честная база расчёта */
.s2-top{margin-left:auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.s2-kpi{display:flex;align-items:baseline;gap:9px}
.s2-kpi .lbl{font-size:11px;font-weight:800;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
.s2-kpi b{font-size:26px;font-weight:800;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.s2-kpi b.good{color:var(--green)}
.s2-kpi b.bad{color:var(--red)}
.s2-kpi .goal{font-size:12px;font-weight:600;color:var(--muted)}
.s2-basis{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:420px}
.s2-basis span{font-size:11px;font-weight:700;color:var(--muted);background:var(--card2);border-radius:7px;padding:3px 8px}
.s2-basis .warn{background:var(--peachsoft);color:var(--peachd)}
.s2-basis .bad{background:var(--redbg);color:var(--red)}

/* ============================================================
   KPI КОМАНДЫ (плашка .kplate) — под язык Реестра, 14.08.2026.
   Было: лаймовая капслок-шапка и толстая цветная планка слева —
   раздел выбивался из остальной системы. Правки только визуальные.
   ============================================================ */
.kplate-cap{font-size:11px;letter-spacing:.5px;color:var(--muted);margin-bottom:10px}
.kplate-tip{color:var(--faint)}
.kplate-row{gap:14px}
.kplate{border-left:1px solid var(--line);border-radius:18px;padding:16px 18px;gap:14px;
  box-shadow:var(--shadow)}
.kplate:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:2px;background:var(--accent)}
.kplate.kplate-green:before{background:var(--green)}
.kplate.kplate-warn:before{background:var(--peachd)}
.kplate.kplate-red:before{background:var(--red)}
.kplate-h{font-size:12.5px;font-weight:800;color:var(--text);min-height:0;margin-bottom:2px}
.kplate-v b{font-size:26px;letter-spacing:-.8px}
.kplate-v{margin:4px 0 10px}
.kplate-sub{margin-top:9px;font-size:11px;font-weight:600;color:var(--muted)}
.kplate-who{background:var(--limesoft);color:var(--limed)}
.kplate-empty{background:var(--card);border:1px dashed var(--line2);border-radius:16px;padding:16px 18px;
  font-size:12.5px;font-weight:600;color:var(--muted)}
/* .nr-dhead — grid 104px+1fr (карточка Реестра). У поставщика в шапке три блока,
   и третий уезжал на новую строку под аватар. Здесь ряд — flex. */
.nr-dhead.s2-head{display:flex;align-items:center;gap:16px}
#qcModal .sh-foot .save-btn{margin-left:auto}

/* ============================================================
   РЕЕСТР — ПЕРЕСБОРКА 17.08.2026, редакция 2 (дизайн-проход)
   Правило: держаться языка исходного раздела — воздух, мягкие
   карточки var(--card2) с радиусом 16, строки таблицы 48px,
   границы только сверху, ни одной «формы из инпутов».
   Ни одного нового hex: токены MOCKUP10 либо rgba от них.
   ============================================================ */
.nr-top h2{font-size:24px;letter-spacing:-.6px}
.nr-sb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:13px;color:var(--muted);font-weight:600}
.nr-sb b{color:var(--text);font-weight:800}
.nr-sb s{text-decoration:none;color:var(--faint)}
.nr-sb .warn{color:var(--peachd);font-weight:700}

/* ---------- «Пульт»: один ряд, три смысловые зоны ---------- */
.nr-bar{display:flex;align-items:center;gap:0;background:var(--card);border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);padding:8px;margin-bottom:12px;flex-wrap:wrap}
.nr-zone{display:flex;align-items:center;gap:7px;padding:0 13px}
.nr-zone:first-child{padding-left:5px}
.nr-zone+.nr-zone{border-left:1px solid var(--line)}
.nr-zl{font-size:10px;font-weight:700;letter-spacing:.8px;color:var(--faint);text-transform:uppercase;margin-right:4px}
.nr-seg{display:flex;background:var(--card2);border-radius:12px;padding:3px;gap:2px}
.nr-seg b{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:10px;
  font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:.14s;white-space:nowrap}
.nr-seg b:hover{color:var(--text)}
.nr-seg b.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(70,75,55,.10)}
.nr-seg b u{text-decoration:none;font-size:11.5px;font-weight:700;color:var(--faint);font-variant-numeric:tabular-nums}
.nr-seg b.on u{color:var(--limed)}
.nr-seg .dot{width:7px;height:7px;border-radius:3px;display:block;flex:none}
.nr-seg .dot.wb{background:var(--lav)}
.nr-seg .dot.oz{background:var(--blu2)}
.nr-seg .dot.both{background:linear-gradient(90deg,var(--lav) 50%,var(--blu2) 50%)}
.nr-chipf{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:12px;
  font-size:13px;font-weight:700;cursor:pointer;border:1px solid transparent;background:var(--card2);
  color:var(--muted);transition:.14s;white-space:nowrap}
.nr-chipf:hover{color:var(--text)}
.nr-chipf u{text-decoration:none;font-size:11.5px;font-weight:700;color:var(--faint);font-variant-numeric:tabular-nums}
.nr-chipf.on{color:var(--text)}
.nr-chipf.on u{color:var(--text);opacity:.55}
.nr-chipf.on.lime{background:var(--limesoft)}
.nr-chipf.on.peach{background:var(--peachsoft)}
.nr-chipf.on.plain{background:var(--card);border-color:var(--line2)}
.nr-chipf .sw{width:9px;height:9px;border-radius:3px;flex:none;display:block}
.nr-chipf .sw.lime{background:var(--lime)}
.nr-chipf .sw.peach{background:var(--peach)}
.nr-chipf .sw.plain{background:var(--line2)}
select.nr-more{height:34px;padding:0 12px;border-radius:12px;background:var(--card2);border:0;
  font:inherit;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;outline:none;
  -webkit-appearance:none;appearance:none;padding-right:26px;
  background-image:linear-gradient(45deg,transparent 50%,var(--faint) 50%),linear-gradient(135deg,var(--faint) 50%,transparent 50%);
  background-position:calc(100% - 14px) 15px,calc(100% - 9px) 15px;background-size:5px 5px,5px 5px;
  background-repeat:no-repeat}
.nr-srch{flex:1;min-width:220px;margin-left:auto;height:38px;border-radius:12px}
.nr-srch kbd{font:inherit;font-size:11px;font-weight:700;color:var(--faint);background:var(--card2);
  border-radius:6px;padding:3px 7px;flex:none}

.nr-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;min-height:26px;
  font-size:12.5px;font-weight:600;color:var(--muted)}
.nr-act b{color:var(--text);font-weight:800}
.nr-atag{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 8px 0 12px;border-radius:9px;
  background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:700;color:var(--text)}
.nr-atag s{text-decoration:none;color:var(--faint);cursor:pointer;font-size:12px;width:16px;height:16px;
  border-radius:5px;display:inline-flex;align-items:center;justify-content:center}
.nr-atag s:hover{background:var(--card2);color:var(--red)}
.nr-reset{color:var(--blu2d);font-weight:700;cursor:pointer;font-size:12px}

/* ---------- список ---------- */
.nr-grid2{display:grid;grid-template-columns:46px minmax(0,1fr) 132px 84px;align-items:center;gap:16px}
.nr-lhead.nr-grid2{padding:2px 14px 12px}
.nr-lab.c{text-align:center}
.nr-grid2 .nr-vit{display:flex;gap:6px;justify-content:center}
.nr-grid2 .nr-szn{font-size:17px;font-weight:800;text-align:center;letter-spacing:-.4px;
  font-variant-numeric:tabular-nums}
.nr-ty{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.nr-ty s{text-decoration:none;color:var(--faint)}
.nr-shopn{font-style:normal;font-size:11.5px;color:var(--faint);font-weight:600}
.nr-more2{text-align:center;padding:13px;font-size:13px;font-weight:700;color:var(--blu2d);cursor:pointer;
  border-top:1px solid var(--line);margin-top:8px}

/* складские бирки линейки — равноправные, каждая своим тоном */
.nr-tagchip{display:inline-block;font-size:13px;font-weight:800;letter-spacing:-.2px;padding:3px 9px;
  border-radius:8px;margin-right:7px;color:var(--text)}
.nr-tagchip.big{font-size:20px;letter-spacing:-.5px;padding:4px 13px;margin-right:9px}
.nr-tagchip.mk-lime{background:var(--limesoft)}
.nr-tagchip.mk-blu{background:var(--blu2soft)}
.nr-tagchip.mk-peach{background:var(--peachsoft)}
.nr-tagchip.mk-lav{background:var(--lavsoft)}
.nr-tagchip.mk-pink{background:var(--pinksoft)}
.nr-ttl{display:flex;align-items:center;flex-wrap:wrap;gap:5px 0}
.nr-sect{display:flex;align-items:center;gap:10px}
.nr-hint{margin-left:auto;font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--faint)}

/* ---------- витрины: тон витрины, а не серое поле ---------- */
.nr-shop.wb{background:var(--lavsoft)}
.nr-shop.oz{background:var(--blu2soft)}
.nr-shop.off{background:var(--card2)}
.nr-shop{display:block;padding:17px 19px}
.nr-shop .hd{margin-left:0;justify-content:space-between;flex-wrap:wrap;gap:8px}
.nr-shop .val{margin-top:13px}
.nr-shop .cap{margin-top:7px;font-weight:600}
.nr-shop .cap b{color:var(--text);font-weight:800}

/* ---------- таблица размеров: язык исходной таблицы ---------- */
.nr-tbl9{width:100%;border-collapse:separate;border-spacing:0;min-width:960px}
.nr-tbl9 th{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--muted);text-align:left;
  padding:0 14px 11px;white-space:nowrap;background:none;border:0}
.nr-tbl9 th.num,.nr-tbl9 td.num{text-align:right;font-variant-numeric:tabular-nums}
.nr-tbl9 th.c1,.nr-tbl9 td.c1{padding-left:0}
.nr-tbl9 td{padding:0 14px;height:48px;border-top:1px solid var(--line);font-size:13px;font-weight:600;
  white-space:nowrap;vertical-align:middle}
.nr-tbl9 td.s1{font-weight:800}
.nr-tbl9 .mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;letter-spacing:-.2px}
.nr-tblwrap{overflow-x:auto;margin:0 -2px;padding:0 2px;
  /* мягкое затухание правого края: обрезанная колонка не торчит «одинокой палочкой» */
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),rgba(0,0,0,.06));
  mask-image:linear-gradient(90deg,#000 calc(100% - 22px),rgba(0,0,0,.06))}
/* заголовок ростовки — не серая полоса, а подпись с линией, как разделы карточки */
tr.nr-grp td{border-top:1px solid var(--line2);background:none;padding:18px 0 8px;height:auto}
.nr-grpin{display:inline-flex;align-items:baseline;gap:11px;font-size:12px;font-weight:800;
  letter-spacing:.3px;color:var(--text)}
.nr-grpin em{font-style:normal;font-size:11.5px;font-weight:600;color:var(--faint)}
.nr-addrow{display:flex;justify-content:flex-start;margin-top:14px}
.nr-addbtn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 15px;border-radius:12px;
  background:var(--card2);color:var(--text);font-size:12.5px;font-weight:700;cursor:pointer;
  border:1px dashed var(--line2);transition:.14s}
.nr-addbtn:hover{background:var(--limesoft);border-color:var(--accent2);border-style:solid}

/* ---------- характеристики: те же мягкие карточки ---------- */
.nr-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nr-fact{background:var(--card2);border-radius:16px;padding:16px 18px;display:flex;
  flex-direction:column;gap:11px}
.nr-fact-wide{grid-column:span 2}
.nr-fl{font-size:12px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:9px}
.nr-fl i{font-style:normal;color:var(--faint);font-weight:600}
.nr-auto{font-size:10px;font-weight:800;letter-spacing:.4px;color:var(--limed);background:rgba(207,226,74,.5);
  border-radius:6px;padding:3px 7px;text-transform:uppercase}
.nr-fbig{font-size:22px;font-weight:800;letter-spacing:-.6px;line-height:1}
.nr-fbig span{font-size:14px;font-weight:700;color:var(--muted)}
.nr-fmid{font-size:15px;font-weight:700;letter-spacing:-.2px;line-height:1.4}
.nr-fs{font-size:12px;color:var(--faint);font-weight:600}
.nr-swatches{display:flex;flex-wrap:wrap;gap:7px}
.nr-sw{display:inline-flex;align-items:center;gap:7px;background:var(--card);border-radius:9px;
  padding:6px 11px 6px 8px;font-size:12.5px;font-weight:650}
.nr-sw i{width:12px;height:12px;border-radius:50%;display:block;flex:none;
  box-shadow:inset 0 0 0 1px rgba(70,75,55,.13)}

/* ---------- себестоимость: карточка на ростовку ---------- */
.nr-bands{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.nr-band{background:var(--card2);border-radius:16px;padding:16px 18px}
.nr-bh{display:flex;align-items:baseline;gap:9px;justify-content:space-between}
.nr-bh b{font-size:14px;font-weight:800;letter-spacing:-.2px}
.nr-bh span{font-size:11.5px;font-weight:600;color:var(--faint)}
.nr-brange{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:5px}
.nr-bcalc{display:grid;grid-template-columns:1fr auto;gap:9px 14px;margin:14px 0 0;align-items:baseline}
.nr-bcalc dt{font-size:12.5px;color:var(--muted);font-weight:600}
.nr-bcalc dt em{font-style:normal;color:var(--faint);font-size:11.5px;margin-left:6px}
.nr-bcalc dd{margin:0;font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.nr-btot{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--line2);
  margin-top:13px;padding-top:13px}
.nr-btot span{font-size:13.5px;font-weight:800}
.nr-btot b{font-size:19px;font-weight:800;letter-spacing:-.4px;font-variant-numeric:tabular-nums}

/* ---------- режим правки: тот же интерфейс, только поля живые ---------- */
.nr-editbar{display:flex;align-items:center;gap:14px;background:var(--limesoft);border-radius:16px;
  padding:13px 18px;margin-bottom:22px;flex-wrap:nowrap}
.nr-editbar .ttl{font-size:14px;font-weight:800;color:var(--limed);white-space:nowrap}
.nr-editbar .sub{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:12.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:7px}
.nr-editbar .sp{display:none}
.nr-editbar .nr-btn{flex:none}
/* поле правки: белое на тоне витрины, без жёстких рамок */
.nr-in{border:1px solid transparent;background:var(--card);border-radius:12px;padding:0 13px;height:38px;
  font:inherit;font-size:13.5px;font-weight:700;color:var(--text);outline:none;width:100%;
  box-sizing:border-box;text-align:left;transition:.14s}
.nr-in:hover{border-color:var(--line2)}
.nr-in:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(154,184,19,.16)}
.nr-in.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;font-weight:600}
.nr-in.dupe{box-shadow:0 0 0 3px rgba(207,90,134,.18);border-color:var(--red)}
select.nr-in{-webkit-appearance:none;appearance:none;padding-right:30px;
  background-image:linear-gradient(45deg,transparent 50%,var(--faint) 50%),linear-gradient(135deg,var(--faint) 50%,transparent 50%);
  background-position:calc(100% - 17px) 17px,calc(100% - 12px) 17px;background-size:5px 5px,5px 5px;
  background-repeat:no-repeat}
.nr-ffx{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}
.nr-ffx label{display:block}
.nr-ffx label span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}
.nr-ro{display:inline-block;color:var(--muted);font-size:12px}
.nr-tbled td{padding:5px 14px;height:52px}
.nr-tbled td.c1{padding-left:0}
.nr-tbled td .nr-in{min-width:92px;height:36px}
.nr-tbled td:nth-child(3) .nr-in,.nr-tbled td:nth-child(4) .nr-in,
.nr-tbled td:nth-child(5) .nr-in{min-width:130px}
.nr-tbled td:nth-child(6) .nr-in,.nr-tbled td:nth-child(7) .nr-in,
.nr-tbled td:nth-child(8) .nr-in{min-width:138px}
.nr-dupe{background:var(--redbg);border-radius:14px;padding:13px 16px;font-size:13px;font-weight:600;
  color:var(--pinkd);margin-bottom:16px}
.nr-dupe b{font-weight:800}
.nr-dupe .go{color:var(--blu2d);font-weight:800;cursor:pointer;margin-left:7px}
.nr-hsc{font-size:11px;font-weight:600;color:var(--faint);margin-left:9px}

@media(max-width:900px){
  .nr-editbar{flex-wrap:wrap}
  .nr-editbar .sub{flex-basis:100%;order:3;white-space:normal}
  .nr-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .nr-bar{flex-wrap:wrap;gap:8px 0}
  .nr-zone{padding:0 8px;flex-wrap:wrap;min-width:0;row-gap:6px}
  .nr-zone+.nr-zone{border-left:0}
  .nr-srch{flex-basis:100%;margin-left:0;min-width:0}
  .nr-seg{flex-wrap:wrap}
  .nr-grid2{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;row-gap:6px}
  .nr-grid2 .nr-szn{grid-column:3;font-size:15px}
  .nr-grid2 .nr-vit{grid-column:2;justify-content:flex-start;margin-top:6px}
  .nr-lhead.nr-grid2{display:none}
  .nr-tagchip{font-size:12px}
  .nr-tagchip.big{font-size:16px}
  .nr-facts{grid-template-columns:1fr}
  .nr-fact-wide{grid-column:span 1}
  .nr-shops{grid-template-columns:1fr}
  .nr-ffx{grid-template-columns:1fr}
  .nr-bands{grid-template-columns:1fr}
}
/* доводка после первого дизайн-прохода */
.nr-fact-full{grid-column:1 / -1}
.nr-bands{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.nr-band{min-width:0}
.nr-dph .nr-nophoto,.nr-ph .nr-nophoto{font-style:normal;position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;font-size:26px;color:var(--faint);z-index:-1}
.nr-ph{position:relative}
.nr-ph .nr-nophoto{font-size:16px}
@media(max-width:1500px){.nr-bands{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}}
.nr-fact-two{display:grid;grid-template-columns:auto 1fr;gap:11px 16px;align-items:center}
.nr-fact-two .nr-fl{margin:0}

/* ---- Реестр: правка 19.08 (магазины, плашки бирок, характеристики, три себестоимости) ---- */
/* Плашки складских бирок — полная заливка, тона близкие между собой */
.nr-tagchip{display:inline-block;font-size:13px;font-weight:800;letter-spacing:-.2px;padding:4px 11px;
  border-radius:10px;margin:0 7px 0 0;color:var(--text);line-height:1.25}
.nr-tagchip.big{font-size:20px;letter-spacing:-.5px;padding:5px 14px;margin-right:9px;border-radius:12px}
.nr-tagchip.t1{background:#e8f0c8} .nr-tagchip.t2{background:#dcecd6} .nr-tagchip.t3{background:#d6ecdf}
.nr-tagchip.t4{background:#d8ebe9} .nr-tagchip.t5{background:#dfe9d0} .nr-tagchip.t6{background:#eaf0d2}

/* Инструменты карточки — подписаны словами */
.nr-cardtitle{display:flex;align-items:center;gap:14px}
.nr-tools{display:flex;gap:8px;margin-left:auto}
.nr-tool{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:12px;
  background:var(--card2);border:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--text);
  cursor:pointer;transition:.14s}
.nr-tool i{font-style:normal;font-size:13px;color:var(--muted)}
.nr-tool:hover{background:var(--limesoft)}
.nr-tool:hover i{color:var(--limed)}

/* ИП подсвечен, магазин в скобках рядом */
.nr-ipmark{font-weight:700}
.nr-shopin{color:var(--muted);font-weight:600;margin-left:5px}
.nr-shop .hd{align-items:baseline}
.nr-shop .val i{font-style:normal;color:var(--faint);margin:0 4px}
/* пояснение со стрелкой к бирке Ozon */
.nr-hintarrow{display:flex;align-items:flex-start;gap:8px;margin-top:11px;font-size:11.5px;
  font-weight:700;color:var(--blu2d);line-height:1.4}
.nr-hintarrow i{display:block;width:14px;height:14px;flex:none;margin-top:1px;
  border-left:1.5px solid var(--blu2d);border-bottom:1.5px solid var(--blu2d);
  border-bottom-left-radius:7px;transform:translateY(-3px)}

/* Характеристики: цветная кромка вместо серого поля */
.nr-fact{position:relative;overflow:hidden;background:var(--card2);border-radius:16px;padding:16px 18px 16px 20px}
.nr-fact::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px}
.nr-fact.t-colors::before{background:linear-gradient(180deg,#e2b93b,#d2537f 45%,#a98ac9)}
.nr-fact.t-set::before{background:var(--accent2)}
.nr-fact.t-mat::before{background:var(--blu2)}
.nr-fact.t-pack::before{background:var(--peach)}
.nr-fact.center{text-align:center;align-items:center}
.nr-fact.center .nr-fl{justify-content:center}
.nr-fact.t-colors .nr-fl{color:var(--pinkd);font-weight:800;letter-spacing:.2px}
.nr-fact.t-colors .nr-fl i{color:var(--faint)}
.nr-fact .nr-fmid{background:var(--card);border-radius:11px;padding:10px 13px;font-size:14px}
.nr-packrow{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:11px;
  padding:8px 12px;font-size:12.5px;font-weight:700}
.nr-packrow b{font-weight:800}
.nr-packrow span:last-child{margin-left:auto;color:var(--muted);font-weight:600}

/* Три себестоимости: пустая ростовка не притворяется посчитанной */
.nr-band.empty{opacity:.62}
.nr-band.empty .nr-btot b{color:var(--faint)}
.nr-packrow{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:12px;white-space:nowrap}
.nr-packrow .nr-sh{width:100%;justify-content:center}
.nr-fact.t-pack{gap:9px}
/* деление ростовки в правке */
tr.nr-grp.sub td{border-top:1px dashed var(--line2);padding-top:14px}
.nr-glink{color:var(--blu2d);cursor:pointer;font-weight:700}
.nr-splitcell{text-align:right;padding-right:0}
.nr-split{font-size:11px;font-weight:700;color:var(--faint);cursor:pointer;white-space:nowrap;
  border-bottom:1px dashed var(--line2)}
.nr-split:hover{color:var(--blu2d);border-color:var(--blu2d)}
.nr-efld{display:block}
.nr-efld>span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}
.nr-ffx{grid-template-columns:1fr 1fr}
/* заведение артикула */
.nr-mbox.nr-mwide{max-width:1080px;width:calc(100vw - 60px)}
.nr-nband{background:var(--card2);border-radius:16px;padding:14px 16px;margin-bottom:10px}
.nr-nbi{font-size:11px;font-weight:800;letter-spacing:.5px;color:var(--muted);margin-bottom:10px;
  display:flex;align-items:center;gap:12px}
.nr-nbdel{margin-left:auto;font-size:11px;font-weight:700;color:var(--blu2d);cursor:pointer;letter-spacing:0}
.nr-nband .nr-ffx{margin-top:0}
.nr-mnote{font-size:12px;color:var(--faint);font-weight:600;line-height:1.5;margin-top:6px}

/* ---- Себестоимость: одна секция с переключателем схем (вариант 2) ---- */
.nr-costhead{align-items:center}
.nr-cseg{display:flex;background:var(--card2);border-radius:12px;padding:3px;gap:2px;margin-left:auto}
.nr-cseg b{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:10px;
  font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;letter-spacing:0;text-transform:none;
  white-space:nowrap;transition:.14s}
.nr-cseg b:hover{color:var(--text)}
.nr-cseg b.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(70,75,55,.10)}
.nr-cseg b i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block;flex:none}
.nr-cseg b i.no{background:var(--line2)}
.nr-chint{font-size:12px;color:var(--faint);font-weight:600;margin:-4px 0 12px}
/* Ростовок может быть сколько угодно: сетка переносит их рядами, карточка
   никогда не уже 236 px, поэтому ни одна подпись не рвётся и не обрезается. */
.nr-bands{display:grid;grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:12px}
.nr-band{min-width:0}
.nr-bh b{font-size:15px;letter-spacing:-.2px;overflow-wrap:anywhere}
.nr-bh span{white-space:nowrap}
.nr-brange{overflow-wrap:anywhere}
.nr-bunit{font-size:12px;font-weight:600;color:var(--muted);margin-top:10px;
  background:var(--card);border-radius:9px;padding:7px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nr-bunit b{font-weight:800;color:var(--text)}
.nr-bcalc{margin-top:11px;grid-template-columns:minmax(0,1fr) auto}
.nr-bcalc dt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nr-bcalc dd{white-space:nowrap}
.nr-btot b{white-space:nowrap}
@media(max-width:640px){.nr-cseg{margin-left:0;width:100%}.nr-cseg b{flex:1;justify-content:center;padding:0 8px}}
/* Поле правки видно всегда, а не только при наведении */
.nr-in{background:var(--card2);border-color:var(--line)}
.nr-in:hover{background:var(--card);border-color:var(--line2)}
.nr-in:focus{background:var(--card);border-color:var(--accent2);box-shadow:0 0 0 3px rgba(154,184,19,.16)}
.nr-in::placeholder{color:var(--faint)}
.nr-shop .nr-in{background:rgba(255,255,255,.72);border-color:transparent}
.nr-shop .nr-in:hover{background:var(--card);border-color:var(--line2)}
/* Удаление фото рядом с карандашом */
.nr-dph .ed.del{right:37px}
.nr-dph .ed.del:hover{background:var(--redbg);color:var(--pinkd)}

/* ============================================================
   Оформление по выбору владельца 19.08:
   ① подписи плиток — в тон кромке + короткая черта под ними
      (секционные заголовки с лаймовым маркером НЕ трогаем);
   ② поля магазинов в правке — белая плашка, подпись в тон магазина с чертой;
   ③ таблица — волосок у каждой колонки плюс слабая подложка через одну.
   ============================================================ */

/* ① подписи плиток характеристик */
.nr-fact .nr-fl{display:block;font-size:12px;font-weight:800;letter-spacing:.2px;color:var(--text)}
.nr-fact .nr-fl i{font-style:normal;font-weight:600;color:var(--faint);margin-left:6px}
.nr-fact .nr-fl .nr-auto{margin-left:8px}
.nr-fact .nr-fl::after{content:"";display:block;width:26px;height:2px;border-radius:2px;margin-top:7px;
  background:var(--line2)}
.nr-fact.t-colors .nr-fl{color:var(--pinkd)}
.nr-fact.t-colors .nr-fl::after{background:var(--pinkd)}
.nr-fact.t-set .nr-fl{color:var(--limed)}
.nr-fact.t-set .nr-fl::after{background:var(--accent)}
.nr-fact.t-mat .nr-fl{color:var(--blu2d)}
.nr-fact.t-mat .nr-fl::after{background:var(--blu2d)}
.nr-fact.t-pack .nr-fl{color:var(--peachd)}
.nr-fact.t-pack .nr-fl::after{background:var(--peachd)}
.nr-fact.center .nr-fl{text-align:center}
.nr-fact.center .nr-fl::after{margin-left:auto;margin-right:auto}

/* ② поля магазинов в режиме правки */
.nr-shop .nr-ffx{gap:10px}
.nr-shop .nr-efld{background:rgba(255,255,255,.62);border-radius:12px;padding:10px 12px}
.nr-shop .nr-efld>span{display:block;font-size:10px;font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;margin-bottom:0}
.nr-shop .nr-efld>span::after{content:"";display:block;width:20px;height:2px;border-radius:2px;
  margin:5px 0 7px}
.nr-shop.wb .nr-efld>span{color:var(--lavd)}
.nr-shop.wb .nr-efld>span::after{background:var(--lav)}
.nr-shop.oz .nr-efld>span{color:var(--blu2d)}
.nr-shop.oz .nr-efld>span::after{background:var(--blu2)}
.nr-shop .nr-efld .nr-in{background:transparent;border-color:transparent;height:24px;padding:0}
.nr-shop .nr-efld .nr-in:hover{background:transparent;border-color:transparent}
.nr-shop .nr-efld .nr-in:focus{background:var(--card);border-color:var(--accent2);height:30px;padding:0 9px}
.nr-shop .nr-efld:focus-within{background:var(--card)}
.nr-shop .nr-efld select.nr-in{background-position:calc(100% - 5px) 11px,calc(100% - 0px) 11px;padding-right:16px}
.nr-shop .nr-efld select.nr-in:focus{background-position:calc(100% - 14px) 14px,calc(100% - 9px) 14px;padding-right:26px}

/* ③ разделители в таблице размеров: волосок + подложка через колонку */
.nr-tbl9 th:not(:last-child),.nr-tbl9 td:not(:last-child){border-right:1px solid rgba(70,75,55,.06)}
.nr-tbl9 th:nth-child(2n),.nr-tbl9 td:nth-child(2n){background:rgba(70,75,55,.022)}
.nr-tbl9 tr.nr-grp td{background:none;border-right:0}
.nr-shop .nr-efld>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ================================================================
   ЗАКАЗ КИТАЙ · V2 (20.08.2026) — утверждённые макеты: список сериями
   с волосками-столбцами, ручные статусы, карточка с составом партий,
   позиции общим заказом. Все классы с префиксом zkc-.
   ================================================================ */
.zkc-gap{display:grid;gap:24px}
.zkc-ser{padding:24px}
.zkc-serh{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap;
  background:var(--card2);border-radius:14px;padding:12px 16px}
.zkc-sername{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800}
.zkc-mark{font-style:normal;font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  padding:4px 10px;border-radius:8px;background:var(--lime);color:#3f4d07}
.zkc-sersup{font-size:13px;font-weight:700;color:var(--muted)}
.zkc-serinfo{font-size:12.5px;font-weight:600;color:var(--muted);line-height:2}
.zkc-u{color:var(--text);font-weight:800;white-space:nowrap;
  background:linear-gradient(transparent 62%,var(--limesoft) 62%);border-radius:3px;padding:0 2px}
.zkc-lab{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.zkc-lab::after{content:"";display:block;width:26px;height:2px;border-radius:2px;margin-top:6px;background:var(--mkc,var(--lime))}
.zkc-lab.lav{--mkc:var(--lav)}.zkc-lab.blu{--mkc:var(--blue)}.zkc-lab.peach{--mkc:var(--peach)}.zkc-lab.oliv{--mkc:var(--limed)}
.zkc-lab.r{text-align:right}.zkc-lab.r::after{margin-left:auto}
.zkc-h,.zkc-o{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(150px,180px) minmax(150px,1fr) 110px minmax(150px,185px) 132px;gap:0}
.zkc-h{padding-bottom:10px}
.zkc-h>div{padding:0 14px;display:flex}
.zkc-h>div:first-child{padding-left:0}
.zkc-h>div+div{border-left:1px solid var(--line)}
.zkc-h .zkc-lab.r{margin-left:auto}
.zkc-o{border-top:1px solid var(--line);cursor:pointer}
.zkc-c{display:flex;align-items:center;padding:13px 14px;min-width:0}
.zkc-c:first-child{padding-left:0}
.zkc-o .zkc-c+.zkc-c{border-left:1px solid var(--line)}
.zkc-c.r{justify-content:flex-end;text-align:right}
.zkc-shops{display:flex;gap:6px;flex-wrap:wrap}
.zkc-sh{display:inline-flex;align-items:center;height:26px;border-radius:9px;padding:0 10px;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.zkc-sh.wb{background:var(--lavsoft);color:var(--lavd)}
.zkc-sh.oz{background:var(--blu2soft);color:var(--blu2d)}
.zkc-sh.mut{background:#f0f1ea;color:var(--faint)}
.zkc-lots{display:flex;gap:3px;align-items:center;overflow:hidden}
.zkc-lots i{height:6px;border-radius:4px;flex:none;display:block}
.zkc-lots i.acc{background:var(--accent)}
.zkc-lots i.arr{background:var(--peach)}
.zkc-lots i.way{background:var(--lime)}
.zkc-lots i.no{background:var(--line2)}
.zkc-qty{text-align:right}
.zkc-qty b{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;display:block}
.zkc-qty span{font-size:11px;color:var(--muted);font-weight:700}
.zkc-money{text-align:right;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.zkc-money span{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:2px;white-space:normal;max-width:180px}
.zkc-money .mut{color:var(--faint);font-weight:700}
.zkc-mut{color:var(--faint)}
.zkc-mut2{color:var(--muted)}
.zkc-strel{position:relative;padding-left:10px !important;padding-right:0 !important}
.zkc-strel .nz-chip{font-size:11.5px;padding:0 9px;white-space:nowrap}
.zkc-stbtn{cursor:pointer}
.zkc-stmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;background:var(--card);border-radius:14px;box-shadow:0 12px 34px rgba(70,75,55,.18);padding:6px;min-width:190px;text-align:left}
.zkc-stmenu .it{padding:9px 12px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.zkc-stmenu .it:hover{background:var(--card2)}
.zkc-stmenu .it.on{background:var(--limesoft);color:var(--limed)}
.zkc-kpis .zkc-ks{font-size:11.5px;font-weight:600;color:var(--muted);margin-top:4px}
.zkc-kpis .zkc-ks b{color:var(--text)}
.zkc-tri{color:var(--faint);font-size:11px;margin-right:2px}
.zkc-comp{background:var(--card2);border-radius:14px;padding:12px 16px;margin:2px 0 12px 28px}
.zkc-comprow>td{border-top:0 !important;padding-top:0 !important}
.zkc-tbl td+td,.zkc-tbl th+th{border-left:1px solid var(--line)}
.zkc-tbl td,.zkc-tbl th{padding-left:10px;padding-right:10px}
.zkc-diff-neg{color:var(--peachd);font-weight:800}
.zkc-diff-pos{color:var(--green);font-weight:800}
.zkc-warn{display:inline-flex;width:16px;height:16px;border-radius:50%;background:var(--peachsoft);color:var(--peachd);align-items:center;justify-content:center;font-size:11px;font-weight:800;cursor:help;vertical-align:1px}
.zkc-fold,.zkc-hiddenbtn{font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;margin-left:12px;white-space:nowrap}
.zkc-fold:hover,.zkc-hiddenbtn:hover{color:var(--text)}
.zkc-hide{font-size:12px;font-weight:700;color:var(--faint);cursor:pointer;white-space:nowrap}
.zkc-hide:hover{color:var(--muted)}
.zkc-hint{font-size:12px;color:var(--muted);font-weight:600;margin-top:10px}
/* окно сбора в календаре — полосой, не точками (утверждён макет календаря 1) */
.zc-d .zc-prep{display:block;width:100%;height:3px;border-radius:2px;margin:5px 0 2px}
.zc-d .zc-prep.zc-t{background:var(--lime)}
.zc-d .zc-prep.zc-b{background:var(--peach)}
@media(max-width:1100px){
  .zkc-h{display:none}
  .zkc-o{grid-template-columns:1fr 1fr;gap:8px;padding:12px 0}
  .zkc-c{border-left:0 !important;padding:2px 0}
  .zkc-c.r{justify-content:flex-start;text-align:left}
}

/* --- Заказ Китай V2.1 (20.08): подбор в карточках-линейках, окно партии в календаре --- */
.zkc-tagchip{display:inline-flex;align-items:center;height:24px;border-radius:8px;padding:0 9px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700;white-space:nowrap}
.zkc-tag-wb{background:var(--lavsoft);color:var(--lavd)}
.zkc-tag-oz{background:var(--blu2soft);color:var(--blu2d)}
.zkc-nwgrp{background:var(--card2);border-radius:16px;padding:16px 18px;margin-top:14px}
.zkc-nwhd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;row-gap:8px}
.zkc-nwtbl{background:var(--card);border-radius:14px;padding:4px 14px 10px;margin-top:12px}
.nz-qin.zkc-in-wb:not(.zero){background:var(--lavsoft);border-color:transparent}
.nz-qin.zkc-in-oz:not(.zero){background:var(--blu2soft);border-color:transparent}
.zkc-pop{position:absolute;right:24px;top:88px;width:440px;max-height:calc(100% - 120px);overflow:auto;
  background:var(--card);border-radius:18px;box-shadow:0 18px 50px rgba(70,75,55,.25);padding:18px 20px 20px 26px;z-index:45}
.zkc-pop::before{content:"";position:absolute;left:11px;top:18px;bottom:18px;width:4px;border-radius:3px;background:var(--edge,var(--blue))}
.zkc-popx{position:absolute;right:12px;top:10px;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;color:var(--faint);cursor:pointer;font-size:15px;z-index:2}
.zkc-popx:hover{background:var(--card2);color:var(--text)}
.zkc-pophd{background:var(--card2);border-radius:14px;padding:12px 34px 12px 14px}
.zkc-pophd .zkc-row1{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;row-gap:6px}
.zkc-pophd .zkc-row1>b{font-size:14.5px;letter-spacing:-.2px}
.zkc-popdate{margin-top:8px;font-size:13px;font-weight:700}
.zkc-popsub{margin-top:4px;font-size:12px;font-weight:600;color:var(--muted)}
.zkc-poptiles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}
.zkc-poptiles .t{border-radius:14px;padding:9px 12px}
.zkc-poptiles .t span{font-size:10px;font-weight:800;letter-spacing:.4px}
.zkc-poptiles .t b{display:block;font-size:16px;margin-top:2px;font-variant-numeric:tabular-nums}
.zkc-poptiles .t.neu{background:var(--card2)}
.zkc-poptiles .t.neu span{color:var(--muted)}
.zkc-poptiles .t.wb{background:var(--lavsoft)}
.zkc-poptiles .t.wb span{color:var(--lavd)}
.zkc-poptiles .t.oz{background:var(--blu2soft)}
.zkc-poptiles .t.oz span{color:var(--blu2d)}
.zkc-pophead{display:grid;grid-template-columns:1fr 72px 72px 80px;gap:8px;margin-top:14px;padding-bottom:8px}
.zkc-pophead span{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.zkc-pophead span::after{content:"";display:block;width:22px;height:2px;border-radius:2px;margin-top:4px;background:var(--limed)}
.zkc-pophead .lav::after{background:var(--lav)}
.zkc-pophead .blu::after{background:var(--blue)}
.zkc-pophead .r{text-align:right}
.zkc-pophead .r::after{margin-left:auto}
.zkc-poprow{display:grid;grid-template-columns:1fr 72px 72px 80px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.zkc-poprow .r{text-align:right;font-variant-numeric:tabular-nums}
.zkc-poprow .mut{color:var(--faint);font-style:normal}
@media(max-width:1100px){
  .zkc-pop{left:12px;right:12px;width:auto}
}

/* ============================================================
   РЕЕСТР ⇄ EXCEL + ТАБЛИЧНЫЙ ВИД (19.09.2026, reestr-xl.js)
   Префикс nrx- (свободен), только токены :root.
   ============================================================ */
.nr-topacts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nrx-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nrx-b{color:var(--text)}
.nrx-ic{font-size:15px;line-height:1;color:var(--limed)}
.nrx-vsw{margin-right:4px}
.nrx-box{max-width:980px}
.nrx-box.w{max-width:1080px}
.nrx-cols{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px}
.nrx-sec{font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);margin:2px 0 9px;display:flex;align-items:center;gap:8px}
.nrx-sec i{font-style:normal;margin-left:auto;text-transform:none;letter-spacing:0;font-size:12px;font-weight:700;color:var(--limed)}
.nrx-fgrp{background:var(--card2);border-radius:15px;padding:12px 13px;margin-bottom:10px}
.nrx-fgrp>b{display:block;font-size:12px;font-weight:800;margin-bottom:8px}
.nrx-chips{display:flex;flex-wrap:wrap;gap:6px}
.nrx-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:10px;background:var(--card);
  border:1px solid var(--line2);font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none;white-space:nowrap}
.nrx-chip:hover{color:var(--text)}
.nrx-chip.on{background:var(--limesoft);border-color:var(--accent);color:#3a4408}
.nrx-chip u{text-decoration:none;font-weight:600;color:var(--faint)}
.nrx-chip.on u{color:var(--limed)}
.nrx-cnt{display:flex;align-items:baseline;gap:8px;background:var(--limesoft);border-radius:15px;padding:12px 14px;margin-top:4px}
.nrx-cnt b{font-size:24px;font-weight:800;color:var(--limed);letter-spacing:-.5px}
.nrx-cnt span{font-size:12.5px;font-weight:700;color:var(--limed)}
.nrx-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.nrx-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nrx-fg{border:1px solid var(--line);border-radius:15px;padding:11px 13px}
.nrx-fg h4{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;margin-bottom:7px}
.nrx-fg h4 .sw{width:10px;height:10px;border-radius:3px;background:var(--lime)}
.nrx-fg h4 .sw.codes{background:var(--blu2)} .nrx-fg h4 .sw.money{background:var(--peach)} .nrx-fg h4 .sw.live{background:var(--lav)}
.nrx-fg h4 small{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--muted)}
.nrx-ck{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;padding:3px 0;cursor:pointer;user-select:none}
.nrx-ck i{flex:none;width:16px;height:16px;border-radius:5px;background:var(--accent);color:#fff;font-style:normal;font-size:11px;font-weight:800;
  display:flex;align-items:center;justify-content:center}
.nrx-ck.off i{background:var(--card);border:1.5px solid var(--line2);color:transparent}
.nrx-ck.off{color:var(--muted)}
.nrx-ck em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;background:var(--lime);color:#3a4408;border-radius:5px;padding:1px 6px}
.nrx-ck s{text-decoration:none;font-size:11px;color:var(--faint);font-weight:700;margin-left:auto}
.nrx-auto{display:flex;gap:10px;align-items:flex-start;margin-top:12px;background:var(--blu2soft);color:var(--blu2d);border-radius:13px;padding:10px 13px;
  font-size:12.5px;font-weight:700;line-height:1.45}
.nrx-mf{align-items:center}
.nrx-mf .sp{margin-right:auto;font-size:12.5px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:8px;min-width:0}
.nrx-mf .sp b{color:var(--text)}
.nrx-mf .nr-btn[disabled]{opacity:.45;cursor:default}
/* загрузка */
.nrx-drop{display:block;border:2px dashed var(--line2);border-radius:18px;background:var(--card2);padding:34px 20px;text-align:center;cursor:pointer}
.nrx-drop.over,.nrx-drop:hover{border-color:var(--accent);background:var(--limesoft)}
.nrx-drop.busy{border-color:var(--accent);background:var(--limesoft);cursor:progress}
.nrx-drop .ic{font-size:34px;line-height:1}
.nrx-drop b{display:block;font-size:16px;font-weight:800;margin-top:12px;letter-spacing:-.2px}
.nrx-drop span{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-top:5px}
.nrx-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.nrx-step{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 13px;font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.4}
.nrx-step i{display:flex;width:22px;height:22px;border-radius:50%;background:var(--limesoft);color:var(--limed);font-style:normal;font-weight:800;
  align-items:center;justify-content:center;margin-bottom:6px}
.nrx-step b{color:var(--text)}
.nrx-file{display:flex;align-items:center;gap:10px;background:var(--card2);border-radius:13px;padding:10px 13px;font-size:13px;font-weight:700;margin-bottom:14px;flex-wrap:wrap}
.nrx-file span{color:var(--muted);font-weight:600}
.nrx-file .ok{margin-left:auto;color:var(--limed);background:var(--limesoft);border-radius:8px;padding:3px 9px;font-size:12px}
.nrx-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:16px}
.nrx-tile{border-radius:15px;padding:11px 13px;background:var(--card2)}
.nrx-tile b{display:block;font-size:22px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.nrx-tile span{display:block;font-size:11.5px;font-weight:700;color:var(--muted);margin-top:2px;line-height:1.3}
.nrx-tile.lime{background:var(--limesoft)} .nrx-tile.lime b{color:var(--limed)}
.nrx-tile.blue{background:var(--blu2soft)} .nrx-tile.blue b{color:var(--blu2d)}
.nrx-tile.red{background:var(--redbg)} .nrx-tile.red b{color:var(--red)}
.nrx-tile.peach{background:var(--peachsoft)} .nrx-tile.peach b{color:var(--peachd)}
.nrx-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.nrx-list{border:1px solid var(--line);border-radius:15px;padding:4px 14px;margin-bottom:12px}
.nrx-li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px;font-weight:600}
.nrx-li:last-child{border-bottom:0}
.nrx-li b{font-weight:800}
.nrx-li small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:1px}
.nrx-li .n{font-weight:800;font-variant-numeric:tabular-nums;color:var(--limed)}
.nrx-li .nr-hd{margin-top:3px}
.nrx-warn{border-radius:14px;padding:11px 13px;margin-bottom:8px;font-size:12.5px;font-weight:600;line-height:1.45}
.nrx-warn.red{background:var(--redbg)} .nrx-warn.peach{background:var(--peachsoft)} .nrx-warn.grey{background:var(--card2)}
.nrx-warn b{font-weight:800}
.nrx-warn .row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.nrx-warn .row .nr-btn{height:28px;padding:0 11px;font-size:11.5px}
.nrx-warn .row .nr-btn.on{background:var(--limesoft);border-color:var(--accent);color:#3a4408}
.nrx-rline{margin-top:3px}
.nrx-conf{display:flex;align-items:center;gap:7px;font-weight:800;font-size:12px;cursor:pointer;user-select:none}
.nrx-conf i{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--peachd);background:var(--card);font-style:normal;font-size:11px;display:flex;align-items:center;justify-content:center;color:#fff}
.nrx-conf i.on{background:var(--accent);border-color:var(--accent)}
.nrx-seq{font-variant-numeric:tabular-nums;color:var(--peachd);font-weight:800}
.nrx-pill{font-size:11.5px;font-weight:800;border-radius:8px;padding:2px 8px;background:var(--card2);color:var(--muted);white-space:nowrap}
.nrx-pill.lime{background:var(--limesoft);color:var(--limed)} .nrx-pill.blue{background:var(--blu2soft);color:var(--blu2d)}
.nrx-dim{font-size:12px;font-weight:600;color:var(--faint)}
/* история */
.nrx-hf{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.nrx-ev{border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:9px}
.nrx-ev.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accentsoft)}
.nrx-evh{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center}
.nrx-evi{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800}
.nrx-evi.up{background:var(--limesoft);color:var(--limed)} .nrx-evi.dn{background:var(--blu2soft);color:var(--blu2d)} .nrx-evi.ed{background:var(--lavsoft);color:var(--lavd)}
.nrx-evt b{font-size:13.5px;font-weight:800;word-break:break-word}
.nrx-evt small{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:2px}
.nrx-evt .pills{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.nrx-evb{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nrx-evb .nr-btn{height:32px;padding:0 13px;font-size:12px}
.nrx-evd{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.nrx-gr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.nrx-gr div{background:var(--card2);border-radius:12px;padding:8px 11px;font-size:12px;font-weight:700;color:var(--muted)}
.nrx-gr div b{display:block;font-size:17px;color:var(--text);font-weight:800}
.nrx-newc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:10px}
.nrx-dt{width:100%;border-collapse:collapse;font-size:12.5px}
.nrx-dt th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.4px;color:var(--muted);text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line)}
.nrx-dt td{padding:7px 8px;border-bottom:1px solid var(--line);font-weight:600;vertical-align:middle}
.nrx-dt td .nr-hd{margin:0}
.nrx-dact{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}
.nrx-dact .nr-btn{height:32px;font-size:12px}
/* квитанция */
.nrx-flash{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:95;display:flex;align-items:center;gap:14px;
  background:var(--lime);color:#3a4408;border-radius:15px;padding:10px 12px 10px 18px;font-size:13.5px;font-weight:700;box-shadow:var(--shadow2);transition:opacity .5s;max-width:calc(100vw - 32px)}
.nrx-flash .nr-btn{height:32px;padding:0 14px;font-size:12.5px;background:var(--card);color:var(--text);box-shadow:none;flex:none}
.nrx-flash.out{opacity:0}
/* табличный вид */
.nrx-tv{padding:0;overflow:visible;position:relative}
.nrx-tbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);position:relative;flex-wrap:wrap}
.nrx-tbar .sp{margin-left:auto;font-size:12px;font-weight:700;color:var(--muted)}
.nrx-scroll{overflow:auto;max-height:calc(100vh - 250px);min-height:320px}
.nrx-t{border-collapse:separate;border-spacing:0;font-size:12.5px;white-space:nowrap}
.nrx-t th,.nrx-t td{padding:0 10px;height:38px;border-bottom:1px solid var(--line);text-align:left;font-weight:600;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.nrx-t thead th{position:sticky;top:0;z-index:3;height:44px;font-size:11px;font-weight:800;color:var(--muted);border-bottom:2px solid var(--line2);cursor:pointer;user-select:none}
.nrx-t thead th.g1{background:#f8faee} .nrx-t thead th.g2{background:var(--blu2soft)} .nrx-t thead th.g3{background:var(--peachsoft)} .nrx-t thead th.g4{background:var(--lavsoft)}
.nrx-t thead th span::after{content:" ▾";font-size:9px;color:var(--faint)}
.nrx-t thead th.f span::after{content:" ●";color:var(--limed)}
.nrx-t thead th em{font-style:normal;font-size:9.5px;font-weight:800;background:var(--lime);color:#3a4408;border-radius:5px;padding:1px 5px;margin-left:5px}
.nrx-t td{background:var(--card)}
.nrx-t .st{position:sticky;z-index:1}
.nrx-t thead .st{z-index:4}
.nrx-t .s0{left:0;min-width:74px}
.nrx-t .s1{left:74px;box-shadow:6px 0 8px -6px rgba(70,75,55,.18)}
.nrx-t td.num{text-align:right;font-variant-numeric:tabular-nums}
.nrx-t td.mono{font-variant-numeric:tabular-nums}
.nrx-t td.calc{color:var(--muted);background:#fafbf6}
.nrx-t td .dim{color:var(--faint)}
.nrx-t td[data-nxed]{cursor:text}
.nrx-t td[data-nxed]:hover{background:var(--limesoft)}
.nrx-t td.edit{outline:2px solid var(--accent);outline-offset:-2px;padding:0 4px}
.nrx-t tr.sep td{border-top:1px solid var(--line2)}
.nrx-t tbody tr:hover td{background:#fafbf6}
.nrx-t .nr-sh{height:22px;font-size:11px;padding:0 8px}
.nrx-t td.nrx-none{text-align:center;color:var(--muted);height:80px}
/* бирка ведёт на живую карточку маркетплейса, серым — подтянутые оттуда номер и название */
.nrx-mp{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:3px}
.nrx-mp:hover b{text-decoration:underline}
.nrx-mp i{font-style:normal;font-size:10px;color:var(--faint);transform:translateY(-1px)}
.nrx-mp:hover i{color:var(--accent)}
.nrx-mpv{color:var(--muted);font-weight:600}
/* ── Загрузка Excel: окно проверки почти на весь экран (23.09, вариант 4) ── */
.nxw-modal{padding:14px}
.nxw-box{max-width:none;max-height:none;width:calc(100vw - 28px);height:calc(100vh - 28px);display:flex;flex-direction:column}
.nxw-box .nr-mh{flex:none;align-items:center}
.nxw-box .nr-mh>div:first-child{flex:1;min-width:0}
.nxw-tpl{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 13px;border-radius:11px;font-size:13px;font-weight:800;white-space:nowrap}
.nxw-tpl.ok{background:var(--limesoft);color:#3a4408} .nxw-tpl.bad{background:#fde3e3;color:#b3261e}
.nxw-bar{flex:none;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 22px;border-bottom:1px solid var(--line);background:#fcfcf8}
.nxw-f{height:32px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border-radius:10px;background:var(--card);border:1px solid var(--line2);font-size:13px;font-weight:700;cursor:pointer;user-select:none}
.nxw-f b{font-variant-numeric:tabular-nums}
.nxw-f i{width:9px;height:9px;border-radius:3px}
.nxw-f.on{background:var(--text);color:#fff;border-color:var(--text)}
.nxw-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 14px}
.nxw-body.g{padding:22px 28px;overflow:auto}
.nxw-scroll{flex:1;min-height:0;overflow:auto}
.nxw-scroll .nrx-t thead th{background:#f8faee}
.nxw-scroll .nrx-t thead th[data-nxw-col]{cursor:pointer}
.nxw-th{font-style:normal;font-size:10px;font-weight:800;border-radius:6px;padding:1px 6px;margin-left:5px;background:#dff0a0;color:#3a4408}
.nxw-th.off{background:#eee;color:var(--muted)}
.nxw-tf{flex:none;padding:8px 8px 10px;font-size:12px;font-weight:600;color:var(--muted)}
.nrx-t tr.nxw-r.nxw-ch td.s0{box-shadow:inset 4px 0 0 #b7d34a}
.nrx-t tr.nxw-r.nxw-new td{background:#eef6fc}
.nrx-t tr.nxw-r.nxw-new td.s0{box-shadow:inset 4px 0 0 var(--blue)}
.nrx-t tr.nxw-r.nxw-add td.s0{box-shadow:inset 4px 0 0 var(--lavd)}
.nrx-t td.nxw-c{background:#f4f9dd}
.nrx-t td.nxw-m{background:#fff4e6}
.nrx-t td.nxw-x{background:#f5f5ef}
.nxw-v{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}
.nxw-v s{color:var(--muted);font-weight:600}
.nxw-v u{text-decoration:none;color:#3a4408;background:#dff0a0;border-radius:6px;padding:1px 6px}
.nxw-v.x u{background:#eee;color:var(--muted);text-decoration:line-through}
.nxw-v.x s{text-decoration:none;color:var(--text);font-weight:700}
.nxw-pct{font-style:normal;font-size:11px;font-weight:800;border-radius:6px;padding:1px 5px;background:#f1f1ea;color:var(--muted)}
.nxw-pct.hi{background:var(--peach);color:#7a4a1e}
.nxw-ne{font-style:normal;font-size:10.5px;font-weight:800;color:var(--muted);background:#f1f1ea;border-radius:6px;padding:1px 6px;margin-left:4px;cursor:help}
.nxw-was{font-size:11px;font-weight:700;color:var(--muted)}
.nxw-nb{font-size:10px;font-weight:800;color:#fff;border-radius:6px;padding:2px 6px;margin-left:6px;background:var(--blue)}
.nxw-nb.shop{background:#6fa3c4} .nxw-nb.add{background:var(--lavd)}
.nxw-sw{display:inline-flex;vertical-align:middle;cursor:pointer}
.nxw-sw i{width:36px;height:20px;border-radius:11px;background:var(--line2);position:relative}
.nxw-sw i::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.nxw-sw.on i{background:#3d9a4b} .nxw-sw.on i::after{left:19px}
.nxw-pop{position:fixed;z-index:95;background:var(--card);border-radius:16px;box-shadow:0 18px 50px rgba(44,47,38,.28);padding:14px 16px;width:350px}
.nxw-pop h4{font-size:13px;font-weight:800}
.nxw-pop .rw{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;margin-top:8px}
.nxw-pop .rw span{color:var(--muted);font-weight:600}
.nxw-pop .bt{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}
.nxw-opt{height:32px;display:inline-flex;align-items:center;padding:0 12px;border-radius:10px;background:var(--card);border:1px solid var(--line2);font-size:12.5px;font-weight:700;cursor:pointer}
.nxw-opt.on{background:var(--lime);border-color:var(--lime);color:#3a4408}
.nxw-mf{flex:none;align-items:center}
.nxw-sum{margin-right:auto;font-size:13px;font-weight:600;color:var(--muted)}
.nxw-sum b{color:var(--text)}
.nxw-mf .nr-btn[disabled]{opacity:.5;cursor:default}
.nxw-guard{max-width:1100px;margin:0 auto}
.nxw-guard .gh{display:flex;gap:16px;align-items:center;background:#fde8e6;border:2px solid #f2b8b2;border-radius:20px;padding:18px 22px}
.nxw-guard .gh .ic{font-size:40px}
.nxw-guard .gh h3{font-size:22px;font-weight:800;color:#b3261e;letter-spacing:-.4px}
.nxw-guard .gh p{font-size:14px;font-weight:700;color:#7a3a33;margin-top:4px}
.nxw-iss{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.nxw-iss .it{background:var(--card);border:1px solid #f2c4bf;border-left:5px solid #d9534f;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:700}
.nxw-okl{margin-top:12px;background:var(--limesoft);color:#3a4408;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:700}
.nxw-head{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.nxw-head span{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:9px;font-size:12px;font-weight:700;background:#f4f9dd;color:#3a4408}
.nxw-head span i{font-style:normal;font-size:10.5px;font-weight:900;color:var(--muted)}
.nxw-head span.bad{background:#fde3e3;color:#b3261e;outline:2px solid #e8928b}
.nxw-fix{margin-top:16px;font-size:15px;font-weight:600;line-height:1.5}
.nxw-rules{margin-top:10px;font-size:13px;font-weight:600;color:var(--muted);line-height:1.5;background:var(--card2);border-radius:12px;padding:10px 14px}
@media (max-width:760px){.nxw-modal{padding:6px}.nxw-box{width:calc(100vw - 12px);height:calc(100vh - 12px)}.nxw-bar{padding:10px 12px}.nxw-body{padding:0 6px}
  .nxw-mf{flex-wrap:wrap}.nxw-sum{width:100%}.nxw-pop{width:calc(100vw - 24px);left:12px!important}}
.nr-mplink{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;color:var(--accent);text-decoration:none}
.nr-mplink:hover{text-decoration:underline}
.nrx-cin{width:100%;min-width:90px;height:30px;border:0;background:var(--card);font:inherit;font-weight:700;color:var(--text);outline:none;border-radius:6px;padding:0 6px}
.nrx-cin.bad{background:var(--redbg)}
.nrx-stat{font-size:11px;font-weight:800;border-radius:7px;padding:2px 7px;background:var(--redbg);color:var(--red)}
.nrx-stat.warn{background:var(--peachsoft);color:var(--peachd)}
.nrx-tfoot{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted);flex-wrap:wrap}
.nrx-tfoot b{color:var(--text)}
.nrx-pop{position:absolute;z-index:30;background:var(--card);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow2);padding:10px}
.nrx-colpop{top:52px;left:14px;width:560px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;max-height:70vh;overflow:auto}
.nrx-colpop .nrx-poph,.nrx-colpop .nrx-popbtn{grid-column:1/-1}
.nrx-fpop{top:100px;left:14px;width:260px}
.nrx-poph{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px}
.nrx-poph small{text-transform:none;letter-spacing:0;font-weight:700;color:var(--faint);margin-left:6px}
.nrx-popbtn{display:flex;gap:6px;margin:6px 0;flex-wrap:wrap}
.nrx-pg b{display:block;font-size:12px;font-weight:800;margin:6px 0 2px}
.nrx-pin{width:100%;height:32px;border:1px solid var(--line2);border-radius:10px;padding:0 10px;font:inherit;font-size:12.5px;margin-bottom:6px;outline:none}
.nrx-pvals{max-height:260px;overflow:auto}
@media (max-width:900px){
  .nr-top:has(.nr-topacts){flex-wrap:wrap}
  .nr-topacts{width:100%;justify-content:flex-start}
  .nrx-acts{width:100%}
  .nrx-acts .nrx-vsw{width:100%}
  .nrx-mf{flex-wrap:wrap}
  .nrx-mf .sp{width:100%;margin-right:0;flex-wrap:wrap}
  .nrx-cols,.nrx-2{grid-template-columns:1fr}
  .nrx-tiles{grid-template-columns:repeat(2,1fr)}
  .nrx-fields{grid-template-columns:1fr}
  .nrx-steps{grid-template-columns:1fr}
  .nrx-colpop{width:calc(100vw - 60px);grid-template-columns:1fr}
  .nrx-gr{grid-template-columns:repeat(2,1fr)}
}

/* Readability requested by Andrey: darker text, visible numeric hierarchy and surfaces. */
:root{--text:#111820;--ink:#111820;--muted:#4b5563;--faint:#626c78;--line:#ccd4dc;--line2:#b7c2cc;--bg:#eceff2;--card2:#f1f4f5}
body{color:var(--text)}
body :is(h1,h2,h3,h4){color:#111820}
body :is(input,textarea,select){color:#111820}
body :is(input,textarea)::placeholder{color:#626c78;opacity:1}
body :is(.kpi-num,.big,.nr-num,.nrx-num){color:#10151d;font-weight:750;font-variant-numeric:tabular-nums}
body .mb-nav a:not(.on),body .nz-opt:not(.on),body .nr-btn.ghost{color:#374151}
body :is(#fnbRoot,#odbRoot){--fin-ink:#101820;--fin-muted:#46515f;--fin-line:#cbd5df;--fin-bg:#edf1f5;color:#101820;border-color:#cbd5df;background:#edf1f5}
body :is(#fnbRoot,#odbRoot) :is(p,small,label,.fnb-help,.pnl-footnote,.pnl-scroll-hint,.odx-note,.odx-source,.odx-heading p,.odx-coverage p,.odb-status){color:#46515f}
body :is(#fnbRoot,#odbRoot) :is(.fnb-card b,.odb-money,.pnl-kpi strong,.fmr-kpis strong,.odx-stock-cards strong){color:#101820;font-weight:750}
body :is(#fnbRoot,#odbRoot) :is(.fnb-table,.odb-table,.fmr-table,.odx-table){font-weight:500;color:#111820;font-variant-numeric:tabular-nums}
body :is(#fnbRoot,#odbRoot) :is(.fnb-table,.odb-table,.fmr-table,.odx-table) thead th{background:#e6ecf2;color:#182331;font-weight:700;border-color:#c2cdd7}
body :is(#fnbRoot,#odbRoot) :is(.fnb-table,.odb-table,.fmr-table,.odx-table) :is(td,th){border-bottom-color:#d2dbe3}
body :is(#fnbRoot,#odbRoot) :is(.fnb-table,.odb-table,.fmr-table,.odx-table) tbody td:not(.fmr-negative):not(.fmr-missing){color:#111820}
body :is(#fnbRoot,#odbRoot) :is(.fnb-table,.odb-table,.fmr-table,.odx-table) tbody th{color:#202b39;font-weight:600}
body :is(#fnbRoot,#odbRoot) .fmr-negative{color:#9e2632;font-weight:700}
body :is(#fnbRoot,#odbRoot) .fmr-missing{color:#626c78}
body #fnbRoot .fmr-share :is(td,th){color:#46515f;font-weight:500}
body :is(#fnbRoot,#odbRoot) :is(.fnb-card,.odb-card,.odx,.pnl-workspace,.fmr,.odx-stock-cards article){border-color:#cbd5df;box-shadow:0 2px 6px #182d4210}
body :is(#fnbRoot,#odbRoot) :is(.fnb-nav button:not(.active),.odx-tabs button:not([aria-pressed=true]),.fnb-card small,.odb-card h3,.odx-stock-cards h4,.odx-coverage h4){color:#354252;font-weight:600}
body :is(#fnbRoot,#odbRoot) :is(input,select,textarea){border-color:#9caab7;color:#111820}
body :is(#fnbRoot,#odbRoot) :is(.pnl-note,.fnb-notice,.odb-notice,.odx-next){background:#e5ecf2;border-color:#bac8d4;color:#354252}
body :is(#fnbRoot,#odbRoot) :is(.pnl-result,.fmr-total) :is(th,td){background:#e9f3ef;font-weight:700}
body :is(#fnbRoot,#odbRoot) .odx-badge.available{color:#1f604c}
body :is(#fnbRoot,#odbRoot) :is(.odx-badge.partial,.odx-badge.preliminary){color:#755318}
body :is(#fnbRoot,#odbRoot) :is(.fin-eyebrow,.fin-period-button){color:#145d57}
