/* Платформа — система учёта. Тёмная тема. */
:root{--bg:#0e1116;--panel:#161b22;--panel2:#1c232c;--line:#2a323d;--text:#dbe2ea;--muted:#8793a2;--accent:#f2b84b;--ok:#3fbf7a;--okbg:#113222;--warn:#e6a93a;--warnbg:#3a2c0d;--bad:#ef5b5b;--badbg:#3b1717;--info:#6aa9ff}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 "Segoe UI",system-ui,-apple-system,Arial,sans-serif}
button,input,select{font:inherit;color:inherit}
#app{display:grid;grid-template-columns:190px minmax(0,1fr) 300px;height:100vh}
.nav{background:#0a0d11;border-right:1px solid var(--line);padding:12px 8px;display:flex;flex-direction:column;gap:3px;overflow:auto}
.logo{font-weight:800;letter-spacing:.5px;font-size:18px;padding:4px 8px 14px;color:#fff}
.logo b{color:var(--accent)} .logo span{display:block;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:0}
.navb{display:flex;align-items:center;gap:9px;text-align:left;background:none;border:1px solid transparent;border-radius:9px;padding:9px 10px;cursor:pointer;color:var(--text)}
.navb i{font-style:normal;width:20px;text-align:center}
.navb:hover{background:var(--panel)} .navb.on{background:var(--panel2);border-color:var(--line);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.navb.reset{margin-top:auto;color:var(--muted);font-size:13px}
.work{display:flex;flex-direction:column;min-width:0;height:100vh}
.top{display:flex;align-items:center;gap:14px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}
.top h1{font-size:20px;margin:0 auto 0 0}
.top label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
select,input{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 9px;outline:none}
select:focus,input:focus{border-color:var(--accent)}
.tb{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer;min-width:38px}
.langsw{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden} .langsw button{background:var(--panel2);border:none;padding:6px 11px;cursor:pointer;color:var(--muted)} .langsw button.on{background:var(--accent);color:#1a1408;font-weight:700}
.tb.help{border-color:var(--info);color:var(--info);font-weight:700;border-radius:50%}
main{padding:14px 18px 40px;overflow:auto;flex:1}
/* полоса состояния: по цвету видно, чего ждёт программа */
.statebar{border-radius:12px;padding:14px 18px;margin-bottom:12px;border:1px solid var(--line);border-left-width:8px;background:var(--panel);transition:background .15s,border-color .15s}
.statebar .sb1{font-size:19px;font-weight:700;color:#fff} .statebar .sb2{color:var(--muted);margin-top:2px;min-height:1.2em}
.statebar.idle{border-left-color:#5b6878}
.statebar.go{background:var(--okbg);border-color:#1f6b45;border-left-color:var(--ok)}
.statebar.warn{background:var(--warnbg);border-color:#7a5a17;border-left-color:var(--warn)}
.statebar.bad{background:var(--badbg);border-color:#8a2c2c;border-left-color:var(--bad)}
.cols{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:12px;align-items:start}
.cols .doc + .side,.cols .side{min-width:0}
.cols:has(.side){grid-template-columns:minmax(0,1fr) minmax(280px,340px)}
.pane{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px;min-width:0;overflow-x:auto}
.pane h4{margin:14px 0 8px;font-size:14px;color:#fff} .pane h4:first-child{margin-top:0}
.row{display:flex;gap:10px;align-items:center;margin:6px 0;flex-wrap:wrap} .row input{flex:1}
.row input[type=checkbox],.row input[type=radio]{flex:none;width:auto;margin:0} label.row>span{flex:1;min-width:0} .form label.row{flex-direction:row;align-items:center;flex-wrap:nowrap;gap:8px} /* П-340: галочка — слева от подписи, не на всю строку (и в форме, где label — столбик) */
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px} .row2 input,.form input,.form select{width:100%;min-width:0} .row2 label,.form label,.split{display:flex;flex-direction:column;font-size:12.5px;color:var(--muted);gap:3px}
.split{flex-direction:row;align-items:center;justify-content:space-between;margin:4px 0;font-size:14px;color:var(--text)} .split input{width:120px}
.search{width:100%;margin:8px 0}
.results{max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.res{text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 9px;cursor:pointer}
.res span{display:block;color:var(--muted);font-size:12px} .res.on{border-color:var(--accent)} .res:hover{border-color:#566273}
.hint{color:var(--muted);font-size:13px;margin:6px 0} .empty{color:var(--muted);text-align:center;padding:26px 0}
.variant{margin:10px 0;padding-top:10px;border-top:1px dashed var(--line)} .vtitle{margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13.5px}
.chip.on{background:var(--accent);border-color:var(--accent);color:#1a1408;font-weight:600} .chip.big{padding:9px 15px;font-size:15px;border-radius:10px}
.sizes{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
.size{min-width:58px;padding:13px 10px;font-size:17px;font-weight:700;background:var(--panel2);border:2px solid var(--line);border-radius:10px;cursor:pointer}
.size.on{background:var(--ok);border-color:var(--ok);color:#06140c}
.boxgrid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0} .boxgrid label{display:flex;flex-direction:column;align-items:center;font-weight:700;gap:3px} .boxgrid input{width:62px;text-align:center}
.btn{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer}
.btn:hover{border-color:#566273} .btn.sm{padding:6px 10px;font-size:13.5px} .btn.wide{width:100%;margin-top:10px;padding:14px;font-size:17px}
.btn.go{background:var(--ok);border-color:var(--ok);color:#06140c;font-weight:700} .btn:disabled{opacity:.4;cursor:default}
.link,.dlink{background:none;border:none;color:var(--info);cursor:pointer;font-size:12.5px;padding:0 4px}
.cmdrow{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap} .cmdrow span{color:var(--muted);font-size:13px} .cmdrow .go{margin-left:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;color:var(--muted);font-weight:500;font-size:12.5px;padding:5px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:6px 8px;border-bottom:1px solid #20272f;vertical-align:middle}
.num{text-align:right;white-space:nowrap} .me{background:rgba(242,184,75,.07)} .hot{color:var(--bad);font-weight:600}
.pr{width:92px;text-align:right} .pr.est{border-style:dashed;color:var(--warn)}
.labs span{display:inline-block;font:12px Consolas,monospace;background:#0c1015;border:1px solid var(--line);border-radius:5px;padding:1px 5px;margin:1px;color:#cdb26b}
.x{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;line-height:1} .x:hover{color:var(--bad)}
.totals{margin-top:10px;text-align:right;color:var(--muted)} .totals b{color:#fff;font-size:16px}
.pile{background:var(--warnbg);border:1px solid #7a5a17;border-radius:10px;padding:10px 12px;margin-bottom:12px} .pile h4{margin:0 0 6px}
.pl{display:inline-flex;gap:5px;align-items:center;margin:3px 10px 6px 0;font:13px Consolas,monospace}
.sumbox{margin-top:12px;border-top:1px dashed var(--line);padding-top:8px} .sumbox div{display:flex;justify-content:space-between;color:var(--muted);margin:3px 0} .sumbox b{color:var(--text)}
.sumbox .grand{font-size:17px;color:#fff;margin-top:6px} .sumbox .grand b{font-size:24px;color:var(--accent)}
.okbox{background:var(--okbg);border:1px solid #1f6b45;border-radius:10px;padding:10px 14px;margin-bottom:12px} .warnbox{background:var(--warnbg);border-color:#7a5a17}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 13px} .tile b{display:block;font-size:22px;color:var(--accent)} .tile span{font-size:12.5px;color:var(--muted)}
.tile.bad b{color:var(--bad)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px} .wide2{grid-column:1/-1}
.barcell{width:22%;min-width:84px} .barcell i{display:block;height:9px;border-radius:5px;background:var(--accent);min-width:2px}
.feed{padding:5px 0;border-bottom:1px solid #20272f;font-size:14px} .feed span{color:var(--muted);font:12px Consolas,monospace;margin-right:10px}
.tabs{display:flex;gap:6px;margin-bottom:10px} .tab{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 16px;cursor:pointer}
.tab.on{background:var(--accent);border-color:var(--accent);color:#1a1408;font-weight:700} .tab i{font-style:normal;background:var(--bad);color:#fff;border-radius:999px;padding:0 7px;font-size:12px;margin-left:4px}
.card{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0} .card h3,.card h4{margin:0 0 8px}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px} .kv div{font-size:12.5px;color:var(--muted)} .kv b{display:block;font-size:15px;color:var(--text)}
.okrow td{color:var(--ok)}
.tbl tr.click{cursor:pointer} .tbl tr.click:hover td{background:#1b222b}
.muted{color:var(--muted)} .yes{color:var(--ok)} .filters .row select{flex:1;min-width:0}
.picker .row select{flex:1;min-width:0}
.roll{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.lab{background:#fff;border-radius:6px;padding:8px 8px 4px;text-align:center} .lab .bc{width:100%;height:34px;display:block} .lab span{color:#111;font:12px Consolas,monospace}
.lab.big .bc{height:46px} .lab.big span{font:600 13px "Segoe UI",sans-serif}
/* демо-стол: нарочно выглядит иначе — это не часть программы */
.demo{background:repeating-linear-gradient(135deg,#12161c,#12161c 14px,#141920 14px,#141920 28px);border-left:2px dashed #46505c;padding:10px;overflow:auto;font-size:13px}
.dhead{font-weight:800;letter-spacing:1px;color:var(--info);margin-bottom:8px} .dhead span{display:block;font-weight:400;letter-spacing:0;color:var(--muted);font-size:11.5px}
.demo h5{margin:12px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.ditem{background:#0c1015;border:1px solid var(--line);border-radius:9px;padding:7px 8px;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.ditem.done{opacity:.5} .dname{flex:1 1 100%;line-height:1.25} .dname i{display:block;font-style:normal;color:var(--accent)}
.dbtn{border:1px solid var(--line);border-radius:7px;padding:5px 8px;cursor:pointer;background:var(--panel2);font-size:12.5px}
.dbtn.fac{border-color:#3d5a80;color:#9cc4ff} .dbtn.lab{border-color:#6d5a26;color:#f0d28a;background:#1c1810;text-align:left;border-radius:7px;padding:5px 8px} .dbtn.cmd{font-weight:700}
.dbtn:hover{filter:brightness(1.25)} .dno{color:var(--muted);font-size:11.5px} .dcmds{display:flex;flex-wrap:wrap;gap:5px}
.demo input{width:100%} .dhint{color:var(--muted)}
.dlast{margin-top:10px;border-top:1px dashed #46505c;padding-top:8px;color:var(--muted)} .dlast b{color:var(--text)}
.snd-ok,.snd-saved{color:var(--ok)!important} .snd-warn,.snd-pick{color:var(--warn)!important} .snd-err{color:var(--bad)!important}
.mwrap{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:20}
.mbox{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;width:min(480px,92vw)} .mbox h3{margin:0 0 12px}
/* окно не выше экрана — содержимое прокручивается, кнопки окна и отказ в окне видны всегда (П-260) */
.mwrap{padding:12px 0} .mbox{width:min(480px,92%);max-height:100%;overflow-y:auto;overscroll-behavior:contain}
.mbox>.mbtn:last-child{position:sticky;bottom:-18px;margin:14px -20px -18px;padding:10px 20px 18px;background:var(--panel);border-top:1px solid var(--line);z-index:2}
.mbox>.badbox:first-child{position:sticky;top:-18px;z-index:2}
.sc-wiz .sc-done{margin:4px 0 8px} .sc-ok{color:var(--ok)}
.tbl tr.shop-shut td{color:var(--muted)} .tbl tr.shop-shut td>b{text-decoration:line-through} /* закрытый магазин: зачёркнуто только название (П-265 (4)) */
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px} .mbtn{margin-top:14px;text-align:right}
.hbox{position:fixed;top:0;right:300px;width:min(430px,90vw);height:100vh;background:var(--panel);border-left:3px solid var(--info);padding:16px 20px;overflow:auto;z-index:15;box-shadow:-12px 0 30px rgba(0,0,0,.5)}
.hbox h3{margin-top:4px;color:#fff} .hbox li{margin:7px 0} .hbox .x{float:right;font-size:24px}
.hbox .hfoot{margin-top:18px;padding-top:12px;border-top:1px solid var(--line,#2a3340)}
.logsum td,.logsum th{padding:4px 8px} .logsum .bad{color:var(--bad,#ef5b5b)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 18px;opacity:0;transition:.2s;z-index:30;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)} .toast.ok{border-color:var(--ok)} .toast.bad{border-color:var(--bad)}
/* печать: на бумагу идёт только блок #print (этикетки или лист команд); размер страницы задаёт print.js (@page) */
#print{display:none}
@media print{body{background:#fff;margin:0}#app,#modal,#help,#toast{display:none!important}#print{display:block}
  .plab{page-break-after:always;break-after:page;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6mm;overflow:hidden;color:#000;font-family:Arial,sans-serif;padding:1mm 2mm}
  .plab:last-child{page-break-after:auto;break-after:auto} .pl-t{font-size:8pt;font-weight:700;text-align:center;line-height:1.1;max-height:2.3em;overflow:hidden} .pl-v{font-size:9pt;font-weight:700} .pl-c{font:8pt Consolas,monospace;letter-spacing:.5px}
  .psheet{display:grid;grid-template-columns:repeat(3,1fr);gap:8mm} .psheet .lab{background:#fff;border:1px solid #999;padding:3mm;text-align:center} .psheet .lab span{display:block;font:600 11pt Arial,sans-serif;color:#000;margin-top:2mm}}

/* ---------- раскладка v2: разделы — в закреплённой полосе сверху на всю ширину, слева — опции раздела ---------- */
#app{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:auto minmax(0,1fr);height:100vh}
#app.nodemo{grid-template-columns:minmax(0,1fr)} #app.nodemo .demo{display:none}
.hdr{grid-column:1/-1;background:#0a0d11;border-bottom:1px solid var(--line);z-index:12}
.hrow{display:flex;align-items:center;gap:14px;padding:7px 16px;flex-wrap:wrap}
.hrow .logo{padding:0;margin-right:auto;font-size:19px;display:block;white-space:nowrap} .hrow .logo span{display:inline;font-size:12px;margin-left:9px}
.hrow label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.tb.ghost{color:var(--muted);font-size:13px}
.hnav{display:flex;gap:2px;padding:0 10px;background:var(--panel);border-top:1px solid #1a2028;overflow-x:auto}
.hnav .navb{flex:none;display:flex;align-items:center;gap:8px;padding:11px 15px;background:none;border:none;border-bottom:3px solid transparent;border-radius:0;box-shadow:none;cursor:pointer;color:var(--muted);font-size:15px;white-space:nowrap}
.hnav .navb i{width:auto} .hnav .navb:hover{color:var(--text);background:var(--panel2)}
.hnav .navb.on{color:#fff;border-bottom-color:var(--accent);background:var(--panel2);box-shadow:none;font-weight:600}
main{grid-column:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:12px 16px 0;overflow:hidden}
.demo{grid-column:2;grid-row:2;min-height:0}
.statebar{flex:none}
.page{flex:1;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px}
.opts,.content{overflow:auto;min-height:0;padding-bottom:28px}
.opts .pane{margin-bottom:0} .opts h4{margin:16px 0 7px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)} .opts h4:first-child{margin-top:0}
.picker .results{max-height:none}
.vlist{display:flex;flex-direction:column;gap:3px}
.vitem{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:none;border:1px solid transparent;border-radius:8px;padding:7px 10px;cursor:pointer;color:var(--text)}
.vitem:hover{background:var(--panel2)} .vitem.on{background:var(--panel2);border-color:var(--line);box-shadow:inset 3px 0 0 var(--accent);color:#fff;font-weight:600}
.vitem small{color:var(--muted);font-weight:400} .vitem:disabled{opacity:.4;cursor:default} .vitem small.badge{background:var(--bad);color:#fff;border-radius:999px;padding:0 7px}
.tiles.one{grid-template-columns:1fr} .tiles.two{grid-template-columns:1fr 1fr}
.paybox{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:18px;align-items:end} .paybox .sumbox{border-top:none;margin-top:0;padding-top:0} .paybox h4{margin-top:0}
.tbl tr.sel td{background:rgba(242,184,75,.07)}
.hbox{top:0;right:300px} .hbox.full{right:0}
@media (max-width:1150px){.page{grid-template-columns:240px minmax(0,1fr)}.grid2{grid-template-columns:1fr}#app{grid-template-columns:minmax(0,1fr) 250px}.hbox{right:250px}.paybox{grid-template-columns:1fr}}
@media (max-width:820px){#app{grid-template-columns:minmax(0,1fr)}.demo{display:none}main{overflow:auto}.page{display:block}.opts,.content{overflow:visible}.hbox{right:0}}

/* чеки и исправления */
.badge{display:inline-block;font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:1px 9px;margin-left:6px;color:var(--muted);vertical-align:middle}
.badge.bad{color:var(--bad);border-color:#8a2c2c;background:var(--badbg)} .badge.warn{color:var(--warn);border-color:#7a5a17;background:var(--warnbg)}
.chips .badge{margin-left:0;padding:4px 11px;font-size:13px}
.tbl tr.voided td{color:var(--muted);text-decoration:line-through} .tbl tr.voided td:last-child{text-decoration:none}
.btn.bad{background:var(--badbg);border-color:#8a2c2c;color:#ffb4b4;font-weight:600} .okbox.badbox{background:var(--badbg);border-color:#8a2c2c}
.opts .split{font-size:13.5px;margin:5px 2px} .opts .split b{color:var(--text)}
.form select{background:var(--panel2)}

/* расхождения, списания, права */
.badge.ok{color:var(--ok);border-color:#1f6b45;background:var(--okbg)}
.card .row .hint{flex:1;min-width:220px;margin:0}
.dhint{margin-bottom:6px} .nw{white-space:nowrap} .card h4:not(:first-child){margin-top:16px}
.rights th:not(:first-child),.rights td:not(:first-child){text-align:center;width:150px} .rights input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer} .rights input:disabled{cursor:default;opacity:.6}

/* рабочая система: смешанные коды, печать на месте, счета, смена, заказы, вход */
.labs span.fac{color:#9cc4ff;border-color:#3d5a80}
.actbox{background:var(--okbg);border:1px solid #1f6b45;border-radius:10px;padding:8px 12px;margin-bottom:10px} .actbox .hint{margin:4px 0}
.shift{display:flex;flex-direction:column;gap:4px;background:var(--okbg);border:1px solid #1f6b45;border-radius:10px;padding:8px 10px;margin-bottom:10px;font-size:13px} .shift span{color:var(--muted)} .shift b{color:var(--text)} .shift .btn{align-self:flex-start}
.shift.off{background:var(--warnbg);border-color:#7a5a17}
.netchip{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 10px} .netchip.on{color:var(--ok);border-color:#1f6b45} .netchip.off{color:var(--warn);border-color:#7a5a17;background:var(--warnbg)}
.who{font-size:14px;color:var(--text)} .who .link{font-size:12.5px}
.upd{background:var(--okbg);border-top:1px solid #1f6b45;padding:6px 16px;font-size:14px} .upd.bad{background:var(--badbg);border-top-color:#8a2c2c}
.gate a{color:var(--info)} .gate h4{margin:18px 0 8px;color:#fff} .gate pre,.gate code{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:15px;letter-spacing:1px;display:inline-block} /* П-80: ссылки видны на тёмном; учётная запись (account.js) */
.gate{width:100%;max-width:560px;margin:40px auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 26px;overflow:auto} .gate.wide{max-width:860px}
.gate.in-login{max-width:440px}
.gate h2{margin:0 0 6px;font-size:24px;letter-spacing:.5px;color:#fff} .gate h2 b{color:var(--accent)} .gate h3{margin:0 0 12px;color:#fff} .gate .form{grid-template-columns:1fr} .gate .tbl input{width:100%}
#app.gated .demo{display:none} #app.gated{grid-template-columns:minmax(0,1fr)} #app.gated main{overflow:auto}
.invlist .vitem{align-items:flex-start} .invlist .vitem span{font-weight:400} .invlist small.yes{color:var(--ok);font-size:16px}
.months{display:flex;align-items:flex-end;gap:6px;height:120px;margin:10px 0 4px} .mcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.mcol i{display:block;width:100%;max-width:38px;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px} .mcol span{font-size:11px;color:var(--muted);white-space:nowrap}
.scrollx{overflow-x:auto} .tbl.small{font-size:12.5px} .tbl.small td,.tbl.small th{padding:4px 6px} .tbl tr.sumrow td{border-top:1px solid var(--line);font-weight:700}
/* раздел «Продажи» (sales.js, 2026-10-29): день с ◀ ▶, отборы колонкой, оплаты строкой, вещи — по строке на товар */
.sv-day{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;margin:6px 0} .sv-day input{width:100%;min-width:0}
.opts .form.sv-f{grid-template-columns:1fr;gap:8px} .opts input[type=date]{color-scheme:dark}
.sv-pays{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;margin:0 0 8px;font-size:13.5px} .sv-pays .split{margin:0;gap:8px;font-size:13.5px}
.sv-tbl td{vertical-align:top} .sv-tbl td .muted{font-size:12px} .sv-tbl .sv-items{min-width:220px} .sv-tbl td .badge{margin:0 4px 3px 0}
.sv-tot{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px} .sv-tot .tile{padding:9px 11px} .sv-tot .tile b{font-size:19px} .sv-tbl td.nw{white-space:nowrap}
@media (max-width:1440px){.hnav{padding:0 4px}.hnav .navb{padding:11px 7px;gap:5px;font-size:14px}} /* одиннадцать разделов (с «Продажами» и «Покупателями») — в одну строку на 1280 */
.sv-tbl .nw{white-space:nowrap}
/* раздел «Покупатели» (customers.js, 2026-10-29): кнопки-ссылки WhatsApp и звонок, «Позвонить» — только на узком экране (телефон) */
a.btn{display:inline-block;color:var(--text);text-decoration:none} a.cu-call{display:none} @media (max-width:820px){a.cu-call{display:inline-block}}
.cu-btns .btn{padding:7px 12px} .cu-btns .hint{margin:0} .cu-note{white-space:pre-wrap;margin:8px 0} .cu-tot{margin:10px 0}
.cu-sizes{margin:0 0 8px;font-size:13.5px} .cu-sizes .badge{margin:0 6px 4px 0} .cu-tbl td{vertical-align:top}
.sv-tbl .link,.kv .link{font-size:inherit;padding:0;text-align:left}
/* объединить две карточки (customers.js, В5в): обе рядом, на узком экране — одна под другой; подсказка «это он?» на продаже и в заказе */
.mbox:has(.cu-mg){width:min(760px,96vw)} .cu-mg{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 10px} @media (max-width:640px){.cu-mg{grid-template-columns:1fr}}
.cu-side{margin:0;padding:10px 12px} .cu-side h4{margin:0 0 6px} .cu-side .kv{margin-bottom:8px} .cu-side.on{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
.cu-merged .okbox .row{margin-top:8px} .cu-kids .btn{margin:2px 4px 2px 0;white-space:nowrap;font-weight:400} .chip.cu-like{margin:3px 4px 0 0;font-size:13px} .cu-mtbl td{vertical-align:top}
/* «Настройки → Оборудование» и полоса «окно программы не активно» (hw.js, В3б) */
.hw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-top:8px} .hw-box{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.hw-box h5{margin:0 0 8px;font-size:15px} .hw-box .kv{margin:8px 0} .hw-box .btn{margin-top:6px} .hw-box ul.hint{padding-left:18px}
.hw-code{font:600 22px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.5px;word-break:break-all;color:#fff}
.kv b.ok{color:var(--ok)} .kv b.warn{color:var(--warn)} .kv b.bad{color:var(--bad)} .hw-net td.bad{color:var(--bad)} .hw-net td.warn{color:var(--warn)} .hw-net{margin:6px 0}
@media (max-width:640px){.hw-grid{grid-template-columns:1fr}}
.hw-scn{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px} .hw-scn>span:first-child{color:var(--muted);font-size:13px;width:100%}
/* «Подряд» на вводе остатков (В3в): счётчики видны с 1–2 м */
.runbox{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 12px} .runc{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:8px 18px;min-width:150px;text-align:center}
.runc b{display:block;font:700 76px/1.05 ui-monospace,Consolas,monospace;color:#fff} .runc span{color:var(--muted);font-size:16px} .runc.warn{border-color:#7a5a17;background:var(--warnbg)} .runc.warn b{color:var(--warn)}
.runlast{flex:1 1 240px;font-size:22px;min-width:0;overflow-wrap:anywhere} .runlast .warnc{color:var(--warn)}
.pile .todo{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)} .pile .todo .mono{font:13px Consolas,monospace;color:#cdb26b;overflow-wrap:anywhere}
.labs span.nl{color:var(--warn);border-color:#7a5a17}
@media (max-width:640px){.runc{min-width:100px;padding:6px 10px}.runc b{font-size:48px}.runlast{font-size:17px}}
/* «Подряд» (приёмка и сверка) на узком экране: крупные счётчики — первыми, левая панель — под ними (иначе у полки их не видно без прокрутки) */
@media (max-width:820px){.page:has(.runbox){display:flex;flex-direction:column;gap:12px}.page:has(.runbox)>*{flex-shrink:0}.page:has(.runbox)>.content{order:-1}}
.focusbar{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--warn);color:#1a1200;font-weight:700;font-size:17px;text-align:center;padding:12px 16px;cursor:pointer;box-shadow:0 2px 10px #0008}
.focusbar[hidden]{display:none}
.gate .pair-old{margin-top:16px} .gate .tenant-line b{color:var(--text)} /* А5(в): прежний способ подключения; кабинет на экранах до входа */
.tbl.devs td.bad{color:var(--bad);font-weight:600} .tbl.devs td.warn{color:var(--warn)} /* А7(б)2: «Компьютеры» владельца — неотправленное, давно не на связи */
/* В6 (п105): справка «?» у настроек и важных действий — кнопка MM.q(ключ) и блок рядом (help.js; без перерисовки экрана) */
.qb{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;padding:0;border-radius:50%;border:1px solid var(--info);background:transparent;color:var(--info);font-size:12px;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle;flex:none}
.qb:hover{background:var(--info);color:var(--bg)}
.qpop{position:fixed;z-index:40;max-width:min(380px,92vw);background:var(--panel2);border:1px solid var(--info);border-radius:10px;padding:10px 32px 10px 14px;box-shadow:0 8px 28px rgba(0,0,0,.6);font-size:14px;line-height:1.45;color:var(--text)}
.qpop .x{position:absolute;top:4px;right:6px;background:none;border:0;color:var(--muted);font-size:20px;cursor:pointer}
.sl-seller{align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 8px} /* В6: «Продал: …» и кнопки связи в чеке и окне возврата */

/* А9(5) К6: мастер первой настройки нового клиента (app.js wizForm), полоса «Настройка: N из 5» (MM.wizBar) и окно шагов */
.wizsteps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:6px 0 10px;counter-reset:wz}
.wizsteps li{counter-increment:wz;font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.wizsteps li::before{content:counter(wz) ". "}
.wizsteps li.on{color:#1a1408;background:var(--accent);border-color:var(--accent);font-weight:700}
.gate.wiz .su-shops{width:100%}
.gate.wiz .su-shops input,.gate.wiz .su-shops select,.su-shops select{width:100%;min-width:0}
.wizbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 18px;background:var(--panel2);border-bottom:1px solid var(--line);font-size:14px}
.wizbar.need{background:var(--warnbg);border-bottom-color:#7a5a17}
.wizlist{padding-left:0;list-style:none;margin:8px 0}
.wizlist li{padding:6px 0;border-bottom:1px solid var(--line)}
.wizlist li.done b{color:var(--ok)}
.wizlist .hint{display:block;margin:2px 0 0 18px}
@media (max-width:600px){.gate.wiz .su-shops tr{display:grid;grid-template-columns:1fr;gap:4px;padding:6px 0;border-bottom:1px solid var(--line)}.gate.wiz .su-shops th{display:none}.gate.wiz .su-shops td{padding:0}}
/* А9(4) К5 — полоса «Работаем через запасной адрес» (host.js): внизу по центру, поверх экрана, не мешает нажатиям рядом */
.hostbar{position:fixed;left:50%;bottom:10px;transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:4px;max-width:calc(100vw - 32px);padding:6px 12px;border-radius:8px;border:1px solid var(--warn);background:var(--warnbg);color:var(--text);font-size:14px;box-shadow:0 4px 16px rgba(0,0,0,.5);flex-wrap:wrap}
.hostbar .hostsep{width:1px;align-self:stretch;margin:0 8px;background:var(--warn)}
/* переезд на новый адрес (host.js): экран поверх программы — «переезжает», «переехала», «не получилось» */
.hostmove{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.72);padding:16px}
.hostmove-box{max-width:520px;width:100%;padding:20px 24px;border-radius:10px;border:1px solid var(--warn);background:var(--bg);color:var(--text);box-shadow:0 8px 32px rgba(0,0,0,.6)}
.hostmove-box h3{margin:0 0 10px}
.hostmove-box .btn{margin:8px 8px 0 0}
.hostmove-box .hostaddr{font-family:monospace;word-break:break-all;color:var(--muted)}
/* А9(1) К2: «Настройки → Кассы» владельца, код подключения крупно, подключение кассы кодом на экране подключения (box.js) */
.kcode{font:700 44px/1.1 Consolas,monospace;letter-spacing:4px;text-align:center;padding:14px;margin:10px 0;border:2px dashed var(--info);border-radius:12px;color:var(--text);user-select:all}
.kcode.gone{opacity:.35;text-decoration:line-through}
.kwrap{overflow-x:auto} .tbl.kassy tr.kgrp th{text-align:left;background:var(--panel2)} .tbl.kassy td.bad{color:var(--bad);font-weight:600} .tbl.kassy .warn{color:var(--warn)}
.gate .pair-kassa{margin:10px 0 14px} .gate .pair-or{margin-top:14px}
@media (max-width:640px){.kcode{font-size:34px;letter-spacing:2px}.tbl.kassy{font-size:13px}}
/* А9(3) К4 — «Настройки → Модули», модуль BirFatura (purchases.js) */
.bf-state td:first-child{color:var(--muted);width:42%} .bf-form{max-width:420px} .bf-form input{font-family:monospace}
/* В2 К2 — приёмка: «×» у каждой этикетки строки, этикетка, которую уже приняла другая касса; сообщение-предупреждение */
.labs span .x{font-size:14px;margin-left:3px;padding:0 1px;vertical-align:baseline} .labs span.taken{color:var(--bad);border-color:var(--bad)}
.toast.warn{border-color:var(--warn)}
/* П-290 — окно-переспрос MM.ask (core.js): текст вопроса крупнее, строка «пикнули — не засчитано» */
.ask-q{font-size:16px;line-height:1.45} .ask-scan{background:var(--warnbg);border:1px solid #7a5a17;border-radius:8px;padding:6px 10px;color:var(--warn)}
/* П-69: экран ожидания кассы (box.js holdHtml) — касса подключается и досылает продажи с диска; поверх всего, пока идёт удержание */
.kwait{position:fixed;inset:0;z-index:900;background:rgba(8,10,14,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.kwait-box{max-width:560px;width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:20px 22px} .kwait-box h3{margin:0 0 10px;font-size:18px;line-height:1.35}
.kwait-step{font-size:17px;margin:8px 0} .kwait-bar{height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin:8px 0} .kwait-bar i{display:block;height:100%;background:var(--ok)}
/* С2 w11 (п109) — блок «Требует внимания» (sec.js MM.attn) и раздел «Безопасность» панели владельца; счётчик на «Владелец» в шапке */
.attn h4 .badge{margin-left:6px}
.attn-it{border:1px solid var(--line);border-left-width:6px;border-radius:9px;padding:8px 11px;margin:7px 0;background:var(--panel2)}
.attn-it.attn-bad{border-left-color:var(--bad);background:linear-gradient(90deg,var(--badbg),var(--panel2) 60%)} .attn-it.attn-warn{border-left-color:var(--warn)} .attn-it.attn-info{border-left-color:var(--info)}
.attn-t b{color:#fff} .attn-d{color:var(--text)} .attn-m{color:var(--muted);font-size:12.5px;margin-top:2px} .attn-s{font-size:13px;margin-top:4px;line-height:1.4}
.attn-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.sec .sec-f{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0} .sec .chips .btn.on{border-color:var(--accent);color:var(--accent)}
.navcnt{display:inline-block;min-width:20px;padding:0 6px;margin-left:auto;border-radius:10px;font-size:12px;font-weight:700;line-height:20px;text-align:center;color:#120d0d;background:var(--warn)} .navcnt.bad{background:var(--bad);color:#fff}
/* Viz w13 — оболочка (02.11): тёмные полосы прокрутки (Viz-01), строка разделов без полосы (Viz-02), полоса «окно не активно» в потоке над шапкой (Viz-03), экран подключения (Viz-04) */
:root{color-scheme:dark}
*{scrollbar-width:thin;scrollbar-color:#3a4553 transparent}
::-webkit-scrollbar{width:9px;height:9px} ::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
::-webkit-scrollbar-thumb{background:#3a4553;border-radius:6px;border:2px solid transparent;background-clip:padding-box} ::-webkit-scrollbar-thumb:hover{background-color:#4c5a6b}
.hnav{scrollbar-width:none;overscroll-behavior-x:contain} .hnav::-webkit-scrollbar{display:none}
body.fbar-on{padding-top:var(--fbh,0px)} body.fbar-on #app{height:calc(100vh - var(--fbh,0px))} body.fbar-on .hbox{top:var(--fbh,0px);height:calc(100vh - var(--fbh,0px))}
.gate{flex:none}
.gate input.need{border-color:var(--bad);box-shadow:0 0 0 2px rgba(239,91,91,.35)}
.netchip.idle{color:var(--muted);border-color:var(--line);background:none}
.gate .pair-nm{margin:4px 0 2px} .gate .pair-nm summary{cursor:pointer;color:var(--muted);font-size:14px;display:inline} .gate .pair-nm summary::before{content:'▸ '} .gate .pair-nm[open] summary::before{content:'▾ '} .gate .pair-nm[open] summary{color:var(--text)} .gate .pair-nm label{margin-top:8px} /* П-464: название — не обязательно, свёрнуто */
.gate .pair-old{padding:8px 12px}.gate .pair-old-t{font-size:14px;color:var(--muted);text-decoration:none} .gate .pair-old.open .pair-old-t{color:var(--text)} .gate .pair-old-b{margin-top:8px}
@media (min-width:821px) and (max-width:1250px){.hnav .navb i{display:none}.hnav .navb{padding:11px 8px}} /* Viz-02: 11 разделов в одну строку на 1100 — без значков (подписи понятнее) */
@media (min-width:821px) and (max-width:1000px){.hnav .navb{padding:10px 6px;font-size:13px}}
@media (min-width:821px) and (max-width:940px){.hnav{padding:0 2px}.hnav .navb{padding:9px 5px;font-size:12.5px}} /* уже — строка прокручивается без полосы, открытый раздел — в середине (app.js) */
/* Viz w15 — экраны и таблицы (02.11): Каталог (Viz-11), Остатки (Viz-12), Чеки (Viz-13), Покупатели на телефоне (Viz-14), Этикетки и поиск (Viz-15) */
.cat-tbl td.cat-nm{min-width:170px;line-height:1.3} .cat-tbl td.cat-sz{max-width:100px;font-size:13px} .cat-tbl td.cat-pr{line-height:1.3} .cat-tbl td .muted,.st-tbl td .muted{font-size:12px}
.st-tbl td.st-nm{min-width:210px;line-height:1.3}
#sv-res{container-type:inline-size}
.sv-tot.sv-tot5{grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,1.15fr)} .sv-tot5 .tile b{white-space:nowrap;font-size:18px}
@container (max-width:600px){.sv-tot.sv-tot5{grid-template-columns:repeat(3,minmax(0,1fr))} .sv-tot5 .tile:last-child{grid-column:span 2}}
@container (max-width:380px){.sv-tot.sv-tot5{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sv-tbl .sv-items{min-width:170px} .sv-tbl .sv-marks{display:block;margin-bottom:3px} .sv-tbl .sv-who{margin-top:3px;font-size:12px;color:var(--muted)}
@container (max-width:560px){.sv-tbl .sv-items{min-width:130px} .tbl.small.sv-tbl td,.tbl.small.sv-tbl th{padding-left:4px;padding-right:4px}}
.opts input.sv-end{opacity:.6}
.sl-cont{display:inline-flex;gap:6px;flex-wrap:nowrap} .sl-cont .btn{font-weight:500} .sl-cont .sl-wa{color:var(--ok);border-color:#1f6b45}
.cu-help-btn{display:none} .cu-tbl .cu-m{display:none}
@media (max-width:820px){.cu-help-btn{display:inline-block;margin-top:8px} .cu-help{display:none} .cu-help.on{display:block}}
@media (max-width:640px){.cu-tbl .cu-c{display:none} .cu-tbl .cu-m{display:block}}
.tiles.lb-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px} .lb-tiles .tile{padding:8px 9px} .lb-tiles .tile b{font-size:20px} .lb-tiles .tile span{display:block;font-size:11.5px;line-height:1.25}
/* Viz w16 — данные показа (02.11): «Правила магазина» на узком окне — подпись над полем (Viz-16, П-323 п. 12); «Принять» на пустой приёмке приглушена (Viz-17, п. 9) */
section.pane:has(> table.biz){container-type:inline-size}
.tbl.biz td:first-child{min-width:220px}
@container (max-width:640px){.tbl.biz tr:not(:has(th)){display:block;padding:6px 0} .tbl.biz tr:not(:has(th)) td{display:block;width:auto;min-width:0;border:0;padding:2px 10px} .tbl.biz td.nw{white-space:normal;padding-bottom:8px} .tbl.biz td.nw select{max-width:100%}}
.btn.idle{opacity:.55}
/* Viz w14 — панель владельца: короткий блок «Требует внимания» (строка на событие, sec.js rowHtml), карточка, открытая из блока, таблицы на всю ширину; П-318 — на телефоне блок над отборами */
.attn h4{margin-bottom:6px}
.attn-row{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-left-width:5px;border-radius:8px;padding:2px 5px 2px 0;margin:4px 0;background:var(--panel2);min-height:34px}
.attn-row.attn-bad{border-left-color:var(--bad);background:linear-gradient(90deg,var(--badbg),var(--panel2) 55%)} .attn-row.attn-warn{border-left-color:var(--warn)} .attn-row.attn-info{border-left-color:var(--info)}
.attn-rt{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;background:none;border:0;padding:4px 4px 4px 10px;text-align:left;cursor:pointer;color:var(--text);font:inherit}
.attn-rt b{color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.attn-rm{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 0;min-width:60px}
.attn-rt:hover b{text-decoration:underline}
.attn-row .ico{flex:none;width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:0}
.attn-row .ico:hover{color:#fff;border-color:var(--muted)} .attn-row .ico.go{color:var(--ok)} .attn-row .ico.go:hover{border-color:var(--ok)}
.attn .attn-more{margin-top:2px;font-size:13.5px}
.attn-it.attn-hl{box-shadow:0 0 0 2px var(--accent)}
.attn-n{color:var(--muted);font-size:12px;margin-top:3px}
.sec-c .sec-cl{display:flex;align-items:center;gap:10px;flex-wrap:wrap} .sec-c .sec-cl h4{margin:0} .sec-c .sec-cl .chips{margin:0}
@media (max-width:640px){.attn-rt{flex-direction:column;gap:0}.attn-rm{flex:none;max-width:100%;font-size:12px}.attn-rt b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
.own-tbl td{vertical-align:top} .own-tbl .labs span{font-size:10.5px;padding:0 4px}
.own-clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:8em}
.own-tbl td.own-w,.own-slow .own-tbl td:nth-child(2){width:100%} .own-tbl .own-who{min-width:9em;font-size:13.5px}
@media (max-width:820px){.page.own-page{display:flex;flex-direction:column;gap:12px}.page.own-page>*{flex-shrink:0}.page.own-page>.content{display:contents}.page.own-page .content>section.attn{order:-2;margin-bottom:0}.page.own-page .content>section.sec{order:-1}}
@media (max-width:1150px){.own-page .content .tbl{font-size:12.5px}.own-page .content .tbl th,.own-page .content .tbl td{padding-left:4px;padding-right:4px}.own-page .content .tbl th{white-space:normal;line-height:1.2}}
.own-page .content section.pane{overflow-x:auto}
.own-page .tbl div.small{font-size:12px;line-height:1.3}
/* Viz w15 — шапки чисел (02.11, решение штаба В): `.tbl th{text-align:left}` перебивал `.num` — шапка числового столбца стояла не над числами во всех таблицах */
.tbl th.num{text-align:right}
/* п112 w19 — блокировка кассы, экран PIN, меню имени, вид устройства при подключении (03.11): кнопка — жёлтая, всегда на виду в шапке кассы магазина */
.tb.lockb{background:#f2c94c;color:#1a1408;border-color:#f2c94c;font-weight:600;white-space:nowrap} .tb.lockb:hover{background:#ffd866}
.who{position:relative} .who .who-b{font-size:14px;color:var(--text);text-decoration:none;white-space:nowrap} .who .who-b i{font-style:normal;color:var(--muted);font-size:12.5px}
.whomenu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:250px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.whomenu .wm-row{display:flex;align-items:center;gap:4px} .whomenu .wm{flex:1;text-align:left;background:none;border:none;color:var(--text);padding:9px 10px;border-radius:7px;cursor:pointer;font-size:14px}
.whomenu .wm:hover{background:var(--panel)} .whomenu .wm.on{color:var(--accent)}
.gate.lockscr{max-width:420px} .gate.lockscr.locked h3{color:#f2c94c} .gate.lockscr #lock-pin{font-size:26px;letter-spacing:10px;text-align:center;width:100%;box-sizing:border-box}
.gate.lockscr .lock-pw{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.pair-kind{margin:10px 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px} .pair-kind label.row{display:flex;gap:8px;align-items:flex-start;margin:6px 0;cursor:pointer}
.pair-kind .pk-shop{display:block;margin:2px 0 6px 26px} .pair-kind .muted{font-size:12.5px}
@media (max-width:600px){.tb.lockb{font-size:12.5px;padding:6px 8px} .whomenu{left:auto;right:-60px;min-width:220px}}
.pair-kind input[type=radio]{width:auto;min-width:0;flex:none;margin:4px 0 0;padding:0;box-sizing:content-box} .pair-kind label.row>span{flex:1}
.gate .pair-kind.need{border-color:var(--bad);box-shadow:0 0 0 2px rgba(239,91,91,.35)} .gate .miss{margin:-4px 0 6px;color:var(--bad);font-size:13.5px;line-height:1.35} .gate .pair-kind .miss{margin:6px 0 2px} /* П-355: отказ — у пропущенного поля */
@media (max-width:600px){.whomenu{left:auto;right:0;min-width:0;width:min(280px,calc(100vw - 32px))} .tb.lockb{white-space:normal;text-align:left;max-width:calc(100vw - 32px)}}
/* w22 (глаза п112, 390): на панели владельца ≤ 820 px содержимое — display:contents (Viz w14), его разделы — элементы колонки .page;
   flex-shrink:0 стоял только у прямых детей — «Требует внимания» и «Безопасность» сжимались в полосу ≈ 25 px с обрезанным текстом */
@media (max-width:820px){.page.own-page>.content>*{flex-shrink:0}}
/* w27 (1.4б, п117): «Фильтры для рассылки» в «Покупателях» — раскрывающийся блок над списком (customers.js, mfHtml) */
.mf .mf-tog{font-weight:600} .mf .mf-tog.on{border-color:var(--accent)} .mf.mf-shut{padding:8px 14px}
.mf-f{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 12px;margin:8px 0 10px} .mf-f label>span{display:flex;align-items:center;gap:4px}
.mf-sum{margin:6px 0 8px;font-size:14px} .mf-sum .mf-n{font-size:18px;color:var(--accent)} .mf-btns{flex-wrap:wrap;gap:6px;margin-bottom:8px} .mf-tbl td{vertical-align:top}
@media (max-width:640px){.mf-f{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 8px} .mf-f label{font-size:12px} .mf-btns .btn{flex:1 1 auto}}
/* Viz-21 (04.11, макет Постановки/viz21_макет.html): «Настройки» — группы слева, разделы кирпичиками, вкладки группы сверху со свечением.
   Ничего не меняет ширину при выборе (Руслан 00:05): у всех групп прозрачная черта 3px, у кирпичика выбран — только заливка, у вкладки — text-shadow. */
.page.set-page{grid-template-columns:330px minmax(0,1fr)} /* группа — 300 px, как в макете: «Как считаем вещи» и «Печать и этикетки» в одну строку */
@media (max-width:1150px){.page.set-page{grid-template-columns:310px minmax(0,1fr)}}
.set-page .sgrps{display:flex;flex-direction:column;gap:0}
.sgrp{padding:10px 10px 10px 9px;border-radius:8px;margin:3px 0;font-weight:600;border-left:3px solid transparent;cursor:pointer;user-select:none}
.sgrp:hover{background:#1b222b} .sgrp.on,.sgrp.on:hover{background:#1f2630;border-left-color:var(--accent)}
.sgrp-h{display:flex;align-items:center;color:var(--text)} .sgrp-h .qb{width:18px;height:18px;font-size:11px}
.sbricks{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
:root{--brick:#ffc95e;--brick-t:var(--text)} /* кирпичик: рамка и текст — переменными (Руслан 04.11 00:15: текст — обычный цвет платформы, рамка — светло-жёлтая) */
.sbrick{background:transparent;color:var(--brick-t);border:1px solid var(--brick);border-radius:6px;padding:3px 8px;font-size:13.5px;font-weight:600;line-height:1.35;cursor:pointer;user-select:none}
.sbrick:hover{background:rgba(255,201,94,.10)} .sbrick.on,.sbrick.on:hover{background:var(--accent);border-color:var(--accent);color:#000}
.stabs{display:flex;gap:4px;margin:0 0 16px;box-shadow:inset 0 -1px 0 var(--line)}
.stab{position:relative;flex:none;white-space:nowrap;background:none;border:0;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;padding:9px 16px 14px;color:var(--muted);cursor:pointer;user-select:none}
.stab:hover{color:var(--text)} .stab.on{color:var(--text);text-shadow:0 0 .01px currentColor,.35px 0 0 currentColor;border-bottom-color:var(--accent)}
.stab.on::before{content:"";animation:sglow 6s ease-in-out infinite;will-change:opacity;position:absolute;left:0;right:0;bottom:0;height:34px;background:radial-gradient(ellipse 72% 76% at 50% 100%,rgba(242,184,75,.55),rgba(242,184,75,.22) 45%,rgba(242,184,75,.06) 80%,rgba(242,184,75,0) 100%);filter:blur(2.5px);pointer-events:none}
.stab.on::after{content:"";animation:sglow 6s ease-in-out infinite;will-change:opacity;position:absolute;left:0;right:0;bottom:-2px;height:2px;box-shadow:0 0 8px 1px rgba(242,184,75,.7);pointer-events:none}
@keyframes sglow{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.stab.on::before,.stab.on::after{animation:none}}
.spart{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}
@media (max-width:820px){.stabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.stabs::-webkit-scrollbar{display:none}.stab{padding:8px 12px 12px}}
/* w29 (п119) → w46 (п122) → w57 (п141): «Покупатели» — период общим ползунком (.per, ниже); выдача по дням */
.cu-tbl tr.cu-dsep td{background:var(--panel2);border-top:1px solid var(--line);padding:6px 10px;font-size:13.5px}
.cu-tbl tr.cu-dsep b{color:#fff;font-weight:600} .cu-dsum{float:right;font-size:12.5px}
@media (max-width:640px){.cu-dsum{float:none;display:block}}
/* w32 (п115): личный демо — окно «Добро пожаловать», мигание «Настройки» и демо-стола по очереди (одни keyframes, у -b задержка на полпериода;
   без таймеров — классы ставит demo.js при отрисовке), подсказка демо-стола, экран «Демо-доступ закрыт», вкладка «Демо-данные». */
@keyframes demoBlink{0%,100%{box-shadow:0 0 0 0 rgba(242,184,75,0)}6%,19%{box-shadow:0 0 0 2px var(--accent),0 0 14px 2px rgba(242,184,75,.55)}25%{box-shadow:0 0 0 0 rgba(242,184,75,0)}}
.demo-blink-a,.demo-blink-b{animation:demoBlink 2.4s ease-in-out infinite;border-radius:9px} .demo-blink-b{animation-delay:1.2s}
@media (prefers-reduced-motion:reduce){.demo-blink-a,.demo-blink-b{animation:none;box-shadow:0 0 0 1px var(--accent)}}
.demo-hi{max-width:620px} .demo-hi h3{margin-top:0} .demo-hi p{margin:0 0 10px;line-height:1.5} .demo-hi b{color:#fff}
.demotip{position:fixed;z-index:39;left:auto;right:16px;top:120px;max-width:min(360px,calc(100vw - 32px));background:var(--panel2);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;box-shadow:0 8px 28px rgba(0,0,0,.6);font-size:14px;line-height:1.45}
.demotip p{margin:0 0 8px} .demotip .mbtn{display:flex;justify-content:flex-end}
.demo-closed{max-width:560px} .demo-closed p{line-height:1.5}
.demo-kv{margin:10px 0 12px} .demo-sim{margin:8px 0 4px}
/* w35: «Требует внимания» на экране магазина (sec.js shopHtml) — действия словами в строке (.attn-ra); на телефоне — под заголовком, переносом */
.attn-ra{display:flex;flex-wrap:wrap;gap:4px;flex:0 1 auto;justify-content:flex-end}
.attn-ra .btn.sm{white-space:nowrap}
@media (max-width:640px){.attn-row:has(.attn-ra){flex-wrap:wrap}.attn-ra{flex-basis:100%;justify-content:flex-start;padding:0 0 4px 10px}}
.ord-call{align-items:center;gap:6px;margin:6px 0}
/* w45 П-388…П-398 (осмотр 8799, 04.11): касса и настройки — вид */
.btn.go:disabled{background:var(--panel2);border-color:var(--line);color:var(--muted);opacity:1} /* П-396: выключенная главная — серая, не «бледно-зелёная» */
.off-badge{text-decoration:none} /* П-388: «не работает» у сотрудника */
.shop-acts .btn{margin:2px 4px 2px 0;white-space:nowrap} /* П-388: «✎ Изменить» и «Закрыть магазин…» — переносом на узком экране */
details.more{margin:10px 0} details.more>summary{cursor:pointer;color:var(--muted);font-size:13px} details.more[open]>summary{margin-bottom:8px} /* П-389, П-366: служебное и редкое — под «Подробнее» */
.kadd-row{display:flex;align-items:center;gap:4px;margin:4px 0 10px} /* П-389: одна «Сделать кассой» над списком */
.tbl.kassy td.nw .btn+.btn{margin-left:4px}
.log-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0} .log-acts .btn{min-height:38px} /* П-390: кнопки журнала — один ряд, один размер */
.pay-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px} .pay-h h4{margin:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden} /* П-394: переключатель «одним способом / частями» */
.seg-b{background:none;border:none;color:var(--muted);padding:6px 12px;font-size:13.5px;cursor:pointer;white-space:nowrap} .seg-b+.seg-b{border-left:1px solid var(--line)}
.seg-b.on{background:var(--accent);color:#1a1408;cursor:default} button.seg-b:hover{color:var(--text);background:var(--panel2)}
.pane.cart-empty .empty{padding:12px 0} /* П-394: пустой чек — без большой пустоты над оплатой */
.inv-find{display:flex;flex-direction:column;gap:4px} .inv-find .search{margin:0} .inv-find select{width:100%} .inv-zero .vitem{opacity:.85} /* П-366 */
.empty .hint{margin-top:6px} /* П-366, П-395: подсказка в пустой правой части */
.mm-check{align-items:flex-start;gap:8px;cursor:pointer} .mm-check input,.rights input{accent-color:var(--accent)} .mm-check input{width:18px;height:18px;flex:none;margin:1px 0 0} /* П-395: флажок в цвете программы */
.kat-state,.bf-state{table-layout:fixed;width:100%;max-width:640px} .kat-state td:first-child,.bf-state td:first-child{color:var(--muted);width:42%} /* П-367: «включён» в обоих блоках «Модулей» — на одной линии */
.pl-steps span{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid transparent} .pl-steps .pl-on{background:var(--accent);color:#1a1408;border-color:var(--accent)} /* П-391: текущий шаг — заливкой */
.file-btn{position:relative;overflow:hidden;cursor:pointer} .file-hid{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%} .pl-file{align-items:center;gap:8px;flex-wrap:wrap} /* П-391: своя кнопка поверх «Выберите файл» */
.hnav .navb:hover:not(.on){background:none;color:var(--text);border-bottom-color:var(--line)} /* П-393: наведение — не как выбранная (фон только у выбранной) */
@media (hover:none){.hnav .navb:hover:not(.on){color:var(--muted);border-bottom-color:transparent}}
/* w46 П-363…П-397 (осмотр 8799, 04.11): кабинет — вид */
.own-buyx{max-width:100%} .own-buy th:first-child,.own-buy td:first-child{position:sticky;left:0;z-index:1;background:var(--panel);white-space:nowrap;box-shadow:6px 0 6px -6px rgba(0,0,0,.6)} /* П-363: поставщик — в одну строку и на месте при прокрутке вбок */
.own-buy tr.sumrow td:first-child{background:var(--panel)} .own-buy td.num,.own-buy th.num{white-space:nowrap}
.mcol.mcur i{background:repeating-linear-gradient(135deg,var(--accent) 0 4px,rgba(242,184,75,.35) 4px 8px)} .mcol.mcur span{color:var(--text)} /* П-377: текущий месяц ещё идёт */
.own-tbl td.own-adj{min-width:11em} .own-tbl .own-who b,.own-tbl .own-who .muted{white-space:nowrap} /* П-374: «Списана: …» целиком, имена в одну строку */
.wizbar.mini{padding:5px 18px;font-size:13px;flex-wrap:nowrap;white-space:nowrap} .wizbar.mini .wiz-why{display:none} /* П-371: вне «Настроек» — одна короткая строка */
@media (max-width:640px){.wizbar{flex-wrap:nowrap;white-space:nowrap;padding:5px 12px;font-size:13px}.wizbar .wiz-why{display:none}.wizbar .wiz-t{overflow:hidden;text-overflow:ellipsis;min-width:0}}
.sec .seg.sec-f{display:inline-flex;gap:0;margin:8px 0} /* П-373: «Новые / Просмотренные» — переключателем */
details.more.attn-n{margin:4px 0 0} details.more.attn-n>summary{font-size:12px} /* П-372: номера записей — под «Подробнее» */
.attn-rt{flex-wrap:wrap} .attn-rm{white-space:normal;flex:1 1 14em} .attn-row .ico.ico-w{width:auto;padding:0 9px;font-size:13px;white-space:nowrap} /* П-375: дата и касса — целиком, «✓ Понятно» словом */
.sv-tbl td.sv-pay{min-width:9.5em} .sv-tot .tile small.sv-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3} /* П-378 */
.opts .form.sv-f select,.opts .form.sv-f input{font-size:14px} /* П-379: «Все» — тем же шрифтом, что поля рядом */
.sl-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px} .sl-acts>.btn{min-height:38px;font-size:14px} /* П-380: кнопки карточки чека — один размер */
.cu-tot .tile b{white-space:nowrap} .cu-btns{display:flex;flex-wrap:wrap;gap:6px} .cu-btns .btn{white-space:nowrap;padding:7px 11px;font-size:13.5px} /* П-383 */
.cat-tbl td.cat-sz{max-width:none;min-width:7.5em;font-size:13px;word-spacing:2px} /* П-364: размеры — переносом только между размерами */
.cat-card-tbl th.cat-shop{font-size:12px;white-space:normal;max-width:7em;line-height:1.2} /* П-385 */
.own-buy th{white-space:nowrap} @media (max-width:640px){.months{gap:3px}.mcol span{font-size:9px;letter-spacing:-.2px}.mcol.mcur span{font-size:9px}} /* П-363 на телефоне: шапка в одну строку, график — в ширину экрана */
.mcur-t{font-style:normal} @media (max-width:640px){.mcur-t{display:none}}
.man-row{display:flex;align-items:center;gap:6px;margin-top:8px} .cmdrow .man-row{display:inline-flex;margin-top:0} .man-btn{white-space:nowrap} /* w63 П-408: «Ввести код вручную» на экранах сканирования */
/* w53 п126–п127: «Безопасность» и «Требует внимания» — один блок (sec.js SEC.html): шапка всегда, слово «Безопасность» — кнопка в раздел; новых нет — свёрнут до шапки */
.attn-box .attn-hd{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;min-height:30px}
.attn-box .sec-word{background:none;border:0;padding:2px 0;font:inherit;font-size:15px;font-weight:700;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.attn-box .sec-word:hover{text-decoration:underline;text-underline-offset:3px} .attn-box .sec-ar{color:var(--muted);font-size:12px}
.attn-box .attn-sep{color:var(--muted)} .attn-box .attn-cnt{font-weight:600;color:#fff} .attn-box .attn-calm-t{color:var(--ok)}
.attn-box .attn-asof{margin-left:auto;font-size:12.5px}
.attn-box.attn-hasbad{border-color:color-mix(in srgb,var(--bad) 50%,var(--line));box-shadow:inset 4px 0 0 var(--bad)}
.attn-box>section.attn{margin-top:6px} .attn-box>section.sec{margin-top:8px;border-top:1px solid var(--line);padding-top:4px}
.attn-row.attn-bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--line))} .attn-row.attn-bad .attn-rt b{color:#ffd5d5}
.attn-box.attn-calm{padding-top:8px;padding-bottom:8px}
@media (max-width:820px){.page.own-page .content>.attn-box{order:-2;margin-bottom:0}}
@media (max-width:640px){.attn-box .attn-asof{margin-left:0;flex-basis:100%}}
/* w52 П-368: экран подключения — переключатель способа на всю ширину, одна зелёная кнопка, ссылки внизу одним стилем */
.gate .pair-way-w{display:flex;align-items:center;margin:4px 0 12px} .gate .pair-way{display:flex;flex:1;min-width:0}
/* П-459: логин первым в DOM для автозаполнения; название компьютера первым на экране. */
.gate .pair-entry{display:flex;flex-direction:column} .gate .pair-entry > .pair-w[data-w="acc"]{order:1} .gate .pair-entry > .pair-nmw{order:2} /* П-464: название — не обязательно, под формой */
.gate .pair-way .seg-b{flex:1;text-align:center;padding:9px 10px;font-size:14px;white-space:normal;position:relative}
.gate .pair-way .seg-b input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.gate .pair-way .seg-b.on{font-weight:700} .gate .pair-way .seg-b:not(.on):hover{color:var(--text);background:var(--panel2)}
.gate .pair-way .seg-b:has(input:focus-visible){outline:2px solid var(--info);outline-offset:-2px}
.gate .pair-kassa{margin:0} .gate .kcode-life{margin:6px 0 0}
.gate .pair-links .link{font-size:13px;padding:0;color:var(--info);text-decoration:underline;text-underline-offset:3px}
/* w52 П-369: «Кабинет | Касса» в шапке владельца — крупно, выбранный заливкой; сразу после названия */
.hrow .logo:has(+ .sidesw-w){margin-right:0} .hrow .sidesw-w{margin-right:auto;display:inline-flex;align-items:center;gap:6px}
.sidesw{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sidesw .side-b{background:var(--panel2);border:none;color:var(--muted);padding:8px 18px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap}
.sidesw .side-b+.side-b{border-left:1px solid var(--line)} .sidesw .side-b.on{background:var(--accent);color:#1a1408;cursor:default} .sidesw .side-b:not(.on):hover{color:var(--text);background:#253042}
@media (max-width:600px){.sidesw .side-b{padding:7px 14px;font-size:14px}}
/* w54 п129 п133 п134: «Покупатели» — почта и день рождения, «Ещё отборы», рассылка (показ): канал-переключатель, счётчик, «автоматически» */
.cu-bdrow{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px} .cu-bdrow .cu-bdl{display:inline-flex;align-items:center;gap:4px;min-width:130px}
.cu-bdrow select{width:auto;min-width:76px} .cu-bdrow #cu-bdy{width:84px}
.cu-em b{overflow-wrap:anywhere} .cu-bdtag{background:#3a2c0d;color:var(--accent);border-color:#6b5320;white-space:nowrap} .cu-mail{white-space:nowrap}
.mf-moreb{margin:0 0 8px} .mf-moreb.on{border-color:var(--accent)} .mf-f.mf-more:not(.on){display:none} .mf-f.mf-more{padding:8px 10px;border:1px dashed var(--line);border-radius:10px}
.mf-send{margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#1c232c,#161b22)}
.mf-send .row{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px}
.mf-chrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px} .mf-chl{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
/* дискретный переключатель с ручкой: утопленная прорезь, ручка едет к выбранному с пружинкой */
.mf-ch{--i:1;position:relative;display:inline-grid;grid-template-columns:repeat(3,10.5em);padding:4px;border-radius:12px;background:#0b0e12;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.75),inset 0 -1px 0 rgba(255,255,255,.05),0 1px 0 rgba(255,255,255,.04);user-select:none}
.mf-chk{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3);border-radius:9px;transform:translateX(calc(var(--i) * 100%));
  transition:transform .38s cubic-bezier(.3,1.5,.55,1);background:linear-gradient(180deg,#f4f6f8 0%,#c9d0d8 48%,#aeb7c1 52%,#dde2e7 100%);
  box-shadow:0 2px 4px rgba(0,0,0,.6),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(0,0,0,.25)}
.mf-chk::after{content:'';position:absolute;left:50%;bottom:4px;width:18px;height:3px;margin-left:-9px;border-radius:2px;background:var(--accent);box-shadow:0 0 6px var(--accent)}
.mf-cho{position:relative;z-index:1;background:none;border:none;color:var(--muted);padding:9px 12px 12px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .25s}
.mf-cho.on{color:#141a21;text-shadow:0 1px 0 rgba(255,255,255,.6)} .mf-cho:not(.on):hover{color:var(--text)}
.mf-sendb{font-size:15px;padding:10px 18px}
.mf-auto{display:inline-flex;align-items:center;gap:8px;cursor:pointer} .mf-auto input{position:absolute;opacity:0;width:1px;height:1px}
.mf-sw{position:relative;flex:0 0 auto;width:44px;height:24px;border-radius:12px;background:#0b0e12;box-shadow:inset 0 2px 4px rgba(0,0,0,.7);transition:background .25s}
.mf-sw::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,#f4f6f8,#aeb7c1);
  box-shadow:0 1px 3px rgba(0,0,0,.6);transition:transform .3s cubic-bezier(.3,1.5,.55,1)}
.mf-auto input:checked+.mf-sw{background:var(--okbg);box-shadow:inset 0 2px 4px rgba(0,0,0,.7),0 0 0 1px var(--ok)} .mf-auto input:checked+.mf-sw::after{transform:translateX(20px)}
.mf-auto input:focus-visible+.mf-sw{outline:2px solid var(--accent);outline-offset:2px}
.mf-prog:empty{display:none} .mf-prog{margin-top:10px}
.mf-bar{height:10px;border-radius:6px;background:#0b0e12;box-shadow:inset 0 1px 3px rgba(0,0,0,.7);overflow:hidden}
.mf-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),#7fe0a8);border-radius:6px}
.mf-pn{margin-top:6px;font-size:15px} .mf-pn .mf-k{font-size:20px;color:var(--ok);font-variant-numeric:tabular-nums}
@media (max-width:640px){.mf-ch{grid-template-columns:repeat(3,minmax(0,1fr));width:100%} .mf-cho{padding:9px 4px 12px;font-size:13px;white-space:normal}
  .mf-sendb{flex:1 1 100%} .cu-bdrow .cu-bdl{min-width:0;flex:1 1 100%}}
@media (max-width:640px){.attn-box .attn-sep{display:none}.attn-row .attn-rm{flex:none}} /* w53 П-417: на телефоне подпись строки блока не растягивается на 14em в высоту (П-375 перебивал «flex:none» для узкого экрана); «·» не висит при переносе */
.gate .lbl-q{display:inline-flex;align-items:center} /* w52 П-368: «?» в одну строку с подписью поля кода */
/* w57 п119/п141: общий ползунок периода (period.js): прорезь с ручкой — вертикально (.per-v: столбик подписей слева) или в строку (.per-h: подписи под прорезью).
   Подписи — кнопки, подчёркиваются при наведении; свой период — «с … по …» (ручка гаснет). Ручка едет пружинкой (только в момент действия) */
.per{--row:30px;display:flex;gap:10px;margin:2px 0 8px;user-select:none}
.per-v{align-items:stretch} .per-v .per-sl{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.per-pl{height:var(--row);display:flex;align-items:center;background:none;border:none;padding:0 2px;cursor:pointer;color:var(--muted);font-size:14px;transition:color .15s;text-underline-offset:3px}
.per-v .per-pl{justify-content:flex-end;text-align:right}
.per-pl:hover,.per-pl:focus-visible{color:var(--text);text-decoration:underline} .per-pl.near{color:var(--text)}
.per-pl.on{color:var(--accent);text-shadow:0 0 8px rgba(242,184,75,.35)}
.per-rail{position:relative;border-radius:12px;cursor:grab;touch-action:none;outline:none;background:linear-gradient(180deg,#1a2028,#12161c);border:1px solid #262e38;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.55),0 1px 0 rgba(255,255,255,.04)}
.per-rail:focus-visible{border-color:var(--accent)} .per-rail.drag{cursor:grabbing}
.per-v .per-rail{flex:0 0 46px;height:calc(var(--n) * var(--row))}
.per-slot{position:absolute;border-radius:4px;background:linear-gradient(90deg,#05070a,#0b0e12 50%,#05070a);box-shadow:inset 0 2px 4px rgba(0,0,0,.9),inset 0 -1px 0 rgba(255,255,255,.05),0 1px 0 rgba(255,255,255,.06)}
.per-v .per-slot{left:50%;width:8px;transform:translateX(-50%);top:calc(var(--row) / 2 - 4px);bottom:calc(var(--row) / 2 - 4px)}
.per-tk{position:absolute;pointer-events:none}
.per-v .per-tk{left:5px;right:5px;height:2px;top:calc((var(--k) + .5) * 100% / var(--n) - 1px);background:linear-gradient(90deg,#4a5563 0 9px,transparent 9px calc(100% - 9px),#4a5563 calc(100% - 9px))}
.per-knob{position:absolute;width:36px;height:24px;border-radius:6px;pointer-events:none;will-change:top,left;
  background:linear-gradient(180deg,#e9edf2 0%,#b9c1cb 38%,#7c8693 52%,#a3acb7 78%,#cdd3da 100%);
  box-shadow:0 4px 7px rgba(0,0,0,.65),0 1px 2px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.85),inset 0 -2px 2px rgba(0,0,0,.25)}
.per-knob::before{content:"";position:absolute;left:6px;right:6px;top:3px;height:6px;border-radius:4px;background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,0))}
.per-knob::after{content:"";position:absolute;border-radius:2px;background:var(--accent);box-shadow:0 0 6px rgba(242,184,75,.7),inset 0 1px 1px rgba(0,0,0,.4)}
.per-v .per-knob{left:50%;margin-left:-18px;top:calc((var(--i) + .5) * 100% / var(--n) - 12px);transition:top .36s cubic-bezier(.3,1.55,.55,1)}
.per-v .per-knob::after{left:5px;right:5px;top:50%;height:3px;margin-top:-1px}
.per-v .per-rail.drag .per-knob{top:calc(var(--at) - 12px);transition:none}
.per-h{flex-direction:column;gap:2px;max-width:420px}
.per-h .per-rail{height:40px;width:100%}
.per-h .per-slot{top:50%;height:8px;transform:translateY(-50%);left:calc(50% / var(--n) - 4px);right:calc(50% / var(--n) - 4px)}
.per-h .per-tk{top:5px;bottom:5px;width:2px;left:calc((var(--k) + .5) * 100% / var(--n) - 1px);background:linear-gradient(180deg,#4a5563 0 8px,transparent 8px calc(100% - 8px),#4a5563 calc(100% - 8px))}
.per-h .per-knob{width:24px;height:30px;top:50%;margin-top:-15px;left:calc((var(--i) + .5) * 100% / var(--n) - 12px);transition:left .36s cubic-bezier(.3,1.55,.55,1)}
.per-h .per-knob::before{top:3px;bottom:3px;left:3px;right:auto;width:6px;height:auto;background:linear-gradient(90deg,rgba(255,255,255,.75),rgba(255,255,255,0))}
.per-h .per-knob::after{top:5px;bottom:5px;left:50%;width:3px;margin-left:-1px}
.per-h .per-rail.drag .per-knob{left:calc(var(--at) - 12px);transition:none}
.per-h .per-sl{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.per-h .per-pl{height:auto;min-height:30px;justify-content:center;text-align:center;font-size:13px;line-height:1.2;padding:2px 1px}
.per-rail.off .per-knob{filter:grayscale(1) brightness(.7)} .per-rail.off .per-knob::after{background:#5b6573;box-shadow:none}
@media (prefers-reduced-motion:reduce){.per-knob{transition:none!important}}
.per-cal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px;font-size:14px;color:var(--muted)}
.per-cal label{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0} .per-cal label span{flex:0 0 auto} .per-cal input{flex:0 0 auto;width:138px;min-width:0;color-scheme:dark}
.per-cal.on{color:var(--accent)} .per-cal.on input{border-color:var(--accent)} .per-step{display:flex;gap:6px}
.per-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-basis:100%}
.per-actions .pending{background:var(--accent);border-color:var(--accent);color:#17130b}
.per-chosen{flex-basis:100%;font-size:13px;color:var(--text);line-height:1.4}
.per-layout-left{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:start;gap:6px}
.per-layout-left .per-cal{display:grid;gap:4px;margin:0;font-size:12px;line-height:1.2}
.per-layout-left .per-cal label{flex-direction:column;align-items:flex-start;gap:1px}
.per-layout-left .per-cal input{width:128px;font-size:12px;padding:5px}
.per-layout-left .per-actions{gap:4px}
.per-layout-left .per-actions .btn{font-size:11px;line-height:1.2;padding:4px 6px}
.per-layout-left .per-chosen{font-size:11.5px;line-height:1.25}
.per-layout-left .per{min-width:0;margin:0;gap:3px}
.per-layout-left .per-pl{font-size:12px;line-height:1.15}
.per-layout-left .per-rail{flex-basis:34px;width:34px}
@media (max-width:820px){.per{--row:36px} .per-v{max-width:340px} .per-pl{font-size:15px} .per-v .per-rail{flex-basis:54px} .per-cal{max-width:420px}}
/* w57 п136: отбор магазина кабинета в шапке; п127–п128: оглавление панели; П-410: «Свернуть» у заголовка списка */
.cabshop select{max-width:220px}
.own-toc{display:flex;flex-direction:column;gap:2px} .own-toc button{background:none;border:none;color:var(--muted);text-align:left;padding:4px 2px;cursor:pointer;font-size:14px}
.own-toc button:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){.own-toc{flex-direction:row;flex-wrap:wrap;gap:4px 10px}}
/* А5: панель — «что случилось»; вверху строка «Сегодня: выручка · чеков → Аналитика», цифры — ссылками в «Аналитику», наличные / карта по магазинам в «Сменах и кассе» */
.own-today{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:8px 12px;margin-bottom:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:14px}
.own-today>span{display:inline-flex;align-items:center;gap:2px;color:var(--muted)} .own-today b{font-size:16px;font-variant-numeric:tabular-nums}
.own-links{display:flex;flex-direction:column;gap:6px;align-items:flex-start} .own-links .link{text-align:left;font-size:13.5px}
.own-cash-h{display:flex;align-items:center;gap:4px;margin:6px 0 4px;font-size:13px;font-weight:600} .own-cash{font-size:13px} .own-cash td{white-space:nowrap;padding:5px 6px} .own-cash th{white-space:normal;font-size:12px;padding:5px 6px;vertical-align:bottom}
.fold-top{display:flex;justify-content:flex-end;margin:0 0 6px}
section.pane[id^="own-"],div[id^="own-"]{scroll-margin-top:8px}
/* w59 п127: раздел кабинета «Счета» (supinv.js) — список счетов, найденные строки под счётом, карточка счёта */
.si-tbl .link,.si-lines .link{font-size:inherit;padding:0;text-align:left}
.si-tbl tr.si-hit td{border-top:none;padding-top:2px;font-size:12.5px} .si-tbl tr.si-hit .link{display:inline}
.si-lines tr.si-on td{background:rgba(242,184,75,.12)} .si-lines td .badge{margin-top:2px}
.si-tot{margin:0 0 8px}
@media (max-width:600px){.si-lines td:nth-child(2),.si-tbl tr.si-hit td:nth-child(2){min-width:170px} .si-lines th:first-child,.si-lines td:first-child{display:none}} /* w59: телефон — товар читаемо, таблица прокручивается в своём блоке */
/* w58 «Аналитика» (analytics.js, макет Б w56м): слева период и оглавление, справа разделы; графики — холст (chart.js) */
.an-page .an-side .an-toc{display:flex;flex-direction:column;gap:1px}
.an-toc a{display:block;padding:6px 10px;border-radius:7px;color:var(--text);text-decoration:none;font-size:14px;border-left:3px solid transparent;cursor:pointer}
.an-toc a:hover{background:#1b222b;text-decoration:underline;text-underline-offset:3px} .an-toc a.on{background:#1f2630;border-left-color:var(--accent);text-shadow:0 0 .01px currentColor,.35px 0 0 currentColor}
.an-toc a small{color:#8fb3e0;font-size:11px;margin-left:5px}
.an-pertxt{font-size:13px;color:var(--muted);margin-top:6px}
.an-sec,.an-subsec{scroll-margin-top:var(--sections-height,8px);overflow:visible}
.an-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin-bottom:6px}
.an-h h3{margin:0;font-size:16.5px;color:#fff;display:flex;align-items:center;gap:4px} .an-h .chips{margin:0} .an-h small{color:var(--muted);font-size:12.5px}
.an-tag{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#1a1408;background:#8fb3e0;border-radius:5px;padding:1px 6px}
.an-sec .list-title h3{flex-wrap:wrap;gap:6px}
.an-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.an-page .an-tile,.an-page .an-big .tile{cursor:default;border:0;box-shadow:none;color:var(--text);font:inherit;text-align:left;position:relative;background:transparent;padding:4px 0} .an-tile b{font-size:19px;white-space:nowrap}
.an-page .dl{display:block;font-style:normal;font-size:12.5px;margin-top:2px;color:var(--muted)} .an-page .dl.up{color:var(--ok)} .an-page .dl.dn{color:var(--bad)}
.an-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px} .an-big .tile b{font-size:20px}
.an-sub{margin-bottom:6px}
.an-list{display:flex;flex-direction:column}
.an-li{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(60px,22%) 104px 62px;gap:4px 10px;align-items:center;padding:6px 2px;border-bottom:1px solid #20272f;font-size:14px}
.an-li .n{color:var(--muted);font-size:12.5px;text-align:right} .an-li .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .an-li .nm small{display:block;color:var(--muted);font-size:12px}
.an-li .v{text-align:right;white-space:nowrap} .an-li .dl{text-align:right;margin:0}
.an-bar{display:block;height:7px;background:#11161c;border-radius:4px;overflow:hidden} .an-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.an-mgc{min-width:150px} .an-mgc{display:flex;align-items:center;gap:8px} .an-mgc .an-bar{flex:1} .an-mgc .num{min-width:42px} .an-dl{min-width:96px;font-size:13px}
.an-more{background:none;border:none;color:var(--info);cursor:pointer;padding:8px 2px 0;font-size:13.5px} .an-more:hover{text-decoration:underline}
.an-stack{display:flex;height:16px;border-radius:5px;overflow:hidden;margin:8px 0 6px} .an-stack i{display:block;height:100%}
.an-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted);margin-top:6px}
.an-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.an-leg i.ln{width:16px;height:0;border-top:2px dashed #e8edf3;border-radius:0;vertical-align:3px} .an-leg i.ln.dot{border-top:2px dotted #9aa6b5} .an-leg i.ln.mut{border-top-color:#8793a2}
.an-leg i.band{height:3px;background:rgba(242,184,75,.75);vertical-align:3px}
.an-heat{display:grid;gap:3px;font-size:11.5px;color:var(--muted)} .an-heat .c{height:26px;border-radius:4px;background:#11161c} .an-heat .c:hover{outline:1px solid #fff}
.an-heat .hl{text-align:center;align-self:end} .an-heat .dlb{align-self:center}
.an-hscale{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:8px} .an-hscale span{flex:0 0 120px;height:8px;border-radius:4px;background:linear-gradient(90deg,#11161c,rgba(242,184,75,.35),#f2b84b)}
.an-ins{margin:8px 0 0;padding-left:18px;font-size:13.5px} .an-ins li{margin:2px 0} .an-ins b{color:#fff;font-weight:600}
.ch{position:relative;width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none} .ch.zoom{cursor:crosshair} .ch.zoom.grab{cursor:grabbing}
.ch canvas{position:absolute;left:0;top:0;display:block}
.chx{position:absolute;width:1px;background:rgba(219,226,234,.35);pointer-events:none}
.cht{position:absolute;top:6px;z-index:2;background:rgba(10,13,17,.94);border:1px solid #3a4553;border-radius:9px;padding:7px 10px;font-size:12.5px;pointer-events:none;min-width:150px;box-shadow:0 6px 18px rgba(0,0,0,.5);white-space:nowrap}
.cht b{display:block;color:#fff;margin-bottom:3px;font-size:13px} .cht div{display:flex;justify-content:space-between;gap:14px} .cht div span{color:var(--muted)} .cht .tot{border-top:1px solid #2a323d;margin-top:3px;padding-top:3px;color:#fff}
.cht i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.chb{position:absolute;right:6px;top:4px;display:flex;gap:4px;z-index:1}
.chb button{background:rgba(28,35,44,.9);border:1px solid var(--line);border-radius:7px;width:28px;height:26px;cursor:pointer;color:var(--muted);padding:0;font-size:15px;line-height:1} .chb button:hover{color:#fff;border-color:#566273}
@media (max-width:1150px){.an-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.an-page .an-side{margin-bottom:12px} .an-toc{flex-direction:row!important;overflow-x:auto;gap:4px;padding-bottom:4px} .an-toc a{white-space:nowrap;border-left:none;border-bottom:3px solid transparent;flex:none} .an-toc a.on{border-bottom-color:var(--accent)}
  .an-tiles{gap:8px} .an-tile b{font-size:17px} .an-big{grid-template-columns:repeat(2,minmax(0,1fr))} .an-li{grid-template-columns:20px minmax(0,1fr) 92px 52px;font-size:13.5px} .an-li .an-bar{grid-column:2/-1;grid-row:2}
  .an-heat{gap:2px} .an-heat .c{height:22px} .an-heat{grid-template-columns:24px repeat(12,minmax(0,1fr))}}

/* А2: девять разделов; первый экран — решения, телефон — без горизонтальных таблиц. */
.an-page .an-side{width:260px;flex:0 0 260px}
.an-page .an-body{min-width:0}
.an-page .an-body>.an-sec{padding:8px 12px;margin-bottom:10px}
.an-page .an-toc a{padding:5px 4px;font-size:13px}
.an-page .an-toc-select,.an-shops-mobile,.an-sellers-mobile{display:none}
/* А5: раздел 3 — таблица продавцов на компьютере (прокрутка вбок, если узко), короткие строки на телефоне (П-452); «Закуплено против продано» — таблица и на телефоне */
.an-page .an-sellers-desktop{overflow-x:auto}.an-page .an-sellers{font-size:12px;width:100%}.an-page .an-sellers th{font-size:11px;padding:5px 4px}.an-page .an-sellers td{white-space:nowrap;padding:5px 4px}
.an-page .an-sellers td:first-child{white-space:normal;min-width:96px}.an-page .an-sellers td:first-child .an-link{overflow-wrap:normal;word-break:normal}
.an-page .an-buys{margin-top:6px}.an-page .an-buys tr.an-over td:first-child{color:var(--bad)}
.an-page .an-tiles{gap:12px;margin-bottom:4px;grid-template-columns:repeat(4,minmax(0,1fr))}
.an-page .an-value>span{display:flex;align-items:center;gap:2px;font-size:12px;color:var(--muted)}
.an-page .an-value>b{display:block;font-size:19px;line-height:1.25;font-variant-numeric:tabular-nums}
.an-page .an-value .dl{font-size:11px;line-height:1.25}
.an-page .an-secondary{margin-top:4px}
.an-page .an-secondary>b{font-size:15px}
.an-page .an-secondary .dl{display:block;color:var(--muted)}
.an-page .an-shops{font-size:12px;width:100%;table-layout:auto}
.an-page .an-shops th,.an-page .an-shops td{padding:3px 4px;white-space:nowrap}
.an-page .an-shops th{font-size:11px}
.an-page .an-shops th:first-child,.an-page .an-shops td:first-child{white-space:normal;max-width:112px}
.an-page .an-total{font-weight:700;color:#fff}
.an-page .an-selected{background:var(--panel2)}
.an-page .an-compare{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap;margin-top:4px}
.an-page .an-compare .chips{margin:0;flex-wrap:nowrap}
.an-page .an-compare .chip{font-size:11px;padding:2px 7px}
.an-page .an-check-detail{font-size:11px;color:var(--muted);margin-top:4px}
.an-page summary{cursor:pointer}
.an-page .an-check-detail summary{width:fit-content}
.an-page .an-good{color:var(--ok)} .an-page .an-bad{color:var(--bad)}
.an-page .an-task{display:grid;grid-template-columns:150px 110px minmax(0,1fr);gap:8px;align-items:center;padding:3px 0;font-size:12px}
.an-page .an-task>span:first-child{display:flex;align-items:center;gap:4px}
.an-page .an-task>b{font-size:12px;font-weight:600}
/* А4 «Что сделать завтра»: раскрытый список раздела 2, группы (поставщик, пара «из → в», магазин), лист печати заказа */
.an-page .an-task.on>span:first-child{color:var(--accent)}
.mbox:has(.an-item){width:min(760px,96vw)} .an-item .nw{white-space:nowrap} /* П-455: карточка товара шире на компьютере, дата закупки без переноса */
.an-page .an-todo-list{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}
.an-page .an-todo-grp{margin:8px 0 12px}.an-page .an-todo-grp h5{margin:0 0 4px;font-size:12.5px;font-weight:600;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.an-page .an-todo-ul{margin:4px 0;padding-left:18px}.an-page .an-todo-ul li{margin:3px 0;font-size:12.5px;overflow-wrap:anywhere}
.an-page .an-todo-grp .row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.an-page .an-draft{margin-top:6px;font-size:12px}
@media print{.psheet:has(.an-print){display:block}.an-print{color:#000;font:10.5pt sans-serif}.an-print h2{font-size:13pt;margin:0 0 6px}.an-print h3{font-size:11pt;margin:10px 0 4px}.an-print table{width:100%;border-collapse:collapse}.an-print th,.an-print td{border:1px solid #999;padding:2px 5px;text-align:left}}
.an-page .an-subsec{padding:10px 0;margin-top:8px;border-top:1px solid var(--line)}
.an-page .an-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
.an-page .an-li .nm{overflow:visible;white-space:normal}
.an-page .an-li .nm small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
.an-page .badge{border:0;background:transparent;border-radius:0;padding:0;white-space:normal}
.an-page .an-heat .c{display:flex;align-items:center;justify-content:center;font-size:9px}
.an-page .an-heat-hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(45px,1fr));gap:4px;font-size:11px;margin-top:8px}
.an-page .an-heat-hours>span{color:var(--muted)}
.an-page .an-stock-shops{margin-bottom:12px}
.an-page .tbl:not(.an-shops) th{white-space:normal;font-size:12px}
.an-page #an-days .an-mgc{min-width:100px;gap:4px}
.an-page #an-days .an-dl{min-width:80px;font-size:11px}
.an-page .list-controls{overflow:visible;flex-wrap:wrap}
.an-page .list-controls .chips{flex-wrap:wrap;white-space:normal}
.an-page .an-abc{max-height:none;overflow:visible}
.an-page .an-side .per-layout-left{gap:6px}
.an-page .an-side .per-v .per-pl{font-size:12px;white-space:nowrap}
.an-page .an-side .per-v .per-rail{flex-basis:34px;width:34px}
.an-page .an-side .per-v{gap:2px}
.an-page .an-heat-total{font-size:10px;align-self:center;text-align:right}
.an-period{min-width:0;max-width:100%}
.an-period-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:1px 0 5px}
.an-period-buttons button{flex:none;height:30px;white-space:nowrap;background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:6px 8px;cursor:pointer;font-size:12px}
.an-period-tail{display:inline-flex;align-items:center;gap:4px}
.an-period-buttons button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
@media(min-width:761px) and (max-width:1100px){.an-page .an-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .an-page{gap:8px}
  .an-page .an-side{width:auto;flex:auto;margin-bottom:8px}
  .an-page .an-side>.pane{padding:8px;margin:0;overflow:visible}
  .an-page .an-toc,.an-page .an-toc-title,.an-page .an-pertxt,.an-page .an-shops-desktop{display:none!important}
  .an-page .an-toc-select{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:4px}
  .an-page .an-toc-select select{min-width:0;flex:1;font-size:12px;padding:5px}
  .an-page .an-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
  .an-page .an-tile b{font-size:18px}
  .an-page .an-secondary>b{font-size:15px}
  .an-page .an-value .dl{font-size:10px}
  .an-page .an-value>span{font-size:12px}
  .an-page .an-h{gap:4px;margin-bottom:5px}
  .an-page .an-h h3{font-size:15px}
  .an-page .an-tag{font-size:10px;letter-spacing:0;text-transform:none}
  .an-page .an-shops-mobile,.an-page .an-sellers-mobile{display:block}
  .an-page .an-sellers-desktop{display:none!important}
  .an-page .an-shop{border-bottom:1px solid var(--line);font-size:12px}
  .an-page .an-shop summary{display:grid;grid-template-columns:minmax(0,1fr) auto 66px;gap:6px;align-items:center;padding:7px 0}
  .an-page .an-shop summary::before{content:none}
  .an-page .an-shop summary>b{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}
  .an-page .an-shop summary .dl{font-size:10px;text-align:right}
  .an-page .an-shop dl{margin:0 0 6px}
  .an-page .an-shop dl>div{display:flex;justify-content:space-between;gap:10px;margin:4px 0}
  .an-page .an-shop dt{color:var(--muted)} .an-page .an-shop dd{margin:0;white-space:nowrap}
  .an-page .an-network{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:7px 0}
  .an-page .an-task{grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;padding:6px 0}
  .an-page .an-task>span:nth-child(3){grid-column:1/-1;font-size:11px}
  .an-page .scrollx{overflow:visible}
  .an-page .an-body table.tbl:not(.an-shops){display:block;max-width:100%;width:100%;min-width:0}
  .an-page .an-body table.tbl:not(.an-shops)>tbody{display:block}
  .an-page .an-body table.tbl:not(.an-shops) tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .an-page .an-body table.tbl:not(.an-shops) tr:has(th){display:none}
  .an-page .an-body table.tbl:not(.an-shops) td{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-width:0;width:100%;max-width:100%;border:0;padding:3px 0;white-space:normal;text-align:right;font-size:12px;overflow-wrap:anywhere}
  .an-page .an-body table.tbl:not(.an-shops) td::before{content:attr(data-label);text-align:left;color:var(--muted);flex:0 0 40%;font-size:11px}
  .an-page .an-body table.tbl:not(.an-shops) td:first-child{display:block;text-align:left;font-weight:600;font-size:13px}
  .an-page .an-body table.tbl:not(.an-shops) td:first-child::before{display:none}
  .an-page .an-mgc .an-bar{display:none}
  .an-page .an-body .list-colscroll{display:none}
  .an-page .an-body .list-head .an-tag{white-space:normal}
  .an-page .an-li{grid-template-columns:18px minmax(0,1fr) auto;gap:4px 6px}
  .an-page .an-li .v{grid-column:3;grid-row:1;font-size:12px}
  .an-page .an-li>.dl{grid-column:3;grid-row:2;font-size:11px}
  .an-page .an-li .an-bar{grid-column:2;grid-row:2}
  .an-page .an-big{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .an-page .an-big .tile b{font-size:17px;white-space:normal;overflow-wrap:anywhere}
  .an-page .an-heat{grid-template-columns:26px repeat(7,minmax(0,1fr))!important}
  .an-page .an-heat .c{height:30px;font-size:9px}
  .an-page .an-heat .an-heat-total{font-size:10px;align-self:center;text-align:right}
}

/* А3 — переходы и окна «Аналитики»: только .an-* */
.an-link{appearance:none;background:transparent;color:var(--info);border:0;border-bottom:1px solid currentColor;border-radius:0;padding:1px 0;cursor:pointer;text-align:left;font:inherit;line-height:inherit;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.an-link:hover,.an-link:focus-visible{color:var(--accent);outline:1px solid var(--accent);outline-offset:2px}
.an-page .an-tiles .an-link b{color:var(--accent)}
.an-page .an-click-tile{cursor:pointer;outline:1px solid var(--line);outline-offset:3px;border-radius:4px}
.an-page .an-click-tile:hover,.an-page .an-click-tile:focus-visible{outline-color:var(--accent)}
.an-page .an-tiles .an-link{line-height:1.1}
.an-page .an-secondary .an-link b{font-size:13px}
.an-page .an-tiles .an-value[data-metric=ret]>.an-link:last-child{font-size:11px;margin:3px 0 0 4px}
.an-shares.an-stack{height:24px;overflow:visible}
.an-shares.an-stack>span{display:block;min-width:0;height:100%}
.an-share{background:transparent;border:0;color:inherit;font:inherit;padding:3px 5px;display:inline-block;cursor:default}
button.an-share{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.an-share:not(.an-piece)::before{content:'';display:inline-block;width:9px;height:9px;background:var(--an-color);margin-right:5px;border-radius:2px}
.an-share.an-piece{display:block;height:100%;width:100%;padding:0;background:var(--an-color);border-radius:2px}
button.an-piece{border:1px solid #ffffff40}
.an-highlight{outline:2px solid var(--accent);outline-offset:1px;filter:brightness(1.15)}
.an-item,.an-items,.an-returns{min-width:0;max-width:100%;overflow-wrap:anywhere}
.an-item h3{padding-right:20px}
.an-item h4{margin:18px 0 6px}
.an-item .tbl{width:100%;min-width:0;table-layout:fixed}
.an-item .tbl td,.an-item .tbl th{white-space:normal;overflow-wrap:anywhere;padding:5px;font-size:12px;text-align:left}
.an-item .an-months th:first-child{width:42%}
.an-item .an-months .an-bar{height:4px;margin-top:3px}
.an-items ul{list-style:none;padding:0;margin:0}
.an-items li{border-bottom:1px solid var(--line);padding:7px 0}
.an-items li small,.an-return>span,.an-return>small{display:block}
.an-return{padding:9px 0;border-bottom:1px solid var(--line)}
.an-items .list-head,.an-returns .list-head{max-width:100%;flex-wrap:wrap}
@media(max-width:760px){
  .an-link,button.an-share{min-height:32px;display:inline-flex;align-items:center}
  .an-share.an-piece{min-height:32px}
  .an-shares.an-stack{height:32px}
  .an-item .tbl th,.an-item .tbl td{padding:5px 3px;font-size:11px}
  .an-item .an-item-stock td:first-child{width:40%}
  .an-page .an-tile .an-link b{font-size:18px}
  .an-page .an-secondary .an-link b{font-size:15px}
}

/* w60к: счёт покупателю (invoice.js) — галочка в продаже, окно реквизитов, лист A4 (на экране тёмный, на печати — бумага), блок в карточке чека */
.inv-cart{margin-top:8px} .inv-need{gap:8px;align-items:center;font-weight:600} .inv-need input{width:18px;height:18px}
.inv-seg{margin:4px 0 8px;align-items:center;gap:6px} .inv-form .row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.inv-kn{display:block;font-size:12.5px;margin-top:3px;color:var(--muted)} .inv-kn.ok{color:var(--ok)} .inv-kn.bad{color:var(--bad)} .inv-kn.warn{color:var(--warn)}
.inv-chs{gap:12px;flex-wrap:wrap} .inv-ch{gap:6px;align-items:center}
.inv-prev{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:8px;margin:8px 0}
.inv-a4{position:relative;padding:18px 20px;font-size:13px;line-height:1.35;overflow:hidden;min-height:420px}
.inv-mark{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-28deg);font-size:46px;font-weight:800;white-space:nowrap;opacity:.16;color:var(--bad);pointer-events:none;letter-spacing:2px}
.inv-hd{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px} .inv-no{text-align:right}
.inv-buyer h5{margin:0 0 4px;font-size:12px;text-transform:uppercase;color:var(--muted)} .inv-buyer{margin-bottom:10px}
.inv-tbl{width:100%;border-collapse:collapse} .inv-tbl th,.inv-tbl td{border-bottom:1px solid var(--line);padding:4px 6px;text-align:left;vertical-align:top} .inv-tbl .num{text-align:right;white-space:nowrap}
.inv-tot{margin:10px 0 0 auto;max-width:340px} .inv-tot>div{display:flex;justify-content:space-between;gap:12px;padding:2px 0} .inv-sum{border-top:1px solid var(--line);font-size:15px;margin-top:4px;padding-top:4px}
.inv-ft{margin-top:14px;font-size:12px}
.inv-blk{margin-top:12px;border-top:1px solid var(--line);padding-top:8px} .inv-blk .inv-acts{flex-wrap:wrap;gap:6px;margin-top:6px} .inv-b{white-space:nowrap}
@media print{.psheet .inv-a4{color:#000;background:#fff;min-height:0;padding:0} .psheet .inv-mark{opacity:.12;color:#000;font-size:72px} .psheet .inv-tbl th,.psheet .inv-tbl td,.psheet .inv-hd,.psheet .inv-sum{border-color:#999} .psheet .muted{color:#555}}
@media (max-width:640px){.inv-form .row2{grid-template-columns:1fr} .inv-a4{padding:10px;font-size:12px} .inv-mark{font-size:28px} .inv-hd{flex-direction:column} .inv-no{text-align:left} .inv-tbl th:nth-child(5),.inv-tbl td:nth-child(5){display:none}}
/* w62 П-409: модель или размер сняты с сайта поставщика — серым, с пометкой (каталог, приёмка, заказ) */
.gone{opacity:.62} .gone b{font-weight:600}
.gone-tag{display:inline-block;margin:2px 0 0 6px;padding:0 6px;border:1px solid var(--line);border-radius:8px;font-size:11px;color:var(--muted);white-space:nowrap;vertical-align:middle}
.cat-nm .gone-tag{margin-left:0}
/* w60к2 (п129): реквизиты для счёта в карточке покупателя (наборы, «Исправить» / «Убрать») и выбор набора в окне счёта */
.cu-req{margin:10px 0 4px}
.cu-rqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:8px}
.cu-rq{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0;overflow-wrap:anywhere}
.cu-rq .cu-rq-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
.cu-rq .muted{font-size:12.5px;margin:3px 0 6px}
.cu-rq .row{gap:6px;flex-wrap:wrap}
.inv-sets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.inv-sets .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-sets .btn.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.inv-rem{display:flex;flex-direction:row;flex-wrap:wrap;margin:8px 0 2px;font-size:13px;gap:6px;align-items:center;color:var(--text)} .inv-rem input{width:auto;margin:0}
.inv-form input[readonly]{color:var(--muted);letter-spacing:1px}
@media (max-width:600px){.cu-rqs{grid-template-columns:minmax(0,1fr)}}

/* П-430 / п147: общая шапка только раскрытого списка; размеры закреплённой полосы — из period.js. */
.list-block,.own-page .content section.pane.list-block,.list-host{overflow:visible!important}
.list-block{min-width:0;scroll-margin-top:var(--sections-height,0px)}
.list-head{min-width:0;margin-bottom:8px;background:var(--panel)}
.list-head[data-open="1"]{position:sticky;top:calc(max(0px,calc(var(--sections-height,0px) - var(--list-scroll-top,0px))) - var(--list-scroll-pad,0px));z-index:5;border-bottom:1px solid var(--line);padding:6px 0}
.list-title{display:flex;align-items:center;gap:10px;min-width:0}
.list-title :is(h3,h4),.pane .list-title :is(h3,h4){margin:0;flex:1;min-width:0}
.list-fold{flex:none;white-space:nowrap}
.list-controls{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
.list-controls>*{flex:none} .list-controls .chips{display:flex;flex-wrap:nowrap;white-space:nowrap;margin:0}
.list-colscroll{overflow-x:auto;max-width:100%;scrollbar-width:none;margin-top:6px}
.list-colscroll::-webkit-scrollbar{display:none}
.list-columns{table-layout:fixed;margin:0;max-width:none}
.list-columns th{background:var(--panel);box-sizing:border-box}
.list-source-columns{visibility:collapse}
@media(max-width:820px){.list-title{gap:6px}.list-title :is(h3,h4){font-size:13px}.list-fold{font-size:12px}.list-controls{flex-wrap:nowrap}.list-controls .chip{font-size:12px;white-space:nowrap}}

/* c13: П-432…434, 437…439 — содержимое счёта и справка доступны на обеих ширинах. */
.inv-prev{container-type:inline-size}
.inv-a4{min-width:0;max-width:100%}
.inv-hd>div{min-width:0;overflow-wrap:anywhere}
.inv-lines{max-width:100%;overflow-x:auto}
.inv-tbl th.num{white-space:normal}
.inv-mark{width:80%;white-space:normal;text-align:center;font-size:clamp(18px,5cqi,32px);letter-spacing:0}
.inv-form{grid-template-columns:minmax(0,1fr)}
.inv-form .inv-label{display:flex;align-items:center;gap:4px}
.inv-rem{flex-wrap:nowrap;align-items:flex-start}
.inv-rem input{margin-top:3px}
.inv-label .qb{flex:none;margin:0}
.inv-edit{display:flex;align-items:center;gap:4px;margin-top:8px}
.inv-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.inv-buttons .btn{white-space:nowrap}
.shop-wait{white-space:normal!important;flex-wrap:nowrap}
.shop-wait>span{min-width:0;overflow-wrap:anywhere}
.shop-wait>.qb{flex:none}
@media(max-width:640px){.inv-form{grid-template-columns:minmax(0,1fr)}.shop-wait{white-space:normal}}
@media print{.inv-lines{overflow:visible}.psheet .inv-mark{width:auto;white-space:nowrap}}

/* Бренд кабинета и ненавязчивая подпись платформы. Конечные эффекты — только классом события. */
#app{grid-template-rows:auto minmax(0,1fr) auto}
#platform-credit{grid-column:1/-1;grid-row:3;background:var(--bg);padding:3px 8px 2px;text-align:center}
/* две строки по центру (п161): «платформа · продукт <сайт>», под ней мелко серым версия (П-470); на узком экране первая строка переносится, не шире экрана */
.platform-credit{color:#788493;font-size:11px;font-weight:400;line-height:1.35;letter-spacing:0;max-width:100%;overflow-wrap:anywhere}
.platform-credit small{font-size:inherit}.platform-credit a{color:inherit;text-decoration:underline dotted;text-underline-offset:2px}
.platform-credit .pc-ver{display:block;font-size:10px;line-height:1.2;color:#66717f}
.hrow .logo{display:flex;align-items:center;gap:9px;min-width:0}
.hrow .logo .brand-word{display:block;font:inherit;color:inherit;margin:0;letter-spacing:inherit}
.brand-logo{display:block;height:calc(19px * var(--logo-h,1));width:auto;max-width:38vw;object-fit:contain}
.platform-logo{display:block;height:19px;width:auto;object-fit:contain}
.gate .platform-logo{height:24px;max-width:100%;margin:auto}
.platform-mark{display:block;width:28px;height:28px;flex:none}
.logo-reload{border:0;border-radius:0;background:none;box-shadow:none;padding:0;cursor:pointer;color:inherit;text-align:inherit}
.logo-reload:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.hrow .logo .tenant-word{font:inherit;font-weight:600;color:inherit;margin:0;letter-spacing:normal}
.hrow .logo .platform-demo{background:#24303c;font-size:12px;font-weight:600;letter-spacing:normal}
.gate .brand-logo{margin:auto;max-width:100%;height:calc(24px * var(--logo-h,1))}
.brand-wheel{position:relative;display:block;flex:none;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;perspective:600px;touch-action:manipulation}
.hrow .logo .brand-wheel span{display:block;font-size:inherit;margin:0}
.brand-wheel.large{width:150px;height:150px;margin:12px auto 18px}
.brand-yaw,.brand-spin{display:block;width:100%;height:100%;border-radius:50%}
.brand-wheel:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.brand-lines{position:absolute;left:0;top:50%;width:46px;height:30px;transform:translate(-100%,-50%);opacity:0;pointer-events:none}
.brand-lines i{position:absolute;right:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent))}
.brand-lines i:nth-child(1){top:4px;width:34px}.brand-lines i:nth-child(2){top:14px;width:46px}.brand-lines i:nth-child(3){top:24px;width:28px}
@keyframes brand-lines{0%{opacity:0;transform:translate(-100%,-50%)}25%{opacity:1}100%{opacity:0;transform:translate(-160%,-50%)}}
@keyframes brand-glint{0%,100%{filter:drop-shadow(0 0 0 transparent)}40%{filter:drop-shadow(0 0 10px var(--accent))}}
@keyframes brand-skid{0%,100%{translate:0}20%{translate:-5px}40%{translate:4px}60%{translate:-3px}80%{translate:2px}}
@keyframes brand-in{0%{translate:-260px;opacity:0}15%{opacity:1}100%{translate:0}}
@keyframes brand-far{0%{translate:-55vw;opacity:0}8%{opacity:1}100%{translate:0}}
@keyframes brand-gas{0%{scale:1;opacity:1}100%{translate:0 -42vh;scale:.3;opacity:0}}
.brand-go{animation:brand-lines .7s ease-out}.brand-glint{animation:brand-glint .9s ease-out}.brand-skid{animation:brand-skid .45s ease-in-out}
.brand-in{animation:brand-in 1s cubic-bezier(.2,.8,.3,1)}.brand-far{animation:brand-far 1.8s cubic-bezier(.2,.75,.3,1)}.brand-gas{animation:brand-gas .7s cubic-bezier(.5,0,.7,.4)}
.brand-static .brand-wheel,.brand-static .brand-lines{animation:none!important}
.brand-print-logo{display:block;width:auto;height:auto;max-width:220px;max-height:60px;margin:0 auto 10px}
.brand-paper-head{text-align:center;font-weight:700;margin-bottom:10px}
@media(max-width:640px){.hrow .logo:has(.brand-wheel) .brand-word,.hrow .logo:has(.brand-wheel)>span:not(.brand-word){display:none}.brand-wheel{width:38px;height:38px}.brand-logo{max-width:65vw}.brand-wheel.large{width:128px;height:128px}}
@media(prefers-reduced-motion:reduce){.brand-wheel,.brand-lines{animation:none!important}}
@media print{#platform-credit{display:none!important}.brand-print-logo{max-width:60mm;max-height:18mm}.psheet .platform-credit{color:#555;margin-top:16px}.psheet:has(.inv-a4){display:block}}

@media(max-width:640px){.inv-tbl th:nth-child(5),.inv-tbl td:nth-child(5){display:table-cell}}

/* c21 П-461: короткие раскрывающиеся строки панели на телефоне. */
.own-mobile{display:none}
.si-months-scroll-hint{display:none}
#si-months{scroll-margin-top:var(--hdr-h,100px);min-width:0;max-width:100%}
@media(max-width:760px){
  .own-desktop{display:none}
  .own-mobile{display:block}
  .own-detail{border-bottom:1px solid var(--line);padding:8px 0;font-size:12px;min-width:0}
  .own-detail summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;cursor:pointer;list-style:none}
  .own-detail summary::-webkit-details-marker{display:none}
  .own-detail summary:before{content:'▸';color:var(--muted)}
  .own-detail[open] summary:before{content:'▾'}
  .own-detail summary>span{flex:1;min-width:0;overflow-wrap:anywhere}
  .own-detail summary>b{max-width:55%;text-align:right;overflow-wrap:anywhere}
  .own-detail dl{margin:8px 0 0 16px}
  .own-detail dl>div,.own-cash-total{display:flex;justify-content:space-between;gap:10px;margin:6px 0}
  .own-detail dt{color:var(--muted)}
  .own-detail dd{margin:0;max-width:65%;text-align:right;overflow-wrap:anywhere}
  .own-cash-total{font-size:12px}
  .si-months-scroll-hint{display:block;margin:8px 0 4px}
  #si-months .months{gap:2px}
  #si-months .mcol{min-width:0}
  #si-months .mcol span{font-size:8px;letter-spacing:-.3px}
  #si-months .mcur-t{display:block}
}

@media(max-width:760px){
  .own-page .own-tbl,.own-page .own-tbl tbody,.own-page .own-tbl tr,.own-page .own-tbl td{display:block;width:100%;min-width:0;max-width:100%}
  .own-page .own-tbl tr{padding:7px 0;border-bottom:1px solid var(--line)}
  .own-page .own-tbl td{border:0;padding:3px 0;overflow-wrap:anywhere;white-space:normal}
  .own-page .own-tbl .own-who b,.own-page .own-tbl .own-who .muted{white-space:normal}
}

/* В1 (п168, п169): первый экран «Вход», «Я сотрудник», «Где вы сейчас?» (app.js pairForm) — как прототип варианта В */
.gate .hr{border-top:1px solid var(--line);margin:18px 0 12px}
.gate .in-alt{text-align:center} .gate .in-alt p{color:var(--muted);font-size:14px;margin:0 0 8px}
.gate .btn.in-staffb{background:#f2c94c;border-color:#f2c94c;color:#1a1408;font-weight:700;padding:8px 26px} .gate .btn.in-staffb:hover{background:#ffd866}
.gate .in-cards{display:grid;gap:12px;margin:6px 0 12px}
.gate .in-card{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:block;width:100%;text-align:left;color:var(--text);font:inherit}
.gate .in-card b{display:block;font-size:17px;color:#fff} .gate .in-card .hint{display:block;margin:4px 0 10px}
.gate button.in-card{cursor:pointer;padding:18px 20px} .gate button.in-card:hover{border-color:var(--accent)} .gate button.in-card .hint{margin:6px 0 0}
.gate .in-card .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .gate .in-card select{flex:1;min-width:150px}
.gate .hint.small{font-size:12.5px;font-style:italic}
.gate .lock-shop{margin:-4px 0 10px;color:var(--text)}

/* c27: счёт рядом с оплатами; скрытый демо-стол — справа в меню. */
.inv-pay{display:inline-flex;align-items:center;gap:4px;margin-top:8px}.inv-pay .on{box-shadow:inset 0 0 0 2px var(--ok)}
.hnav .demo-menu{margin-left:auto;flex:none;white-space:nowrap;position:sticky;right:0;z-index:2;background:var(--panel)}
.attn-row:has([data-q="attn:invOff"]) .attn-rt b{white-space:normal;display:block;overflow:visible}
@media(max-width:640px){
  .platform-header .hrow .logo>span{display:none}
  .platform-header .hrow:has(.langsw):not(:has(select)){flex-wrap:nowrap;gap:8px}
  .platform-header .hrow>*{order:4}
  .platform-header .hrow .logo{margin-right:auto;flex:1;order:1}
  .platform-header .hrow:has(select):after{content:'';flex-basis:100%;height:0;order:3}
  .platform-header .platform-logo{height:19px;max-width:56vw}
  .platform-header #netchip{order:2;flex:none;width:24px;height:24px;padding:2px 0;text-align:center;font-size:0}
  .platform-header #netchip:before{content:'○';font-size:14px}
  .platform-header #netchip.on:before{content:'●'}
  .platform-header .langsw{order:3;flex:none;white-space:nowrap}
  .hnav .demo-menu span{display:none}
}
