:root{--bg:#f5f6f8;--panel:#fff;--panel-2:#f0f2f5;--line:#e2e5ea;--text:#16191f;--muted:#5f6672;--accent:#2563eb;--accent-ink:#fff;--row-hover:#f6f8fb;--flash:#2563eb29;--out-bg:#fde7e7;--out-ink:#a51d1d;--crit-bg:#feeedd;--crit-ink:#9a4a06;--low-bg:#fdf6d3;--low-ink:#7a5d00;--ok-bg:#e2f5e8;--ok-ink:#1d6b3a;--info-bg:#e6eefe;--info-ink:#1e4fc2;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1115;--panel:#171a21;--panel-2:#1e222b;--line:#2a2f3a;--text:#e7e9ee;--muted:#9aa2b1;--accent:#5b8def;--accent-ink:#0b0d11;--row-hover:#1c2029;--flash:#5b8def38;--out-bg:#3a1618;--out-ink:#ff9b9b;--crit-bg:#3a2412;--crit-ink:#ffb879;--low-bg:#332b0d;--low-ink:#f1d36b;--ok-bg:#12301e;--ok-ink:#7fd6a0;--info-bg:#17264a;--info-ink:#9dbaff;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1115;--panel:#171a21;--panel-2:#1e222b;--line:#2a2f3a;--text:#e7e9ee;--muted:#9aa2b1;--accent:#5b8def;--accent-ink:#0b0d11;--row-hover:#1c2029;--flash:#5b8def38;--out-bg:#3a1618;--out-ink:#ff9b9b;--crit-bg:#3a2412;--crit-ink:#ffb879;--low-bg:#332b0d;--low-ink:#f1d36b;--ok-bg:#12301e;--ok-ink:#7fd6a0;--info-bg:#17264a;--info-ink:#9dbaff;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button,input{font:inherit;color:inherit}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.muted{color:var(--muted)}.small{font-size:12.5px}.boot{text-align:center;color:var(--muted);padding:40px}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 12px;display:inline-flex}.btn:hover{background:var(--panel-2)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--panel-2)}.btn.icon{justify-content:center;width:34px;padding:0}.btn.danger{background:var(--out-ink);border-color:var(--out-ink);color:#fff}.btn.danger-text{color:var(--out-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:14px;gap:14px;padding:28px;display:grid}.login-card label{color:var(--muted);gap:6px;font-size:13px;display:grid}.login-card input,.uform input,input.mini{border:1px solid var(--line);background:var(--bg);height:38px;color:var(--text);border-radius:8px;width:100%;padding:0 12px}.login-card .btn{justify-content:center;height:40px;margin-top:4px}.form-err{color:var(--out-ink);font-size:13px}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand h1{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:650}.brand p{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 0;font-size:12.5px;display:flex}.app{gap:14px;max-width:1600px;margin:0 auto;padding:16px;display:grid}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.top-actions{align-items:center;gap:4px;display:flex}.who{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;max-width:260px;margin-right:6px;font-size:13px;display:inline-flex;overflow:hidden}.who em{background:var(--info-bg);color:var(--info-ink);border-radius:999px;padding:2px 7px;font-size:11px;font-style:normal}.sep{opacity:.6}.live{align-items:center;gap:6px;display:inline-flex}.live i{background:var(--muted);border-radius:50%;width:8px;height:8px;display:inline-block}.live.open i{background:#22a35a;animation:2s infinite ping;box-shadow:0 0 #22a35a80}.live.reconnecting i,.live.connecting i{background:#d99a06}.live.closed i{background:#d33}@keyframes ping{0%{box-shadow:0 0 #22a35a73}70%{box-shadow:0 0 0 7px #22a35a00}to{box-shadow:0 0 #22a35a00}}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.kpi{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;box-shadow:var(--shadow);border-left:4px solid var(--line);border-radius:12px;gap:4px;padding:12px 14px;display:grid}.kpi:hover{background:var(--panel-2)}.kpi.on{outline:2px solid var(--accent);outline-offset:-1px}.kpi-label{color:var(--muted);font-size:12.5px}.kpi-val{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:24px;font-weight:650}.kpi.all{border-left-color:var(--accent)}.kpi.out{border-left-color:var(--out-ink)}.kpi.crit{border-left-color:var(--crit-ink)}.kpi.low{border-left-color:var(--low-ink)}.kpi.ok{border-left-color:var(--ok-ink)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.search{border:1px solid var(--line);background:var(--panel);width:100%;max-width:360px;height:38px;color:var(--muted);border-radius:9px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{width:100%;color:var(--text);background:0 0;border:0;outline:0}.busy-note{color:var(--accent);font-weight:600}.banner{border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.banner.err{background:var(--out-bg);color:var(--out-ink)}.banner.ok{background:var(--ok-bg);color:var(--ok-ink)}.pw{background:var(--panel);color:var(--text);-webkit-user-select:all;user-select:all;border-radius:5px;padding:2px 6px}.tablewrap{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;min-height:260px;max-height:calc(100vh - 290px);overflow:auto}table.stock{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%}.stock th,.stock td{border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px}.stock th{z-index:2;background:var(--panel-2);color:var(--muted);text-align:left;font-size:12.5px;font-weight:600;position:sticky;top:0}.stock th.sticky{z-index:3;left:0}.stock td.sticky{z-index:1;background:var(--panel);position:sticky;left:0}.stock .c-num,.stock .c-dec,.stock .c-id{text-align:right}.stock th.c-num .th,.stock th.c-dec .th,.stock th.c-id .th{justify-content:flex-end}.stock tbody tr:hover td{background:var(--row-hover)}.stock tbody tr:last-child td{border-bottom:0}.th{align-items:center;gap:6px;display:flex}.sort{all:unset;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.sort:hover{color:var(--text)}.sort svg{opacity:.45}.sort svg.on{opacity:1;color:var(--accent)}.empty{text-align:center;color:var(--muted);padding:40px 12px!important}.namecell{align-items:center;gap:8px;max-width:360px;display:flex}.pname{text-overflow:ellipsis;font-weight:550;overflow:hidden}.rbtn{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:26px;height:26px;color:var(--muted);border-radius:7px;flex:none;place-items:center;display:inline-grid}.rbtn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.rbtn:disabled{cursor:default}.rbtn.all{color:var(--accent)}.rbtn.spin svg{color:var(--accent);animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}tr.busy td:not(.sticky){opacity:.55;transition:opacity .2s}td.chg{animation:2.6s ease-out flash}tr.pulse td{animation:1.6s ease-out flash}@keyframes flash{0%,25%{background:var(--flash)}to{background:0 0}}.stock tbody tr td.sticky.chg,tr.pulse td.sticky{animation-name:flashSticky}@keyframes flashSticky{0%,25%{background:var(--flash)}to{background:var(--panel)}}.badge{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.out{background:var(--out-bg);color:var(--out-ink)}.badge.crit{background:var(--crit-bg);color:var(--crit-ink)}.badge.low{background:var(--low-bg);color:var(--low-ink)}.badge.ok{background:var(--ok-bg);color:var(--ok-ink)}.badge.info{background:var(--info-bg);color:var(--info-ink)}.unlimited{color:var(--info-ink);font-weight:600}.foot{color:var(--muted);font-size:12px}.toasts{z-index:50;gap:8px;max-width:calc(100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--text);color:var(--bg);border-radius:10px;max-width:420px;padding:10px 14px;font-size:13px;animation:.2s ease-out rise;box-shadow:0 6px 20px #0000002e}.toast.err{background:var(--out-ink);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.modal-bg{z-index:40;background:#0a0c1073;place-items:start center;padding:6vh 16px 16px;display:grid;position:fixed;inset:0;overflow:auto}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;gap:14px;width:100%;max-width:720px;padding:18px 20px 20px;display:grid;box-shadow:0 20px 50px #00000040}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0;font-size:17px}.modal p{margin:0}.uform{grid-template-columns:1fr 1fr;gap:8px;display:grid}.uform .pwrow{gap:6px;display:flex}.uform .form-err{grid-column:1/-1}.ulist{border:1px solid var(--line);border-radius:10px;overflow:hidden}.urow{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.urow:last-child{border-bottom:0}.urow.admin{background:var(--panel-2)}.uinfo{min-width:0}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}input.mini{width:170px;height:34px}.pad{padding:12px}@media (width<=900px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.app{padding:12px 16px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi.all{grid-column:1/-1}.hide-sm{display:none}.who{max-width:140px}.uform{grid-template-columns:1fr}.search{max-width:none}.tablewrap{max-height:calc(100vh - 220px)}.namecell{max-width:200px}}.modal-head.sub{justify-content:flex-start;gap:8px;margin-top:4px}.modal-head h3{margin:0;font-size:15px}
