*,:before,:after{box-sizing:border-box;margin:0}:root{--bg:#0a0a14;--bg-secondary:#0f0f1f;--card:#12122a;--card-border:#ffffff0f;--text:#f1f5f9;--text-secondary:#ffffff8c;--text-muted:#ffffff52;--border:#ffffff14;--border-light:#ffffff0a;--input-bg:#ffffff0d;--accent:#a78bfa;--accent-hover:#8b5cf6;--accent-light:#8b5cf61f;--accent-border:#8b5cf640;--gradient:linear-gradient(135deg,#8b5cf6,#ec4899);--green:#10b981;--green-light:#10b9811f;--green-border:#10b98147;--red:#ef4444;--red-light:#ef444421;--red-border:#ef44444d;--orange:#f59e0b;--orange-light:#f59e0b1f;--orange-border:#f59e0b4d;--blue:#38bdf8;--blue-light:#38bdf81f;--blue-border:#38bdf847;--shadow:0 1px 3px #0003;--shadow-md:0 4px 16px #0000004d;--shadow-lg:0 12px 40px #0006;--radius:16px;--radius-md:12px;--radius-sm:8px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app{background:var(--bg);min-height:100vh;color:var(--text)}.app-inner{max-width:1100px;margin:0 auto;padding:24px}.app select,.app input{color:var(--text);background:var(--input-bg);border-color:var(--border)}.app select option{background:var(--card);color:var(--text)}.header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.header-left{flex-direction:column;gap:2px;display:flex}.header-title{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:800}.header-sub{color:var(--text-secondary);font-size:12px}.header-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot--ok{background:var(--green)}.dot--off{background:var(--text-muted)}.muted{color:var(--text-secondary)}.text-sm{font-size:13px}.text-xs{font-size:11px}.controls{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;display:flex}.control-group{align-items:center;gap:6px;display:flex}.control-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.select{appearance:none;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%23a78bfa'%3E%3Cpath d='M5 7L0 2h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:7px 30px 7px 10px;font-size:12px}.seg{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:12px;font-weight:600}.seg button.is-active{background:var(--accent-light);color:var(--accent)}.btn{border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--gradient);color:#fff;border:none}.btn--primary:hover:not(:disabled){box-shadow:0 4px 16px #8b5cf640}.btn--ghost{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn--ghost:hover{background:var(--input-bg);color:var(--text)}.btn--stop{border-color:var(--red-border);color:var(--red)}.btn--stop:hover{background:var(--red-light)}.btn--sm{padding:5px 12px;font-size:12px}.btn--lg{border-radius:var(--radius-md);padding:12px 24px;font-size:14px}.progress-bar-wrap{background:var(--accent-light);border:1px solid var(--accent-border);border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 16px}.progress-bar-text{color:var(--accent);margin-bottom:8px;font-size:13px;font-weight:600}.progress-bar{background:var(--border);border-radius:999px;height:4px;overflow:hidden}.progress-bar-fill{background:var(--gradient);border-radius:999px;height:100%;animation:1.5s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%{width:20%}50%{width:80%}to{width:20%}}.msg-error{color:var(--red);background:var(--red-light);border-radius:var(--radius-sm);border:1px solid var(--red-border);justify-content:space-between;align-items:center;margin:8px 0;padding:10px 14px;font-size:13px;display:flex}.msg-error-close{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.center{place-items:center;min-height:calc(100vh - 80px);padding:40px 20px;display:grid}.center-card{background:var(--card);border:1px solid var(--card-border);box-shadow:var(--shadow-lg);text-align:center;border-radius:20px;max-width:520px;padding:48px 40px}.center-card h2{margin:0 0 10px;font-size:20px;font-weight:800}.counters{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:20px;display:grid}.counter{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:14px 16px}.counter-val{font-size:26px;font-weight:800;line-height:1.05}.counter-label{color:var(--text-secondary);align-items:center;gap:4px;margin-top:2px;font-size:11px;font-weight:600;display:flex}.counter--ok .counter-val{color:var(--green)}.counter--warn .counter-val{color:var(--red)}.counter--info .counter-val{color:var(--blue)}.counter--bad .counter-val{color:var(--text-muted)}.counter--pers .counter-val{color:var(--accent)}.counter--collide{border-color:var(--orange-border)}.counter--collide .counter-val{color:var(--orange)}.receipt{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.receipt-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.receipt-id{font-size:14px;font-weight:800}.receipt-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.chip{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.chip--paid{background:var(--green-light);color:var(--green);border:1px solid var(--green-border)}.chip--unshipped{background:var(--orange-light);color:var(--orange);border:1px solid var(--orange-border)}.chip--shipped{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--border)}.chip--nopf{background:var(--blue-light);color:var(--blue);border:1px solid var(--blue-border)}.line{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:14px;padding:14px 18px;display:flex}.line:last-child{border-bottom:none}.line--mismatch{background:var(--red-light);border-left:3px solid var(--red)}.line--confirmed{border-left:3px solid var(--green)}.line--resolved{border-left:3px solid var(--blue)}.line--unresolved{border-left:3px solid var(--text-muted);background:#ffffff05}.line-status{flex-shrink:0;width:150px}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:800;display:inline-flex}.status-badge--confirmed{background:var(--green-light);color:var(--green);border:1px solid var(--green-border)}.status-badge--mismatch{background:var(--red-light);color:var(--red);border:1px solid var(--red-border)}.status-badge--resolved{background:var(--blue-light);color:var(--blue);border:1px solid var(--blue-border)}.status-badge--unresolved{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--border)}.line-body{flex:1;min-width:0}.line-title{margin-bottom:4px;font-size:13px;font-weight:600}.line-sku{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.line-detail{color:var(--text-secondary);margin-top:5px;font-size:11px;line-height:1.5}.line-reason{color:var(--red);margin-top:5px;font-size:11px;font-weight:600}.compare{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.compare-side{border-radius:var(--radius-sm);background:var(--input-bg);border:1px solid var(--border);flex:1;min-width:160px;padding:8px 10px;font-size:11px}.compare-side h5{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 3px;font-size:10px}.pers-badge{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-border);border-radius:999px;align-items:center;gap:4px;margin-top:6px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-flex}.pers-list{border-left:2px solid var(--accent-border);margin-top:6px;padding-left:10px;font-size:11px}.pers-list div{margin-bottom:2px}.pers-list a{color:var(--accent)}.pers-name{font-weight:700}.note{color:var(--text-muted);margin:6px 0 18px;font-size:11px;line-height:1.6}.catalog-status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:-6px 0 16px;padding:0 2px;display:flex}.catalog-refreshing{color:var(--text-muted);font-style:italic}.cutoff-clock{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-weight:700}.cutoff-clock--alert{color:var(--red)}.cutoff-edit{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 14px;padding:10px 14px;display:flex}.partial-link{color:var(--red);margin-left:10px;font-weight:800;text-decoration:underline;display:inline-block}.line-reason-soft{color:var(--text-muted);margin-top:4px;font-size:11px}.tax-shop{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--input-bg);margin:12px 0;padding:12px}.tax-summary{margin-bottom:4px;font-size:13px;font-weight:700}.probe-section{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.probe-result{border:1px solid var(--green-border);background:var(--green-light);border-radius:var(--radius-sm);margin-top:10px;padding:12px}.probe-result--danger{border-color:var(--red-border);background:var(--red-light)}.probe-result--warn{border-color:var(--orange-border);background:var(--orange-light)}.probe-breakdown{flex-wrap:wrap;gap:14px;font-size:13px;font-weight:600;display:flex}.probe-tax{color:var(--red);font-size:15px;font-weight:800}.probe-ok{color:var(--green);margin-top:6px;font-size:12px;font-weight:800}.app-footer{border-top:1px solid var(--border);text-align:center;margin-top:36px;padding:16px 0}.app-footer p{color:var(--text-muted);margin:0;font-size:11px}.counter--drop{border-color:var(--red-border)}.counter--drop .counter-val{color:var(--red)}.counter--auto .counter-val{color:var(--blue)}.counter--queue .counter-val{color:var(--accent)}.counter--unmap .counter-val{color:var(--text-muted)}.status-badge--dropped{background:var(--red-light);color:var(--red);border:1px solid var(--red-border)}.status-badge--auto{background:var(--blue-light);color:var(--blue);border:1px solid var(--blue-border)}.status-badge--queue{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-border)}.status-badge--unmapped{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--border)}.line--dropped{background:var(--red-light);border-left:3px solid var(--red)}.line--auto{border-left:3px solid var(--blue)}.line--queue{border-left:3px solid var(--accent)}.line--unmapped{border-left:3px solid var(--text-muted);background:#ffffff05}.line-status-chip{margin-top:6px}.line-sub{color:var(--text-secondary);margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.tag-digital{font-family:var(--font);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700}.receipt--partial{border-color:var(--red-border);box-shadow:0 0 0 1px var(--red-border)}.partial-banner{background:var(--red-light);border-bottom:1px solid var(--red-border);color:var(--red);padding:9px 18px;font-size:12px;line-height:1.5}.partial-banner strong{font-weight:800}.chip--hold{background:var(--orange-light);color:var(--orange);border:1px solid var(--orange-border)}.chip--prod{background:var(--blue-light);color:var(--blue);border:1px solid var(--blue-border)}.chip--done{background:var(--green-light);color:var(--green);border:1px solid var(--green-border)}.chip--cancel{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--border)}.queue-detail{margin-top:6px}.refs{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.refs-label{color:var(--text-muted);font-size:11px;font-weight:700}.ref-pill{background:var(--input-bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:3px 9px;font-size:11px}.panel{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow);margin:18px 0}.panel-summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:14px 18px;font-size:14px;font-weight:800;list-style:none}.panel-summary::-webkit-details-marker{display:none}.panel-summary:before{content:"▸";color:var(--text-muted);margin-right:8px;transition:transform .15s;display:inline-block}.panel[open] .panel-summary:before{transform:rotate(90deg)}.table-wrap{padding:0 6px 6px;overflow-x:auto}.map-table{border-collapse:collapse;width:100%;font-size:12px}.map-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px}.map-table th.sortable{cursor:pointer}.map-table th.is-sort{color:var(--accent)}.map-table td{border-bottom:1px solid var(--border-light);vertical-align:top;padding:9px 12px}.map-title{color:var(--text);font-weight:600}.map-id{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.class-badge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:800}.class-badge--stable{background:var(--green-light);color:var(--green);border:1px solid var(--green-border)}.class-badge--perorder{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-border)}.class-badge--thin{background:var(--input-bg);color:var(--text-secondary);border:1px solid var(--border)}.drawer .drawer-body{padding:6px 18px 16px}.drawer .counters{margin-bottom:10px}.gen-panel{border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--accent-light);margin-top:10px;padding:14px}.gen-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.gen-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.gen-search{margin-bottom:10px}.gen-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);padding:8px 10px;font-size:13px}.gen-results{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);max-height:200px;margin-top:6px;overflow-y:auto}.gen-result{text-align:left;width:100%;font:inherit;border:none;border-bottom:1px solid var(--border-light);color:var(--text);cursor:pointer;background:0 0;padding:8px 10px;font-size:12px;display:block}.gen-result:hover{background:var(--input-bg)}.gen-thumbs{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.gen-thumb{object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;background:var(--input-bg);border:2px solid #0000;width:56px;height:56px}.gen-thumb.is-sel{border-color:var(--accent)}.gen-fields{flex-wrap:wrap;gap:10px;margin:8px 0;display:flex}.gen-field{flex-direction:column;flex:1;gap:4px;min-width:180px;display:flex}.gen-field--model{flex:none;min-width:200px}.gen-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.gen-buyertext{color:var(--text-secondary);margin-top:10px;font-size:12px}.gen-compare{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.gen-fig{flex:1;min-width:220px;margin:0}.gen-fig figcaption{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px;font-size:10px}.gen-fig img{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;width:100%}.gen-placeholder{border:1px dashed var(--border);border-radius:var(--radius-sm);place-items:center;min-height:160px;display:grid}.gen-create{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.gen-create-form{flex-direction:column;gap:8px;display:flex}.gen-created{border:1px solid var(--green-border);background:var(--green-light);border-radius:var(--radius-sm);padding:12px}.gen-created-title{color:var(--green);margin-bottom:4px;font-size:13px;font-weight:800}.gen-candidates{margin-top:10px}.gen-cand-row{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.gen-cand{object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;background:#fff;border:2px solid #0000;width:96px;height:96px}.gen-cand.is-sel{border-color:var(--accent)}.batch-bar{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 18px;display:flex}.batch-progress{flex-wrap:wrap;gap:6px;display:flex}.batch-chip{border:1px solid var(--border);background:var(--input-bg);color:var(--text-secondary);border-radius:999px;padding:2px 8px;font-size:11px}.batch-chip--ok{color:var(--green);border-color:var(--green-border);background:var(--green-light)}.batch-chip--err{color:var(--red);border-color:var(--red-border);background:var(--red-light)}@media (max-width:720px){.app-inner{padding:16px}.line{flex-direction:column;gap:8px}.line-status{width:auto}}.auto-hb{white-space:nowrap}.gen-regen{border:1px solid var(--accent-border);border-radius:var(--radius-md);background:var(--accent-light);margin:12px 0;padding:12px}.prep-row{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--input-bg);align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px;display:flex}.prep-row--warn{border-color:var(--orange-border);background:var(--orange-light)}.prep-row--fail{border-color:var(--red-border);background:var(--red-light)}.prep-thumb{object-fit:cover;border-radius:var(--radius-sm);background:#fff;flex-shrink:0;width:72px;height:72px}.prep-thumb--empty{background:var(--card);border:1px dashed var(--border);place-items:center;font-size:26px;display:grid}.prep-body{flex:1;min-width:0}.prep-title{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.prep-badge{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.prep-badge--ready{background:var(--green-light);color:var(--green);border-color:var(--green-border)}.prep-badge--warn{background:var(--orange-light);color:var(--orange);border-color:var(--orange-border)}.prep-badge--fail{background:var(--red-light);color:var(--red);border-color:var(--red-border)}.prep-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}html,body,#root{height:100%}body{margin:0}
