.app-shell[data-v-52b0b363]{width:100%;max-width:760px;padding:1rem 1rem calc(5.75rem + var(--safe-bottom));z-index:1;margin:0 auto;transition:background-color .25s;position:relative}.app-shell.authed[data-v-52b0b363]{max-width:920px}.ambient[data-v-52b0b363]{pointer-events:none;z-index:0;opacity:.55;background-image:linear-gradient(#10191606 1px,#0000 1px),linear-gradient(90deg,#10191606 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 75%);mask-image:radial-gradient(#000 20%,#0000 75%)}.app-shell.flash-matched[data-v-52b0b363]{background:color-mix(in srgb, var(--ok-soft) 70%, transparent)}.app-shell.flash-duplicate[data-v-52b0b363]{background:color-mix(in srgb, var(--warn-soft) 75%, transparent)}.app-shell.flash-unexpected[data-v-52b0b363],.app-shell.flash-invalid[data-v-52b0b363]{background:color-mix(in srgb, var(--err-soft) 70%, transparent)}.top[data-v-52b0b363]{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.brand-block[data-v-52b0b363]{min-width:0}.brand[data-v-52b0b363]{letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin:0;font-size:.72rem;font-weight:800}h1[data-v-52b0b363]{letter-spacing:-.03em;color:var(--ink);margin:.28rem 0 0;font-size:clamp(1.55rem,4.5vw,2rem);font-weight:800;line-height:1.15}.lede[data-v-52b0b363]{max-width:28ch;color:var(--muted);margin:.45rem 0 0;font-size:.98rem;line-height:1.4}.top-actions[data-v-52b0b363]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.who[data-v-52b0b363]{border:1px solid var(--line);max-width:7.5rem;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:#ffffffb8;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:600;overflow:hidden}.toast-stack[data-v-52b0b363]{gap:.5rem;margin-bottom:.85rem;display:grid}.auth-stage[data-v-52b0b363]{place-items:start stretch;min-height:min(62vh,560px);padding-top:.5rem;display:grid}.auth[data-v-52b0b363]{width:min(100%,420px);margin:0 auto;padding:1.15rem}.auth-body[data-v-52b0b363]{gap:.85rem;margin-top:1rem;display:grid}.panel[data-v-52b0b363]{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow);margin-bottom:.95rem;padding:1.05rem;position:relative}.panel h2[data-v-52b0b363]{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.05rem;font-weight:800}.seg[data-v-52b0b363]{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;grid-template-columns:repeat(2,1fr);gap:.25rem;padding:.25rem;display:grid}.detail-seg[data-v-52b0b363]{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb, var(--surface-2) 88%, white);grid-template-columns:repeat(3,1fr);margin-bottom:.85rem;position:sticky;top:3.65rem}.seg button[data-v-52b0b363]{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:9px;font-size:.9rem;font-weight:700;transition:background .15s,color .15s,transform .12s}.seg button.active[data-v-52b0b363]{background:var(--surface);color:var(--brand);box-shadow:0 1px #1019160f,0 4px 12px #1019160d}.seg button[data-v-52b0b363]:active{transform:scale(.985)}.grid.form[data-v-52b0b363]{grid-template-columns:1fr;gap:.75rem;margin-bottom:.85rem;display:grid}.grid.form .full[data-v-52b0b363]{grid-column:1/-1}label[data-v-52b0b363]{color:var(--muted);letter-spacing:.01em;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:700;display:flex}label span[data-v-52b0b363]{padding-left:.1rem}input[data-v-52b0b363],select[data-v-52b0b363],textarea[data-v-52b0b363]{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);background:#fff;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s}textarea.instructions[data-v-52b0b363]{resize:vertical;min-height:120px;font-size:.92rem;font-weight:500;line-height:1.45}label.block[data-v-52b0b363]{margin-bottom:.65rem;display:flex}input[data-v-52b0b363]:focus,select[data-v-52b0b363]:focus,textarea[data-v-52b0b363]:focus{border-color:color-mix(in srgb, var(--brand) 55%, var(--line));box-shadow:0 0 0 3px var(--brand-soft);outline:none}input[data-v-52b0b363]:disabled,select[data-v-52b0b363]:disabled,textarea[data-v-52b0b363]:disabled,button[data-v-52b0b363]:disabled{opacity:.55;cursor:not-allowed}.primary[data-v-52b0b363],.ghost[data-v-52b0b363],.btn[data-v-52b0b363],.file[data-v-52b0b363],.stop[data-v-52b0b363]{border-radius:var(--radius-sm);border:1px solid var(--line);min-height:var(--touch);letter-spacing:-.01em;justify-content:center;align-items:center;gap:.35rem;padding:.72rem 1rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;display:inline-flex}.primary[data-v-52b0b363]{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:inset 0 1px #ffffff1f,0 8px 18px #0b3d322e}.primary[data-v-52b0b363]:hover:not(:disabled){background:var(--brand-hover)}.ghost[data-v-52b0b363]{color:var(--ink-soft);background:#fff}.ghost[data-v-52b0b363]:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2)}.stop[data-v-52b0b363]{background:var(--err);color:#fff;border-color:var(--err);box-shadow:0 8px 18px #b4231829}.danger[data-v-52b0b363]{color:var(--err)}.full[data-v-52b0b363]{width:100%}.primary[data-v-52b0b363]:active:not(:disabled),.ghost[data-v-52b0b363]:active:not(:disabled),.stop[data-v-52b0b363]:active:not(:disabled){transform:translateY(1px)}.text-btn[data-v-52b0b363]{color:var(--brand);text-underline-offset:2px;background:0 0;border:0;min-height:auto;margin-left:.45rem;padding:0;font-weight:800;text-decoration:underline}.cards[data-v-52b0b363]{gap:.65rem;display:grid}.card[data-v-52b0b363]{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:.2rem;min-height:76px;padding:.95rem 1rem;transition:border-color .15s,transform .12s,box-shadow .15s;display:grid;box-shadow:0 1px #10191608}.card[data-v-52b0b363]:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.card[data-v-52b0b363]:active{transform:scale(.995)}.card strong[data-v-52b0b363]{letter-spacing:-.02em;font-size:1.02rem;font-weight:800}.card span[data-v-52b0b363]{color:var(--muted);font-size:.88rem}.stats[data-v-52b0b363]{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-bottom:.55rem;display:grid}.sticky-stats[data-v-52b0b363]{z-index:5;background:linear-gradient(180deg, color-mix(in srgb, var(--bg1) 92%, white), transparent);padding:.35rem 0 .45rem;position:sticky;top:0}.stats div[data-v-52b0b363]{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;padding:.6rem .3rem;box-shadow:0 1px #10191608}.stats b[data-v-52b0b363]{letter-spacing:-.03em;font-size:1.35rem;font-weight:800;line-height:1.1;display:block}.stats span[data-v-52b0b363]{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700}.stats .ok b[data-v-52b0b363]{color:var(--ok)}.stats .warn b[data-v-52b0b363]{color:var(--warn)}.stats .err b[data-v-52b0b363]{color:var(--err)}.bundle-summary[data-v-52b0b363]{color:var(--muted);margin:0 0 .75rem;font-size:.88rem;font-weight:600}.active-parent[data-v-52b0b363]{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--brand) 22%, var(--line));background:var(--brand-soft);color:var(--brand);word-break:break-all;margin:.45rem 0;padding:.7rem .85rem;font-weight:800}.scan-actions[data-v-52b0b363]{margin:.7rem 0}.session-live[data-v-52b0b363]{color:var(--brand);margin:0 0 .55rem;font-size:.92rem;font-weight:700}.camera-wrap[data-v-52b0b363]{border-radius:var(--radius);border:1px solid #111;margin-top:.4rem;position:relative;overflow:hidden}.camera-badge[data-v-52b0b363]{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#0b3d32e0;border-radius:8px;padding:.35rem .55rem;font-size:.7rem;font-weight:800;position:absolute;top:.65rem;left:.65rem}.scan-dock[data-v-52b0b363]{z-index:20;padding:.7rem .85rem calc(.7rem + var(--safe-bottom));background:color-mix(in srgb, #fff 88%, var(--brand-soft));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:1fr auto;gap:.5rem;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #10191614}.scan-dock.dimmed[data-v-52b0b363]{opacity:.42;pointer-events:none}.scan-input[data-v-52b0b363]{font-family:var(--mono);border-radius:var(--radius-sm);padding:.85rem;font-size:1.05rem;font-weight:450}.camera[data-v-52b0b363]{aspect-ratio:4/3;object-fit:cover;background:#0a0f0d;width:100%;max-height:42vh;display:block}.last[data-v-52b0b363]{margin:.45rem 0;font-size:.98rem;font-weight:800}.last.matched[data-v-52b0b363]{color:var(--ok)}.last.duplicate[data-v-52b0b363]{color:var(--warn)}.last.unexpected[data-v-52b0b363],.last.invalid[data-v-52b0b363]{color:var(--err)}.row[data-v-52b0b363]{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.row.stacked[data-v-52b0b363]{flex-direction:column}.file[data-v-52b0b363]{color:var(--ink-soft);background:#fff;position:relative;overflow:hidden}.file input[data-v-52b0b363]{opacity:0;cursor:pointer;min-height:100%;position:absolute;inset:0}.filters[data-v-52b0b363]{gap:.5rem;margin-bottom:.85rem;display:grid}.line-list[data-v-52b0b363],.preview-list[data-v-52b0b363]{gap:.6rem;margin-top:.65rem;display:grid}.line-card[data-v-52b0b363]{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:.45rem;padding:.85rem;display:grid}.line-card.matched[data-v-52b0b363]{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 22%, var(--line))}.line-card.unexpected[data-v-52b0b363]{background:var(--err-soft);border-color:color-mix(in srgb, var(--err) 22%, var(--line))}.line-top[data-v-52b0b363]{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.line-top strong[data-v-52b0b363]{letter-spacing:-.02em;font-weight:800}.line-sn[data-v-52b0b363]{font-family:var(--mono);word-break:break-all;letter-spacing:-.02em;font-size:.98rem;font-weight:600}.pill[data-v-52b0b363]{text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:8px;padding:.28rem .5rem;font-size:.68rem;font-weight:800}.pill.matched[data-v-52b0b363]{background:color-mix(in srgb, var(--ok) 12%, white);border-color:color-mix(in srgb, var(--ok) 28%, var(--line));color:var(--ok)}.pill.unexpected[data-v-52b0b363]{background:color-mix(in srgb, var(--err) 10%, white);border-color:color-mix(in srgb, var(--err) 28%, var(--line));color:var(--err)}.pill.expected[data-v-52b0b363]{background:color-mix(in srgb, var(--warn) 12%, white);border-color:color-mix(in srgb, var(--warn) 28%, var(--line));color:var(--warn)}.bundles[data-v-52b0b363]{margin-bottom:.8rem}.bundles h3[data-v-52b0b363]{margin:0 0 .35rem;font-size:.92rem;font-weight:800}.bundles ul[data-v-52b0b363]{color:var(--ink-soft);margin:0;padding-left:1.1rem}.ok-text[data-v-52b0b363]{color:var(--ok);font-weight:700}.warn-text[data-v-52b0b363]{color:var(--warn);font-weight:700}.err-text[data-v-52b0b363]{color:var(--err);font-weight:700}.indent[data-v-52b0b363]{color:var(--muted)}.banner[data-v-52b0b363]{background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 28%, #f0d58a);border-radius:var(--radius-sm);color:var(--ink-soft);margin:0;padding:.72rem .85rem;font-size:.92rem;font-weight:600}.banner.err[data-v-52b0b363]{background:var(--err-soft);border-color:color-mix(in srgb, var(--err) 30%, #f0b4ae);color:var(--err)}.banner.ok[data-v-52b0b363]{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 28%, #b7dfc6);color:var(--ok)}.banner.warn[data-v-52b0b363]{background:var(--warn-soft)}.muted[data-v-52b0b363]{color:var(--muted)}.muted.short[data-v-52b0b363]{margin:0;font-size:.9rem;font-weight:500;line-height:1.4}.tiny[data-v-52b0b363]{font-size:.8rem;font-weight:600}.tiny-btn[data-v-52b0b363]{min-height:36px;padding:.35rem .65rem;font-size:.8rem}.mt[data-v-52b0b363]{margin-top:1rem}.modal[data-v-52b0b363]{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0f0d7a;place-items:end center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card[data-v-52b0b363]{border:1px solid var(--line);width:min(520px,100%);margin-bottom:var(--safe-bottom);background:#fff;border-radius:18px 18px 14px 14px;padding:1.15rem;box-shadow:0 24px 60px #10191638}.modal-card h2[data-v-52b0b363]{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:800}.check[data-v-52b0b363]{margin:.75rem 0;padding-left:1.15rem;font-weight:600}@media (width>=768px){.app-shell[data-v-52b0b363]{max-width:980px;padding:1.35rem 1.25rem 2.25rem}.auth-stage[data-v-52b0b363]{place-items:center}.scan-dock[data-v-52b0b363]{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;margin-top:.85rem;padding:0;position:static}.grid.form[data-v-52b0b363]{grid-template-columns:1fr 1fr}.sticky-stats[data-v-52b0b363],.detail-seg[data-v-52b0b363]{background:var(--surface-2);-webkit-backdrop-filter:none;backdrop-filter:none;position:static}.modal[data-v-52b0b363]{place-items:center}.modal-card[data-v-52b0b363]{border-radius:18px}.lede[data-v-52b0b363]{max-width:36ch}}:root{--bg0:#e7eee9;--bg1:#f4f7f5;--surface:#fff;--surface-2:#f7faf8;--ink:#101916;--ink-soft:#24332c;--muted:#66756d;--brand:#0b3d32;--brand-hover:#0f4f41;--brand-soft:#d8ebe4;--ok:#0f7a4c;--ok-soft:#e4f5ec;--warn:#9a6b12;--warn-soft:#f8efd8;--err:#b42318;--err-soft:#fdeceb;--line:#d3ddd7;--line-strong:#b8c6be;--shadow:0 1px 0 #1019160a, 0 10px 28px #1019160f;--radius:14px;--radius-sm:10px;--touch:48px;--safe-bottom:env(safe-area-inset-bottom,0px);--font:"Manrope", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.75rem;color:var(--ink);font-family:var(--font);background-color:var(--bg0);background-image:radial-gradient(1200px 700px at 0% -10%, #f8fcfa 0%, transparent 55%), radial-gradient(900px 600px at 100% 0%, #d9ebe3 0%, transparent 50%), linear-gradient(180deg, var(--bg1), var(--bg0));-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-synthesis:none;background-attachment:fixed;font-weight:500;line-height:1.45}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{overscroll-behavior-y:contain;min-height:100dvh}#app{min-height:100dvh}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}input,select,textarea,button{min-height:var(--touch);font-size:16px}::selection{background:var(--brand-soft);color:var(--brand)}
