/* Карта поддержки — раскладка А утверждённого макета (08.10.2026):
   приборы — колонки, путь вниз; строки — сведения, этапы MES, шаги «Настройки шасси». */
:root{--teal:#2d5f66;--teal2:#3d747b;--line:#2d5f66;--muted:#c9d3d6;--bg:#eef1f2;--ok:#2e8b57;--fail:#c0392b;--ovr:#e67e22;--skip:#8a96a0;--stale:#d4a017;--blue:#2f6fd6;--help:#d63384;--taken:#8e44ad;--ink:#22313a;--soft:#6a7880}
*{box-sizing:border-box}
html{overflow-y:scroll}
html.map{overflow:hidden}
body.map{display:flex;flex-direction:column;height:100vh}
body.map #hdr{flex:none}
body{margin:0;font:15.5px/1.35 "Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,input,textarea{font:inherit}
a{color:var(--teal)}
[hidden]{display:none!important}

/* шапка: общий компонент shared/ui-kit/libs-header.js в #hdr (15.10.2026);
   здесь — только своё содержимое слота */
#hdr{position:sticky;top:0;z-index:20}
#hdr .upd{opacity:.85;font-size:14.5px;white-space:nowrap}
#hdr .upd.lost{opacity:1;background:#f6d365;color:#5a4500;border-radius:6px;padding:2px 8px}
#hdr label{display:flex;align-items:center;gap:6px;white-space:nowrap}
#hdr input{border:0;border-radius:6px;padding:6px 10px;width:112px;color:var(--ink)}
#hdr .sp{flex:1}
.pill{border-radius:20px;padding:5px 12px;font-weight:600;font-size:14.5px;cursor:pointer;border:0;white-space:nowrap}
.pill.help{background:var(--help);color:#fff}
.pill.stall{background:#f6d365;color:#5a4500}
.pill.zero{opacity:.55}
.pill.on{outline:3px solid #fff;outline-offset:1px}
.hbtn{background:#ffffff22;color:#fff;border:1px solid #ffffff55;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:14.5px;white-space:nowrap}
.hbtn:hover{background:#ffffff33}
.hbtn:disabled{cursor:default;opacity:.7}

/* лист карты */
.panel{background:#fff;margin:12px 16px 16px;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px #0001;min-height:0;flex:1;display:flex;flex-direction:column}
.panel > *{flex:none}
.note{background:#fff8e1;border:1px solid #f1d98b;border-radius:8px;padding:7px 12px;margin:0 0 10px;font-size:15px}
.note.err{background:#fdecea;border-color:#f1b8b1}
.note button{border:0;background:none;color:var(--teal);text-decoration:underline;cursor:pointer;padding:0 4px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:14.5px;margin:0 0 10px;color:#44535c}
.legend span{display:inline-flex;align-items:center;gap:5px}
.empty{color:var(--soft);padding:30px 4px;font-size:17px}

/* точки пути */
.node{width:13px;height:13px;border-radius:50%;display:inline-block;position:relative;z-index:2;background:#fff;border:2px solid var(--muted);flex:none}
.node.small{width:9px;height:9px}
.node.done{background:var(--line);border-color:var(--line)}
.node.fail{background:#fff;border:3px solid var(--fail)}
.node.override{background:var(--ovr);border-color:var(--ovr)}
.node.override::after{content:"!";color:#fff;font-size:11px;font-weight:700;position:absolute;left:3px;top:-2px;font-style:normal}
.node.skipped{background:#fff;border:2px dashed #6f7c86}
.node.stale{background:repeating-linear-gradient(45deg,var(--stale) 0 3px,#fff 3px 6px);border-color:var(--stale)}
.node.current{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 3px #2f6fd633}
.hflag{display:inline-block;background:var(--help);color:#fff;border-radius:8px;font-size:12px;font-weight:700;padding:1px 5px;margin-left:3px;white-space:nowrap;font-style:normal}
.hflag.taken{background:var(--taken)}
.hflag.wait{background:var(--ok)}
.badge{display:inline-block;border-radius:4px;font-size:12px;font-weight:700;padding:1px 5px;color:#fff;background:var(--blue);white-space:nowrap}
.badge.idle{background:#f6d365;color:#5a4500}
.badge.fail{background:var(--fail)}
.badge.quiet{background:#e3e8ea;color:#44535c}
.badge.err{background:var(--fail)}

/* сетка */
.panel > .gridwrap{flex:1 1 auto;min-height:0;overflow:auto}
table.grid{border-collapse:separate;border-spacing:0}
.grid thead th.dev{min-width:175px;max-width:210px}
.grid th,.grid td{padding:0 4px;text-align:center;white-space:nowrap}
.grid thead th{position:sticky;top:0;background:#fff;z-index:5;padding:6px 4px;vertical-align:bottom}
.grid thead th.lab{z-index:6;color:var(--soft);font-weight:400}
.grid .lab{text-align:left;position:sticky;left:0;background:#fff;z-index:4;padding:6px 10px 6px 4px;min-width:290px;max-width:350px;white-space:normal;font-size:15.5px}
.grid tr.meta td{font-size:14px;color:#4f5f68;height:26px;border-bottom:1px solid #eef1f2}
.grid tr.meta .lab{color:var(--soft)}
.grid tr.meta td.err{color:var(--fail)}
.sn{display:block;width:100%;background:var(--teal);color:#fff;border:0;border-radius:7px;padding:6px 6px;font-weight:700;font-size:18px;min-width:122px;cursor:pointer}
.sn.donech{background:var(--ok)}
.sn.hl{outline:3px solid var(--help);outline-offset:1px}
.sn small{display:block;font-weight:400;font-size:12px;opacity:.9}
.grid tr.st td{height:36px;border-bottom:1px solid #f1f3f4}
.grid tr.step td{height:30px}
.grid tr.step .lab{padding-left:26px;font-size:15px;color:#33434b}
.grid tr.step .lab b{color:#8a979e;font-weight:600;margin-right:4px}
.grid tr.part td.lab{font-size:13px;color:#8a979e;text-transform:uppercase;letter-spacing:.3px;padding:8px 4px 2px 26px;height:auto}
.grid tr.part td{height:18px}
.grid tr.stage-head .lab{font-weight:600}
.grid tr.hover td{background:#f6f9f9}
.grid tr.hover td.lab{background:#f0f5f5}
.tog{cursor:pointer;user-select:none}
.tog i{font-style:normal;display:inline-block;width:16px;color:var(--teal)}
.cell{position:relative;height:100%;min-height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;gap:2px}
.cell::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--muted);z-index:1}
.cell.past::before{background:var(--line)}
.cell.cur::before{background:linear-gradient(var(--line) 50%,var(--muted) 50%)}
.cell.first::before{top:50%}
.cell.last::before{bottom:50%}
.cell.first.last::before{display:none}
.cell:hover .node{transform:scale(1.25)}
.cell.sel .node{box-shadow:0 0 0 3px #2d5f6644}
.cell.sel .card{box-shadow:0 0 0 3px #2d5f6644}
.cell .hflag{position:relative;z-index:3}
.card{position:relative;z-index:3;background:#fff;border:1.5px solid var(--blue);border-radius:7px;padding:3px 8px;font-size:13px;line-height:1.25;cursor:pointer;max-width:190px;white-space:normal;text-align:center}
.card.help{border-color:var(--help);box-shadow:0 0 0 3px #d6338422}
.card.stall{border-color:#e0b100}
.card.fail{border-color:var(--fail)}
.card b{display:block}
.who{position:relative;z-index:3;background:#fff;border:1.3px solid var(--teal);border-radius:9px;padding:0 6px;font-size:12.5px}
.okmark{position:relative;z-index:3;background:var(--ok);color:#fff;border-radius:5px;padding:1px 7px;font-size:13px;font-weight:600}

/* карточка шага (выезжает справа) */
#drawer{position:fixed;right:0;top:0;bottom:0;width:600px;max-width:100vw;background:#fff;box-shadow:-4px 0 18px #0003;transform:translateX(105%);transition:transform .2s;z-index:50;display:flex;flex-direction:column}
#drawer.open{transform:none}
#drawer .dh{background:var(--teal);color:#fff;padding:12px 16px;display:flex;align-items:flex-start;gap:10px}
#drawer .dh h2{margin:0;font-size:18px;flex:1}
#drawer .dh small{opacity:.85;font-weight:400;display:block;margin-top:3px;font-size:14.5px}
#drawer .x{background:none;border:0;color:#fff;font-size:26.5px;line-height:1;cursor:pointer;padding:0 4px}
#drawer .db{overflow:auto;padding:14px 16px 24px;flex:1}
.goal{color:#4f5f68;font-size:15px;margin:0 0 10px}
.verdict{border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:16px}
.verdict.done{background:#e8f5ee;border:1px solid #b5dcc5}
.verdict.fail{background:#fdecea;border:1px solid #f1b8b1}
.verdict.override{background:#fff1e3;border:1px solid #f5c999}
.verdict.skipped{background:#f0f2f4;border:1px solid #d3d9de}
.verdict.stale{background:#fff9e0;border:1px solid #eedb8f}
.verdict.current{background:#e9f0fd;border:1px solid #b9cdf3}
.verdict.todo{background:#f4f6f7;border:1px solid #dde3e6}
#drawer h3{font-size:15px;margin:16px 0 6px;color:var(--teal);text-transform:uppercase;letter-spacing:.3px}
#drawer h4{font-size:15px;margin:10px 0 4px;font-weight:600}
#drawer h4 .m{font-weight:400;color:var(--soft)}
table.crit{width:100%;border-collapse:collapse;font-size:15px}
.crit th{text-align:left;color:var(--soft);font-weight:600;border-bottom:1px solid #dde3e6;padding:4px}
.crit td{padding:5px 4px;border-bottom:1px solid #f0f2f3;vertical-align:top}
.crit td.ok{color:var(--ok);font-weight:700}
.crit td.bad{color:var(--fail);font-weight:700}
.crit td.ref{color:#8a979e}
.crit tr.ref td{color:#6a7880}
.crit td.mk{width:28px;text-align:center}
.vtext{font-size:14.5px;color:#4f5f68;margin:4px 0 0;overflow-wrap:anywhere}
.verification-panel{margin:16px 0;padding:12px;border:1px solid #bdcfe0;border-radius:6px}.verification-panel textarea{display:block;width:100%;box-sizing:border-box;margin:8px 0}.verification-attempt{padding:8px 0}.verification-panel p{white-space:pre-wrap}.verdict.support_accepted{background:#fff0cb;color:#5a3c00}
.node.support_accepted{background:#e5ae3c;border-color:#a66c00}
.tries{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0}
.tries span{border-radius:5px;padding:2px 7px;font-size:14px;border:1px solid #dde3e6}
.tries .y{background:#e8f5ee;border-color:#b5dcc5}
.tries .n{background:#fdecea;border-color:#f1b8b1}
ul.hist{list-style:none;padding:0;margin:0;font-size:15px}
ul.hist li{padding:4px 0 4px 60px;position:relative;border-left:2px solid #e3e8ea;margin-left:6px}
ul.hist li time{position:absolute;left:10px;color:#8a979e;font-size:14px}
ul.hist li .op{color:#8a979e;font-size:14px}
ul.hist li.bad{color:var(--fail)}
ul.hist li.hl{color:var(--help);font-weight:600}
/* Вердикт в журнале шага — заливкой по тону протокола АРМ (`row.tone`, пакет P 15.10.2026):
   ok — зелёный, act — оранжевый «переснимите / сделайте действие», bad — красный. */
ul.hist li.tone-ok{background:#e8f5e9}
ul.hist li.tone-act{background:#fdebd3}
ul.hist li.tone-bad{background:#fdecea}
ul.hist li.day{border-left-color:transparent;padding-left:0;color:var(--soft);font-size:14px;margin-top:4px}
.muted{color:var(--soft)}
.dl{display:flex;flex-direction:column;gap:6px}
.dl button,.dl a{display:block;text-align:left;border:1px solid #c5cfd2;background:#f8fafa;border-radius:7px;padding:8px 10px;cursor:pointer;font-size:15px;color:var(--ink);text-decoration:none}
.dl button:hover,.dl a:hover{border-color:var(--teal)}
.dl b{color:var(--teal)}
.dl .main{background:var(--teal);color:#fff;border-color:var(--teal)}
.dl .main b{color:#fff}
.dl button:disabled{cursor:progress;opacity:.7}
.dl .msg{font-size:14.5px;color:var(--fail);padding:0 2px}
.dl .row{display:flex;flex-wrap:wrap;gap:6px}
.dl .row > *{flex:1 1 40%}
.helpbox{border:1.5px solid var(--help);border-radius:8px;padding:10px 12px;margin-bottom:12px;background:#fdf2f7}
.helpbox.taken{border-color:var(--taken);background:#f6effa}
.helpbox.answered{border-color:var(--ok);background:#eef8f2}
.helpbox .hs{font-size:14.5px;color:#55646d;margin-top:4px}
.helpbox .q{margin:6px 0;font-size:15.5px}
.helpbox textarea{width:100%;min-height:56px;margin-top:6px;border:1px solid #c5cfd2;border-radius:6px;padding:6px}
.helpbox .acts{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.helpbox .rep{background:#fff;border:1px solid #d6dee1;border-radius:6px;padding:6px 8px;margin-top:6px}
.helplink{border:1px dashed var(--help);border-radius:8px;padding:7px 10px;margin-bottom:12px;font-size:15px;background:#fff}
.helplink button{border:0;background:none;color:var(--help);text-decoration:underline;cursor:pointer;padding:0;font-weight:600}
.btn{border:0;border-radius:6px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:15px}
.btn.p{background:var(--help);color:#fff}
.btn.v{background:var(--taken);color:#fff}
.btn.t{background:var(--teal);color:#fff}
.btn.g{background:#e3e8ea;color:var(--ink)}
.btn:disabled{opacity:.6;cursor:progress}

/* окно подтверждения и тосты (нативные alert/confirm запрещены) */
.modal{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:80}
.modal .m{background:#fff;border-radius:10px;padding:16px 18px;width:min(420px,92vw);box-shadow:0 8px 30px #0004}
.modal .m p{margin:0 0 14px;font-size:16px}
.modal .acts{display:flex;gap:8px;justify-content:flex-end}
.modal .m.wide{width:min(900px,94vw)}
.modal textarea{width:100%;height:60vh;box-sizing:border-box;font:13px/1.4 Consolas,monospace;margin-bottom:12px;resize:vertical}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:9px 16px;border-radius:8px;opacity:0;transition:opacity .2s;z-index:90;pointer-events:none;max-width:80vw;text-align:center}
.toast.on{opacity:1}
.toast.err{background:var(--fail)}

/* вход */
body.login{display:flex;align-items:center;justify-content:center;min-height:100vh}
.loginbox{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0002;width:min(360px,92vw);overflow:hidden}
.loginbox h1{margin:0;background:var(--teal);color:#fff;font-size:19px;padding:14px 18px;text-transform:uppercase;letter-spacing:.3px}
.loginbox form{padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.loginbox label{display:flex;flex-direction:column;gap:4px;font-size:15px;color:#4f5f68}
.loginbox input{border:1px solid #c5cfd2;border-radius:6px;padding:8px 10px;font-size:17px;color:var(--ink)}
.loginbox .err{color:var(--fail);font-size:15px;min-height:1em}
.loginbox .btn{padding:9px 12px;font-size:17px}
.dl.top{margin:0 0 14px}
/* Пункты шага: отмеченные — под катом, на виду — что требует внимания (09.10.2026) */
#drawer h3 .cnt{text-transform:none;letter-spacing:0;font-weight:400;color:var(--soft);margin-left:6px}
.it{display:flex;align-items:flex-start;gap:10px;padding:7px 10px;border-radius:7px;margin:0 0 5px;border-left:4px solid transparent;background:#f6f8f9}
.it .itn{flex:none;min-width:22px;color:var(--soft);font-weight:600}
.it .itt{flex:1}
.it .itr{display:block;font-size:14px;margin-top:2px}
.it .itm{flex:none;font-weight:700;min-width:18px;text-align:center}
.it.skip{background:#fff1e3;border-left-color:var(--ovr)}.it.skip .itr,.it.skip .itm{color:#a85a00}
.it.bad{background:#fdecea;border-left-color:var(--fail)}.it.bad .itr,.it.bad .itm{color:var(--fail)}
.it.next{background:#e9f0fd;border-left-color:var(--blue)}.it.next .itr,.it.next .itm{color:var(--blue)}
.it.wait{background:#f6f8f9;color:#55646d}.it.wait .itr{color:var(--soft)}
.it.allok{background:#e8f5ee;border-left-color:var(--ok)}.it.allok .itm{color:var(--ok)}
.it.done{background:none;padding:4px 10px;margin:0;border-bottom:1px solid #f0f2f3;border-radius:0}.it.done .itm{color:var(--ok)}.it.done .itr{color:var(--soft)}
details.items-ok{margin-top:6px}
details.items-ok>summary{cursor:pointer;color:var(--ok);font-weight:600;padding:6px 2px;list-style:none}
details.items-ok>summary::-webkit-details-marker{display:none}
details.items-ok>summary::before{content:"▸ ";color:var(--soft)}
details.items-ok[open]>summary::before{content:"▾ "}
details.items-ok.neutral>summary{color:#55646d}
/* Полоса запросов помощи, которые никто не взял (спека 10.10.2026 §3) */
.alarm{background:#fee4e2;border-bottom:3px solid #d92d20;padding:6px 20px;display:flex;flex-direction:column;gap:4px}
.alarm[hidden]{display:none}
.alarm .arow{display:flex;align-items:center;gap:12px;font-size:16px;flex-wrap:wrap}
.alarm .arow b{color:#b42318;font-size:17px}
.alarm .where{font-weight:600}
.alarm .what{color:#3b3b3b;max-width:60ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alarm .sp{flex:1}
.alarm .amute{display:flex;justify-content:flex-end}
.alarm .amute .btn{font-size:13.5px;padding:3px 10px}

/* Графики шага в карточке и окно «Графики» (спека 10.10.2026 §5) */
.frames-step{display:flex;flex-direction:column;gap:4px}
.fgrp{font-size:13px;color:var(--soft);text-transform:uppercase;letter-spacing:.3px;margin:8px 0 2px}
.frow{display:flex;align-items:center;gap:8px;border:1px solid #dde3e6;border-radius:7px;padding:5px 8px;font-size:15px;background:#fafbfb}
.frow .t{flex:1;min-width:0;overflow-wrap:anywhere}
.frow .v{font-weight:700;width:18px;text-align:center;flex:none}
.frow .v.ok{color:var(--ok)}
.frow .v.bad{color:var(--fail)}
.frow .v.ref{color:#9aa6ad}
.frow .fnote{color:#9aa6ad;font-size:13.5px;white-space:nowrap}
.tochart{border:1px solid #c5cfd2;background:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:14px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;flex:none}
.tochart:hover{border-color:var(--teal)}
.tochart[aria-pressed="true"]{background:#e6f0f1;border-color:var(--teal);font-weight:600}
.tochart i{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid #c5cfd2}
.tochart[aria-pressed="true"] i{border:0}
.allbtn{margin-top:8px;border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:7px;padding:8px 10px;cursor:pointer;font-size:15px;font-weight:600;text-align:left}
.allbtn:hover{background:#eef5f6}
.cw-back{position:fixed;inset:0;background:#0007;z-index:90;display:flex;align-items:center;justify-content:center}
.cw-back[hidden]{display:none}
.cw{background:#fff;border-radius:10px;width:min(1500px,95vw);height:min(900px,92vh);display:flex;flex-direction:column;box-shadow:0 10px 40px #0005;overflow:hidden}
.cw-h{background:var(--teal);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px}
.cw-h h2{margin:0;font-size:18px;flex:1}
.cw-h h2 small{font-weight:400;opacity:.85;font-size:14.5px;margin-left:8px}
.cw-h .x{background:none;border:0;color:#fff;font-size:26px;cursor:pointer;line-height:1}
.cw-b{flex:1;display:grid;grid-template-columns:340px minmax(0,1fr);min-height:0}
.cw-side{display:flex;flex-direction:column;min-height:0;border-right:1px solid #dde3e6}
.cw-list{flex:1;overflow:auto;padding:10px 12px;background:#f7f9f9}
.cw-list details{margin-bottom:6px;border:1px solid #dde3e6;border-radius:8px;background:#fff}
.cw-list summary{cursor:pointer;padding:7px 10px;font-weight:600;font-size:15px;display:flex;gap:6px;align-items:center}
.cw-list summary .n{color:var(--soft);font-weight:400;font-size:13px;margin-left:auto;white-space:nowrap}
.cw-list .st{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;background:#d3d9de}
.cw-list .st.done{background:var(--teal)}
.cw-list .st.override{background:var(--ovr)}
.cw-list .st.skipped{background:var(--skip)}
.cw-list .st.stale{background:var(--stale)}
.cw-list .st.current{background:var(--blue)}
.cw-list .st.fail{background:#fff;border:2px solid var(--fail)}
.cw-list .inner{padding:0 8px 8px;display:flex;flex-direction:column;gap:4px}
.cw-list .empty{color:var(--soft);font-size:14px;padding:2px 4px 6px}
.cw-list .frow{font-size:14px;padding:4px 6px}
.cw-foot{border-top:1px solid #dde3e6;padding:8px 12px;font-size:14px;display:flex;gap:10px;align-items:center;background:#fff}
.cw-foot .sp{flex:1}
.cw-foot button{border:1px solid #c5cfd2;background:#fff;border-radius:6px;padding:3px 10px;cursor:pointer}
.cw-chart{display:flex;flex-direction:column;min-width:0;min-height:0;padding:10px 14px}
.cw-axis{font-size:14px;color:#5b6a72;margin-bottom:6px}
.cw-panel{flex:1;min-height:0;display:flex;flex-direction:column}
.cw-panel canvas{flex:1;min-height:0;width:100%}
/* Как у АРМ шасси: файловых органов у карты нет (ось называет строка над графиком), вторая таблица пиков скрыта. */
.cw-panel .sp-scale-wrap,.cw-panel .sp-scale-status,.cw-panel .sp-open-wrap,.cw-panel .sp-save,.cw-panel .sp-peaks{display:none!important}

/* Переписка в карточке (спека 10.10.2026 §8.5) */
.helpbox .unread{background:var(--help);color:#fff;border-radius:9px;padding:0 7px;font-size:13px;margin-left:6px}
.helpbox.done{background:#f4f6f7;border-color:#dde3e6}
.thread{max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:6px;margin:8px 0;padding:6px;background:#fff;border:1px solid #e3e8ea;border-radius:7px}
.thread .tsep{font-size:13.5px;color:var(--soft);border-top:1px dashed #c9d3d6;padding-top:5px}
.thread .tsep:first-child{border-top:0;padding-top:0}
.thread .tsep.end{color:var(--ok)}
.thread .tsep .kind{color:var(--ink);font-weight:600}
.thread .tnote{font-size:13px;color:var(--soft)}
.thread .tmsg{max-width:85%;padding:6px 10px;border-radius:10px;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere}
.thread .tmsg .tm{font-size:12px;color:var(--soft);white-space:normal}
.thread .tmsg.arm{background:#e9f0fd;align-self:flex-start}
.thread .tmsg.sup{background:#e8f5ee;align-self:flex-end}

/* Вложения переписки (спека 10.10.2026 §2.5) */
.thread .tatt{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.thread .tatt img{max-width:180px;max-height:130px;border-radius:6px;border:1px solid #dde3e6;object-fit:cover;display:block}
.thread .tatt video{max-width:280px;max-height:190px;border-radius:6px;background:#000}
.helpbox .tpend{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.helpbox .chip{border:1px solid #c5cfd2;background:#fff;border-radius:12px;padding:1px 4px 1px 10px;font-size:13.5px}
.helpbox .chip.up{padding-right:10px;color:var(--soft)}
.helpbox .chip button{border:0;background:none;cursor:pointer;font-size:15px;padding:0 4px}
.alarm .ano{font-size:13.5px;font-weight:700;background:#fff;border:1px solid #f1b8b1;border-radius:9px;padding:0 8px}
/* Запасной путь (18.10.2026): «Завести прибор» и этап MES в карточке */
.devact{margin:0 0 12px;padding:8px 12px;border:1px solid #c5cfd2;border-radius:8px;font-size:15px}
.devact .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.devact .warn{color:#8a5a00}
.modal .m.da label{display:block;margin:0 0 10px;font-size:15px}
.modal .m.da input,.modal .m.da select{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:5px 6px}
.modal .m.da textarea{height:auto;min-height:80px;font:inherit;margin:4px 0 0}
.modal .m.da .warn{color:#8a5a00;font-weight:600}
.modal .m.da .err{color:var(--fail);min-height:1.2em;margin:0 0 8px}

.capture-history{margin:18px 0}
.capture-history>h3{margin-bottom:6px}
.capture-timeline{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.capture-review{border:1px solid #d8e1eb;border-radius:10px;background:#fff;overflow:hidden}
.capture-review.selected{border-color:#2274c8;box-shadow:0 0 0 1px #2274c8}
.capture-review>summary{display:flex;align-items:center;gap:10px;padding:13px 14px;cursor:pointer;list-style:none;background:#f6f8fb}
.capture-review>summary::-webkit-details-marker{display:none}
.capture-review>summary::after{content:'+';font-size:22px;color:#44617e;margin-left:auto}
.capture-review[open]>summary::after{content:'−'}
.capture-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:#e2ebf5;font-weight:700;color:#28517c}
.capture-review.selected .capture-number{background:#1668b7;color:#fff}
.capture-title{min-width:0;flex:1}
.capture-title strong{display:block;font-size:15px;overflow-wrap:anywhere}
.capture-title small{display:block;margin-top:5px;color:#61718a;font-size:12px}
.capture-status{display:inline-block;padding:4px 8px;border-radius:6px;background:#edf1f5;color:#47576a;font-size:12px;font-weight:600;white-space:normal}
.capture-status.ok{background:#e4f4e9;color:#17613a}
.capture-status.failed{background:#fbe8e7;color:#a52f24}
.capture-status.waiting,.capture-status.received,.capture-status.uploading,.capture-status.insufficient{background:#fff2d8;color:#795714}
.capture-body{padding:14px}
.capture-body h4{margin:16px 0 8px;font-size:14px}
.capture-reason{border-left:3px solid #c5d7eb;padding-left:10px;font-size:14px}
.capture-reason p,.capture-decision p{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.capture-reason small,.capture-decision small{color:#61718a}
.capture-criterion{padding:8px 0;border-top:1px solid #e7ebf0}
.capture-criterion h5{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:14px}
.capture-table{overflow-x:auto}
.panel,.panel>.gridwrap{min-width:0}
@media(max-width:600px){#hdr .lh-left{flex-wrap:wrap;flex-basis:100%;padding:8px 0}#hdr .lh-slot{flex-basis:100%}#hdr .lh-sep-slot{display:none}}
.capture-table .crit{margin:4px 0 8px;min-width:330px}
.capture-body .frames-step{margin:8px 0 12px}
.capture-body .frow .t{overflow-wrap:anywhere}
.verification-approval{margin-top:16px;padding-top:14px;border-top:1px solid #d8e1eb}
.verification-approve{padding:10px 14px;border:1px solid #1764ac;border-radius:7px;background:#1764ac;color:#fff;font-weight:700;cursor:pointer}
.verification-approve:disabled{background:#edf1f5;border-color:#d3dce6;color:#68788b;cursor:default}
.verification-response{margin:12px 0}.verification-response label{display:block}.verification-response textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px}.verification-reason-help{margin:6px 0 8px;font-size:12px}.verification-response-actions{display:flex;flex-wrap:wrap;gap:8px}.verification-response-actions button{max-width:100%;white-space:normal}.verification-sample-selection{margin:12px 0}
.capture-decision{border-left:4px solid #ce9b2b}
#workflow-queues{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px;background:#f5f8fa;border-bottom:1px solid #d5e0e5}
#workflow-queues[hidden]{display:none}
#workflow-queues button{padding:8px 12px;border:1px solid #b9ccd3;background:white;border-radius:6px;color:#294f5a;cursor:pointer;font:inherit;font-size:13px}
#workflow-queues button[aria-pressed=true]{background:#2d6069;color:white}
#workflow-queues strong{margin-left:6px}
.workflow-summary{margin:14px 0;padding:14px 16px;border:1px solid #b9d6df;border-radius:8px;background:#f3f9fb}
.workflow-summary h3{margin:0 0 8px}.workflow-summary p{margin:6px 0}.workflow-problems{color:#873c28;overflow-wrap:anywhere}
.workflow-summary button{font:inherit;padding:7px 10px;border:1px solid #9dbcc6;border-radius:5px;background:white;color:#294f5a;cursor:pointer}
.verification-response-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.verification-response-actions button{font:inherit;font-size:14px;font-weight:600;line-height:1.35;text-align:left;padding:10px 12px;border:1px solid #aabfc8;border-radius:6px;background:#fff;color:#294f5a;cursor:pointer}
.verification-response-actions button:hover{background:#edf5f7}
.verification-response-actions button small{display:block;font-size:12px;font-weight:400;color:#647681;margin-top:4px}
.verification-response-actions button:disabled{opacity:.65;cursor:wait}
.capture-files,.capture-success{margin:10px 0;padding:8px 10px;border:1px solid #e0e7ec;border-radius:5px}
.capture-files>summary,.capture-success>summary{cursor:pointer;color:#496570;font-size:13px}
.capture-criterion.problem{border-left:3px solid #b96a42;padding-left:10px}
@media(max-width:600px){.verification-response-actions{grid-template-columns:1fr}#workflow-queues{padding:10px}.workflow-summary{padding:12px}}
@media(max-width:600px){.capture-review>summary{flex-wrap:wrap;padding:10px;gap:8px}.capture-review>summary>.capture-status{margin-left:38px;max-width:calc(100% - 65px)}.capture-review>summary::after{position:relative}.capture-title{flex-basis:calc(100% - 55px)}.capture-body{padding:10px}}
