@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--green-50:#f0fdf4;--green-100:#dcfce7;--green-200:#bbf7d0;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;--green-800:#166534;--red-50:#fef2f2;--red-200:#fecaca;--red-700:#b91c1c;--yellow-50:#fefce8;--yellow-200:#fef08a;--yellow-800:#854d0e;--radius:12px;--shadow-sm:0 1px 2px 0 #0000000d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-family:Inter,system-ui,sans-serif}body{background:var(--gray-50);color:var(--gray-900);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3{margin:0 0 .5em;line-height:1.25}a{color:var(--green-700);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}.tb-btn{font:inherit;cursor:pointer;border:1px solid var(--gray-300);color:var(--gray-700);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.tb-btn:hover{background:var(--gray-50);text-decoration:none}.tb-btn:focus-visible{outline:2px solid var(--green-500);outline-offset:2px}.tb-btn:disabled{opacity:.55;cursor:not-allowed}.tb-btn.primary{background:var(--green-600);border-color:var(--green-600);color:#fff}.tb-btn.primary:hover{background:var(--green-700)}.tb-btn.soft{background:var(--green-50);border-color:var(--green-200);color:var(--green-700)}.tb-btn.soft:hover{background:var(--green-100)}.tb-btn.block{width:100%}.tb-field{margin-bottom:14px}.tb-field label{color:var(--gray-600);text-transform:uppercase;letter-spacing:.025em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.tb-input{font:inherit;color:var(--gray-900);border:1px solid var(--gray-300);background:#fff;border-radius:8px;width:100%;padding:11px 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.tb-input:focus{border-color:var(--green-500);outline:none;box-shadow:0 0 0 3px #22c55e33}.tb-card{border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;padding:20px}.tb-alert{border:1px solid;border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.tb-alert.error{background:var(--red-50);border-color:var(--red-200);color:var(--red-700)}.tb-muted{color:var(--gray-500)}.tb-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--green-700);font-size:11px;font-weight:600}.tb-env{z-index:100;text-align:center;letter-spacing:.05em;background:var(--yellow-200);color:var(--yellow-800);padding:3px;font-size:12px;font-weight:700;position:sticky;top:0}body{background:linear-gradient(to bottom right, var(--green-50), #fff 40%, var(--gray-50));min-height:100vh}.page{max-width:72rem;margin:0 auto;padding:24px}.top{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:32px;display:flex}.top img{height:30px}.who{align-items:center;gap:12px;font-weight:500;display:flex}h1{margin-top:6px;font-size:28px}.signin{max-width:24rem;margin:48px auto 0}.signin h1{margin-bottom:4px}.signin .tb-card{margin-top:20px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.portal{flex-direction:column;gap:6px;display:flex}.portal h2{margin:0;font-size:17px}.portal p{margin:0}.portal .companies{color:var(--gray-400);flex:1;font-size:12px}.portal .note{color:var(--gray-500);border-top:1px solid var(--gray-100);padding-top:10px;font-size:13px}.portal .tb-btn{margin-top:10px}@media (width<=520px){.page{padding:16px}}.google{margin-bottom:6px}.signin .small{text-align:center;margin:0 0 4px;font-size:12px}.divider{text-align:center;color:var(--gray-400);margin:16px 0 12px;font-size:12px}.crumbs{color:var(--gray-500);margin-bottom:8px;font-size:13px}.head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:8px 0 16px;display:flex}.head h1,.head h2{margin:0}.small-code{margin-left:6px;font-size:14px;font-weight:500}.tabs{border-bottom:1px solid var(--gray-200);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs a{color:var(--gray-600);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 14px;font-weight:500}.tabs a:hover{color:var(--gray-900);text-decoration:none}.tabs a.active{color:var(--green-700);border-bottom-color:var(--green-600)}.tb-card.flush{padding:0;overflow-x:auto}.tb-card.form-card{margin-bottom:16px}@media (width<=720px){.tb-card:not(.flush) .tb-table{display:block;overflow-x:auto}}.tb-table{border-collapse:collapse;width:100%;font-size:14px}.tb-table th,.tb-table td{text-align:left;border-bottom:1px solid var(--gray-100);vertical-align:top;padding:11px 16px}.tb-table th{background:var(--gray-50);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.tb-table tr:last-child td{border-bottom:0}.tb-table tr.inactive td{color:var(--gray-400)}.tb-table .right{text-align:right}.nowrap{white-space:nowrap}.mono{white-space:nowrap;font-family:ui-monospace,Menlo,monospace}.details{color:var(--gray-500);word-break:break-word;max-width:420px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.chip{background:var(--green-50);color:var(--green-800);border:1px solid var(--green-200);border-radius:999px;margin:0 4px 4px 0;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.you{color:var(--gray-500);border:1px solid var(--gray-200);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:11px}button.link{font:inherit;color:var(--green-700);cursor:pointer;background:0 0;border:0;padding:0 0 0 12px;font-weight:500}button.link:hover{text-decoration:underline}button.link.danger{color:var(--red-700)}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid3{grid-template-columns:2fr 1fr 1fr;gap:0 16px;display:grid}@media (width<=640px){.grid2,.grid3{grid-template-columns:1fr}}.actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.checks,.role-picker fieldset{border:1px solid var(--gray-200);border-radius:8px;margin:0 0 12px;padding:10px 14px}.checks legend,.role-picker legend{color:var(--gray-600);text-transform:uppercase;letter-spacing:.03em;padding:0 4px;font-size:12px;font-weight:600}.checks label,.role-picker label{padding:3px 0;font-size:14px;display:block}.role-picker{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 12px;display:grid}.check{align-items:center;gap:8px;margin:4px 0 8px;font-size:14px;display:flex}.saved{color:var(--green-700);font-weight:600}.small{font-size:12px}.pin-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pin-form .tb-input{width:110px}.pairing-code{font-family:var(--font-mono,monospace);letter-spacing:.12em;margin:8px 0;font-size:32px;font-weight:700}.pairing{flex-wrap:wrap;align-items:center;gap:20px;margin:8px 0;display:flex}.pairing svg{background:#fff;border-radius:8px}.tb-alert.warn{background:var(--yellow-50);border-color:var(--yellow-200);color:var(--yellow-800)}.tb-alert{margin-bottom:12px}textarea.tb-input{resize:vertical;font:inherit}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:0 16px;margin-bottom:12px;display:flex}.toolbar .tb-field{min-width:180px}.tb-table tr.voided td{color:var(--gray-400)}.tb-table tr.voided td.struck{text-decoration:line-through}.tb-table td.edit-cell{background:var(--gray-50)}.reason-form{max-width:480px;margin:8px 0 4px;display:block}.status{white-space:nowrap;background:var(--gray-100);color:var(--gray-700);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.status-planned,.status-loading,.status-in_transit{background:var(--yellow-50);color:var(--yellow-800)}.status-collected,.status-delivered,.status-ok{background:var(--green-50);color:var(--green-800)}.status-cancelled,.status-voided,.status-blocked{background:var(--red-50);color:var(--red-700)}.facts{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 24px;margin:0;display:grid}.facts dt{color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.facts dd{margin:2px 0 0}.section{margin-top:24px}.flag{font-size:15px;font-weight:600}.danger-text{color:var(--red-700)}.tb-table tfoot th{border-top:1px solid var(--gray-200)}.tb-table tr.voided span.struck{text-decoration:line-through}.status-accepted,.status-available,.status-open,.status-released{background:var(--green-50);color:var(--green-800)}.status-on_hold,.status-qa_hold,.status-building{background:var(--yellow-50);color:var(--yellow-800)}.status-rejected,.status-written_off{background:var(--red-50);color:var(--red-700)}.sscc{font-family:var(--font-mono,monospace);letter-spacing:.04em;font-size:18px}.lot-lines .tb-input{min-width:80px}.lot-lines td{vertical-align:top}.differs{color:var(--red-700);font-weight:600}.checks-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 16px;margin:8px 0 12px;display:grid}.timesheet td.day,.timesheet th.day{text-align:right;white-space:nowrap}.timesheet .off{color:var(--gray-400)}.flag{background:var(--red-50);color:var(--red-700);border:1px solid var(--red-200);white-space:nowrap;border-radius:999px;margin:1px 2px 1px 0;padding:1px 6px;font-size:.75rem;display:inline-block}.week-nav{align-items:center;gap:12px;margin-bottom:12px;display:flex}.shifts{background:var(--gray-50)}.shifts td{font-size:.875rem}.checklist label{margin:4px 0;display:block}.linklike{font:inherit;color:var(--green-700);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.linklike:hover{text-decoration:underline}fieldset.plain{border:0;min-width:0;margin:0;padding:0}.tabs button.tab{color:var(--gray-700);padding:8px 12px}.tabs button.tab.active{color:var(--green-700);border-bottom:2px solid var(--green-700);text-decoration:none}.print-only{display:none}.doc.payslip{margin-bottom:16px}@media print{html body .print-only{display:block}html body .doc.payslip{break-after:page;page-break-after:always}}.training-matrix td.cell-ok{background:var(--green-50);color:var(--green-700)}.training-matrix td.cell-warn{background:var(--yellow-50);color:var(--yellow-800)}.training-matrix td.cell-bad{background:var(--red-50);color:var(--red-700)}.training-matrix th,.training-matrix td{text-align:center}.training-matrix th:first-child,.training-matrix td:first-child{text-align:left}.doc-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.doc-toolbar .spacer{flex:1}.doc{overflow-wrap:anywhere;color:#000;box-sizing:border-box;border:1px solid var(--gray-200);background:#fff;max-width:210mm;padding:14mm 14mm 18mm;font-family:Arial,Helvetica,sans-serif;font-size:9.5pt;line-height:1.35}.doc h1{letter-spacing:.02em;margin:0 0 2mm;font-size:18pt}.doc .doc-top{justify-content:space-between;gap:10mm;margin-bottom:8mm;display:flex}.doc .doc-meta{text-align:right}.doc .doc-meta div{white-space:nowrap}.doc .parties{grid-template-columns:1fr 1fr;gap:8mm;margin-bottom:6mm;display:grid}.doc .k{text-transform:uppercase;letter-spacing:.04em;color:#444;margin-bottom:1mm;font-size:7.5pt}.doc .addr{white-space:pre-line}.doc .shipping{border-top:.3mm solid #000;border-bottom:.3mm solid #000;grid-template-columns:repeat(4,1fr);gap:3mm 6mm;margin-bottom:6mm;padding:3mm 0;display:grid}.doc .table-wrap{overflow-x:auto}.doc table{border-collapse:collapse;width:100%}.doc th{text-align:left;text-transform:uppercase;letter-spacing:.04em;border-bottom:.3mm solid #000;padding:1.5mm 2mm 1.5mm 0;font-size:7.5pt}.doc td{vertical-align:top;border-bottom:.1mm solid #ccc;padding:1.5mm 2mm 1.5mm 0}.doc .num{text-align:right;white-space:nowrap}.doc .mono{font-family:Courier New,monospace}.doc tfoot td{border-bottom:none;font-weight:700}.doc .totals{width:75mm;margin-top:4mm;margin-left:auto}.doc .totals div{justify-content:space-between;padding:1mm 0;display:flex}.doc .totals .grand{border-top:.3mm solid #000;font-size:11pt;font-weight:700}.doc .payment{border:.3mm solid #000;width:fit-content;margin-top:6mm;padding:2mm 3mm}.doc .foot{color:#333;margin-top:8mm;font-size:8pt}.doc .pallet-row td{background:#f3f3f3;font-weight:700}@media print{@page{size:A4;margin:0}html body .tb-env,html body .top,html body .crumbs,html body .head,html body .tabs,html body .doc-toolbar,html body .no-print,html body .tb-alert{display:none}html body .page,html body main{max-width:none;margin:0;padding:0}html body{background:#fff}html body .doc{border:none;max-width:none}}.print-toolbar{align-items:center;gap:16px;margin-bottom:16px;display:flex}.print-toolbar span{flex:1}.label{color:#000;box-sizing:border-box;page-break-after:always;break-after:page;background:#fff;border:1px dashed #bbb;margin:0 0 12px;padding:3mm 4mm;font-family:Arial,Helvetica,sans-serif;font-size:8pt;line-height:1.25;overflow:hidden}.box-label{width:100mm;height:70mm}.pallet-label{flex-direction:column;width:100mm;height:150mm;font-size:10pt;display:flex}.pallet-label .barcodes{margin-top:auto}.label .row{justify-content:space-between;gap:3mm;margin-bottom:2mm;display:flex}.label .two>.blk{border:.3mm solid #000;flex:1;padding:1mm 1.5mm}.label .big{font-size:14pt;font-weight:700}.label .k{text-transform:uppercase;letter-spacing:.03em;color:#333;font-size:6.5pt}.label .qr{flex:none;width:15mm}.label .qr svg{width:15mm;height:15mm;display:block}.label .v{font-weight:700}.label .right{text-align:right}.label .mono{font-family:Courier New,monospace}.label .barcode svg{width:100%;height:auto;max-height:22mm}.pallet-label .sscc-box{border-top:.4mm solid #000;border-bottom:.4mm solid #000;margin:2mm 0;padding:1.5mm 0}.pallet-label .sscc-big{font-family:Courier New,monospace;font-size:15pt;font-weight:700}.pallet-label table{border-collapse:collapse;width:100%;margin-bottom:2mm}.pallet-label td{vertical-align:top;padding:.6mm 0}.pallet-label .barcode{margin-top:2mm}.pallet-label .barcode svg{max-height:30mm}@media print{html body .tb-env,html body .top,html body .crumbs,html body .head,html body .tabs,html body .print-toolbar,html body .tb-alert{display:none}html body .page,html body main{max-width:none;margin:0;padding:0}html body{background:#fff}html body .label{border:none;margin:0}}.trace-search{flex-wrap:wrap;align-items:flex-end;gap:0 16px;margin-bottom:16px;display:flex}.trace-search .tb-field{min-width:200px}.trace-report h2{margin:0 0 4px}.trace-report h3{margin:0 0 8px;font-size:16px}.trace-report h4{color:var(--gray-600);margin:16px 0 6px;font-size:13px;font-weight:600}.trace-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.trace-section{margin-top:28px}.trace-section>h3{border-bottom:2px solid var(--gray-200);padding-bottom:4px}.trace-item{margin-bottom:16px;padding:16px}.trace-item.start{border-left:4px solid var(--green-700,#2f7d32)}.trace-balance{margin-top:12px;font-weight:600}.trace-report .tb-table{width:100%}.retrace{font:inherit}@media print{html body .tb-env,html body .top,html body .crumbs,html body .head,html body .tabs,html body .trace-search,html body .no-print{display:none}html body .page,html body main{max-width:none;margin:0;padding:0}html body{background:#fff;font-size:11px}html body .trace-report a{color:inherit;text-decoration:none}html body .trace-item{break-inside:avoid;box-shadow:none;border:1px solid #ccc}html body .trace-section>h3{break-after:avoid}}.public-trace{max-width:480px;margin:0 auto;padding:24px 16px 48px}.public-trace .pt-brand{letter-spacing:.02em;color:var(--green-700);margin-bottom:16px;font-weight:800}.public-trace h1{margin:0 0 4px;font-size:1.5rem}.public-trace dl{grid-template-columns:max-content 1fr;gap:10px 16px;margin:20px 0 0;display:grid}.public-trace dt{color:var(--gray-600)}.public-trace dd{margin:0;font-weight:600}
