:root{--ink:#1f2328;--mut:#68717b;--line:#dde1e6;--bg:#eceff2;--acc:#f5c518;--red:#c93a2f;--grn:#1c8a5a;--cond:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-family:Barlow,system-ui,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app{max-width:960px;margin:auto;padding:0 14px 28px}header{height:62px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px}.logo{width:38px;height:38px;border-radius:9px;background:var(--ink);color:var(--acc);display:grid;place-items:center}.brand b{display:block;font:700 21px/1 var(--cond);letter-spacing:.6px}.brand small{display:block;color:var(--mut);font-size:12px;margin-top:3px}.live{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:600;color:var(--grn)}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:4px 0 14px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.stat span{font-size:12px;color:var(--mut)}.stat small{display:none}.stat strong{display:block;font:700 28px/1.1 var(--cond);margin-top:2px}.stat .online{color:var(--grn)}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px}.tab{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:8px;padding:8px 14px;font-weight:600;font-size:14px;color:var(--mut)}.tab.active{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:inset 0 -3px 0 var(--acc)}.tab.add{border-style:dashed;padding:8px 10px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.toolbar h2{margin:0;font:700 24px/1.1 var(--cond);display:flex;align-items:center;gap:8px}.toolbar p{margin:3px 0 0;font-size:12px;color:var(--mut)}.rename{border:0;background:#eef0f3;color:var(--mut);border-radius:7px;width:28px;height:28px;display:grid;place-items:center}.primary,.secondary,.dangerbtn{border-radius:8px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:14px;border:1.5px solid transparent}.primary{background:var(--acc);color:var(--ink)}.primary:hover{filter:brightness(.95)}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.dangerbtn{background:var(--red);color:#fff}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.search,.select{height:44px;border:1.5px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--mut);background:#fff}.search{flex:1 1 0;min-width:0}.select{flex:1}.search input{border:0;outline:0;width:100%;min-width:0;color:var(--ink);background:transparent}.select select{border:0;outline:0;background:transparent;color:var(--ink);width:100%}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f4f5f7;color:var(--mut);font-size:12px;font-weight:600;padding:11px 14px}td{padding:11px 14px;border-top:1px solid var(--line);font-size:15px;vertical-align:middle}td.so{font-weight:600;font-variant-numeric:tabular-nums}td.qty{font:700 20px/1 var(--cond);font-variant-numeric:tabular-nums}.lot{display:inline-block;border:1.5px solid var(--ink);border-radius:4px;padding:1px 7px;font:700 15px/1.3 var(--cond);letter-spacing:.4px}.ket{color:var(--mut);max-width:260px}.chk{width:44px;text-align:center}.chk input{width:18px;height:18px;accent-color:var(--ink)}tr.picked td{background:#fff8d6}.actions{display:flex;gap:6px;justify-content:flex-end}.actions button,.close{border:0;background:#eef0f3;color:var(--ink);border-radius:8px;width:36px;height:36px;display:grid;place-items:center}.actions button.danger{background:#fbeceb;color:var(--red)}.actions button.danger:hover{background:var(--red);color:#fff}.empty{text-align:center;padding:40px 10px;color:var(--mut)}.empty svg,.empty b,.empty span{display:block;margin:5px auto}.empty b{color:var(--ink)}.foot{display:flex;justify-content:space-between;color:var(--mut);font-size:12px;padding-top:12px}.foot span:first-child{display:flex;align-items:center;gap:6px;color:var(--grn)}footer{text-align:center;color:var(--mut);font-size:12px;padding:22px 0 60px}footer span{color:var(--acc)}.bulk{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#fff8d6;border:1.5px solid var(--acc);border-radius:10px;padding:9px 12px;margin-bottom:12px;font-weight:700;font-size:14px}.bulk>div{display:flex;gap:8px}.bulk .secondary,.bulk .dangerbtn{padding:8px 12px;font-size:13px}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:9;background:var(--ink);color:#fff;border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:18px;font-size:14px;box-shadow:0 10px 30px #0005;white-space:nowrap}.toast button{border:0;background:transparent;color:var(--acc);font-weight:700;font-size:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10141aa8;display:grid;place-items:center;padding:16px;z-index:5}.modal{width:min(100%,460px);background:#fff;border-radius:14px;padding:22px}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.modalhead h2{margin:0;font:700 26px/1.1 var(--cond)}.eyebrow{font-size:12px;color:var(--mut)}.modal label{display:block;font-size:13px;font-weight:600;margin:14px 0}.modal label input{display:block;width:100%;margin-top:6px;border:1.5px solid var(--line);border-radius:8px;padding:12px;font-size:16px;outline:none}.modal label input:focus{border-color:var(--ink)}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.optional{font-weight:400;color:var(--mut)}.modalbuttons{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.error{background:#fbeceb;color:var(--red);border-radius:8px;padding:10px;font-size:13px}@media(max-width:650px){.app{padding:0 8px 24px}.panel{padding:10px}table{font-size:13px}th{padding:8px 3px;font-size:11px}td{padding:7px 3px;font-size:13px}.chk{width:30px;padding-left:6px;padding-right:0}.chk input{width:16px;height:16px}td.so{font-size:13px}td.qty{font-size:17px}.lot{padding:0 5px;font-size:13px}.ket{max-width:none;font-size:12px;line-height:1.25;word-break:break-word}.actions{gap:4px;padding-right:3px}.actions button{width:28px;height:28px}.actions svg{width:14px;height:14px}.modal{align-self:end;border-radius:16px 16px 0 0;width:100%}.overlay{padding:0}}.tablewrap{border:0;border-radius:0}table{border-collapse:collapse}th,td{border:1px solid #b4bbc3;text-align:center}th{background:#e8ebee;color:var(--ink);font-weight:700}td{background:#fff}tbody tr:nth-child(2n) td{background:#f7f8fa}td.so{font-size:14px;font-weight:500}td.qty{font-family:inherit;font-weight:600;font-size:14px;line-height:1.2}.lot{border:0;padding:0;font:600 14px/1.2 Barlow,system-ui,sans-serif;letter-spacing:0}.ket{text-align:left;color:var(--ink)}tbody tr.picked td{background:#fff3b8}th,td{padding:10px 6px}th.chk,td.chk{width:30px;padding-left:4px;padding-right:4px}td.ket{padding-left:8px;padding-right:6px}th:last-child,td.act{width:1%;white-space:nowrap;padding-left:5px;padding-right:5px}.actions{gap:3px;padding-right:0;justify-content:center}.actions button{width:28px;height:28px;border-radius:7px}.actions svg{width:14px;height:14px}@media(max-width:650px){.modal{max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:84px}.modalbuttons{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}.modalbuttons .primary,.modalbuttons .secondary{padding:14px}}.overlay{top:0;left:0;right:0;bottom:auto;height:var(--vvh,100dvh);transform:translateY(var(--vvt,0px))}@media(max-width:650px){.modal{max-height:100%;padding-bottom:84px}.modal label{margin:10px 0}}.filters{flex-wrap:nowrap;align-items:stretch;gap:8px}.filters .primary,.filters .secondary{height:44px;padding:0 14px;flex:none;white-space:nowrap}.filters .search{min-width:0}@media(max-width:650px){.filters{gap:6px}.filters .primary,.filters .secondary{padding:0 12px}.filters .secondary .lbl{display:none}}.modal textarea{display:block;width:100%;margin-top:6px;border:1.5px solid var(--line);border-radius:8px;padding:10px;font:13px/1.4 ui-monospace,Consolas,monospace;min-height:120px;resize:vertical;outline:none}.modal textarea:focus{border-color:var(--ink)}.modal input[type=file]{font-size:13px;margin-top:6px;width:100%}.hint{font-size:13px;color:var(--mut);margin:0}.sum{font-size:14px;font-weight:700;margin:8px 0 0}.primary:disabled{opacity:.45;cursor:not-allowed}.live.off,.stat .offline{color:#b7791f}th:last-child{min-width:66px}.modal .pv{margin-top:8px}.modal .pv th,.modal .pv td{padding:6px 8px;font-size:13px}.modal .pv th:last-child{min-width:0}.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{table-layout:fixed}th,td{overflow:hidden;word-break:break-word}th{position:relative;-webkit-user-select:none;user-select:none}.rz{position:absolute;top:0;right:0;width:16px;height:100%;cursor:col-resize;touch-action:none;z-index:2}.rz:after{content:"";position:absolute;right:3px;top:26%;height:48%;width:3px;border-radius:2px;background:#9aa3ad}td.sty{text-align:center}.ket{max-width:none}.modal .pv table{table-layout:auto;width:100%}.zoom{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;color:var(--mut);margin:0 0 8px}.zoom button{width:30px;height:30px;border:1.5px solid var(--line);background:#fff;border-radius:8px;display:grid;place-items:center;color:var(--ink)}.zoom b{min-width:40px;text-align:center;color:var(--ink)}.tablewrap td,.tablewrap th{font-size:calc(14px*var(--z,1));padding:calc(10px*var(--z,1)) 6px}.tablewrap th{font-size:calc(12px*var(--z,1))}.tablewrap .lot,.tablewrap .ket{font-size:inherit}.tablewrap .actions button{width:calc(28px*var(--z,1));height:calc(28px*var(--z,1))}.tablewrap .actions svg{width:calc(14px*var(--z,1));height:calc(14px*var(--z,1))}.tablewrap .chk input{width:calc(16px*var(--z,1));height:calc(16px*var(--z,1))}.tablewrap td,.tablewrap th{padding:calc(10px*var(--z,1)) calc(6px*var(--z,1))}.rz{width:min(16px,50%)}.zoom b{cursor:pointer}.login-shell{min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top right,#fff4bf 0,transparent 38%),var(--bg)}.login-card{width:min(100%,410px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 55px #1f23281a}.login-logo{width:54px;height:54px;border-radius:14px;background:var(--ink);color:var(--acc);display:grid;place-items:center;margin-bottom:18px}.login-kicker{font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--grn)}.login-card h1{font:800 32px/1 var(--cond);margin:7px 0 8px;letter-spacing:.5px}.login-desc,.login-card>p{font-size:14px;color:var(--mut);margin:0 0 20px}.login-card label{display:block;font-size:13px;font-weight:700;margin:14px 0;color:var(--ink)}.login-card input{display:block;width:100%;margin-top:7px;padding:13px;border:1.5px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:15px;outline:none}.login-card input:focus{border-color:var(--grn)}.login-submit{width:100%;margin-top:8px;padding:14px}.login-card>small{display:block;text-align:center;color:var(--mut);font-size:11px;margin-top:15px;line-height:1.5}.user-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.role-pill{font-size:10px;font-weight:800;letter-spacing:.6px;padding:6px 9px;border-radius:20px;background:#e7f5ee;color:#16734a}.role-pill.operator{background:#fff4d6;color:#805d00}.logout-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700;color:var(--ink)}@media(max-width:520px){.login-card{padding:23px}.user-tools{gap:6px}.user-tools .live{font-size:10px}.logout-btn{padding:6px 8px}}.signed-user{font-size:12px;font-weight:700;color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-users-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line,#d9dee7);background:var(--surface,#fff);color:var(--text,#182230);border-radius:10px;padding:9px 11px;font-weight:700;white-space:nowrap}.account-modal{width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto}.account-create{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--line,#e1e5eb);border-radius:13px;margin:14px 0}.account-create h3,.account-list-head h3{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:0;font-size:15px}.account-create label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700}.account-create input,.account-create select,.account-actions select{width:100%;min-width:0;border:1px solid var(--line,#d9dee7);border-radius:9px;padding:10px;background:var(--surface,#fff);color:var(--text,#182230);font:inherit}.account-create button,.account-create .error{grid-column:1/-1}.account-list-head{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.account-list-head span{font-size:12px;color:var(--muted,#687385)}.account-list{display:grid;gap:8px}.account-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line,#e1e5eb);border-radius:12px}.account-info{display:grid;gap:4px;min-width:0}.account-info b{font-size:13px;overflow-wrap:anywhere}.account-info small{font-size:11px;color:var(--muted,#687385);overflow-wrap:anywhere}.account-info .role-pill{width:max-content;font-size:10px}.account-actions{display:flex;align-items:center;gap:7px}.account-actions select{width:auto;max-width:112px;padding:8px;font-size:12px}.account-actions button{white-space:nowrap;font-size:11px;padding:8px}@media(max-width:620px){.manage-users-btn{padding:8px;font-size:11px}.account-create{grid-template-columns:1fr}.account-row{align-items:flex-start;flex-direction:column}.account-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.account-actions select{width:100%;max-width:none}}.control-modal{max-width:620px}.control-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;border-bottom:1px solid var(--line,#e1e5eb)}.control-row>div{display:grid;gap:4px;min-width:0}.control-row b{font-size:14px;color:var(--ink)}.control-row small{font-size:11px;color:var(--mut)}.switch{min-width:62px;border:0;border-radius:22px;padding:8px 12px;font-size:12px;font-weight:800;background:#e6e9ee;color:#596273;cursor:pointer}.switch.on{background:#d8f5e5;color:#087443}.app-switch-row{margin-top:10px;padding:15px 10px;background:#fff7e7;border:1px solid #f2dfb8;border-radius:12px}.control-modal .modalbuttons{margin-top:16px}@media(max-width:520px){.control-row{padding:12px 0}.control-row b{font-size:13px}.switch{min-width:56px}}
