:root{color-scheme:light;--ink:#1e2528;--muted:#5d696f;--line:#d8dee2;--paper:#f7f9fa;--surface:#ffffff;--surface-strong:#eef3f5;--accent:#0f766e;--accent-strong:#0b5f59;--warn:#a16207;--danger:#b42318;--info:#2563eb;--ok:#15803d;--radius:8px;font-family:Aptos,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,rgba(15,118,110,.08),rgba(255,255,255,0) 220px),var(--paper);color:var(--ink)}a{color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.topbar{align-items:center;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;min-height:72px;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand{font-size:1rem;font-weight:800;letter-spacing:0;text-decoration:none;white-space:nowrap}.nav{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.button,.icon-button,.nav a,.secondary-button{align-items:center;border-radius:var(--radius);display:inline-flex;gap:8px;min-height:40px;padding:0 12px;text-decoration:none}.nav a{color:var(--muted);font-weight:650}.nav a[aria-current=page]{background:var(--surface-strong);color:var(--ink)}.mode-pill,.status-badge{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:.86rem;font-weight:700;gap:6px;min-height:32px;padding:0 10px;white-space:nowrap}.main{margin:0 auto;max-width:1180px;padding:28px}.page-header{display:grid;grid-gap:10px;gap:10px;margin-bottom:24px}.page-header h1{font-size:clamp(2rem,3vw,3.2rem);line-height:1.05;margin:0}.page-header p{color:var(--muted);font-size:1.05rem;margin:0;max-width:760px}.batch-grid,.dashboard-grid,.result-layout{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.field-row,.line-item,.panel,.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel{padding:18px}.panel h2,.panel h3{margin:0 0 12px}.metric-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric{border-left:4px solid var(--accent);padding:8px 12px}.metric strong{display:block;font-size:1.5rem}.workflow-panel{margin-bottom:16px}.workflow-list{display:grid;grid-gap:14px;gap:14px;list-style:none;margin:0;padding:0}.workflow-step{align-items:flex-start;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto 1fr}.workflow-step h3{margin:0 0 4px}.workflow-step p{color:var(--muted);margin:0 0 10px}.step-number{align-items:center;background:var(--surface-strong);border:1px solid var(--line);border-radius:999px;display:inline-flex;font-weight:800;height:32px;justify-content:center;width:32px}.button{background:var(--accent);border:1px solid var(--accent);color:white;font-weight:800}.button:hover{background:var(--accent-strong)}.icon-button,.secondary-button{background:var(--surface);border:1px solid var(--line);color:var(--ink);font-weight:750}.form-stack{display:grid;grid-gap:14px;gap:14px}.dropzone{background:var(--surface);border:2px dashed var(--line);border-radius:var(--radius);display:grid;grid-gap:8px;gap:8px;min-height:170px;padding:24px;place-items:center;text-align:center}.dropzone input{max-width:100%}.error{color:var(--danger);font-weight:750}.success{color:var(--ok);font-weight:750}.job-progress{background:linear-gradient(135deg,rgba(15,118,110,.1),rgba(37,99,235,.07)),var(--surface);border:1px solid rgba(15,118,110,.24);border-radius:calc(var(--radius) + 8px);display:grid;grid-gap:16px;gap:16px;margin-top:18px;overflow:hidden;padding:18px}.progress-summary{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) auto}.progress-summary h3{font-size:1.4rem;margin:2px 0 6px}.progress-summary p{color:var(--muted);margin:0;max-width:760px}.eyebrow{color:var(--accent-strong);font-size:.76rem;font-weight:850;letter-spacing:.12em;margin:0;text-transform:uppercase}.progress-meta{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(90px,1fr));margin:0}.progress-meta div{background:rgba(255,255,255,.72);border:1px solid rgba(216,222,226,.9);border-radius:var(--radius);padding:10px 12px}.progress-meta dt{color:var(--muted);font-size:.78rem;font-weight:750}.progress-meta dd{font-size:1rem;font-weight:850;margin:2px 0 0}.progress-track{background:rgba(15,118,110,.13);border-radius:999px;height:12px;overflow:hidden;position:relative}.progress-fill{animation:progress-sweep 1.35s ease-in-out infinite;background:linear-gradient(90deg,var(--accent),#2563eb,var(--accent));border-radius:inherit;display:block;height:100%;width:46%}.progress-steps{list-style:none;margin:0;padding:0}.progress-step,.progress-steps{display:grid;grid-gap:10px;gap:10px}.progress-step{align-items:start;color:var(--muted);grid-template-columns:34px minmax(0,1fr)}.progress-step small,.progress-step strong{display:block}.progress-step strong{color:var(--ink)}.progress-step small{margin-top:2px}.progress-step-marker{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:.82rem;font-weight:850;height:28px;justify-content:center;width:28px}.progress-step-done .progress-step-marker{background:rgba(21,128,61,.1);border-color:rgba(21,128,61,.35);color:var(--ok)}.progress-step-active .progress-step-marker{animation:pulse-ring 1.4s ease-in-out infinite;background:var(--accent);border-color:var(--accent);color:white}.progress-step-pending{opacity:.72}@keyframes progress-sweep{0%{transform:translateX(-110%)}50%{transform:translateX(75%)}to{transform:translateX(230%)}}@keyframes pulse-ring{0%,to{box-shadow:0 0 0 0 rgba(15,118,110,.3)}50%{box-shadow:0 0 0 7px rgba(15,118,110,0)}}.status-confirmed,.status-derived{border-color:rgba(21,128,61,.35);color:var(--ok)}.status-probable{border-color:rgba(37,99,235,.35);color:var(--info)}.status-ambiguous,.status-missing{border-color:rgba(161,98,7,.35);color:var(--warn)}.status-conflict,.status-failed,.status-invalid{border-color:rgba(180,35,24,.35);color:var(--danger)}.field-list,.table-list{display:grid;grid-gap:10px;gap:10px}.job-list-row{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(180px,1fr) auto auto;padding:12px 0}.job-list-row:first-child{padding-top:0}.job-list-row:last-child{border-bottom:0;padding-bottom:0}.job-list-row h2{font-size:1rem;margin:0 0 4px;overflow-wrap:anywhere}.job-list-row p{color:var(--muted);margin:0}.job-list-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.field-row{align-items:start;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(150px,.9fr) minmax(180px,1.1fr) auto;padding:12px}.field-name{color:var(--muted);font-weight:750}.field-value{overflow-wrap:anywhere}.evidence-panel{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);margin-top:16px;padding:16px}.line-items{display:grid;grid-gap:12px;gap:12px}.line-item{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1.4fr .4fr .6fr;padding:12px}.verdict-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.verdict-option{align-items:center;border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:8px;min-height:44px;padding:8px 10px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:640px;width:100%}td,th{border-bottom:1px solid var(--line);padding:10px;text-align:left}@media (max-width:760px){.topbar{align-items:flex-start;flex-direction:column;padding:14px 18px}.main{padding:18px}.field-row,.job-list-row,.line-item,.progress-meta,.progress-summary{grid-template-columns:1fr}}