:root{--color-bg:#f4f5f7;--color-surface:#fff;--color-surface-alt:#f0f2f5;--color-surface-form:#f8f9ff;--color-border:#dde1e9;--color-border-strong:#c8cdd8;--color-border-accent:#4f52c8;--color-border-ro:#e8eaed;--color-text:#1a1f2e;--color-text-muted:#6b7280;--color-text-dim:#9ca3af;--color-accent:#4f52c8;--color-accent-light:#eef0fd;--color-header:#4b5578;--status-queued-bg:#eef0fd;--status-queued-text:#4f52c8;--status-pending-bg:#fef9c3;--status-pending-text:#a16207;--status-success-bg:#f0fdf4;--status-success-text:#166534;--status-printed-bg:#dcfce7;--status-printed-text:#15803d;--status-error-bg:#fee2e2;--status-error-text:#b91c1c;--status-neutral-bg:#f0f2f5;--status-neutral-text:#6b7280;--status-inactive-bg:#f0f2f5;--status-inactive-text:#9ca3af;--font-sans:"IBM Plex Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace;--shadow-card:0 2px 8px #00000014;--shadow-modal:0 8px 32px #0000002e}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,[role=button]{touch-action:manipulation;-webkit-user-select:none;user-select:none}.page-wrapper{padding:28px 24px}.page-wrapper-md{box-sizing:border-box;width:100%;max-width:1400px;margin:0 auto;padding:28px 24px}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-title{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text);font-size:15px;font-weight:600}.page-subtitle{font-family:var(--font-mono);color:var(--color-text-muted);margin-top:2px;font-size:11px}.page-state{font-family:var(--font-mono);color:var(--color-text-muted);padding:24px;font-size:13px}.page-error{font-family:var(--font-mono);color:#dc2626;padding:24px;font-size:13px}.section{margin-bottom:28px}.grid-2col{grid-template-columns:1fr 1fr;gap:28px;display:grid}.form-grid-3col{grid-template-columns:1fr 1fr 1fr;gap:24px;margin-bottom:20px;display:grid}.navbar{background:#1e3354;flex-shrink:0;align-items:center;gap:28px;height:52px;padding:0 28px;display:flex}.navbar-brand{font-family:var(--font-sans);color:#fff;letter-spacing:.01em;margin-right:8px;font-size:16px;font-weight:700;text-decoration:none}.navbar-link{font-family:var(--font-sans);color:#ffffff8c;border-bottom:2px solid #0000;padding-bottom:2px;font-size:14px;font-weight:400;text-decoration:none;transition:color .15s}.navbar-link:hover{color:#ffffffd9}.navbar-link.active{color:#fff;border-bottom-color:#fff;font-weight:600}.navbar-dropdown{position:relative}.navbar-dropdown-trigger{cursor:default;-webkit-user-select:none;user-select:none}.navbar-dropdown-trigger.active{color:#ffffff8c;border-bottom-color:#0000}.navbar-dropdown-menu{z-index:100;background:#1e3354;border-radius:0 0 6px 6px;min-width:140px;padding:4px 0;display:none;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000040}.navbar-dropdown:hover .navbar-dropdown-menu{display:block}.navbar-dropdown-item{font-family:var(--font-sans);color:#ffffff8c;white-space:nowrap;padding:10px 16px;font-size:14px;text-decoration:none;transition:color .15s;display:block}.navbar-dropdown-item:hover{color:#ffffffd9;background:#ffffff12}.navbar-dropdown-item.active{color:#ffffff8c}.card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:8px;flex-direction:column;padding:24px;display:flex}.card-title{font-family:var(--font-sans);color:#374151;margin-bottom:16px;font-size:15px;font-weight:600}.new-item-form{background:var(--color-surface-form);border:1px solid var(--color-accent);border-radius:8px;margin-bottom:8px;padding:20px 24px}.new-item-title{font-family:var(--font-mono);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:600}.col-headers{border-bottom:2px solid var(--color-border-strong);margin-bottom:4px;padding:6px 16px;display:grid}.col-header-label{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);font-size:9px;font-weight:600}.section-divider{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);border-bottom:1px solid var(--color-accent-light);margin-top:4px;margin-bottom:2px;padding-bottom:4px;font-size:9px;font-weight:600}.form-actions{border-top:1px solid var(--color-border);justify-content:space-between;gap:10px;padding-top:16px;display:flex}.form-actions-end{justify-content:flex-end}.form-actions-left,.form-actions-right{gap:10px;display:flex}.item-list{flex-direction:column;gap:6px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-dim);font-size:9px;font-weight:600}.input-field{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);box-sizing:border-box;border-radius:6px;outline:none;width:100%;height:32px;padding:6px 10px;font-size:12px}.input-field:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light)}.input-readonly{font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-surface-alt);border:1px solid var(--color-border-ro);box-sizing:border-box;border-radius:6px;align-items:center;height:32px;padding:6px 10px;font-size:12px;display:flex}.input-readonly.empty{color:var(--color-text-dim)}.input-field.textarea{resize:vertical;height:auto}.date-filter{font-family:var(--font-sans);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;outline:none;padding:6px 12px;font-size:13px}.auto-refresh-toggle{font-family:var(--font-sans);color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.btn{font-family:var(--font-mono);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border:none}.btn-primary:hover:not(:disabled){opacity:.88}.btn-secondary{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt)}.btn-outline-accent{background:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-accent)}.btn-outline-accent:hover:not(:disabled){background:var(--color-accent-light)}.btn-outline-danger{background:var(--color-surface);color:#b91c1c;border:1px solid #fca5a5}.btn-outline-danger:hover:not(:disabled){background:#fff1f2}.btn-sm{padding:4px 10px;font-size:11px}.report-table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:13px}.report-table th{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:8px 16px 8px 0;font-weight:600}.report-table th.right,.report-table td.right{text-align:right;padding-left:8px;padding-right:0}.report-table td{color:var(--color-text);border-bottom:1px solid var(--color-surface-alt);padding:8px 16px 8px 0}.report-table tr:hover td{background:var(--color-surface-alt)}.report-table tfoot td{border-top:2px solid var(--color-border);color:var(--color-text);border-bottom:none;padding-top:10px;font-weight:600}.picking-scroll{max-height:450px;overflow-y:auto}.picking-scroll table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:13px}.picking-scroll thead th{background:var(--color-surface,#fff);z-index:1;text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:8px 16px 8px 0;font-weight:600;position:sticky;top:0}.picking-scroll tfoot td{background:var(--color-surface,#fff);z-index:1;border-top:2px solid var(--color-border);color:var(--color-text);border-bottom:none;padding:10px 16px 8px 0;font-weight:600;position:sticky;bottom:0}.picking-scroll th.right,.picking-scroll td.right{text-align:right;padding-left:8px;padding-right:0}.picking-scroll tbody td{color:var(--color-text);border-bottom:1px solid var(--color-surface-alt);padding:8px 16px 8px 0}.picking-scroll tbody tr:hover td{background:var(--color-surface-alt)}.picking-scroll thead th:last-child,.picking-scroll tbody td:last-child,.picking-scroll tfoot td:last-child{padding-right:12px}.report-page-title{font-family:var(--font-sans);color:#1f2937;font-size:22px;font-weight:700}.badge{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.badge-queued{background:var(--status-queued-bg);color:var(--status-queued-text)}.badge-assembling,.badge-printing{background:var(--status-pending-bg);color:var(--status-pending-text)}.badge-printed{background:var(--status-printed-bg);color:var(--status-printed-text)}.badge-verified,.badge-complete{background:var(--status-success-bg);color:var(--status-success-text)}.badge-failed{background:var(--status-error-bg);color:var(--status-error-text)}.badge-in-progress{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.badge-idle{background:var(--status-printed-bg);color:var(--status-printed-text)}.badge-processing{background:var(--status-pending-bg);color:var(--status-pending-text)}.badge-disabled{background:var(--status-inactive-bg);color:var(--status-inactive-text)}.badge-offline{background:var(--status-error-bg);color:var(--status-error-text)}.badge-unknown,.badge-default{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.callout{font-size:12px;font-weight:600;font-family:var(--font-sans);white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.callout-label{text-transform:uppercase;letter-spacing:.05em;opacity:.75;font-size:10px;font-weight:700}.callout-warning{background:var(--status-pending-bg);color:var(--status-pending-text);border:1px solid #fde047}.callout-error{background:var(--status-error-bg);color:var(--status-error-text);border:1px solid #fca5a5}.text-muted{color:var(--color-text-muted)}.text-dim{color:var(--color-text-dim)}.mono{font-family:var(--font-mono)}.sans{font-family:var(--font-sans)}.delta-positive{color:#15803d}.delta-negative{color:#b91c1c}.tile-row{flex-wrap:wrap;gap:1rem;display:flex}.card-tile{flex:1;min-width:160px}.stat-value{font-family:var(--font-mono);margin-bottom:4px;font-size:2.25rem;font-weight:600;line-height:1}.stat-value-md{font-family:var(--font-mono);font-size:1.75rem;font-weight:600;line-height:1}.stat-label{color:var(--color-text-dim);margin-top:2px;font-size:12px}.stat-delta{margin-top:4px;font-size:13px}.stat-group{gap:1.5rem;margin-top:8px;display:flex}.stat-item{text-align:center}.page-controls{align-items:center;gap:.75rem;display:flex}.btn-group{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:6px;display:flex;overflow:hidden}.btn-group button{font-family:var(--font-mono);border:none;border-right:1px solid var(--color-border-strong);cursor:pointer;color:var(--color-text-muted);white-space:nowrap;background:0 0;padding:6px 13px;font-size:11px;font-weight:400}.btn-group button:last-child{border-right:none}.btn-group button.active{background:var(--color-accent);color:#fff;font-weight:600}.filter-chip{font-family:var(--font-mono);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:400;transition:all .15s;display:inline-flex}.section-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.section-header-count{font-family:var(--font-mono);color:var(--color-text-dim);margin-left:auto;font-size:10px;font-weight:400}.toggle{cursor:pointer;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.toggle-knob{background:#fff;border-radius:50%;width:14px;height:14px;transition:left .2s;position:absolute;top:3px;box-shadow:0 1px 3px #0003}*,:before,:after{box-sizing:border-box;margin:0;padding:0}
