/* Best&People — производственный модуль.
   Одна система вместо слоёв правок.
   Принципы: спокойный фон и таблицы; золото — только для «где я» и главного действия; цвет-сигнал (красный/янтарный)
   ставится в одно место строки — метка и полоска слева, без заливки всей строки; числа — Manrope, Unbounded — только заголовки и показатели. */
@font-face{font-family:Manrope;src:url(/fonts/manrope-cyrillic-wght-normal.woff2) format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-wght-normal.woff2) format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Unbounded;src:url(/fonts/unbounded-cyrillic-wght-normal.woff2) format('woff2');font-weight:200 900;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Unbounded;src:url(/fonts/unbounded-latin-wght-normal.woff2) format('woff2');font-weight:200 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  color-scheme:dark;
  /* поверхности */
  --bg:#071b24;
  --s1:linear-gradient(160deg,rgba(22,72,90,.50),rgba(9,38,50,.62));   /* карточка страницы */
  --s1-line:rgba(255,255,255,.085);
  --s2:rgba(2,11,16,.55);                                               /* таблица/список внутри карточки */
  --s2-line:rgba(255,255,255,.06);
  --s3:#04121a;                                                         /* шапка, липкие заголовки, диалоги */
  --line:rgba(255,255,255,.07);
  /* текст */
  --text:#f1ebde;--soft:rgba(241,235,222,.74);--faint:rgba(241,235,222,.46);
  /* акцент бренда */
  --gold:#e9d29a;--gold-deep:#c9a253;--gold-grad:linear-gradient(135deg,#fff3d6,#e9d29a 52%,#c9a253);
  /* сигналы */
  --red:#d9534c;--red-ink:#ff9d94;--red-bg:#2c0c10;--red-line:#7c2128;
  --amber:#d9a94a;--amber-ink:#f0cf86;--amber-bg:#2c220c;--amber-line:#6a5220;
  --green:#8fc8a6;
  --r:20px;--r2:14px;--r3:12px;
  --disp:Unbounded,Manrope,"Arial Black",sans-serif;
  --stick:62px;   /* высота липкой строки вкладок — уточняется скриптом */
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;color:var(--text);font:15px/1.5 Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums;
  background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(24,86,106,.5),transparent 60%),linear-gradient(180deg,#09222d,#05141b) fixed;background-color:var(--bg)}
a{color:var(--gold)}
:focus-visible{outline:2px solid rgba(233,210,154,.6);outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- шапка и вкладки ---------- */
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;background:var(--s3);border-bottom:1px solid var(--line)}
.brand b{font:800 17px var(--disp);letter-spacing:-.01em}
.brand span{display:block;color:var(--faint);font-size:12px;margin-top:2px}
.who{font-size:13px;color:var(--faint);display:flex;gap:8px;align-items:center}.who[hidden]{display:none}
.who b{color:var(--text);font-weight:600}.who .btn{min-height:34px;padding:4px 14px}
.tabs{display:flex;gap:4px;padding:10px 16px;overflow-x:auto;scrollbar-width:none;position:sticky;top:0;z-index:20;background:rgba(4,18,26,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:0 0 auto;background:none;border:1px solid transparent;color:var(--soft);padding:9px 16px;border-radius:999px;font:600 14px Manrope,sans-serif;cursor:pointer;transition:color .15s,background .15s}
.tabs button:hover{color:var(--text)}
.tabs button.on{color:var(--gold);border-color:rgba(233,210,154,.38);background:rgba(233,210,154,.1)}
.tabs .badge{background:var(--red-bg);color:var(--red-ink);border:1px solid var(--red-line);border-radius:9px;padding:0 7px;margin-left:6px;font-size:11px;font-weight:700}
.net{padding:9px 18px;font-size:13px;background:var(--amber-bg);border-bottom:1px solid var(--amber-line);color:var(--amber-ink);display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.net.err{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}
.net button{background:none;border:1px solid currentColor;color:inherit;border-radius:999px;padding:4px 14px;cursor:pointer}
.net[hidden]{display:none}

/* ---------- страница ---------- */
.view{max-width:900px;margin:0 auto;padding:22px 18px 96px}
.view.wide{max-width:1180px}
h2{margin:0 0 16px;font:800 22px/1.2 var(--disp);letter-spacing:-.02em}
h3{margin:24px 0 10px;font:700 16px/1.3 Manrope,sans-serif;color:var(--text)}
.card>h3:first-child,.card h3[style*="margin-top:0"],.cardhead h3{margin-top:0}
.card{background:var(--s1);border:1px solid var(--s1-line);border-radius:var(--r);padding:20px;margin-bottom:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 20px 50px -24px rgba(0,0,0,.6)}
.cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.cardhead h3{margin-bottom:0}
.note{color:var(--soft);font-size:13px}
.sub{color:var(--faint);font:500 12px/1.35 Manrope,sans-serif;margin-top:3px;display:flex;flex-wrap:wrap;gap:4px 12px}
.sub a{color:var(--soft)}
.mono{font-variant-numeric:tabular-nums}.mut{color:var(--soft)}.sp{height:8px}
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.subtabs button{background:var(--s2);border:1px solid var(--s2-line);color:var(--soft);border-radius:999px;padding:7px 15px;cursor:pointer;font:600 13px Manrope,sans-serif}
.subtabs button:hover{color:var(--text)}.subtabs button.on{color:var(--gold);border-color:rgba(233,210,154,.38);background:rgba(233,210,154,.1)}

/* ---------- поля и кнопки ---------- */
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.row>*{min-width:0}.grow{flex:1 1 220px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--soft)}
input,select,textarea{background:rgba(2,10,15,.62);color:var(--text);border:1px solid rgba(255,255,255,.1);border-radius:var(--r3);padding:10px 14px;font:inherit;min-height:44px;max-width:100%;box-shadow:inset 0 2px 6px rgba(0,0,0,.3);transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:rgba(241,235,222,.34)}
input:focus,select:focus,textarea:focus{outline:0;border-color:rgba(233,210,154,.6);box-shadow:inset 0 2px 6px rgba(0,0,0,.3),0 0 0 3px rgba(233,210,154,.13)}
textarea{width:100%;min-height:110px;font-family:ui-monospace,Menlo,monospace;font-size:12px}
button.btn,label.btn,a.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;background:var(--gold-grad);color:#08202b;border:0;border-radius:999px;padding:10px 20px;font:700 14px Manrope,sans-serif;cursor:pointer;min-height:44px;transition:filter .15s,transform .05s}
button.btn:hover{filter:brightness(1.06)}button.btn:active{transform:translateY(1px)}
button.btn:disabled{opacity:.4;cursor:not-allowed;filter:none}
.btn.ghost{background:none!important;color:var(--gold)!important;border:1px solid rgba(233,210,154,.32)!important}
.btn.ghost:hover{background:rgba(233,210,154,.08)!important;filter:none}
.btn.danger{background:none!important;color:var(--red-ink)!important;border:1px solid rgba(217,83,76,.4)!important}
.btn.danger:hover{background:rgba(217,83,76,.1)!important;filter:none}
.btn.sm{padding:6px 14px;min-height:34px;font-size:13px}

/* ---------- метки состояния ---------- */
.tag,.pill{display:inline-block;padding:3px 10px;border-radius:999px;font:700 12px/1.3 Manrope,sans-serif;white-space:nowrap;border:1px solid transparent;background:rgba(255,255,255,.06);color:var(--soft)}
.tag.red,.pill.bad{background:var(--red-bg);color:var(--red-ink);border-color:var(--red-line)}
.tag.amber,.pill.warn{background:var(--amber-bg);color:var(--amber-ink);border-color:var(--amber-line)}
.pill.ok{background:rgba(143,200,166,.1);color:var(--green);border-color:rgba(143,200,166,.25)}
.pill.mute{color:var(--faint)}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;color:var(--faint);font-size:12px}
.legend .tag{margin-right:6px;font-size:11px;padding:1px 8px}

/* ---------- сообщения ---------- */
.warnbox,.errbox,.okbox{border-radius:var(--r2);padding:12px 14px;margin:12px 0;font-size:14px;border:1px solid}
.warnbox{background:var(--s2);border-color:var(--amber-line);box-shadow:inset 3px 0 0 var(--amber)}
.errbox{background:linear-gradient(100deg,#2b0a10,#170509);border-color:var(--red-line);box-shadow:inset 3px 0 0 var(--red)}
.errbox b{color:var(--red-ink)}
.okbox{background:rgba(8,36,26,.45);border-color:rgba(143,200,166,.28)}

/* ---------- показатели ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
.kpi{background:var(--s2);border:1px solid var(--s2-line);border-radius:var(--r2);padding:12px 16px}
.kpi b{display:block;font:700 22px/1.2 var(--disp);letter-spacing:-.02em;color:var(--text)}
.kpi span{font-size:12px;color:var(--soft)}
.kpi.alert{background:var(--red-bg);border-color:var(--red-line)}.kpi.alert b{color:var(--red-ink)}
.kpi.amber{background:var(--amber-bg);border-color:var(--amber-line)}.kpi.amber b{color:var(--amber-ink)}

/* ---------- таблицы ---------- */
.tw{background:var(--s2);border:1px solid var(--s2-line);border-radius:var(--r2);padding:0 14px 2px}
table{width:100%;border-collapse:separate;border-spacing:0}
th{position:sticky;top:var(--stick);z-index:3;background:#061820;font:600 12px/1.3 Manrope,sans-serif;color:var(--faint);text-align:left;padding:12px 10px 10px;border-bottom:1px solid var(--line);vertical-align:bottom}
thead tr th:first-child{box-shadow:-14px 0 0 #061820}thead tr th:last-child{box-shadow:14px 0 0 #061820}
td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:rgba(255,255,255,.02)}
td:first-child{color:var(--text);font-weight:600}
td.n,th.n{text-align:right}
td.n{font:600 15px/1.25 Manrope,sans-serif;white-space:nowrap;color:var(--text)}
td.n .sub{display:block;font-weight:500;white-space:nowrap}
td .u,td.n .u{font:500 12px Manrope,sans-serif;color:var(--faint);margin-left:3px}
td .code{display:block;font:500 11px/1.3 Manrope,sans-serif;color:var(--faint);margin-bottom:2px}
td .var{display:block;color:var(--gold);font-weight:600;font-size:14px;margin-top:1px}
td select{max-width:290px}
td.note,.note td{color:var(--faint)}
td.n.pos{color:var(--green)}td.n.dim{color:var(--faint)}
td.n b{font-weight:800}
/* состояние строки: полоска слева + цвет главного числа, без заливки */
tr.s-red>td:first-child,tr.lack>td:first-child,tr.blocked>td:first-child{box-shadow:inset 3px 0 0 var(--red)}
tr.s-amber>td:first-child,tr.warn>td:first-child{box-shadow:inset 3px 0 0 var(--amber)}
tr.blocked td.n,tr.lack td.n b{color:var(--red-ink)}
tr.warn td.n b{color:var(--amber-ink)}
tr.zero td,tr.dim td{opacity:.55}tr.zero td.act{opacity:1}
tr.group td{background:none;color:var(--gold);font:700 13px Manrope,sans-serif;padding-top:22px;border-bottom:1px solid var(--line)}
tr.clickrow{cursor:pointer}tr.clickrow:hover td{background:rgba(233,210,154,.06)}
td.act{white-space:normal;min-width:120px}td.act.inl{white-space:nowrap}
td.act .btn{background:rgba(233,210,154,.1);color:var(--gold);border:1px solid rgba(233,210,154,.22);font-weight:600;min-height:32px;padding:5px 13px}
td.act .btn:hover{background:rgba(233,210,154,.18);filter:none}
/* второстепенные действия — всё равно видно, что это кнопка: рамка и лёгкая подложка */
td.act .btn.ghost{background:rgba(255,255,255,.035)!important;border-color:rgba(241,235,222,.22)!important;color:var(--text)!important}
td.act .btn.ghost:hover{border-color:rgba(233,210,154,.5)!important;color:var(--gold)!important;background:rgba(233,210,154,.08)!important}
td.act .btn.danger{background:rgba(217,83,76,.06)!important;border-color:rgba(217,83,76,.38)!important}
/* план производства: главное число — «Нужно, г» */
table.prod3 td:nth-child(2){font:800 17px/1.2 Manrope,sans-serif}
table.prod3 td:nth-child(3){color:var(--soft)}
label.tick{display:flex;align-items:center;gap:12px;cursor:pointer;min-height:32px;color:var(--text)}
label.tick input,.shipline input[type=checkbox]{flex:none;width:22px;height:22px;min-height:0;padding:0;accent-color:#e9d29a;box-shadow:none}
tr.ticked label.tick span{text-decoration:line-through;opacity:.5}

/* раскрывающиеся блоки */
details.fold{margin:0 0 12px;background:var(--s2);border:1px solid var(--s2-line);border-radius:var(--r2);padding:0 16px}
details.fold>summary{cursor:pointer;list-style:none;padding:14px 0;font-weight:600;color:var(--soft);display:flex;align-items:center;gap:10px}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--faint);border-bottom:2px solid var(--faint);transform:rotate(-45deg);transition:transform .15s;margin-right:2px}
details.fold[open]>summary::before{transform:rotate(45deg)}
details.fold[open]{padding-bottom:16px}
details.fold .tw{background:none;border:0;padding:0}
details.fold th{background:#03111a}
.cnt{background:rgba(255,255,255,.07);color:var(--soft);border-radius:999px;padding:1px 9px;font-size:12px}
details.tech{margin-top:10px}
details.tech>summary{cursor:pointer;color:var(--gold);list-style:none;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}
details.tech>summary::-webkit-details-marker{display:none}
details.tech>summary::before{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
details.tech[open]>summary::before{transform:rotate(45deg)}
details.tech>summary.note{color:var(--gold)}
.removedbox summary,.shortbox summary{cursor:pointer}

/* ---------- заказы и отгрузка ---------- */
.ordcard{background:var(--s2);border:1px solid var(--s2-line);border-radius:var(--r2);padding:12px 16px;margin-bottom:12px}
.ordcard[hidden]{display:none}
.ordcard header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.ordcard header .ttl{min-width:0;overflow-wrap:anywhere}
.ordcard header b{color:var(--text);font:700 15px Manrope,sans-serif}
.ordcard header .note{color:var(--faint);margin-left:6px}
.ordcard header .hact{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ordline{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.ordline .nm,.shipline .nm{min-width:0;overflow-wrap:anywhere;color:var(--text);font-weight:600}
.ordline .nm .var,.shipline .nm .var{display:inline;color:var(--gold);font-weight:600;margin-left:2px}
.ordline small,.shipline small{display:block;color:var(--faint);font-size:12px;font-weight:500}
.ordline .q,.shipline .q{display:flex;align-items:center;gap:6px;white-space:nowrap;color:var(--soft);font-size:13px}
.ordline .q input,.shipline .q input{width:68px;min-height:38px;padding:5px 10px}
.shipline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
.shipline:has(input:checked){background:linear-gradient(90deg,rgba(233,210,154,.07),transparent)}
.shipline.off{opacity:.55;cursor:default}
.shipline small.bad{color:var(--red-ink);font-weight:700}.shipline small.ok{color:var(--green)}
.boxsel{min-height:34px;padding:4px 10px;font-size:13px;width:auto;max-width:210px}
.shortrow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.scrollbox{max-height:max(300px,calc(100dvh - 440px));overflow-y:auto;overscroll-behavior:contain;padding-right:6px;margin-right:-6px}
.scrollbox.tall{max-height:max(340px,calc(100dvh - 260px))}
.scrollbox::-webkit-scrollbar{width:8px}.scrollbox::-webkit-scrollbar-thumb{background:rgba(233,210,154,.22);border-radius:8px}
.finder{margin-bottom:10px}
.actionbar{position:sticky;bottom:0;z-index:4;display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:14px -20px -20px;padding:12px 20px;background:linear-gradient(0deg,rgba(2,10,14,.98) 70%,rgba(2,10,14,.9));border-top:1px solid rgba(233,210,154,.2);border-radius:0 0 var(--r) var(--r);box-shadow:0 -14px 30px -10px rgba(0,0,0,.55)}
.actionbar .note{flex:1 1 220px;margin-right:auto}.actionbar .grow{display:none}.actionbar .btn{flex:none}

/* ---------- тревога: «не хватает готовой продукции» ---------- */
.alertbox{background:linear-gradient(100deg,#2b0a10,#170509 70%);border:1px solid var(--red-line);border-radius:var(--r2);margin:0 0 14px;overflow:hidden;box-shadow:0 12px 34px -14px rgba(160,30,36,.45)}
.alertbox summary{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;list-style:none}
.alertbox summary::-webkit-details-marker{display:none}
.alertbox .ico{flex:none;width:26px;height:26px;border-radius:50%;background:linear-gradient(145deg,#c23b3b,#7d1b22);color:#ffe9e5;font:800 15px/26px var(--disp);text-align:center}
.alertbox .ttl{font:700 15px Manrope,sans-serif;color:var(--text)}
.alertbox .cnt{background:#7d1b22;color:#ffe3de;border:1px solid rgba(217,83,76,.55);font-weight:800}
.alertbox .tg{margin-left:auto;color:rgba(255,157,148,.6);font-size:12px}
.alertbox .shortlist{border-top:1px solid rgba(190,48,52,.35);background:rgba(2,6,8,.62)}
.alertbox .shortrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;margin:0;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.045)}
.alertbox .shortrow:last-child{border-bottom:0}
.alertbox .nm{color:var(--text);font-weight:600;overflow-wrap:anywhere}
.alertbox .nm .var{display:inline;color:var(--gold);font-weight:600;margin-left:2px}
.alertbox .nm small{display:block;color:var(--faint);font-weight:500;font-size:12px;margin-top:2px}
.alertbox .lack{text-align:right;line-height:1.1}
.alertbox .lack b{display:block;font:800 20px Manrope,sans-serif;color:var(--red-ink)}
.alertbox .lack span{font-size:11px;color:rgba(255,157,148,.65)}
.alertbox.editon{margin:8px 0 12px}
.alertbox.editon .ebody{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.alertbox.editon .ebody b{color:var(--text);font:700 15px Manrope,sans-serif}.alertbox.editon .ebody span{color:rgba(255,157,148,.85);font-size:13px}

/* плашка режима правки */
.editbar{display:flex;align-items:center;gap:14px;width:calc(100% - 36px);max-width:864px;padding:14px 18px;border-radius:var(--r2);margin:14px auto 0;background:linear-gradient(100deg,#2b0a10,#170509);border:1px solid var(--red-line);box-shadow:0 12px 34px -14px rgba(160,30,36,.5)}
.editbar[hidden]{display:none}
.editbar.wide{max-width:1144px}
.editbar .ic{flex:none;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#c23b3b,#7d1b22);color:#ffe9e5;font:800 18px/34px var(--disp);text-align:center}
.editbar .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.editbar .tx b{font:700 15px/1.3 Manrope,sans-serif;color:var(--text)}
.editbar .tx span{font-size:13px;color:rgba(255,157,148,.8)}
.editbar.on{background:linear-gradient(100deg,#4a0e16,#240709);border-color:#d0443f}
.editbar .btn{flex:none}

/* ---------- диалоги, всплывашки, выбор из списка ---------- */
dialog{background:linear-gradient(165deg,#07222d,#030f15);color:var(--text);border:1px solid rgba(233,210,154,.26);border-radius:var(--r);padding:22px;width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,.55)}
dialog::backdrop{background:rgba(2,10,14,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
dialog form{position:relative}
dialog h3{margin-top:0;padding-right:34px;font-size:17px}
dialog .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;position:sticky;bottom:-22px;background:linear-gradient(0deg,#030f15 70%,transparent);padding:12px 0 4px}
dialog label.f{margin-top:12px}dialog input,dialog select{width:100%}
dialog .dx{position:absolute;right:-8px;top:-10px;width:40px;height:40px;border-radius:50%;background:transparent;border:0;color:var(--soft);font-size:20px;cursor:pointer}
dialog .dx:hover{color:var(--text)}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(30px);opacity:0;background:#030f15;border:1px solid rgba(233,210,154,.4);color:var(--text);padding:12px 20px;border-radius:999px;transition:.25s;z-index:2000;max-width:calc(100vw - 24px);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.toast.show{opacity:1;transform:translateX(-50%)}.toast.err{background:#2c0c10;border-color:var(--red-line);color:var(--red-ink)}
.toast.act{bottom:92px;display:flex;gap:14px;align-items:center;border-radius:16px}
.toast-act{background:var(--gold-grad);color:#08202b;border:0;border-radius:999px;padding:6px 16px;font:700 13px Manrope,sans-serif;cursor:pointer;white-space:nowrap}
.cb-in{width:100%}
.cb-list{position:fixed;z-index:3000;background:#04131a;border:1px solid rgba(233,210,154,.34);border-radius:var(--r2);overflow-y:auto;box-shadow:0 16px 44px rgba(0,0,0,.6)}
.cb-it{padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--line);line-height:1.3}
.cb-it:last-child{border-bottom:0}.cb-it.on,.cb-it:hover{background:rgba(233,210,154,.1)}
.cb-it mark{background:none;color:var(--gold);font-weight:800}.cb-it .g{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.cb-none{padding:12px 14px;color:var(--soft)}
.orow{display:flex;gap:8px;align-items:flex-end;margin-top:12px}.orow .grow{flex:1;min-width:0;margin-top:0}.orow .q{width:80px;margin-top:0}.orow .orm{height:44px;flex:none}
.login{max-width:340px;margin:12vh auto;text-align:center}.login input{width:100%;margin:12px 0}.login h2{margin-bottom:8px}

/* ---------- телефон и планшет: строки таблиц становятся карточками ---------- */
@media (max-width:900px){
  .top{padding:12px 14px}
  .brand b{font-size:15px;white-space:nowrap}.brand span{font-size:11px}
  .who .lbl{display:none}.who>span{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .view{padding:16px 12px 96px}
  .card{padding:14px;border-radius:18px}
  .kpis{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
  .kpi{padding:10px 12px}.kpi b{font-size:17px}
  .row>.btn{flex:1 1 100%}
  .editbar{width:auto;margin:10px 12px 0;max-width:none;flex-wrap:wrap}.editbar .btn{width:100%}
  .tw{background:none;border:0;padding:0}
  table.cards thead{display:none}
  table.cards,table.cards tbody,table.cards tr,table.cards td{display:block;width:100%}
  table.cards tr{background:var(--s2);border:1px solid var(--s2-line);border-radius:var(--r2);margin-bottom:10px;padding:10px 14px}
  table.cards tr.group{background:none;border:0;padding:0;margin-bottom:4px}
  table.cards td{border:0;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;text-align:right}
  table.cards td::before{content:attr(data-l);color:var(--faint);font:500 13px Manrope,sans-serif;text-align:left;flex:0 0 42%}
  table.cards td:first-child{display:block;text-align:left;padding-bottom:6px;font-size:15px}
  table.cards td:first-child::before{display:none}
  table.cards td.n{white-space:normal}
  table.cards td.n .sub{white-space:normal}
  table.cards td>.v{flex:1 1 auto;min-width:0;text-align:right;overflow-wrap:anywhere}
  table.cards td select{width:100%;max-width:100%;min-width:0}
  table.cards td.sel{display:block;text-align:left}table.cards td.sel::before{display:block;margin-bottom:4px;flex:none}table.cards td.sel>.v{display:block;text-align:left}
  /* состояние: полоска у всей карточки, а не у первой ячейки */
  table.cards tr>td:first-child{box-shadow:none!important;padding-left:0!important}
  table.cards tr.s-red,table.cards tr.lack,table.cards tr.blocked{box-shadow:inset 3px 0 0 var(--red);border-color:rgba(124,33,40,.6)}
  table.cards tr.s-amber,table.cards tr.warn{box-shadow:inset 3px 0 0 var(--amber);border-color:rgba(106,82,32,.6)}
  table.cards td.act{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px}
  table.cards td.act::before{display:none}
  table.cards td.act:has(.btn:only-child){grid-template-columns:1fr}
  table.cards td.act .btn{font-size:12px;padding:6px 2px;white-space:nowrap}
  td.act{white-space:normal}
  td .var,td .code{display:inline;margin:0 4px 0 0}
  table.cards.prod tr,table.cards.prod3 tr{display:grid;column-gap:12px}
  table.cards.prod tr{grid-template-columns:1fr 1fr}
  table.cards.prod3 tr{grid-template-columns:repeat(2,minmax(0,1fr))}
  table.cards.prod td,table.cards.prod3 td{display:block;text-align:left;padding:3px 0}
  table.cards.prod td::before,table.cards.prod3 td::before{display:block;margin-bottom:1px;flex:none}
  table.cards.prod td:first-child,table.cards.prod td:last-child,table.cards.prod3 td:first-child{grid-column:1/-1}
  table.cards.prod td:first-child::before,table.cards.prod3 td:first-child::before{display:none}
  table.cards.prod td>.v,table.cards.prod3 td>.v{display:block;text-align:left}
  table.cards.prod3 td.n{text-align:left}
  table.cards.prod3 td:nth-child(2){font-size:18px}
  details.fold{padding:0 12px}
  .scrollbox{max-height:max(260px,calc(100dvh - 470px))}.scrollbox.tall{max-height:max(300px,calc(100dvh - 240px))}
  .actionbar{margin:12px -14px -14px;padding:10px 14px}
  .actionbar .btn{flex:1 1 40%;padding-left:10px;padding-right:10px}.actionbar .note{flex:1 1 100%}
  .ordcard header .hact{width:100%}.ordcard header .hact .boxsel{flex:1 1 100%;max-width:none}.ordcard header .hact .btn{flex:1 1 calc(50% - 4px)}
  .toast.act{bottom:120px}
  .alertbox .tg{display:none}
  .alertbox .shortrow{grid-template-columns:1fr auto;grid-template-areas:"nm lack" "btn btn"}
  .alertbox .shortrow .nm{grid-area:nm}.alertbox .shortrow .lack{grid-area:lack}.alertbox .shortrow .btn{grid-area:btn;width:100%}
  .cardhead{flex-wrap:wrap}
}
@media (max-width:430px){
  .shipline{grid-template-columns:auto minmax(0,1fr)}
  .shipline .q{grid-column:2}
}

/* опасные действия у заказов — тихие, краснеют при наведении */
.ordcard header .btn.danger{background:rgba(217,83,76,.06)!important;border-color:rgba(217,83,76,.38)!important}
td.n .mut{font-weight:500;font-size:13px;color:var(--faint)}
/* каталог: SKU — служебный код, не заголовок строки; выбор продукта — шире */
td[data-l="SKU"]{font:500 12px/1.35 Manrope,sans-serif!important;color:var(--soft)!important;overflow-wrap:anywhere;max-width:150px}
@media (min-width:901px){td[data-l="Продукт производства"]{min-width:250px}}
@media (max-width:900px){td[data-l="SKU"]{max-width:none}table.cards td .cb-in{min-width:0}}
@media (max-width:900px){table.cards td .pill,table.cards td .tag{white-space:normal;text-align:center}}
@media (max-width:900px){
  .editbar.remind{flex-wrap:nowrap;padding:10px 12px;gap:10px}
  .editbar.remind .ic{width:26px;height:26px;font-size:14px;line-height:26px}
  .editbar.remind .tx b{font-size:13px}.editbar.remind .tx span{display:none}
  .editbar.remind .btn{width:auto;min-height:34px;padding:6px 14px;font-size:13px}
}

.removedbox>summary{list-style:none;display:flex;align-items:center;gap:8px}
.removedbox>summary::-webkit-details-marker{display:none}
.removedbox>summary::before{content:"";width:6px;height:6px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg);transition:transform .15s;flex:none}
.removedbox[open]>summary::before{transform:rotate(45deg)}

/* ---- поиск по спискам ---- */
[hidden]{display:none!important}
.findbox{position:relative;margin:0 0 12px;max-width:520px}
.findbox input{width:100%;padding:12px 40px 12px 40px;font-size:16px;border-radius:10px;border:1px solid var(--line2,var(--line));background:var(--s2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px 50%}
.findbox input:focus{outline:2px solid var(--gold);outline-offset:1px}
.findbox input::-webkit-search-cancel-button{display:none}
.findbox .x{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;color:var(--dim,#999);font-size:22px;cursor:pointer;display:none}
.findbox input:not(:placeholder-shown)~.x{display:block}
.findbox .cntf{display:block;font-size:12.5px;color:var(--dim,#999);margin-top:5px;min-height:0}
.findbox .cntf:empty{display:none}
/* ---- отчёт о таблице: было → стало ---- */
.rsec{margin:22px 0 0}
.rsec h3{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.cnt{display:inline-block;min-width:22px;padding:1px 8px;border-radius:99px;background:var(--s3);font:600 12.5px Manrope,sans-serif;text-align:center}
table.diff .was{color:var(--dim,#999);text-decoration:line-through;text-decoration-color:rgba(160,160,160,.6)}
table.diff .now{color:var(--gold);font-weight:700}
.delta{font-weight:700;white-space:nowrap}.delta.up{color:#e8a23c}.delta.down{color:#6cc08b}
table.diff tr.add td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
table.diff tr.del td:first-child{box-shadow:inset 3px 0 0 var(--red-ink,#e5484d)}
.dblock{margin:12px 0 0}.dblock>b{display:block;padding:8px 0 4px;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{padding:4px 10px;border-radius:99px;background:var(--s3);font-size:13px}
.warnlist{margin:6px 0 0;padding-left:18px;font-size:13.5px;line-height:1.6}
