:root{--bg: #f4f6f8;--surface: #ffffff;--ink: #16212d;--ink-soft: #5b6b7c;--line: #dde3ea;--accent: #2f6fb0;--accent-soft: #e8f0f8;--warn: #a8620a;--warn-soft: #fdf1e0;--danger: #a32f2f;--danger-soft: #fbeaea;--radius: 8px;--shadow: 0 1px 2px rgba(22, 33, 45, .06), 0 1px 8px rgba(22, 33, 45, .04);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:var(--surface)}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:baseline;gap:10px}.brand .logo{align-self:center;flex:none}.brand strong{font-size:16px}.brand span{color:var(--ink-soft);font-size:13px}.brand .back{padding:2px 9px;align-self:center}.topbar .new-request{margin-left:auto}.lang-toggle{display:flex;margin-left:auto}.lang-toggle button{border-radius:0;padding:4px 10px;font-size:12px}.lang-toggle button:first-child{border-radius:6px 0 0 6px}.lang-toggle button:last-child{border-radius:0 6px 6px 0;border-left:none}.lang-toggle .active{background:var(--accent);color:#fff;border-color:var(--accent)}.lang-toggle .active:hover{color:#fff}.centered{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);background:var(--surface);padding:40px 32px;text-align:center;max-width:520px;width:100%;transition:border-color .15s,background .15s}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone.busy{opacity:.7}.dropzone-prompt{margin:0 0 4px;font-size:15px;font-weight:500}.dropzone-hint{margin:0 0 16px;color:var(--ink-soft);font-size:12px}.chip{display:inline-block;border-radius:10px;padding:1px 9px;font-size:12px;font-weight:600}.chip.warn{background:var(--warn-soft);color:var(--warn)}.notice{margin:10px 16px;padding:9px 12px;border-radius:6px;font-size:13px}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.error{background:var(--danger-soft);color:var(--danger)}.empty{color:var(--ink-soft)}@media(max-width:900px){.topbar{flex-wrap:wrap;gap:12px}}.upload-card{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:grid;gap:14px}.picked-files{list-style:none;margin:0;padding:0;display:grid;gap:6px}.picked-files li{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:13px}.picked-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picked-files .link{flex:none;font-size:12px}.upload-options{display:grid;grid-template-columns:1fr auto auto;gap:12px}.upload-options label{display:grid;gap:4px;font-size:12px;color:var(--ink-soft)}.upload-options input{width:90px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;padding:9px 16px;font-weight:500}button.primary:hover:not(:disabled){color:#fff;filter:brightness(1.08)}.job-bar{margin:12px 16px 0;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.job-state{display:flex;align-items:center;gap:12px}.job-state progress{flex:1;height:8px}.job-pct{color:var(--ink-soft);font-size:12px;min-width:44px;text-align:right}.job-eta{color:var(--ink-soft);font-size:12px;white-space:nowrap}.job-stages{margin:6px 0 0;color:var(--ink-soft);font-size:12px}.questions{display:grid;gap:10px;margin-top:12px;justify-items:start}.questions fieldset{border:1px solid var(--line);border-radius:6px;padding:8px 12px 12px;margin:0;width:100%}.questions legend{font-size:12px;color:var(--ink-soft);padding:0 4px}.chip.state{background:var(--accent-soft);color:var(--accent)}.chip.state.error{background:var(--danger-soft);color:var(--danger)}.warnings{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.warning{display:grid;gap:2px;padding:7px 10px;border-radius:6px;background:var(--bg);border-left:3px solid var(--line);font-size:12px}.warning.warn{border-left-color:var(--warn);background:var(--warn-soft)}.warning-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.warning-head code{color:var(--ink-soft);font-size:12px}.warning-count{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:0 6px}.warning-stage{color:var(--ink-soft);font-size:12px;margin-left:auto}.warning-message{line-height:1.45}button.link.warnings-toggle{margin-top:8px;font-size:12px;color:var(--ink-soft)}.chip.sev.info{background:var(--accent-soft);color:var(--accent)}.chip.sev.warn{background:var(--warn-soft);color:var(--warn)}.quiet{color:var(--ink-soft);font-weight:400;font-size:12px}button.link{border:none;background:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px}button.link:hover:not(:disabled){filter:brightness(1.15)}.signin-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:grid;gap:14px}.signin-tabs{display:flex}.signin-tabs button{border-radius:0;flex:1;padding:8px 10px}.signin-tabs button:first-child{border-radius:6px 0 0 6px}.signin-tabs button:last-child{border-radius:0 6px 6px 0;border-left:none}.signin-tabs .active{background:var(--accent);color:#fff;border-color:var(--accent)}.signin-tabs .active:hover{color:#fff}.signin-lead{margin:0;color:var(--ink-soft)}.signin-card form{display:grid;gap:12px}.signin-card label{display:grid;gap:4px;font-size:12px;color:var(--ink-soft)}.signin-card input{width:100%}.signin-actions{display:flex;gap:10px;align-items:center}.signin-actions .primary{flex:1}.signin-foot{margin:0}.notice.claimed{background:var(--accent-soft);color:var(--accent);display:flex;align-items:baseline;gap:10px;justify-content:space-between}.account{width:min(880px,100%);margin:0 auto;padding:20px 16px 40px;display:grid;gap:20px;align-content:start}.account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.account-head h1{margin:0 0 2px;font-size:20px}.account-head p{margin:0}.account-jobs,.account-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.account-jobs h2,.account-form h2{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.account-jobs table{width:100%;border-collapse:collapse;font-size:13px}.account-jobs th{text-align:left;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:0 10px 6px 0;border-bottom:1px solid var(--line)}.account-jobs td{padding:8px 10px 8px 0;border-bottom:1px solid var(--line)}.account-jobs tr:last-child td{border-bottom:none}.account-jobs .numeric{text-align:right;font-variant-numeric:tabular-nums}.account-jobs .tag{margin-left:6px;padding:1px 5px;border-radius:4px;background:var(--warn-soft);color:var(--warn);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.account-form p{margin:0 0 12px}.account-form form{display:grid;gap:12px;max-width:420px}.account-form label{display:grid;gap:4px;font-size:12px;color:var(--ink-soft)}.account-form input{width:100%}.account-form .notice{margin:0}.account-form button.primary{justify-self:start}.account.admin-wide{width:min(1240px,100%)}.admin-tabs{display:flex;gap:8px}.admin-tabs button{padding:6px 14px}.admin-tabs .active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-tabs .active:hover{color:#fff}.disabled-row td{opacity:.55}.disabled-row .tag{opacity:1}.account-jobs select{padding:4px 6px;font-size:13px}@media(max-width:900px){.account-jobs{overflow-x:auto}.account-jobs table{min-width:640px}.admin-tabs{flex-wrap:wrap}}.account-form select{width:100%}.notice.unsaved-guard{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}.notice.verify-note{background:var(--warn-soft);color:var(--warn);display:flex;align-items:baseline;gap:10px;justify-content:space-between}.customers-search{display:flex;gap:8px;align-items:center;margin:0 0 12px}.customers-search input{flex:1;max-width:320px}.customers-pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.issued-key{border-color:var(--accent)}.issued-key .key-value{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);word-break:break-all;-webkit-user-select:all;user-select:all}.issued-key .signin-actions{margin-bottom:12px}.issued-key .checkbox{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;color:var(--ink)}.issued-key .checkbox input{width:auto}.account-form label.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.account-form label.checkbox input{width:auto}.shop-jobs>.quiet{margin:0 0 12px}.jobs-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px}.jobs-filters .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:12px}.jobs-filters .chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.jobs-filters .chip.active:hover{color:#fff}.jobs-filters .chip-count{opacity:.65;font-variant-numeric:tabular-nums}.jobs-refine{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:14px}.jobs-picker{display:flex;flex-direction:column;gap:3px}.jobs-picker select{max-width:220px}.jobs-search{display:flex;gap:6px;align-items:center}.jobs-search input{width:230px}.jobs-refine>.link{padding-bottom:6px}.account-jobs .small,.shop-jobs .small{font-size:12px}.shop-jobs .failure-why{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:34ch}.shop-jobs td{vertical-align:top}.shop-jobs .tag{display:inline-block;margin:0;padding:2px 7px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:12px;white-space:nowrap}.shop-jobs .tag.outcome-failed{background:var(--danger-soft);color:var(--danger)}.shop-jobs .tag.referred{margin-left:6px;background:var(--accent-soft);color:var(--accent)}.shop-jobs .tag.outcome-awaiting_customer{background:var(--warn-soft);color:var(--warn)}.shop-jobs .tag.outcome-received,.shop-jobs .tag.outcome-running{background:var(--bg);color:var(--ink-soft)}.account-jobs h3{margin:16px 0 2px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.account-jobs h3:first-child{margin-top:0}.account-jobs td code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.account-jobs td .notice{margin:6px 0 0}.privacy{width:100%;max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;text-align:left;line-height:1.55}.privacy h2{margin:0 0 6px}.privacy h3{margin:20px 0 6px;font-size:13px}.privacy p{margin:0 0 4px}.privacy ul{margin:0;padding-left:18px;display:grid;gap:6px}.privacy li{font-size:13px}.privacy>.link{margin-top:22px}.upload-card>.link.quiet{justify-self:center;margin-top:-4px}.link.danger{color:var(--danger)}button.danger{border-color:var(--danger);color:var(--danger)}button.primary.danger{background:var(--danger);border-color:var(--danger);color:#fff}.account-row-actions{display:flex;gap:14px;justify-content:flex-end}.notice.error .failure-headline{margin:0 0 4px;font-weight:600}.notice.error p{margin:0}.job-bar.awaiting{border-left:3px solid var(--accent);background:var(--accent-soft)}.job-bar.awaiting .questions fieldset{background:var(--surface)}.awaiting-card{width:min(720px,100%);margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;text-align:center}.awaiting-card h2{margin:0 0 6px;font-size:17px}.awaiting-card p{margin:0 0 12px}.awaiting-card .questions{justify-items:stretch;text-align:left;margin:16px 0 14px;padding-top:14px;border-top:1px solid var(--line)}.awaiting-card .questions select,.awaiting-card .questions input{width:100%}.awaiting-card .questions button[type=submit]{justify-self:start;background:var(--accent);border-color:var(--accent);color:#fff}.awaiting-card .questions button[type=submit]:disabled{opacity:.55}.upload-column{display:grid;gap:14px;justify-items:center;width:100%;max-width:560px}.resume-card{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.resume-card h3{margin:0 0 2px;font-size:13px}.resume-card p{margin:0}.resume-actions{display:flex;gap:14px;margin-top:8px;font-size:13px}.upload-aside{margin:0}.job-done{width:min(560px,100%);display:grid;gap:12px;justify-items:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;text-align:left}@media(max-width:620px){.upload-column{max-width:100%;min-width:0;justify-items:stretch}.upload-card{max-width:100%}.upload-options{grid-template-columns:1fr}.upload-options input{width:100%}.dropzone{padding:28px 16px}}@media(max-width:900px){.centered{flex-direction:column;align-items:stretch;padding:20px 16px}.upload-column{max-width:none}}.catalog-line{cursor:pointer}.catalog-line:hover,.catalog-line.open td{background:var(--accent-soft)}.catalog-line code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.catalog-line .tag{margin-left:6px}.account-jobs .tag.problem{background:var(--warn-soft);color:var(--warn)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section-head h2{margin-bottom:0}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 14px;align-items:start;margin-bottom:10px}.field{display:grid;gap:4px;font-size:12px;color:var(--ink-soft)}.field-label{font-size:12px}.field-input{display:flex;align-items:center;gap:6px}.field-input input[type=text],.field-input select{width:100%;font-variant-numeric:tabular-nums}.field-input input[type=checkbox]{width:auto}.field-suffix{color:var(--ink-soft);font-size:12px;white-space:nowrap}.field-hint{font-size:12px;line-height:1.45}.field.invalid input{border-color:var(--danger)}.field.readonly .field-input{color:var(--ink);font-size:13px;min-height:30px}.field.bare{gap:0}.field.bare input{padding:3px 6px;font-size:13px;text-align:right}.catalog fieldset{border:1px solid var(--line);border-radius:6px;padding:10px 12px 12px;margin:0 0 12px}.catalog fieldset legend{padding:0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.account-form.catalog{margin-bottom:12px}.account-form.catalog h2{margin-bottom:8px}.k-row{align-items:end}.detail-actions{display:flex;align-items:center;gap:14px;margin-top:12px}.row-actions{display:inline-flex;gap:10px;white-space:nowrap}.account-jobs tr.row-error td{padding-top:0}.account-jobs tr.row-error .notice{margin:0 0 6px}.problem-list{margin:0;padding-left:18px;font-size:13px}.problem-list li{margin:2px 0}.die-grid{overflow-x:auto}.die-cell{display:grid;gap:2px;min-width:110px}.die-cell select{width:100%;padding:3px 6px;font-size:13px}.die-cell.missing select{border-color:var(--warn)}.die-error{color:var(--danger);font-size:12px}.stock-filter{display:flex;flex-wrap:wrap;gap:4px 18px}.stock-picker{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:14px}.stock-picker select{flex:1;max-width:340px}.size-pair{display:inline-flex;align-items:center;gap:4px}.size-pair .field.bare input{width:80px}.account-jobs td .field.bare input{min-width:64px}
