:root{--green:#1a7f37;--green-l:#e6f4ea;--red:#c62828;--red-l:#fdecea;--amber:#b26a00;--ink:#111;--muted:#666;--line:#d7d7d7;--bg:#f2f3f5}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:17px}a{color:inherit}h1,h2,h3{margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,Menlo,monospace}.center{display:flex;min-height:60vh;align-items:center;justify-content:center}.center-pad{padding:60px 20px;text-align:center}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid #333;background:#333;color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none;display:inline-block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:5px 10px;font-size:13px}.btn.big{padding:16px 22px;font-size:20px}.btn.block{display:block;width:100%;margin:8px 0;text-align:left}.btn.green{background:var(--green);border-color:var(--green)}.btn.red{background:var(--red);border-color:var(--red)}.btn.white{background:#fff;color:#111;border-color:#fff}.btn.ghost{background:transparent;color:#333}.btn.locked{background:#999;border-color:#999}.huge-btn{display:block;width:100%;padding:26px;font-size:26px;margin-top:14px;border-radius:12px}.huge{font-size:44px;font-weight:900;line-height:1}.topbar{display:flex;align-items:center;gap:18px;background:#111;color:#fff;padding:8px 14px;flex-wrap:wrap}.brand{font-weight:900;font-size:20px;text-decoration:none;letter-spacing:.5px}.brand span{color:#7ad48e;font-weight:600}.topbar nav{display:flex;gap:4px;flex:1 1;flex-wrap:wrap}.topbar nav a{text-decoration:none;padding:8px 12px;border-radius:6px;color:#ccc;font-weight:600}.topbar nav a.on{background:#fff;color:#111}.who{display:flex;gap:10px;align-items:center;font-size:14px}.who .btn{color:#fff;border-color:#666}main{padding:14px;max-width:1100px;margin:0 auto}.app.wide main{max-width:none}.scan{display:flex;gap:8px;align-items:center;background:#fff;border:3px solid #111;border-radius:12px;padding:8px 10px;margin-bottom:12px}.scan input{flex:1 1;font-size:26px;border:0;outline:0;padding:8px;font-family:ui-monospace,Menlo,monospace;min-width:0}.scan-icon{font-size:22px;letter-spacing:-3px}.banner{padding:12px 14px;border-radius:8px;margin:8px 0;font-weight:700}.banner.green{background:var(--green-l);color:var(--green);border:1px solid var(--green)}.banner.red{background:var(--red-l);color:var(--red);border:1px solid var(--red)}.banner.amber{background:#fff4e0;color:var(--amber);border:1px solid var(--amber)}.banner.rule{background:#111;color:#ffd54f;font-size:18px}.bigmsg{text-align:center;padding:40px 20px}.tote-head{display:flex;justify-content:space-between;gap:12px;background:#fff;border:3px solid #333;border-left:14px solid var(--green);border-radius:10px;padding:14px;margin-bottom:10px}.tote-head.ok{background:var(--green-l)}.tote-head .right{text-align:right}.tag{display:inline-block;background:#111;color:#fff;padding:4px 10px;border-radius:6px;font-weight:800;font-size:14px;margin-bottom:6px}.tag.small{font-size:11px;padding:2px 6px;margin:0 0 0 6px;background:#555}.lines{display:flex;flex-direction:column;gap:8px}.line{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--line);border-radius:10px;padding:14px;min-height:72px}.line.ok{background:var(--green-l);border-color:var(--green)}.line.flash{box-shadow:0 0 0 5px var(--green)}.check{width:44px;height:44px;border:3px solid #999;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;color:#fff;flex-shrink:0}.line.ok .check{background:var(--green);border-color:var(--green)}.grow{flex:1 1}.line-main{font-size:21px}.qty{font-size:28px;font-weight:900}.actions{margin-top:6px}.alarm{position:fixed;inset:0;background:var(--red);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.alarm.amberbg{background:rgba(0,0,0,.7)}.alarm-box{color:#fff;max-width:760px;width:100%}.alarm-box.light{background:#fff;color:#111;padding:20px;border-radius:12px}.alarm.amberbg .alarm-box:not(.light){background:#b26a00;padding:20px;border-radius:12px}.alarm-title{font-size:38px;font-weight:900;margin-bottom:14px}.alarm-scanned{font-size:22px;margin-bottom:12px;font-family:ui-monospace,Menlo,monospace}.needed{background:rgba(0,0,0,.2);padding:12px;border-radius:8px;margin:12px 0;font-size:18px;line-height:1.6}.demo{margin-top:18px;background:#fff;border:1px dashed #999;border-radius:8px;padding:10px}.demo summary{cursor:pointer;font-weight:700;color:#555}.chips,.station-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.chip{border:2px solid #bbb;background:#fff;padding:10px 14px;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start}.chip small{font-weight:400;color:#777;font-size:12px}.chip.on{border-color:#111;background:#111;color:#fff}.chip.on small{color:#ccc}.chip.bad{border-color:var(--red);color:var(--red)}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:#111}.login-panel{width:100%;max-width:520px}.login-panel h1 span{color:var(--green)}.alarm-box label,.login-panel label{display:block;font-weight:700;margin:14px 0 6px}.field{width:100%;font-size:22px;padding:12px}.field,.pin-display{border:2px solid #999;border-radius:8px}.pin-display{font-size:34px;letter-spacing:10px;text-align:center;padding:6px;min-height:56px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:10px 0}.keypad button{font-size:30px;padding:16px;border-radius:10px;border:2px solid #ccc;background:#f7f7f7;font-weight:800;cursor:pointer}.err{color:var(--red);font-weight:700;margin:10px 0}.login-panel .btn.big{width:100%;margin-top:10px}.press-grid{display:grid;grid-template-columns:1fr 380px;grid-gap:14px;gap:14px}@media (max-width:900px){.press-grid{grid-template-columns:1fr}}.mock-panel{display:flex;flex-direction:column;align-items:center}.mockup{border-radius:8px;border:1px solid #ddd;max-width:100%;height:auto}.spec{width:100%;margin-top:10px;font-size:18px}.spec div{padding:4px 0;border-bottom:1px solid #eee}.spec span{display:inline-block;width:100px;color:#777;font-size:14px}.desk-grid{display:grid;grid-template-columns:1.6fr 1fr;grid-gap:14px;gap:14px;margin-bottom:14px}@media (max-width:1000px){.desk-grid{grid-template-columns:1fr}}.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl td,.tbl th{padding:8px 6px;border-bottom:1px solid #eee;text-align:left}.tbl tr.sel{background:var(--green-l)}.red-t{color:var(--red);font-weight:700}.pill{display:inline-block;padding:3px 8px;border-radius:20px;font-size:12px;font-weight:800;margin:2px;border:0;cursor:pointer;font-family:inherit}.pill.red{background:var(--red);color:#fff}.pill.green{background:var(--green);color:#fff}.reasons{font-size:14px;color:#444;padding-left:18px}.totes{padding-left:20px}.cart-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #eee;font-size:14px}.mini-board{gap:4px}.board-stats,.mini-board{display:flex;flex-wrap:wrap}.board-stats{gap:8px;margin-bottom:10px;align-items:center}.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:13px;text-align:center}.stat b{display:block;font-size:26px}.stat.red{border-color:var(--red);color:var(--red)}.board{display:grid;grid-template-columns:repeat(6,minmax(160px,1fr)) minmax(200px,1.2fr);grid-gap:10px;gap:10px;overflow-x:auto}.col{background:#e4e6ea;border-radius:10px;padding:8px;min-height:60vh}.col-head{font-weight:900;text-transform:uppercase;font-size:14px;padding:4px 4px 8px}.hold-col{background:#f8d7d5;border:2px dashed var(--red);margin-left:10px}.card{background:#fff;border-radius:8px;padding:10px;margin-bottom:8px;border-left:8px solid var(--green);font-size:14px}.card.red{border-left-color:var(--red)}.card-top{display:flex;justify-content:space-between;font-size:18px}.card .reason{color:var(--red);font-weight:700;margin:6px 0}.card-actions{display:flex;gap:6px;margin-top:8px}.bar{position:relative;height:16px;background:#eee;border-radius:8px;margin-top:6px;overflow:hidden}.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--green)}.bar span{position:relative;font-size:11px;padding-left:6px;font-weight:700}.pad{padding:8px}.checkline{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important}.checkline input{width:24px;height:24px}.print-bar{display:flex;gap:14px;align-items:center;margin-bottom:12px}.sheet{background:#fff;width:8.5in;min-height:11in;padding:.5in;margin:0 auto 20px;box-shadow:0 1px 4px rgba(0,0,0,.2);font-size:13px}.sheet-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #000;padding-bottom:10px}.sheet-num{font-size:30px;font-weight:900}.sheet-meta{font-size:15px}.sheet-meta span{display:inline-block;width:90px;color:#555;font-size:12px}.sheet-sec{background:#000;color:#fff;padding:5px 8px;margin:14px 0 6px;font-size:14px}.art-block{border:1px solid #999;padding:8px;margin-bottom:8px}.art-info{display:flex;gap:10px;align-items:center;margin-bottom:6px}.sheet-tbl{width:100%;border-collapse:collapse}.sheet-tbl td,.sheet-tbl th{border:1px solid #bbb;padding:5px 6px;text-align:left}.sheet-tbl td.box{font-size:18px;width:28px;text-align:center}.sheet-foot{margin-top:16px;border-top:1px solid #999;padding-top:8px;font-size:11px;color:#333}.sheet-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:40;overflow:auto;padding:16px}.sheet-modal-inner{max-width:8.7in;margin:0 auto 24px}.sheet-modal .print-bar{position:-webkit-sticky;position:sticky;top:0;background:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.2);z-index:1}@media print{@page{size:letter;margin:0}body{background:#fff}.no-print,.topbar{display:none!important}main{padding:0;max-width:none}body:has(.sheet-modal)>:not(.sheet-modal){display:none!important}.sheet-modal{position:static;background:transparent;overflow:visible;padding:0;inset:auto}.sheet-modal-inner{max-width:none;margin:0}.sheet{box-shadow:none;margin:0;page-break-after:always}}.admin h2{margin:6px 0}.admin h3{margin:4px 0 10px}.sel{font-size:15px;padding:6px;border-radius:6px;border:1px solid #bbb}.linkish{background:none;border:0;padding:0;font:inherit;color:#1b4fa0;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.nowrap{white-space:nowrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 12px;gap:0 12px}.form-grid .full{grid-column:1/-1}.form-grid label{display:block;font-weight:700;margin:10px 0 4px}.form-grid .field{font-size:17px;padding:9px}.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:10px;gap:10px}.art-card{background:#fff;border:2px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;text-align:left;font:inherit}.art-card.on{border-color:#111;box-shadow:0 0 0 3px #111}.art-card.off{opacity:.5}.art-card .thumb{height:150px;display:flex;align-items:center;justify-content:center;background:#f3f3f3;border-radius:6px;overflow:hidden;margin-bottom:6px}.art-card .thumb img,.art-card .thumb svg{max-width:100%;max-height:150px}.mockup.real{background:#fff}.mockup.loading{align-items:center;color:#777}.mockup.loading,.preview-box{display:flex;justify-content:center;background:#f3f3f3}.preview-box{border-radius:8px;padding:8px;margin:8px 0}.drop{display:block;border:3px dashed #999;border-radius:12px;padding:28px;text-align:center;background:#fff;cursor:pointer}.drop.hot{border-color:var(--green);background:var(--green-l)}.result-list{font-size:14px}.result-list li{margin:2px 0}.btn.cam-open{white-space:nowrap}.btn.cam-open[aria-pressed=true]{background:#111;color:#fff}.cam{position:fixed;left:0;right:0;bottom:0;z-index:45;background:#000;color:#fff;box-shadow:0 -4px 18px rgba(0,0,0,.5)}.cam-view{position:relative;height:38vh;min-height:220px;overflow:hidden}.cam-view video{width:100%;height:100%;object-fit:cover;display:block}.cam-aim{position:absolute;left:12%;right:12%;top:30%;bottom:30%;border:3px solid #7ad48e;border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.35);pointer-events:none}.cam-err,.cam-paused{position:absolute;inset:auto 10px 10px 10px;background:rgba(0,0,0,.75);padding:10px 12px;border-radius:8px;font-weight:700}.cam-err{background:var(--red);top:10px;bottom:auto}.cam-bar{display:flex;gap:10px;align-items:center;padding:10px 12px max(10px,env(safe-area-inset-bottom))}.cam-status{flex:1 1;font-size:16px}.cam-status small{color:#aaa}.cam-last{font-family:ui-monospace,Menlo,monospace;font-size:18px}.cam-btn{background:#333;color:#fff;border-color:#666;padding:16px 18px;font-size:18px}.cam-btn.on{background:#ffd54f;color:#111}.cam-close{background:#fff;color:#111;font-size:22px;font-weight:900;padding:18px 26px;border-radius:12px;min-width:200px}body:has(.cam) main{padding-bottom:calc(38vh + 110px)}.btn.cam-open{background:#fff;color:#111}