:root{--bg:#0f1216;--panel:#171c22;--panel2:#1f262e;--line:#2a333d;--text:#eef2f6;--muted:#93a1b0;--brand:#3b82f6;--ok:#22c55e;--warn:#f59e0b;--err:#ef4444;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.muted{color:var(--muted)}.pad{padding:16px}.banner{border-radius:10px;margin:12px 16px;padding:12px 14px;font-size:14px}.banner.err{background:color-mix(in srgb, var(--err) 18%, transparent);border:1px solid var(--err)}.link{color:var(--brand);background:0 0;border:none;padding:8px 4px;font-size:15px}.home{max-width:780px;margin:0 auto;padding:20px 16px 60px}.back-to-tools{color:var(--brand);margin-bottom:10px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.home-head h1{margin:0 0 4px;font-size:26px}.home-head p{margin:0}.dropzone{border:2px dashed var(--line);text-align:center;background:var(--panel);border-radius:14px;flex-direction:column;gap:6px;margin-top:20px;padding:34px 18px;transition:border-color .15s;display:flex}.dropzone:hover{border-color:var(--brand)}.dropzone strong{font-size:17px}.staged{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-top:18px;padding:18px}.staged h2{margin:0 0 2px}.staged-stats{flex-wrap:wrap;gap:10px 22px;margin:14px 0;padding:0;list-style:none;display:flex}.staged-stats b{color:var(--brand);font-size:20px}.staged-actions{gap:10px;display:flex}.section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:28px 0 10px;font-size:14px}.order-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.order-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:stretch;display:flex;overflow:hidden}.order-open{text-align:left;color:var(--text);background:0 0;border:none;flex-direction:column;flex:1;gap:3px;padding:16px;display:flex}.order-open strong{font-size:17px}.order-del{border:none;border-left:1px solid var(--line);background:0 0;padding:0 18px;font-size:18px}button.primary{background:var(--brand);color:#fff;border:none;border-radius:10px;padding:13px 22px;font-size:16px;font-weight:600}button.ghost{color:var(--text);border:1px solid var(--line);background:0 0;border-radius:10px;padding:13px 22px;font-size:16px}.packing{max-width:1600px;margin:0 auto;padding-bottom:60px}.topbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 12px;display:flex;position:sticky;top:0}.topbar-title{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.topbar-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:16px;overflow:hidden}.topbar-title .muted{font-size:12px}.scan-toggle{background:var(--panel2);color:var(--text);border:1px solid var(--line);white-space:nowrap;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}.scan-toggle.on{background:var(--brand);border-color:var(--brand);color:#fff}.feedback{z-index:6;border-radius:12px;flex-direction:column;gap:2px;margin:8px 12px;padding:12px 14px;animation:.15s pop;display:flex;position:sticky;top:56px}.feedback strong{font-size:16px}.feedback span{opacity:.9;font-size:13px}.feedback.ok{background:color-mix(in srgb, var(--ok) 22%, var(--bg));border:1px solid var(--ok)}.feedback.warn{background:color-mix(in srgb, var(--warn) 22%, var(--bg));border:1px solid var(--warn)}.feedback.err{background:color-mix(in srgb, var(--err) 22%, var(--bg));border:1px solid var(--err)}@keyframes pop{0%{opacity:.4;transform:scale(.97)}}.overall{align-items:center;gap:12px;padding:12px 16px 4px;display:flex}.overall-bar{background:var(--panel2);border-radius:6px;flex:1;height:10px;overflow:hidden}.overall-fill{background:var(--ok);height:100%;transition:width .25s}.overall-label{color:var(--muted);white-space:nowrap;font-size:13px}.pack-shell{display:block}.sidebar{flex-direction:column;gap:10px;padding:10px 16px;display:flex}.sidebar>*{flex-shrink:0}.main{min-width:0}.side-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:2px;font-size:11px}.seg{background:var(--panel2);border:1px solid var(--line);border-radius:10px;display:inline-flex;overflow:hidden}.seg.full{display:flex}.seg.full button{flex:1}.seg button{color:var(--muted);background:0 0;border:none;padding:10px 13px;font-size:13px;font-weight:600}.seg button.sel{background:var(--brand);color:#fff}.search{background:var(--panel);width:100%;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:15px}.filters-toggle{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.facets{flex-direction:column;gap:14px;display:none}.facets.open{display:flex}.facets-head{justify-content:space-between;align-items:center;display:flex}.clear-link{color:var(--warn);background:0 0;border:none;font-size:12px;font-weight:600}.facet-group{flex-direction:column;gap:8px;display:flex}.facet-title{font-size:13px;font-weight:700}.facet-chips{flex-wrap:wrap;gap:7px;display:flex}.chip{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:8px 12px;font-size:12px;display:inline-flex}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip-count{opacity:.7;font-variant-numeric:tabular-nums;font-size:11px}.chip.on .chip-count{opacity:.9}.chip.facet-done .chip-label{color:var(--ok)}.chip.on.facet-done .chip-label{color:#fff}.filter-summary{padding:8px 16px 0;font-size:13px}@media (width>=900px){.pack-shell{grid-template-columns:300px 1fr;align-items:start;gap:8px;display:grid}.sidebar{border-right:1px solid var(--line);max-height:calc(100vh - 72px);position:sticky;top:60px;overflow-y:auto}.filters-toggle{display:none}.facets,.facets.open{display:flex}}.groups{padding:6px 12px}.group{margin-bottom:18px}.group-head{background:var(--bg);grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:6px 4px;display:grid;position:sticky;top:56px}.group-title{font-size:15px;font-weight:700}.group-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.group-count.done{color:var(--ok);font-weight:700}.group-bar{background:var(--panel2);border-radius:3px;grid-column:1/-1;height:4px;overflow:hidden}.group-fill{background:var(--ok);height:100%;transition:width .25s}.panel-grid{grid-template-columns:1fr;gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}@media (width>=900px){.panel-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}}.row{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;min-height:58px;padding:12px 14px;display:flex}.row.packed{background:color-mix(in srgb, var(--ok) 14%, var(--panel));border-color:color-mix(in srgb, var(--ok) 45%, var(--line))}.check{border:2px solid var(--line);color:#fff;border-radius:7px;flex:0 0 26px;justify-content:center;align-items:center;width:26px;height:26px;font-weight:800;display:flex}.row.packed .check{background:var(--ok);border-color:var(--ok)}.barcode{color:var(--brand);flex:none;min-width:48px;font-family:ui-monospace,Menlo,monospace;font-size:15px;font-weight:700}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row-name{font-size:15px;font-weight:600}.row-sub,.row-dim{color:var(--muted);font-size:12px}.row-dim .dim-in{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.row-dim .dim-mm{opacity:.75;margin-left:8px}.stepper{flex:none;align-items:center;gap:6px;display:flex}.stepper button{border:1px solid var(--line);background:var(--panel2);width:40px;height:40px;color:var(--text);border-radius:10px;font-size:22px}.stepper button:disabled{opacity:.35}.stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:74px;font-size:13px}.stepper span.full{color:var(--ok);font-weight:700}.scan-panel{background:#000;border-radius:14px;margin:8px 12px;position:relative;overflow:hidden}.scan-video{object-fit:cover;width:100%;max-height:46vh;display:block}.scan-reticle{border:3px solid #ffffffe6;border-radius:12px;position:absolute;inset:22% 14%;box-shadow:0 0 0 100vmax #00000040}.scan-hint{text-align:center;background:#0000008c;margin:0;padding:8px;font-size:12px;position:absolute;bottom:0;left:0;right:0}.scan-error{color:var(--warn);text-align:center;padding:22px;font-size:14px}
