/* Шрифты лежат локально, чтобы приложение не зависело от внешних сервисов */
@font-face{font-family:"Onest";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/onest-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/onest-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/onest-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/onest-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/onest-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/onest-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/onest-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/onest-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/unbounded-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Unbounded";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/unbounded-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-mono-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-mono-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Layout: brand-yellow band with the box logo (as on the «Дело в коробке» site), pill module bar pinned under it, one working column of white rounded cards on cream; cell addresses are rack labels, ink on brand yellow */
:root{
  --bg:#FFFBEB; --surface:#FFFFFF; --field:#FFFBEB; --tint:#EEF0F3; --line:#E3E6EB;
  --ink:#16181D; --ink-2:#2B2F37; --muted:#5F6672;
  --brand:#FFC800; --brand-2:#FFD84D; --brand-soft:#FFF4C7; --brand-ink:#6B4F00;
  --band:#FFD43B; --band-ink:#16181D; --band-muted:#4A4535; --on-brand:#16181D;
  --ok:#1F7A45; --ok-bg:#E3F3E9; --warn:#A35A00; --warn-bg:#FDF0DC; --bad:#B3261E; --bad-bg:#FBE5E3; --on-bad:#FFFFFF;
  --shadow:0 1px 2px rgba(22,24,29,.04),0 8px 24px rgba(22,24,29,.06);
  --shadow-brand:0 6px 16px rgba(255,200,0,.35);
  --font-display:"Unbounded","Onest","Arial Black",sans-serif;
  --font-body:"Onest","Segoe UI",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --r:20px; --r-sm:14px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#17191F; --surface:#20232B; --field:#272A33; --tint:#2C3039; --line:#353943;
  --ink:#F4F2EA; --ink-2:#DADCE1; --muted:#A3A8B3;
  --brand-soft:#3A3216; --brand-ink:#FFC800;
  --ok:#6FD39A; --ok-bg:#16301F; --warn:#F0B05A; --warn-bg:#33270F; --bad:#F08A80; --bad-bg:#3A1A18; --on-bad:#1A0B0A;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-brand:0 6px 16px rgba(255,200,0,.18); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#17191F; --surface:#20232B; --field:#272A33; --tint:#2C3039; --line:#353943;
  --ink:#F4F2EA; --ink-2:#DADCE1; --muted:#A3A8B3;
  --brand-soft:#3A3216; --brand-ink:#FFC800;
  --ok:#6FD39A; --ok-bg:#16301F; --warn:#F0B05A; --warn-bg:#33270F; --bad:#F08A80; --bad-bg:#3A1A18; --on-bad:#1A0B0A;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-brand:0 6px 16px rgba(255,200,0,.18); color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.gutter{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:992px;margin:0 auto;padding-block:0 64px}

/* brand band */
.band{background:var(--band);color:var(--band-ink)}
.band__in{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:14px}
.logo{display:flex;align-items:center;gap:10px;margin:0;font:inherit}
.logo svg{width:36px;height:36px;flex:none}
.logo b{display:block;font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:.02em;line-height:1.2}
.logo small{display:block;font-size:12px;font-weight:500;color:var(--band-muted);letter-spacing:.02em}
.status{display:inline-flex;align-items:center;gap:8px;background:var(--band-ink);color:var(--brand);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}
.status b{color:#FFFFFF;font-weight:700}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:#3DD68C;flex:none}
.status.off::before{background:#FF6B57}

h2{font-size:1.08rem;margin:0;font-weight:700;letter-spacing:-.01em;text-wrap:balance}
.tabs{display:flex;gap:4px;padding-block:10px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5;margin-bottom:6px;overflow-x:auto;scrollbar-width:none;background:var(--bg);box-shadow:0 1px 0 var(--line)}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:1 0 auto;border:0;background:transparent;color:var(--ink-2);font:600 .9rem var(--font-body);padding:9px 15px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .2s}
.tabs button:hover{background:var(--tint)}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg)}
section.view{display:flex;flex-direction:column;gap:14px;padding-top:10px}
.panel{background:var(--surface);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0;box-shadow:var(--shadow)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.between{justify-content:space-between}
.grow{flex:1 1 160px;min-width:0}
label.f{display:flex;flex-direction:column;gap:6px;font-size:.82rem;color:var(--ink-2);font-weight:600;flex:1 1 130px;min-width:0}
label.f.narrow{flex:0 1 100px}
input,select{font:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;width:100%;min-width:0;min-height:44px;transition:border-color .2s}
input:focus,select:focus{border-color:var(--ink);outline:none}
input:focus-visible,select:focus-visible,button:focus-visible,.stop:focus-visible,summary:focus-visible,label.btn:focus-within{outline:3px solid var(--brand);outline-offset:3px}
.scan{display:flex;gap:8px}
.scan input{font-family:var(--font-mono);font-size:1.08rem;min-height:54px;padding:12px 16px;border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface)}
.scan input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.scan input::placeholder{font-family:var(--font-body);font-size:.95rem}
.scan .btn{min-height:54px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;font:600 .95rem var(--font-body);border-radius:999px;padding:0 20px;border:0;background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);cursor:pointer;white-space:nowrap;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s}
.btn:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.primary{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-brand)}
.btn.primary:hover{background:var(--brand-2);transform:translateY(-1px)}
.btn.danger{background:var(--bad);color:var(--on-bad);box-shadow:none}
.btn.ghost{background:transparent}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn.sm{min-height:36px;padding:0 14px;font-size:.84rem}
.hint{font-size:.86rem;color:var(--muted);margin:0}
.drop{border:2px dashed var(--line);border-radius:var(--r-sm);padding:22px;text-align:center;cursor:pointer;background:var(--field);transition:border-color .2s,background .2s}
.drop:hover,.drop.over{border-color:var(--brand);background:var(--brand-soft)}
.drop strong{display:block;margin-bottom:2px}
.file{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:var(--r-sm);background:var(--field);border:1.5px solid var(--line)}
.file-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.file-h span{font-size:.8rem;color:var(--muted)}
.addr{font-family:var(--font-mono);font-weight:700;background:var(--brand);color:var(--on-brand);padding:3px 9px;border-radius:6px;letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap;display:inline-block;box-shadow:inset 0 -3px 0 rgba(0,0,0,.16)}
.addr.big{font-size:1.15rem;padding:7px 12px;border-radius:8px}
.addr.buf{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--muted);border:0}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.chip{font-size:.76rem;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--tint);color:var(--ink-2);white-space:nowrap;display:inline-block}
.chip.ok{background:var(--ok-bg);color:var(--ok)}
.chip.warn{background:var(--warn-bg);color:var(--warn)}
.chip.bad{background:var(--bad-bg);color:var(--bad)}
.chip.info{background:var(--brand-soft);color:var(--brand-ink)}
.progress{height:10px;background:var(--tint);border-radius:99px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--brand);width:0;transition:width .3s var(--ease)}
.stops{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}
.stop{display:grid;grid-template-columns:32px auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:background .2s}
.stop .n{font-family:var(--font-mono);color:var(--muted);font-size:.85rem;text-align:right}
.stop .what{min-width:0}
.stop .what b{display:block;overflow-wrap:anywhere}
.stop .what span{display:block;font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.stop .take{text-align:right}
.stop .take b{font-family:var(--font-display);font-weight:600;font-size:1.3rem;display:block;line-height:1;font-variant-numeric:tabular-nums}
.stop .take span{font-size:.72rem;color:var(--muted)}
.stop.part{box-shadow:inset 0 0 0 2px var(--warn)}
.stop.done{background:var(--ok-bg);box-shadow:none}
.stop.done .what b{text-decoration:line-through;text-decoration-thickness:2px}
.stop.done .n::before{content:"✓ ";color:var(--ok)}
.stop.flash{outline:3px solid var(--brand);outline-offset:2px}
.table-wrap{overflow-x:auto;border-radius:var(--r-sm);border:1.5px solid var(--line)}
table{border-collapse:collapse;width:100%;min-width:560px;background:var(--surface)}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;background:var(--tint)}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;white-space:nowrap}
td.wrap-any{overflow-wrap:anywhere}
tr.hl td{background:var(--brand-soft)}
.stepper{display:inline-flex;align-items:center;gap:4px}
.stepper button{width:34px;height:34px;border-radius:50%;border:0;background:var(--tint);color:var(--ink);font:600 1.05rem var(--font-body);cursor:pointer}
.stepper button:hover{background:var(--brand);color:var(--on-brand)}
.stepper span{min-width:34px;text-align:center;font-family:var(--font-mono);font-weight:700}
.qty-in{width:88px;text-align:right;font-family:var(--font-mono);min-height:38px;padding:6px 10px}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);margin-bottom:4px;font-size:1.02rem}
.empty::before{content:"";display:block;width:44px;height:44px;margin:0 auto 12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M20 3 36 11v18L20 37 4 29V11z' fill='%23FFC800' stroke='%2316181D' stroke-width='2'/%3E%3Cpath d='M4 11l16 8 16-8M20 19v18' fill='none' stroke='%2316181D' stroke-width='2'/%3E%3Cpath d='M12 7l16 8v6' fill='none' stroke='%2316181D' stroke-width='3'/%3E%3C/svg%3E") center/contain no-repeat}
.notice{padding:12px 14px;border-radius:12px;font-size:.9rem}
.notice.warn{background:var(--warn-bg);color:var(--warn)}
.notice.ok{background:var(--ok-bg);color:var(--ok)}
.notice.bad{background:var(--bad-bg);color:var(--bad)}
.short{display:flex;flex-direction:column;gap:6px}
.short div{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;padding-block:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.short div:last-child{border-bottom:0}
.sticky-foot{position:sticky;bottom:0;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 72%,transparent);padding-top:16px;display:flex;gap:8px;flex-wrap:wrap}
.sticky-foot .btn{flex:1 1 200px;min-height:52px}
.switch{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;font-weight:500}
.switch input{width:20px;height:20px;min-height:0;accent-color:var(--ink)}
.seg{display:inline-flex;background:var(--tint);border-radius:999px;padding:3px}
.seg button{border:0;background:transparent;color:var(--ink-2);font:600 .84rem var(--font-body);padding:7px 14px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.kv div{background:var(--surface);border-radius:var(--r-sm);padding:14px 16px;box-shadow:var(--shadow)}
.kv span{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.kv b{font-family:var(--font-display);font-weight:600;font-size:1.35rem;font-variant-numeric:tabular-nums}
.kv div:last-child b{color:var(--brand-ink)}
.target{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.92rem}
#toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:999px;font-size:.92rem;font-weight:500;z-index:20;max-width:calc(100% - 32px);box-shadow:0 12px 32px rgba(22,24,29,.25)}
#toast.bad{background:var(--bad);color:var(--on-bad)}
.demo-bar{background:var(--brand-soft);color:var(--brand-ink);padding:8px 8px 8px 16px;border-radius:var(--r-sm);font-size:.88rem;font-weight:500;display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
details summary{cursor:pointer;font-weight:600}
@media (max-width:520px){
  .stop{grid-template-columns:auto 1fr auto;padding:12px}
  .stop .n{display:none}
  .addr.big{font-size:1rem}
  .panel{padding:16px}
  .logo b{font-size:13px}
  .logo svg{width:30px;height:30px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- отдельное приложение: вход, сотрудники, камера ---------- */
[hidden]{display:none!important}
:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html,body{margin:0}
img{max-width:100%}
body:not([data-role="admin"]) .admin-only{display:none!important}
.band__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.who{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.55);color:var(--band-ink);border-radius:999px;padding:4px 4px 4px 12px;font-size:13px;font-weight:600}
.who button{border:0;background:var(--band-ink);color:#FFFFFF;border-radius:999px;padding:5px 12px;font:600 12px var(--font-body);cursor:pointer}
.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.login .band__in{justify-content:flex-start}
.login__body{flex:1;display:flex;align-items:flex-start;justify-content:center;padding-block:40px}
.login__card{width:100%;max-width:400px;background:var(--surface);border-radius:var(--r);padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}
.login__card h2{font-family:var(--font-display);font-weight:600;font-size:1.2rem;letter-spacing:0}
.login__card .btn{width:100%;min-height:52px}
.err{color:var(--bad);font-size:.9rem;margin:0;min-height:1.2em}
.btn.cam{flex:none;width:54px;min-height:54px;padding:0;border-radius:var(--r-sm)}
.btn.cam svg{width:24px;height:24px}
.cam-ov{position:fixed;inset:0;z-index:30;background:#0B0C0F;display:flex;flex-direction:column;color:#FFFFFF}
.cam-ov video{flex:1;min-height:0;width:100%;object-fit:cover;background:#000}
.cam-top,.cam-bot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.cam-top{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:12px}
.cam-bot{padding-top:12px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.cam-top b{font-size:1rem}
.cam-last{font-family:var(--font-mono);font-size:1.05rem;color:#FFC800;overflow-wrap:anywhere}
.cam-frame{position:absolute;left:12%;right:12%;top:38%;height:22%;border:3px solid #FFC800;border-radius:16px;box-shadow:0 0 0 100vmax rgba(0,0,0,.35);pointer-events:none}
.cam-wrap{position:relative;flex:1;min-height:0;display:flex}
.cam-ov .switch{color:#FFFFFF}
.cam-ov .btn{background:#FFFFFF;color:#16181D;box-shadow:none}
.offline{background:var(--bad-bg);color:var(--bad);border-radius:var(--r-sm);padding:8px 14px;font-size:.88rem;font-weight:500;margin-top:12px}
.rc-hist{display:flex;flex-direction:column;gap:6px}
.rc-hist div{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding-block:8px;border-bottom:1px solid var(--line);font-size:.9rem}
.rc-hist div:last-child{border-bottom:0}
.client-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;padding-top:18px}
.client-head h2{font-family:var(--font-display);font-weight:600;font-size:1.25rem;letter-spacing:0}
.preview-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:12px;padding:8px 8px 8px 16px;border-radius:var(--r-sm);background:var(--ink);color:var(--bg);font-size:.9rem;font-weight:500}
.qty-zero{color:var(--muted)}
/* поля в вертикальных формах не растягиваются по высоте */
.login__card>label.f,.panel>label.f{flex:none}
@media (max-width:520px){
  #ptTabs{flex-wrap:wrap}
  .pt-table{min-width:0}
  .pt-table th{white-space:normal}
  .pt-table th,.pt-table td{padding:9px 8px}
}
