.ai-root{--surface:#f7f7f8;--surface-raised:#ffffff;--surface-sunken:#eff0f3;--nav-selected:var(--surface-sunken);--ink:#111418;--ink-muted:#5a6270;--line:#858c99;--hairline:#e3e5ea;--brand:#2d6cb4;--on-brand:#ffffff;--link:#1f58a0;--accent:#e8c24a;--on-accent:#1b2a44;--header:var(--surface-raised);--on-header:var(--ink);--success:#146c43;--danger:#b3261e;--warning:#8a5a00;--focus:#111418;--on-hue:#ffffff;--hue-blue:#2563b0;--hue-blue-tint:#e8f0fa;--hue-orange:#b45309;--hue-orange-tint:#fbefe3;--hue-red:#c0362c;--hue-red-tint:#fbe9e7;--hue-plum:#8e3b8c;--hue-plum-tint:#f4e8f3;--hue-teal:#0e7490;--hue-teal-tint:#e3f3f7;--hue-slate:#475569;--hue-slate-tint:#eaeef3;--hue-amber:#8a6d00;--hue-amber-tint:#f8f1d9;--hue-rose:#a3365f;--hue-rose-tint:#f9e7ee;--hue-green:#2f7a1f;--hue-green-tint:#e7f3e3;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--target-min:56px;--target-lg:72px;--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:9999px;--shadow-card:0 1px 2px rgba(17,20,24,0.05),0 2px 8px rgba(17,20,24,0.05);--shadow-bar:0 -1px 0 rgba(17,20,24,0.06);--font-display:"Manrope","Segoe UI",system-ui,sans-serif;--font-sans:"Manrope","Segoe UI",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Consolas,monospace;--display-lg-size:32px;--display-lg-line:36px;--display-lg-weight:800;--display-md-size:24px;--display-md-line:28px;--display-md-weight:800;--display-sm-size:19px;--display-sm-line:24px;--display-sm-weight:700;--body-lg-size:20px;--body-lg-line:26px;--body-lg-weight:700;--body-size:18px;--body-line:26px;--body-weight:500;--body-sm-size:16px;--body-sm-line:22px;--body-sm-weight:500;--label-size:14px;--label-line:18px;--label-weight:700;--button-size:19px;--button-line:24px;--button-weight:700;--data-lg-size:40px;--data-lg-line:42px;--data-lg-weight:700;--data-size:20px;--data-line:24px;--data-weight:500;--data-sm-size:16px;--data-sm-line:22px;--data-sm-weight:500}*{box-sizing:border-box}body,html{margin:0;padding:0}.ai-root{min-height:100dvh;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:var(--body-size);line-height:var(--body-line);font-weight:var(--body-weight)}.page{max-width:720px;margin:0 auto;padding:var(--space-4) var(--space-4) 120px}.wide{max-width:1040px}h1,h2,h3{margin:0;font-family:var(--font-display)}h1{font-size:var(--display-md-size);line-height:var(--display-md-line);font-weight:var(--display-md-weight)}h2{font-size:var(--display-sm-size);line-height:var(--display-sm-line);font-weight:var(--display-sm-weight)}.muted{font-size:var(--body-sm-size)}.label,.muted{color:var(--ink-muted)}.label{font-size:14px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--space-3);min-height:64px;padding:0 var(--space-4);background:var(--header);color:var(--on-header)}.appbar h1{flex:1 1}.appbar a,.appbar button,.appbar h1{color:inherit}.card{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-4);margin-top:var(--space-4);box-shadow:var(--shadow-card)}.stack>*+*{margin-top:var(--space-3)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1 1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:56px;padding:0 var(--space-5,20px);border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.btn:focus-visible,.input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn:disabled{background:var(--surface-sunken);color:var(--ink-muted);cursor:not-allowed}.btn.primary{min-height:72px;background:var(--brand);border-color:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-card)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.block{width:100%}.input,select{width:100%;min-height:56px;padding:0 var(--space-3);border:2px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font:inherit}.input,.scanwell,select{background:var(--surface-raised)}.scanwell{border:3px solid var(--brand)}.banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:2px solid var(--line);background:var(--surface-raised);margin-top:var(--space-3)}.banner.ok{border-color:var(--success)}.banner.err{border-color:var(--danger)}.banner.warn{border-color:var(--warning)}.badge{display:inline-flex;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:14px;font-weight:700}.badge,.line{align-items:center}.line{display:flex;gap:var(--space-3);padding:var(--space-3);min-height:72px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface-raised)}.line+.line{margin-top:var(--space-2)}.qty{font-size:var(--display-sm-size);font-weight:800;min-width:56px;text-align:right}.mono{font-family:var(--font-mono)}.bottombar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);box-shadow:var(--shadow-bar)}.bottombar>*{flex:1 1}.overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:rgb(17 20 24/.5)}.sheet{width:100%;max-width:560px;padding:var(--space-4);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface-raised)}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--hairline);vertical-align:top}.tabs{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}.tabs .btn[aria-pressed=true]{border-color:var(--brand);background:var(--surface-sunken)}