:root{--purple: #901cac;--purple-600: #7a1792;--purple-700: #5d0c70;--deep: #3b0764;--lav-50: #faf5ff;--lav-100: #f5f0ff;--lav-200: #ead9f5;--yellow: #ffb700;--ok: #108474;--short: #de3618;--excess: #c27400;--damaged: #8a359f;--text: #1d1426;--muted: #6b5d78;--border: #e9e1f0;--radius: 14px;--shadow: 0 1px 2px rgba(59, 7, 100, .06), 0 6px 20px rgba(59, 7, 100, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Outfit,DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:#f7f2fb;font-size:15px}h1,h2,h3{margin:0;font-weight:600}h2{font-size:18px;color:var(--deep)}h3{font-size:15px;color:var(--deep);margin:18px 0 8px}code{font-family:ui-monospace,Consolas,monospace;background:var(--lav-100);padding:1px 6px;border-radius:6px}a{color:var(--purple)}input,select,button{font:inherit}input,select{border:1px solid var(--border);border-radius:10px;padding:9px 12px;background:#fff;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px #901cac26}input:disabled{background:#f4f1f6}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:10px}.nowrap{white-space:nowrap}.neg{color:var(--short);font-weight:600}.pos{color:var(--excess);font-weight:600}.variant{color:var(--purple-600);font-weight:400}.btn{border:1px solid transparent;border-radius:999px;padding:9px 18px;cursor:pointer;font-weight:500;transition:background .15s,transform .05s,opacity .15s;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover:not(:disabled){background:var(--purple-700)}.btn-accent{background:var(--yellow);color:var(--deep)}.btn-accent:hover:not(:disabled){background:#f0a800}.btn-outline{background:#fff;color:var(--purple);border-color:var(--lav-200)}.btn-outline:hover:not(:disabled){border-color:var(--purple)}.btn-text{background:none;color:var(--purple);padding-left:8px;padding-right:8px}.btn-text.danger,.danger{color:var(--short)}.btn-danger{background:var(--short);color:#fff}.btn-good{background:var(--ok);color:#fff}.btn-damaged{background:var(--damaged);color:#fff}.btn-ghost-light{background:#ffffff1f;color:#fff;border-color:#ffffff59}.btn-ghost-light:hover{background:#ffffff38}.btn-sm{padding:5px 12px;font-size:13px}.btn-block{width:100%;padding:12px;font-size:16px}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.app{min-height:100%;display:flex;flex-direction:column}.topbar{background:linear-gradient(90deg,var(--deep),var(--purple));color:#fff}.topbar-inner{max-width:1500px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px}.brand img{height:52px}.brand-text{display:flex;flex-direction:column;line-height:1.15;border-left:1px solid rgba(255,255,255,.3);padding-left:14px}.brand-title{font-weight:700;font-size:18px}.brand-sub{font-size:13px;opacity:.85;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav{display:flex;gap:4px;flex:1}.nav a{color:#ffffffd9;text-decoration:none;padding:8px 14px;border-radius:999px;font-weight:500}.nav a:hover{background:#ffffff1a;color:#fff}.nav a.active{background:#fff;color:var(--purple)}.top-right{display:flex;align-items:center;gap:16px}.day-pick{display:flex;flex-direction:column;font-size:11px;opacity:.95;gap:2px}.day-pick input{padding:5px 8px;border:none;border-radius:8px;color:var(--deep);font-weight:600}.who{display:flex;flex-direction:column;line-height:1.2;text-align:right}.who span{font-size:12px;opacity:.85}.statusline{max-width:1500px;width:100%;margin:0 auto;padding:10px 24px 0;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.statusline .sep{opacity:.5}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#bbb}.dot.live{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.dot.offline{background:var(--short)}.warn-inline{background:#fff4d6;color:#7a5200;padding:2px 10px;border-radius:999px;margin-left:8px}.main{max-width:1500px;width:100%;margin:0 auto;padding:14px 24px 30px;flex:1}.footer{text-align:center;color:var(--muted);font-size:13px;padding:16px;display:flex;align-items:center;justify-content:center;gap:8px}.footer img{height:22px}.splash{height:100%;display:grid;place-items:center}.splash img{height:80px;animation:pulse 1.2s infinite alternate}@keyframes pulse{0%{opacity:.4}to{opacity:1}}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;border:1px solid var(--border)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:16px;min-width:0}.scan-grid{display:grid;grid-template-columns:minmax(380px,5fr) 7fr;gap:16px;align-items:start}.audit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.span2{grid-column:1 / -1}@media (max-width: 1100px){.scan-grid,.audit-grid{grid-template-columns:1fr}}.alert{border-radius:10px;padding:10px 14px;margin:10px 0;font-size:14px}.alert-error{background:#fdecea;color:#8d1c0b;border:1px solid #f6c3ba}.alert-warn{background:#fff6dc;color:#6e4a00;border:1px solid #ffe08a}.alert-info{background:var(--lav-100);color:var(--deep);border:1px solid var(--lav-200)}.alert-ok{background:#e7f6f3;color:#0b5a4f;border:1px solid #b7e3da}.alert.sticky{position:sticky;top:8px;z-index:5}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge.ok{background:#e1f4f0;color:var(--ok)}.badge.short{background:#fde6e1;color:var(--short)}.badge.excess{background:#fff1d1;color:var(--excess)}.badge.damaged{background:#f3e3f8;color:var(--damaged)}.badge.muted{background:#eeeaf2;color:var(--muted)}.txt-ok{color:var(--ok)}.txt-short{color:var(--short)}.txt-excess{color:var(--excess)}.txt-muted{color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--lav-100);color:var(--deep);border-radius:999px;padding:4px 12px;font-size:13px}.chip .x{border:none;background:none;color:var(--short);cursor:pointer;font-size:16px;padding:0 2px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip-btn{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;color:var(--text)}.chip-btn span{color:var(--muted);font-size:12px;margin-left:4px}.chip-btn.on{background:var(--purple);color:#fff;border-color:var(--purple)}.chip-btn.on span{color:#fffc}.seg{display:inline-flex;background:var(--lav-100);border-radius:999px;padding:3px}.seg button{border:none;background:none;padding:5px 14px;border-radius:999px;cursor:pointer;color:var(--muted)}.seg button.on{background:#fff;color:var(--purple);box-shadow:var(--shadow);font-weight:600}.scan-card{border-top:4px solid var(--purple)}.cond-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.cond-toggle button{border:2px solid var(--border);background:#fff;padding:12px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;color:var(--muted)}.cond-toggle button.on.good{border-color:var(--ok);background:#e7f6f3;color:var(--ok)}.cond-toggle button.on.damaged{border-color:var(--damaged);background:#f6e9fa;color:var(--damaged)}.scan-form{display:flex;gap:10px;align-items:end}.qty{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}.qty input{width:90px;text-align:center;font-size:18px;font-weight:600}.scan-input{flex:1;font-size:20px;padding:14px 16px;border-width:2px}.scan-input.good:focus{border-color:var(--ok);box-shadow:0 0 0 4px #10847426}.scan-input.damaged:focus{border-color:var(--damaged);box-shadow:0 0 0 4px #8a359f26}.scan-actions{display:flex;justify-content:space-between;align-items:center;margin:12px 0 4px;gap:8px;flex-wrap:wrap}.last-scan{margin-top:12px;border-radius:12px;padding:14px 16px;background:var(--lav-50);border:1px dashed var(--lav-200)}.last-scan.empty{color:var(--muted);text-align:center;padding:26px}.last-scan.good{background:#effaf7;border:1px solid #bfe6dd;border-style:solid}.last-scan.damaged{background:#f8eefb;border:1px solid #e3c7ec;border-style:solid}.last-scan.unlisted{background:#fff7e0;border:1px solid #ffdc7a;border-style:solid}.last-scan.flash{animation:flash .5s ease-out}@keyframes flash{0%{transform:scale(1.015);box-shadow:0 0 0 6px #ffb70059}to{transform:none;box-shadow:none}}.ls-top{display:flex;gap:8px;margin-bottom:6px}.ls-title{font-size:18px;font-weight:600}.ls-figs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.ls-figs div{background:#fff;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.ls-figs span{font-size:12px;color:var(--muted)}.ls-figs strong{font-size:22px;color:var(--deep)}.ls-figs em{font-style:normal;font-size:11px;color:var(--muted)}.search{width:100%;padding:11px 14px}.search.narrow{max-width:360px}.lookup-list{margin-top:10px;max-height:460px;overflow:auto}.lookup-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:10px 4px;border-bottom:1px solid var(--border)}.lk-name{font-weight:600}.lk-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:300px}.lk-actions input{width:64px;padding:5px 8px;text-align:center}.my-dash{background:linear-gradient(135deg,#fff,var(--lav-50));border-top:4px solid var(--yellow)}.my-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.big{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column}.big span{font-size:12px;color:var(--muted)}.big strong{font-size:26px;color:var(--deep);line-height:1.2}.big em{font-style:normal;font-size:12px;color:var(--muted)}.big.accent{background:var(--purple);border-color:var(--purple)}.big.accent span,.big.accent em{color:#ffffffd9}.big.accent strong{color:#fff}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}@media (max-width: 1400px){.stats{grid-template-columns:repeat(3,1fr)}}.stat{border-radius:12px;padding:10px 12px;background:var(--lav-50);border-left:4px solid var(--purple);display:flex;flex-direction:column}.stat span{font-size:12px;color:var(--muted)}.stat strong{font-size:22px;color:var(--deep)}.stat em{font-style:normal;font-size:11px;color:var(--muted)}.stat.ok{border-left-color:var(--ok)}.stat.short{border-left-color:var(--short)}.stat.excess{border-left-color:var(--yellow)}.stat.damaged{border-left-color:var(--damaged)}.stat.muted{border-left-color:#b7acc2}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:2px solid var(--border);white-space:nowrap;background:#fff;position:sticky;top:0}.table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}.table .r{text-align:right}.table tr.me td{background:#fff8e1}.table tr.inactive td{opacity:.55}.table.products td.nm{min-width:220px;font-weight:500}.table select{padding:4px 8px}.pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:12px}.pager .muted{margin-right:auto}.feed{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto;font-size:14px}.feed li{display:grid;grid-template-columns:70px 110px 1fr auto;gap:10px;padding:6px 2px;border-bottom:1px solid var(--border);align-items:center}.feed li.me{background:#fffbef}.feed li.undone{text-decoration:line-through;opacity:.5}.feed .t{color:var(--muted);font-size:12px}.feed .k{font-weight:600;font-size:13px}.feed .k0{color:var(--ok)}.feed .k1{color:var(--damaged)}.feed .k2{color:var(--excess)}.feed .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed .by{color:var(--muted);font-size:12px;white-space:nowrap}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);font-weight:500}.form input,.form select{width:100%;min-width:0}.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.inline-form{display:flex;gap:8px;margin:8px 0 12px}.inline-form input{flex:1}.inline-form.wrap{flex-wrap:wrap}.inline-form.wrap input{min-width:180px}.kv{display:grid;grid-template-columns:auto auto;gap:4px 16px;margin-top:8px;font-size:13px;justify-content:start}.chart-preview{display:none;width:100%;border-radius:12px;border:1px solid var(--border);margin:10px 0}.danger-zone{border-color:#f6c3ba}.danger-zone h2{color:var(--short)}.auth-wrap{min-height:100%;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:radial-gradient(circle at 20% 20%,rgba(255,183,0,.22),transparent 40%),linear-gradient(135deg,var(--deep),var(--purple));color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:center}.auth-side img{width:min(380px,80%);margin-bottom:20px}.auth-side h2{color:#fff;font-size:40px;margin-bottom:10px}.auth-side h2:after{content:"";display:block;width:60px;height:4px;border-radius:2px;background:var(--yellow);margin-top:12px}.auth-side p{font-size:18px;opacity:.9;max-width:440px;line-height:1.5}.auth-card{align-self:center;justify-self:center;width:min(420px,92%);background:#fff;padding:34px;border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.auth-logo{height:64px;display:block;margin-bottom:16px}.auth-card h1{font-size:26px;color:var(--deep)}.auth-card>.muted{margin:4px 0 20px}.auth-foot{text-align:center;color:var(--muted);margin-top:18px}@media (max-width: 860px){.auth-wrap{grid-template-columns:1fr}.auth-side{padding:30px}.auth-side p{display:none}}
