:root{--bg: #ffffff;--surface: #ffffff;--hero-bg: rgba(255, 255, 255, .72);--border: rgba(0, 0, 0, .1);--border-soft: rgba(11, 12, 14, .07);--divider: rgba(0, 0, 0, .06);--shadow-hero: 0 1px 2px rgba(11, 12, 14, .03), 0 20px 56px rgba(11, 12, 14, .06);--text: #111111;--text-2: #666666;--text-3: #9ca3af;--btn-bg: #111111;--btn-fg: #ffffff;--accent: #0241ff;--warn: #b45309;--warn-bg: rgba(180, 83, 9, .08);--warn-border: rgba(180, 83, 9, .25);--pad: 16px}*{box-sizing:border-box}html{height:100%;color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{max-width:520px;margin:0 auto;min-height:100dvh}.home,.trip{padding:calc(var(--pad) + env(safe-area-inset-top)) var(--pad) calc(106px + env(safe-area-inset-bottom))}.settings-header{display:flex;align-items:center;margin-bottom:12px;padding-top:env(safe-area-inset-top)}.settings-header h1{font-size:19px;font-weight:500;margin:0}.grow{flex:1;min-width:0}.row{display:flex;gap:10px;align-items:center}.hint{color:var(--text-3);font-size:13px;font-weight:300}.empty{padding:28px 0;text-align:center;list-style:none}.label{display:block;font-size:10px;font-weight:300;text-transform:uppercase;letter-spacing:.18em;color:var(--text-3)}h2.label{margin:26px 0 6px}.card{background:var(--hero-bg);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow-hero);padding:var(--pad);display:flex;flex-direction:column;gap:12px}.btn{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:15px;font-weight:400;cursor:pointer;min-height:44px;transition:opacity .15s}.btn:active{opacity:.6}.btn.primary{background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg);font-weight:500}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn:disabled{opacity:.35}.icon-btn{min-width:44px;padding:8px;font-size:22px;line-height:1;font-weight:300}.input{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px 12px;font-size:16px;min-height:44px;outline:none}.input:focus{border-color:var(--text-3)}.tax-input{width:64px;margin-left:6px}.tax-auto{display:flex;align-items:center;gap:10px}.store-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.store-row{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;font-size:14px;cursor:pointer;color:var(--text)}.store-row.on{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.tax-adjust{flex-shrink:0;font-size:13px;color:var(--accent)}.locate-btn{flex-shrink:0;min-width:44px;padding:10px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,0,0,.12);border-top-color:var(--text);animation:spin .8s linear infinite}.spinner.big{width:34px;height:34px;border-width:3px}.boot-loader{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#ffffffbf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.tax-label{display:flex;align-items:center;white-space:nowrap}select.input{appearance:none}.trip-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:6px;margin:calc(-1 * var(--pad) - env(safe-area-inset-top)) calc(-1 * var(--pad)) var(--pad);padding:calc(10px + env(safe-area-inset-top)) var(--pad) 10px;background:#ffffffd9;backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-bottom:1px solid var(--divider)}.trip-header .icon-btn{margin-left:-10px}.total{font-size:52px;line-height:1.05;font-weight:200;letter-spacing:-.015em;color:var(--text);font-variant-numeric:tabular-nums}.total .cur{font-size:33px}.total .cents{font-size:30px;color:var(--text-2)}.total-meta{text-align:right;flex-shrink:0;font-size:14px;font-weight:300;color:var(--text-3);line-height:1.55}.trip-actions{display:flex;gap:8px;margin:14px 0}.demo-btn{width:100%;margin-top:12px;border-style:dashed;border-color:#0241ff59;color:var(--accent);background:#0241ff0a;font-size:14px}.camera-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.32,.72,0,1)}.camera-wrap.open{grid-template-rows:1fr}.camera-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:10px;opacity:0;transition:opacity .25s ease}.camera-wrap.open .camera-inner{opacity:1;padding-bottom:6px;transition:opacity .3s ease .12s}.camera-inner .demo-btn{margin-top:0}.camera-inner .trip-actions{margin:0}.scanner{position:relative;border-radius:14px;overflow:hidden;background:#0a0a0a;aspect-ratio:4 / 3;max-height:44dvh;width:100%;box-shadow:var(--shadow-hero)}.scanner video{width:100%;height:100%;object-fit:cover}.scanner-error{padding:24px;color:#fca5a5;font-size:14px}.scan-frame{position:absolute;inset:20% 12%;border:1.5px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:0 0 0 9999px #0000002e;pointer-events:none}.scan-hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:11px;font-weight:300;text-transform:uppercase;letter-spacing:.18em;color:#fffc;text-shadow:0 1px 3px rgba(0,0,0,.6);pointer-events:none}.mode-slider{position:absolute;top:10px;right:10px;z-index:2;display:flex;padding:3px;border-radius:999px;background:#ffffffd9;backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border:1px solid var(--border-soft);box-shadow:0 2px 10px #00000026}.mode-slider button{position:relative;z-index:1;width:40px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-2);transition:color .2s}.mode-slider button.on{color:#fff}.mode-thumb{position:absolute;top:3px;left:3px;width:40px;height:34px;border-radius:999px;background:var(--btn-bg);transition:transform .22s cubic-bezier(.3,1.2,.5,1)}.mode-slider.photo .mode-thumb{transform:translate(40px)}.photo-controls{position:absolute;bottom:12px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px}.photo-controls .scan-hint{position:static}.shutter{width:56px;height:56px;border-radius:50%;background:#fff;border:3px solid rgba(0,0,0,.35);box-shadow:0 0 0 3px #ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center}.shutter:disabled{opacity:.4}.shutter:active{transform:scale(.92)}.shutter-busy{width:22px;height:22px;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:#111;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.items{list-style:none;margin:0;padding:0}.item{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--divider);min-height:54px}.tappable{cursor:pointer}.item img{width:38px;height:38px;border-radius:9px;object-fit:cover;flex-shrink:0;background:#f3f4f6}.item-dot{width:8px;height:8px;border-radius:50%;background:#0000001f;margin:0 15px;flex-shrink:0}.item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-num{min-width:16px;text-align:left;flex-shrink:0;color:var(--text-3);font-size:13px;font-weight:300;font-variant-numeric:tabular-nums}.trash-btn{width:40px;height:40px;margin-right:-8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;cursor:pointer;color:#dc2626;transition:transform .15s,opacity .15s}.trash-btn:active{transform:scale(.85);opacity:.6}.item-price{font-variant-numeric:tabular-nums;font-weight:500;flex-shrink:0}.recall-tag{color:var(--warn);font-size:12px}.status-dot{width:32px;height:32px;flex-shrink:0;margin-right:-12px;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer}.status-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:#00000026}.status-dot.green:after{background:#22c55e}.status-dot.yellow:after{background:#f59e0b}.status-dot.red:after{background:#ef4444;animation:recall-pulse 1.6s ease-in-out infinite}@keyframes recall-pulse{0%,to{box-shadow:0 0 #ef444473}50%{box-shadow:0 0 0 6px #ef444400}}.live-note{display:flex;align-items:center;justify-content:flex-end;gap:5px}.live-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:recall-pulse-green 2s ease-in-out infinite}@keyframes recall-pulse-green{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 5px #22c55e00}}.restart-zone{margin-top:24px;display:flex;justify-content:center}.restart-btn{color:#dc2626;background:transparent;border-color:#dc262640;font-size:14px;padding:10px 18px}.restart-confirm{width:100%;display:flex;flex-direction:column;gap:10px;text-align:center;animation:confirm-in .25s cubic-bezier(.32,.72,0,1)}@keyframes confirm-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn.danger{background:#dc2626;color:#fff;border-color:#dc2626;font-weight:500}.recall-title{font-weight:600}.recall-blurb{margin:0}.recall-src{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;margin-bottom:4px}.recall-reason{font-size:13px;opacity:.85;margin-top:4px}.recall-link{display:inline-block;margin-top:6px;color:inherit;font-size:13px;font-weight:500}.sheet-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:flex-end;z-index:10;animation:backdrop-in .25s ease}@keyframes backdrop-in{0%{background:#0000}to{background:#00000059}}.sheet{background:var(--surface);width:100%;max-width:520px;margin:0 auto;border-radius:20px 20px 0 0;padding:26px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;box-shadow:0 -8px 40px #0000001f;position:relative;animation:sheet-up .38s cubic-bezier(.32,.72,0,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet:before{content:"";position:absolute;top:9px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:999px;background:#00000024}.item-img{width:56px;height:56px;border-radius:10px;object-fit:cover;background:#f3f4f6}.price-input{font-size:24px;font-weight:300;width:130px}.qty{display:flex;align-items:center;gap:4px;font-size:18px}.check{display:flex;gap:8px;align-items:center;color:var(--text-2);font-size:14px}.check input{accent-color:var(--btn-bg)}.recall-warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);border-radius:10px;padding:10px;font-size:14px}.nav-pill{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:4px;padding:6px;border-radius:999px;background:#ffffffb8;backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid rgba(11,12,14,.06);box-shadow:0 8px 30px #0b0c0e1f}.nav-pill button{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--text-3);transition:background .2s,color .2s,transform .2s}.nav-pill button:active{transform:scale(.9)}.nav-pill button.on{background:#fff;color:var(--text);box-shadow:0 0 0 1px #111111d9,0 2px 8px #0b0c0e14}.toast{position:fixed;bottom:calc(102px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--btn-bg);color:var(--btn-fg);border-radius:999px;padding:9px 18px;font-size:13px;white-space:nowrap;z-index:20;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px #0000002e}@media(max-width:375px){:root{--pad: 13px}.boot-loader{gap:10px;padding:0 24px;text-align:center}.spinner.big{width:30px;height:30px}.total{font-size:46px}.total .cur{font-size:29px}.total .cents{font-size:27px}.total-meta{font-size:13px}.btn{padding:11px 12px;font-size:14px}.scanner{max-height:40dvh}}@media(max-width:340px){:root{--pad: 11px}body{font-size:15px}.hint{font-size:12px}.spinner.big{width:26px;height:26px;border-width:2.5px}.total{font-size:40px}.total .cur{font-size:25px}.total .cents{font-size:23px}.total-meta{font-size:12px}.trip-actions{flex-wrap:wrap}.trip-actions .primary{flex-basis:100%}.mode-slider button,.mode-thumb{width:36px;height:32px}.mode-slider.photo .mode-thumb{transform:translate(36px)}.price-input{width:110px}}
