*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f4f6f8;color:#1a202c}.wrap{max-width:980px;margin:0 auto;padding:32px 20px 80px}h1{font-size:24px;margin:0 0 4px}.sub{color:#64748b;margin:0 0 24px;font-size:14px}.drop{border:2px dashed #94a3b8;border-radius:12px;background:#fff;padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.drop.active{border-color:#2563eb;background:#eff6ff}.drop p{margin:6px 0;color:#475569}.drop .big{font-size:16px;font-weight:600;color:#1e293b}.toolbar{display:flex;gap:10px;margin:20px 0;align-items:center;flex-wrap:wrap}button{border:0;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;background:#e2e8f0;color:#1e293b}button.primary{background:#2563eb;color:#fff}button.small{padding:6px 10px;font-size:13px}button:disabled{opacity:.5;cursor:default}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px;margin-bottom:16px}.card h2{font-size:16px;margin:0}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.status{font-size:13px;font-weight:600}.status.ok{color:#15803d}.status.warn{color:#b45309}.status.err{color:#b91c1c}.status.busy{color:#2563eb}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-top:14px}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;margin-bottom:3px}.field input,.field select{width:100%;padding:7px 9px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff}.sect{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569;margin:18px 0 6px}.rows{flex-direction:column;gap:6px;margin-top:8px}.rows,.trow{display:flex}.trow{align-items:center;gap:10px;font-size:14px}.trow input[type=number]{width:64px;padding:5px 7px;border:1px solid #cbd5e1;border-radius:6px}.trow .price{color:#64748b;font-size:13px}.checks{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px;font-size:14px}.total{font-size:15px;margin-top:14px;display:flex;align-items:center;gap:10px}.total input{width:100px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:15px;font-weight:700}.warnbox{background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:8px 12px;margin-top:12px;font-size:13px;color:#92400e}.ref{color:#64748b;font-size:12px}.errbox,.ref{margin-top:10px}.errbox{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:8px 12px;font-size:13px;color:#991b1b}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.top .sub{max-width:620px}.tabs{display:flex;gap:4px;background:#e2e8f0;padding:4px;border-radius:10px;flex-shrink:0}.tab{background:transparent;color:#475569;padding:8px 18px}.tab.on{background:#fff;color:#0f172a;box-shadow:0 1px 2px rgba(15,23,42,.12)}.drop.compact{padding:18px 20px}.drop.compact .big{font-size:14px}.drop.compact p:not(.big){font-size:13px}.spacer{flex:1 1}.toolbar.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:#f4f6f8;padding:12px 0;margin:12px 0;border-bottom:1px solid #e2e8f0}button.ghost{background:transparent;color:#b91c1c}.search{flex:1 1;min-width:220px;padding:9px 12px;border:1px solid #cbd5e1;font-size:14px;background:#fff}.search,.segs{border-radius:8px}.segs{display:flex;gap:2px;background:#e2e8f0;padding:3px}.seg{background:transparent;color:#475569;padding:6px 12px;font-size:13px;border-radius:6px}.seg.on{background:#fff;color:#0f172a}.batchbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;margin-top:16px}.batchbar .field{min-width:150px}.batchstats{display:flex;gap:16px;margin-left:auto;font-size:13px;color:#475569;padding-bottom:6px}.batchstats strong{color:#0f172a;font-size:15px}.batchstats .bad strong{color:#b91c1c}.progress{position:relative;background:#e2e8f0;border-radius:999px;height:26px;margin:12px 0;overflow:hidden}.progress .bar{position:absolute;inset:0 auto 0 0;background:#bfdbfe;transition:width .3s}.progress span{position:relative;display:block;line-height:26px;text-align:center;font-size:12px;font-weight:600;color:#1e3a8a}.okbox{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:8px 12px;margin:10px 0;font-size:13px;color:#166534}.empty{color:#64748b;font-size:14px;text-align:center;padding:40px 0}.rowlist{display:flex;flex-direction:column;gap:6px;margin-top:4px}.row{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.row.flag{border-left:3px solid #f59e0b}.row.open{border-color:#cbd5e1;box-shadow:0 1px 3px rgba(15,23,42,.08)}.batchhead,.rowhead{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.batchhead:hover,.rowhead:hover{background:#f8fafc}.chev{color:#94a3b8;font-size:12px;width:10px;flex-shrink:0}.rowmain{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.rowname{font-size:14px;font-weight:600;color:#0f172a}.rowsub{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowright{display:flex;align-items:center;gap:8px;flex-shrink:0}.due{font-size:14px;color:#0f172a}.chip,.due{font-weight:700}.chip{font-size:11px;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.chip.ok{background:#dcfce7;color:#166534}.chip.warn{background:#fef3c7;color:#92400e;margin-left:6px}.chip.filed{background:#e0e7ff;color:#3730a3}.batchbody,.rowbody{padding:4px 16px 18px;border-top:1px solid #f1f5f9}.rowactions{display:flex;align-items:center;gap:8px;padding:12px 0;flex-wrap:wrap}.srcname{font-size:12px;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.day{margin-top:24px}.dayhead{font-size:15px;margin:0 0 8px;color:#0f172a}.action{margin:0 0 14px}.actionhead{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:6px}.batch{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:6px;overflow:hidden}.batch.open{box-shadow:0 1px 3px rgba(15,23,42,.08)}.ftable{width:100%;border-collapse:collapse;font-size:13px}.ftable th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:700;padding:6px 8px;border-bottom:1px solid #e2e8f0}.ftable td{padding:7px 8px;border-bottom:1px solid #f1f5f9}.ftable tr:last-child td{border-bottom:0}.ftable .num{text-align:right}.ftable .dim{color:#64748b}.ftable .flagrow{background:#fffbeb}@media (max-width:640px){.top{flex-direction:column}.batchstats{margin-left:0}.toolbar.sticky{position:static}.ftable .dim{display:none}}.errbox.dismissable,.okbox.dismissable{display:flex;align-items:center;gap:10px;justify-content:space-between}.errbox.dismissable button,.okbox.dismissable button{padding:2px 8px;color:inherit;opacity:.7}.steps{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.step{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px}.step.done{border-color:#bfdbfe}.stephead{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.stepno{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#475569;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.step.done .stepno{background:#2563eb;color:#fff}.stephead strong{font-size:15px;color:#0f172a}.stepsub{margin:2px 0 0;font-size:13px;color:#64748b}.picked{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.pickname{font-weight:600;font-size:14px}.picked .dim{font-size:13px;color:#64748b}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.filechip{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:4px 6px 4px 12px;font-size:13px;color:#1e3a8a}.filechip .dim{color:#60a5fa;font-size:12px}.filechip .x{background:transparent;color:#1e3a8a;padding:0 4px;font-size:12px;line-height:1;opacity:.6}.filechip .x:hover{opacity:1}.unmapped{margin:10px 0;font-size:13px;color:#475569}.unmapped summary{cursor:pointer;font-weight:600}.unmapped ul{margin:8px 0 0;padding-left:20px}.unmapped li{margin:3px 0}.fieldtable td{vertical-align:middle}.fieldtable td:first-child{width:42%}.fieldtable input:not([type]),.fieldtable input[type=text],.fieldtable select{width:100%;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;background:#fff}.fname{display:block;font-weight:600;color:#0f172a;word-break:break-word}.fkind{display:inline-block;margin-top:2px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700}.cbline{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.segnote{font-size:12px;color:#94a3b8;align-self:center;margin-left:10px}.fieldtable tr.tickedrow{background:#f0fdf4}.fieldtable tr.tickedrow .cbline{color:#166534;font-weight:600}.whoami{align-self:center;margin-right:10px;font-size:12px;color:#64748b;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}