:root{--primary:#1e1b4b;--primary-soft:#eef2ff;--success:#10b981;--danger:#ef4444;--ink:#1e1b4b;--text:#475569;--muted:#94a3b8;--line:#e2e8f0;--surface:#f8fafc;--white:#fff;--radius:16px}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--surface);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}button,input,select{font:inherit}button{border:0}.app-shell{justify-content:center;background:linear-gradient(180deg,rgba(30,27,75,.06),rgba(248,250,252,0) 240px),var(--surface)}.app-shell,.phone-frame{min-height:100vh;display:flex}.phone-frame{width:min(100%,430px);height:100vh;background:var(--white);flex-direction:column;box-shadow:0 24px 80px rgba(15,23,42,.12)}.status-bar{height:44px;padding:0 24px;justify-content:space-between;color:var(--primary);font-size:14px;font-weight:700}.status-bar,.status-icons{display:flex;align-items:center}.status-icons{gap:6px}.status-pill{width:20px;height:12px;border-radius:12px;border:2px solid var(--primary)}.page{flex:1 1;min-height:0;display:flex;flex-direction:column}.hero{padding:60px 24px 24px}.hero h1{margin:0 0 12px;font-size:28px;line-height:1.2;font-weight:800}.hero p{margin:0;color:var(--text);font-size:18px;line-height:1.5}.content{padding:24px}.content.tight{padding-top:12px}.bottom-bar{margin-top:auto;padding:24px;background:var(--white);border-top:1px solid rgba(226,232,240,.72)}.header{flex:0 0 64px;height:64px;padding:0 24px;display:flex;align-items:center;gap:16px}.header.center{justify-content:space-between}.header-title{min-width:0;flex:1 1;margin:0;font-size:20px;font-weight:800;line-height:1.2}.header.center .header-title{flex:initial;font-size:18px}.icon-button{width:36px;height:36px;border-radius:12px;color:var(--primary);background:transparent}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button{width:100%;height:56px;border-radius:var(--radius);gap:10px;padding:0 24px;font-weight:700;font-size:16px;text-align:center;text-decoration:none}.button.primary{color:#fff;background:var(--primary)}.button.secondary{color:var(--primary);background:var(--white);border:1px solid var(--line)}.button.danger{color:var(--danger);background:transparent;text-decoration:underline}.button:disabled{cursor:not-allowed;opacity:.58}.action-stack{display:grid;grid-gap:12px;gap:12px;padding:0 24px}.eyebrow,.support-text{color:var(--muted);text-align:center;font-size:14px;margin:0}.eyebrow{text-align:left;text-transform:uppercase;font-weight:800}.drop-zone{border:1px dashed #cbd5e1;border-radius:20px;padding:24px;display:grid;grid-gap:10px;gap:10px;justify-items:center;text-align:center;color:var(--text);background:var(--surface)}.drop-zone.is-dragging{border-color:var(--primary);background:var(--primary-soft)}.hidden-input{display:none}.camera-card,.file-card,.notice,.section-card,.summary-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}.file-card{min-height:120px;padding:20px;display:grid;place-items:center;text-align:center;overflow:hidden}.file-card.has-preview{background-position:50%;background-size:cover;position:relative}.file-card.has-preview:before{content:"";position:absolute;inset:0;background:hsla(0,0%,100%,.72)}.file-card>*{position:relative}.file-name{margin:0 0 6px;font-size:16px;font-weight:800}.file-meta{margin:0;color:var(--muted);font-size:13px}.option-list{display:grid;grid-gap:12px;gap:12px}.radio-option{display:flex;align-items:center;gap:12px;font-weight:800}.radio-dot{width:20px;height:20px;border-radius:999px;border:2px solid var(--muted);display:grid;place-items:center}.radio-dot:after{content:"";width:10px;height:10px;border-radius:999px;background:transparent}.radio-dot.selected{border-color:var(--primary)}.radio-dot.selected:after{background:var(--primary)}.processing{flex:1 1;display:flex;align-items:center;padding:48px}.processing-inner{width:100%;display:grid;grid-gap:32px;gap:32px;text-align:center}.progress-track{width:100%;height:8px;border-radius:4px;overflow:hidden;background:var(--line)}.progress-fill{height:100%;border-radius:4px;background:var(--primary);transition:width .22s ease}.steps-card{padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--surface);text-align:left}.step-row{padding:12px 0;color:var(--muted);font-size:16px}.step-row+.step-row{border-top:1px solid var(--line)}.step-row.active{font-weight:800}.step-row.active,.step-row.done{color:var(--primary)}.notice{padding:16px;display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:800;min-width:0}.notice span{min-width:0;overflow-wrap:anywhere}.notice.success{color:var(--success)}.notice.error{color:var(--danger)}.review-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.summary-card{padding:16px;display:flex;align-items:center;gap:8px;background:var(--surface)}.summary-card span{color:var(--text);font-size:12px;font-weight:800}.summary-card strong{font-size:16px}.section-card{padding:18px;min-width:0}.section-card h2{margin:0 0 16px;font-size:17px;line-height:1.25}.field-grid{display:grid;grid-gap:12px;gap:12px}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--text);font-size:12px;font-weight:800;overflow-wrap:anywhere}.input,.select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--ink);background:var(--white);font-size:15px;min-width:0}.vendor-suggestion{margin:16px 0 0;padding:12px;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:800}.json-page,.review-page{overflow:hidden}.json-content,.review-content{flex:1 1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:28px}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading-row h2{margin:0}.section-heading-row span{color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.table-scroll-shell{min-width:0;margin:0 -18px -18px;border-top:1px solid var(--line)}.table-scroll-hint{padding:10px 18px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:700}.table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:12px 18px 18px}.product-table{table-layout:fixed;min-width:1280px;width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.product-table col.col-productName{width:190px}.product-table col.col-matchStatus{width:132px}.product-table col.col-actionState,.product-table col.col-batchNumber,.product-table col.col-expiryDate,.product-table col.col-lineTotal,.product-table col.col-purchasePrice,.product-table col.col-saleRate{width:108px}.product-table col.col-confidence,.product-table col.col-discountPercent,.product-table col.col-freeQuantity,.product-table col.col-gstPercent,.product-table col.col-quantity{width:82px}.product-table col.col-mrp{width:96px}.product-table th{color:var(--muted);text-align:left;text-transform:uppercase;font-size:11px;padding:0 6px 10px;white-space:nowrap}.product-table td{padding:8px 6px;border-top:1px solid var(--line);vertical-align:middle;background:var(--white)}.product-table .input,.product-table .select{min-height:38px;width:100%;min-width:0;font-size:13px;border-radius:10px;padding:8px 9px}.product-table .product-input{font-weight:700}.product-table td:first-child,.product-table th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--white);box-shadow:1px 0 0 var(--line)}.confidence{font-weight:800;color:var(--success);white-space:nowrap}.empty-state{display:grid;grid-gap:6px;gap:6px;padding:18px;border-radius:14px;background:var(--surface);color:var(--text)}.empty-state strong{color:var(--ink)}.empty-state span{font-size:13px;line-height:1.45}.json-panel{flex:1 1;height:auto;min-height:0;margin:0;padding:18px;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#1e1e1e;color:#d4d4d4;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.65;white-space:pre;-webkit-overflow-scrolling:touch}.json-actions{display:grid;grid-gap:8px;gap:8px}.json-actions .button{height:48px}.json-actions span{color:var(--success);font-size:13px;font-weight:800}.json-actions span[role=alert]{color:var(--danger)}.camera-card{padding:16px;display:grid;grid-gap:12px;gap:12px}.camera-view{width:100%;aspect-ratio:4/3;border-radius:14px;background:#0f172a;object-fit:cover}.canvas-hidden{display:none}.home-indicator{display:flex;justify-content:center;padding:21px 0 8px}.home-indicator:before{content:"";width:139px;height:5px;border-radius:999px;background:var(--primary)}.stack{display:grid;grid-gap:24px;gap:24px}.small-stack{display:grid;grid-gap:12px;gap:12px}@media (min-width:760px){.phone-frame{height:calc(100vh - 48px);min-height:calc(100vh - 48px);margin:24px;border-radius:28px;overflow:hidden}.field-grid{grid-template-columns:1fr 1fr}}