:root{--primary: #FF4500;--primary-dark: #FF6A33;--primary-light: color-mix(in srgb, #FF4500 16%, #1A1A1B);--primary-line: color-mix(in srgb, #FF4500 36%, #2A2A2C);--bg: #121214;--page-bg: #121214;--surface: #1A1A1B;--surface-2: #2A2A2C;--nav-glass: rgba(18, 18, 20, .6);--text: #E8E8E8;--text-2: #C4C4C4;--text-muted: #9A9A9A;--text-faint: #6E6E70;--border: #2A2A2C;--border-light: #232325;--canvas: #0D0D0F;--surface-input: #161619;--text-bright: #F5F5F4;--chip-text: #B5B5B3;--chip-text-selected: #FFFFFF;--chip-bg-selected: var(--surface);--danger: #E5484D;--danger-light: color-mix(in srgb, #E5484D 14%, #1A1A1B);--danger-border:color-mix(in srgb, #E5484D 30%, #2A2A2C);--success: #4ADE80;--warning: #F5B041;--warning-light: rgba(245, 176, 65, .14);--warning-border:rgba(245, 176, 65, .35);--cat-bar-gradient-1: #3B9DF8;--cat-bar-gradient-2: #8B5CF6;--cat-bar-gradient-3: #E930A0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4), 0 1px 6px rgba(0,0,0,.3);--shadow-md: 0 4px 14px rgba(0,0,0,.5);--shadow-lg: 0 18px 40px -16px rgba(0,0,0,.7);--nav-h: 88px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.4, 0, .2, 1);--dur: .24s;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Inter Tight", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Fira Code", monospace}[data-theme=light]{--primary-light: color-mix(in srgb, #FF4500 12%, #FFFFFF);--primary-line: color-mix(in srgb, #FF4500 12%, #D9DDE3);--bg: #F6F7F8;--page-bg: #F6F7F8;--surface: #FFFFFF;--surface-2: #F1F2F4;--nav-glass: rgba(255, 255, 255, .7);--text: #1F2328;--text-2: #3F454D;--text-muted: #6B7280;--text-faint: #9CA3AF;--border: #D9DDE3;--border-light: #E6E8EC;--canvas: #EEF0F3;--surface-input: #ECEDF0;--text-bright: #14171C;--chip-text: #5B6472;--chip-text-selected: #14171C;--chip-bg-selected: var(--surface);--danger-light: color-mix(in srgb, #E5484D 12%, #FFFFFF);--danger-border: color-mix(in srgb, #E5484D 28%, #D9DDE3);--cat-bar-gradient-1: #3B9DF8;--cat-bar-gradient-2: #8B5CF6;--cat-bar-gradient-3: #E930A0;--shadow-sm: 0 1px 2px rgba(20,22,26,.05), 0 1px 4px rgba(20,22,26,.04);--shadow-md: 0 4px 14px rgba(20,22,26,.07);--shadow-lg: 0 18px 40px -16px rgba(20,22,26,.16)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;width:100%;overflow:hidden;-webkit-text-size-adjust:100%;overscroll-behavior:none;background:var(--bg)}body{width:100%;height:100vh;height:100dvh;overflow:hidden;font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior:none}*{touch-action:manipulation}button{cursor:pointer;border:none;background:none;font:inherit;-webkit-tap-highlight-color:transparent}input{font:inherit;border:none;outline:none;background:none}a{color:inherit;text-decoration:none}.hidden{display:none!important}.splash{position:fixed;top:0;left:0;width:100%;min-height:100vh;min-height:100dvh;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:env(safe-area-inset-top) max(32px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(32px,env(safe-area-inset-left));background:var(--page-bg);transition:opacity .4s ease}.splash.fade-out{opacity:0}.splash.done{display:none}.splash-logo{width:96px;height:96px;border-radius:22px;opacity:0;transform:scale(.92);transition:opacity .4s ease,transform .4s ease}.splash.in .splash-logo{opacity:1;transform:scale(1)}.splash-tagline-text{text-align:center;text-transform:uppercase;text-wrap:balance;font-family:var(--font-display);font-size:.875rem;font-weight:800;letter-spacing:.05em;line-height:1.25;color:var(--text);opacity:0;transition:opacity .4s ease}.splash.in .splash-tagline-text{opacity:1}@media (prefers-reduced-motion: reduce){.splash,.splash-logo,.splash-tagline-text{transition:none}.splash-logo,.splash-tagline-text{opacity:1;transform:none}}#app{position:relative;width:100%;max-width:430px;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);box-shadow:0 0 60px #0006}.screen{position:absolute;top:0;right:0;left:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),top var(--dur) var(--ease)}#app.has-update-banner .screen{top:var(--update-banner-h, 0px)}.screen.hidden{opacity:0;pointer-events:none;transform:translateY(6px)}.screen-fullscreen{bottom:0}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:150;background:#00000080;-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%);opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.22,1,.36,1)}.sheet-backdrop.visible{opacity:1}.screen-slide-down{z-index:200;transform:translateY(0);transition:transform .3s cubic-bezier(.22,1,.36,1);will-change:transform;border-radius:0;overflow:hidden;top:0}.screen-slide{z-index:200;transform:translate(0);opacity:1;transition:transform .28s cubic-bezier(.22,1,.36,1);will-change:transform}.screen-slide.hidden{display:flex!important;opacity:1;transform:translate(100%);pointer-events:none}@media (prefers-reduced-motion: reduce){.screen-slide{transition:none}}.screen-header-title-item{text-transform:none;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#screen-item .screen-body{padding-left:16px;padding-right:16px}.item-tag{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:32px 18px 22px;margin:16px 0 24px;-webkit-mask:radial-gradient(circle 13px at 50% 0,transparent 0 13px,#000 13.5px);mask:radial-gradient(circle 13px at 50% 0,transparent 0 13px,#000 13.5px)}.item-tag .item-detail-priceline{margin-bottom:0}.item-search-btn{position:absolute;top:14px;right:14px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);border:none;background:transparent;color:var(--text-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.item-search-btn:active{background:var(--surface-2);color:var(--text)}.item-search-btn.hidden{display:none}.item-detail-icon{margin:0 auto 14px}.item-detail-name{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text);margin-bottom:8px;text-align:center}.item-detail-package-size{font-family:var(--font-mono);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center;margin-top:-4px;margin-bottom:10px}.item-detail-raw{font-family:var(--font-mono);font-size:12.5px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--text-faint);margin-top:-2px;margin-bottom:14px;text-align:center}.item-detail-meta{display:flex;align-items:center;justify-content:center;gap:5px;font-size:14px;color:var(--text-muted);margin-bottom:14px}.item-detail-priceline{display:flex;align-items:baseline;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:28px}.item-detail-price{font-family:var(--font-mono);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.item-detail-unit{font-family:var(--font-mono);font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center;margin-bottom:10px}.item-detail-original-price,.item-detail-discount-line{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center}.item-detail-original-price{margin-bottom:2px}.item-detail-discount-line{margin-bottom:10px}.item-detail-note{padding:16px 18px;border:1px dashed var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text-muted);font-size:14px;text-align:center}.item-history{margin-top:6px;padding-top:4px;border-top:1px solid var(--border)}.screen-header{padding:calc(var(--safe-t) + 6px) 24px 14px;background:transparent;border-bottom:none;flex-shrink:0}.screen-header-compact{display:flex;align-items:center;gap:4px;padding:calc(var(--safe-t) + 10px) 16px 10px;background:transparent;border-bottom:none}.header-top{display:flex;align-items:center;justify-content:space-between}.header-title{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.02em}.screen-header-title{flex:1;text-align:center;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted)}.greeting{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted)}.header-subtitle{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em;margin-top:4px}.header-caption{font-size:14px;color:var(--text-muted);line-height:1.5;margin-top:4px}.avatar{width:36px;height:36px;border-radius:var(--r-full);background:var(--primary-light);color:var(--primary-dark);font-family:var(--font-mono);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;border:1px solid var(--primary-line)}.back-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);color:var(--text);flex-shrink:0;background:var(--surface);border:1px solid var(--border);transition:background var(--dur) var(--ease)}.back-btn:active{background:var(--surface-2)}.screen-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 24px calc(var(--nav-h) + var(--safe-b) + 16px)}.screen-body::-webkit-scrollbar{display:none}#screen-shopping .screen-body{padding-bottom:calc(var(--nav-h) + var(--safe-b) + 16px + 52px)}#screen-search .screen-body{position:relative;padding-top:4px}#screen-search .screen-header{position:absolute;top:0;left:0;right:0;z-index:20;transition:transform .26s cubic-bezier(.4,0,.2,1);will-change:transform}#screen-search.header-scrolled .screen-header{background:var(--bg)}#screen-search.header-hidden .screen-header{transform:translateY(-100%)}@media (prefers-reduced-motion: reduce){#screen-search .screen-header{transition:none}}#screen-dashboard{--dash-header-h: 78px}#screen-dashboard .screen-header{position:absolute;top:0;left:0;right:0;z-index:20;transition:transform .28s cubic-bezier(.22,1,.36,1);min-height:calc(var(--safe-t) + var(--dash-header-h))}#screen-dashboard .screen-body{padding-top:calc(var(--safe-t) + var(--dash-header-h) + 20px)}#screen-dashboard.header-scrolled .screen-header{background:var(--bg)}#screen-dashboard.header-hidden .screen-header{transform:translateY(-100%)}.screen-body-review{padding:0}.bottom-nav{position:fixed;left:0;right:0;bottom:0;width:100%;max-width:430px;margin:0 auto;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:center;justify-content:center;z-index:100;background:transparent!important;padding-top:8px;border-top:none;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav:before{content:"";position:absolute;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 48px);background:linear-gradient(to top,var(--bg) 0%,color-mix(in srgb,var(--bg) 70%,transparent) 45%,transparent 100%);pointer-events:none;z-index:-1}.nav-pill{display:flex;align-items:center;justify-content:space-between;gap:0;background:var(--nav-glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:999px;padding:8px 12px;width:calc(100% - 32px)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.01em;transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease);padding:4px 0;border-radius:999px}.nav-item.active:not(.nav-item-scan){color:var(--text);background:var(--surface-2)}.nav-item-scan{color:var(--text-muted)}.nav-item-scan.active{color:var(--text)}.nav-scan-btn{width:44px;height:44px;background:var(--primary);border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px -2px var(--primary);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);margin-bottom:2px}.nav-item-scan:active .nav-scan-btn{transform:scale(.93);box-shadow:0 2px 8px -2px var(--primary)}.btn{height:52px;border-radius:var(--r-lg);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease);flex:1;font-family:var(--font-body)}.btn:active{transform:scale(.97);opacity:.85}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 10px -6px var(--primary)}.btn-ghost{background:var(--surface-2);color:var(--text-muted)}.dashboard-welcome{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;background-color:var(--bg);display:flex;flex-direction:column;align-items:center}.dashboard-welcome-content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;padding:calc(24px + var(--safe-t)) 28px calc(28px + var(--safe-b));text-align:center;margin:auto 0}.dashboard-welcome-illustration{height:250px;width:auto;max-width:100%;object-fit:contain;margin-bottom:16px}.dashboard-welcome-title{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text);margin-bottom:10px}.dashboard-welcome-body{font-size:15px;line-height:1.5;color:var(--text-muted);max-width:320px;margin-bottom:28px}.dashboard-welcome-cta{width:100%;max-width:420px;flex:none}.dashboard-welcome-skip{margin-top:14px;padding:4px 0;font-size:14px;font-weight:600;color:var(--text-muted);background:none;border:none;text-decoration:underline;text-underline-offset:2px;cursor:pointer;-webkit-tap-highlight-color:transparent}.dashboard-welcome-skip:active{color:var(--text)}.dashboard-welcome-close{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);left:12px;z-index:1;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer}.dashboard-welcome-close:active{color:var(--text)}#scan-ai-consent,#scan-camera-gate{z-index:1500}.ai-disclosure-text{max-width:320px;font-size:13px;line-height:1.5;color:var(--text-muted)}#scan-ai-consent-body{margin-top:4px;margin-bottom:24px}.ai-consent-legal{max-width:320px;margin-top:14px;font-size:12px;line-height:1.5;text-align:center;color:var(--text-muted)}.text-link{display:inline;padding:0;font:inherit;color:var(--text-muted);background:none;border:none;text-decoration:underline;text-underline-offset:2px;cursor:pointer;-webkit-tap-highlight-color:transparent}.text-link:active{color:var(--text)}.torn-card{position:relative;isolation:isolate;background:var(--border);border:1px solid var(--border);border-radius:18px 18px 0 0;-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/16px 9px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/16px 9px repeat-x}.torn-card:before{content:"";position:absolute;z-index:-1;top:1px;right:1px;bottom:1px;left:1px;background:var(--surface);border-radius:17px 17px 0 0;-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/16px 9px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/16px 9px repeat-x}.summary-card{padding:22px 22px 30px;margin-bottom:24px}.summary-label{font-size:12px;font-weight:600;color:var(--text-muted);letter-spacing:.09em;text-transform:uppercase;margin-bottom:10px}.summary-amount{display:flex;align-items:flex-start;line-height:1;font-family:var(--font-display);font-variant-numeric:tabular-nums}.summary-dollar{font-size:26px;font-weight:600;color:var(--text);position:relative;top:6px}.summary-int{font-size:52px;font-weight:700;letter-spacing:-.025em;color:var(--text)}.summary-dec{font-size:52px;font-weight:700;letter-spacing:-.025em;color:var(--text-muted)}.summary-comparison{margin-top:10px;font-size:13px;color:var(--text-2);line-height:1.4;opacity:0;transition:opacity .26s ease}.summary-comparison.visible{opacity:1}.summary-comparison-arrow{transition:color .22s ease}.summary-comparison-arrow-up{color:var(--danger)}.summary-comparison-arrow-down{color:var(--success)}.summary-comparison-arrow-flat{color:var(--text-2)}@media (prefers-reduced-motion: reduce){.summary-comparison,.summary-comparison-arrow{transition:none}}.summary-meta{margin-top:14px;font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.dot{opacity:.5}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:13px}.section-title{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:-.01em}.section-link{font-size:13px;color:var(--text);font-weight:600}.section-count{font-size:12px;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.category-section{margin-bottom:26px}.torn-card>.category-section{margin-top:24px;margin-bottom:0}.cat-row{padding:9px 0}.cat-row:first-child{padding-top:2px}.cat-row:last-child{padding-bottom:2px}.cat-row-tappable{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:var(--r-sm);transition:opacity var(--dur) var(--ease)}.cat-row-tappable:active{opacity:.6}.cat-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}.cat-name{font-size:14px;font-weight:500;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.cat-amount{font-family:var(--font-mono);font-size:13.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0}.cat-chevron{flex-shrink:0;align-self:center;margin-left:-4px;color:var(--text-faint)}.cat-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1)}.cat-more.open{grid-template-rows:1fr}.cat-more-inner{overflow:hidden;opacity:0;transition:opacity .28s cubic-bezier(.4,0,.2,1)}.cat-more.open .cat-more-inner{opacity:1}.cat-toggle{display:block;width:100%;margin-top:10px;padding:8px 0;font-size:13px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.cat-toggle:active{color:var(--text)}@media (prefers-reduced-motion: reduce){.cat-more,.cat-more-inner{transition:none}}.cat-bar-track{height:7px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}.cat-bar-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--cat-bar-gradient-1) 0%,var(--cat-bar-gradient-2) 50%,var(--cat-bar-gradient-3) 100%);box-shadow:inset 0 0 6px color-mix(in srgb,var(--cat-bar-gradient-3) 55%,transparent);transition:width var(--dur) var(--ease)}.receipt-card{position:relative;isolation:isolate;background:var(--border);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px 24px;display:flex;align-items:center;gap:13px;margin-bottom:var(--space-2);cursor:pointer;transition:transform var(--dur) var(--ease);-webkit-tap-highlight-color:transparent;-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/15px 8px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/15px 8px repeat-x}.receipt-card:before{content:"";position:absolute;z-index:-1;top:1px;right:1px;bottom:1px;left:1px;background:var(--surface);border-radius:calc(var(--r-lg) - 1px);-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/15px 8px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,conic-gradient(from 135deg at top,#0000 25%,#000 0) bottom/15px 8px repeat-x}.receipt-card:active{transform:scale(.98)}.receipt-card-icon{width:42px;height:42px;border-radius:13px;flex-shrink:0;background:var(--surface-2);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:600;font-size:13px;letter-spacing:-.01em}.receipt-card-body{flex:1;min-width:0}.receipt-card-store{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.receipt-card-meta{font-size:12.5px;color:var(--text-muted);margin-top:2px}.receipt-card-total{font-family:var(--font-mono);font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;flex-shrink:0;color:var(--text)}@keyframes receipt-card-new-pulse{0%{border-color:var(--primary-line);box-shadow:0 0 0 3px var(--primary-light)}to{border-color:var(--border);box-shadow:none}}.receipt-card-new{animation:receipt-card-new-pulse 1.6s var(--ease) 1}@media (prefers-reduced-motion: reduce){.receipt-card-new{animation:none}}.empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 24px calc(48px + var(--safe-b));text-align:center}.empty-icon{font-size:44px;margin-bottom:16px;opacity:.6}.shopping-empty-cow,.highlights-empty-cow,.home-empty-cow{height:250px;width:auto;max-width:100%;object-fit:contain;margin-bottom:16px}.empty-title{font-family:var(--font-display);font-size:18px;font-weight:600;margin-bottom:8px}.empty-subtitle{font-size:14px;color:var(--text-muted);line-height:1.5}.empty-action{margin-top:16px;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 18px;cursor:pointer;-webkit-tap-highlight-color:transparent}.empty-action.hidden{display:none}.empty-action:active{opacity:.85}.receipt-class-empty-state{padding:24px 4px;text-align:center}.receipt-class-empty-state .empty-title{font-size:16px;margin-bottom:6px}.receipt-class-empty-state .empty-subtitle{font-size:13px}.period-empty-state{padding:40px 4px 8px;text-align:center}.period-empty-title{font-family:var(--font-display);font-size:17px;font-weight:600;margin-bottom:6px}.period-empty-subtitle{font-size:14px;color:var(--text-muted);line-height:1.5;margin-bottom:28px}.period-recap{text-align:left}.period-recap-heading{font-size:14px;font-weight:600;color:var(--text-2);margin-bottom:4px}.period-empty-state.has-recap{padding:4px 0 8px;text-align:left}.period-empty-state.has-recap .period-recap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:4px 16px 6px;margin-bottom:14px}.period-empty-state.has-recap .period-recap-heading{font-size:15px;font-weight:700;color:var(--text);margin:12px 0 2px}.period-empty-state.has-recap .period-empty-message{text-align:center}.period-empty-state.has-recap .period-empty-title{font-family:var(--font-body);font-size:13px;font-weight:400;color:var(--text-muted);margin:0}.recap-see-all{display:inline-flex;align-items:center;gap:3px;margin-top:10px;padding:4px 0;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer}.recap-see-all:active{color:var(--text-2)}.recap-see-all-chevron{font-size:15px;line-height:1}.camera-container{position:relative;width:100%;height:100%;background:#0b0b0c;overflow:hidden}#camera-video{width:100%;height:100%;object-fit:cover}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.camera-top-bar{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-t) + 14px) 20px 14px;background:linear-gradient(to bottom,rgba(0,0,0,.65) 0%,transparent 100%)}.camera-title{color:#fff;font-size:15px;font-weight:600}.camera-icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:#ffffff1f;transition:background var(--dur) var(--ease);cursor:pointer}.camera-icon-btn:active{background:#ffffff3d}.viewfinder-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px}.viewfinder-frame{position:relative;width:min(230px,64vw);height:min(320px,88vw)}.corner{position:absolute;width:34px;height:34px;border-color:#fff;border-style:solid}.corner-tl{top:-3px;left:-3px;border-width:3px 0 0 3px;border-top-left-radius:6px}.corner-tr{top:-3px;right:-3px;border-width:3px 3px 0 0;border-top-right-radius:6px}.corner-bl{bottom:-3px;left:-3px;border-width:0 0 3px 3px;border-bottom-left-radius:6px}.corner-br{bottom:-3px;right:-3px;border-width:0 3px 3px 0;border-bottom-right-radius:6px}.scan-line{position:absolute;left:4px;right:4px;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);box-shadow:0 0 12px 2px var(--primary);animation:scan-sweep 2.2s ease-in-out infinite}@keyframes scan-sweep{0%{top:4px}50%{top:calc(100% - 6px)}to{top:4px}}.viewfinder-hint{color:#ffffffbf;font-size:13.5px;margin-top:20px;text-align:center;line-height:1.45;padding:0 40px}.camera-controls{display:flex;align-items:center;justify-content:space-between;padding:20px 40px calc(var(--safe-b) + 36px);background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%)}.gallery-btn{border-radius:var(--r-md)}.capture-btn{width:78px;height:78px;border-radius:var(--r-full);border:4px solid #fff;display:flex;align-items:center;justify-content:center;padding:5px;transition:transform var(--dur) var(--ease)}.capture-btn:active{transform:scale(.9)}.capture-btn-inner{width:100%;height:100%;border-radius:var(--r-full);background:#fff}.camera-denied{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;gap:16px}.denied-title{color:var(--text);font-size:18px;font-weight:600;font-family:var(--font-display)}.denied-subtitle{color:var(--text-muted);font-size:14px;line-height:1.5;max-width:280px}.denied-upload-btn{flex:none;width:100%;max-width:280px;height:56px;margin-top:8px}.scan-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center}.scan-loading-inner{display:flex;flex-direction:column;align-items:center;padding:0 40px}.paper-receipt{position:relative;width:200px;height:240px;background:var(--surface);border-radius:8px;box-shadow:var(--shadow-lg);padding:24px 22px;overflow:hidden}.paper-line{height:7px;background:#2c2c2e;border-radius:3px;margin-bottom:10px}.paper-divider{height:1px;background:var(--border);margin:14px 0}.paper-scan-beam{position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--primary),transparent);box-shadow:0 0 16px 3px var(--primary);animation:paper-scan 1.5s ease-in-out infinite alternate}@keyframes paper-scan{0%{transform:translateY(6px)}to{transform:translateY(228px)}}.scan-loading-title{margin-top:32px;font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--text)}.scan-loading-subtitle{margin-top:6px;font-size:13.5px;color:var(--text-muted)}.review-receipt{margin:12px 16px 0}.review-head{padding:20px 24px 18px}.review-store-input{width:100%;background:none;border:none;text-align:center}.review-store-input:focus{outline:none}.review-store-input{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text);padding:2px 0}.review-store-input::placeholder{color:var(--text-faint)}.review-date-wrap{position:relative;display:inline-block;margin-top:4px}.review-date-display{font-family:var(--font-body);font-size:14px;color:var(--text-muted);background:none;border:none;padding:2px 4px}.review-date-input-native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:none;background:none;cursor:pointer}.review-section-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 0 10px}.review-fees-heading{margin-top:18px}.items-count{font-size:12px;color:var(--text-muted);font-weight:500}.items-list .detail-item-row{cursor:pointer}.totals-card{margin:16px 16px 0;padding:4px 16px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg, 14px)}.totals-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums}.totals-row span:last-child{font-family:var(--font-mono)}.totals-total{font-size:15px;font-weight:700;color:var(--text);border-top:2px solid var(--text);padding-top:12px;margin-top:2px}.totals-total-amount{font-family:var(--font-mono);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.totals-match{text-align:center;margin-top:8px;font-size:12px;font-weight:500;line-height:1.4}.totals-match:empty{display:none}.totals-match-ok{color:color-mix(in srgb,var(--success) 62%,var(--text-muted))}.totals-match-warn{color:var(--text)}.totals-match-neutral{color:var(--text-muted)}.review-footer{display:flex;gap:10px;padding:14px 16px calc(var(--safe-b) + 14px);background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.item-edit-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:calc(16px + var(--safe-b));background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .22s var(--ease)}.item-edit-backdrop.hidden{display:none}.item-edit-backdrop.visible{opacity:1}.item-edit-sheet{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:22px 20px 18px;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform .24s var(--ease)}.item-edit-backdrop.visible .item-edit-sheet{transform:translateY(0) scale(1)}.item-edit-title{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--text);margin-bottom:14px}.item-edit-name-input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;font-size:16px;font-weight:500;color:var(--text);font-family:var(--font-body)}.item-edit-price-row{display:flex;align-items:center;justify-content:space-between;padding:14px 2px 4px;font-size:13px;color:var(--text-muted)}.item-edit-price{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--text)}.item-edit-actions{display:flex;gap:10px;margin-top:16px}.item-edit-actions .btn{height:48px}.item-edit-delete{display:block;width:100%;margin-top:12px;padding:10px;text-align:center;font-size:13.5px;font-weight:500;color:var(--danger);background:none;border:none}.item-edit-delete:active{opacity:.7}.search-bar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:10px 16px;margin-top:12px;color:var(--text-muted)}.search-bar input{flex:1;min-width:0;font-size:16px;color:var(--text);background:none}.search-bar input::placeholder{color:var(--text-faint)}.search-field-icon{flex-shrink:0;width:18px;height:18px;color:var(--text-faint)}.search-bar input::-webkit-search-cancel-button,.search-bar input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:2px;color:var(--text-muted);background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.search-clear:active{opacity:.7}.search-row{display:flex;align-items:stretch;gap:8px;margin-top:12px}.search-row .search-bar{flex:1;min-width:0;margin-top:0}.home-tagline{text-align:left;font-size:87px;font-weight:200;line-height:68px;color:#fff;text-transform:uppercase;letter-spacing:-.02em;padding:16px 0 48px;background:none}.filter-btn{position:relative;flex-shrink:0;padding:0 14px;display:flex;align-items:center;justify-content:center;background:var(--surface-input);border:none;border-radius:var(--r-md);color:var(--text-bright);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease)}.filter-btn:active{background:var(--surface-2)}.search-brand{flex-shrink:0;align-self:center;width:40px;height:40px;border-radius:var(--r-sm);object-fit:contain}.search-back{padding:0 10px}.search-suggest{position:absolute;top:var(--search-header-h, 0);left:0;right:0;bottom:0;z-index:5;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none;padding:10px 24px calc(24px + var(--safe-b))}.search-suggest::-webkit-scrollbar{display:none}.suggest-section{margin-bottom:16px}.suggest-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:6px 0}.suggest-store{display:flex;align-items:center;gap:11px;width:100%;padding:9px 0;background:none;border:none;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.suggest-store:active{opacity:.65}.suggest-icon{position:relative;flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono)}.suggest-icon .store-initials{font-size:11px}.suggest-icon .store-favicon{padding:2px}.suggest-store-name{min-width:0;font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 0;background:none;border:none;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.suggest-item:active{opacity:.65}.suggest-item-body{flex:1;min-width:0}.suggest-item-name{font-size:14.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-item-meta{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);margin-top:2px}.suggest-item-price{flex-shrink:0;font-family:var(--font-mono);font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-bright)}.active-filters{display:flex;flex-wrap:nowrap;gap:6px;margin-top:10px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.active-filters::-webkit-scrollbar{display:none}.active-filter{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--text-bright);background:var(--surface);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-full);padding:7px 12px 7px 15px;cursor:pointer;-webkit-tap-highlight-color:transparent}.active-filter>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-filter svg{flex-shrink:0;width:15px;height:15px;color:var(--text-bright)}[data-theme=light] .active-filter{border-color:var(--border)}[data-theme=light] .active-filter svg{color:var(--text-muted)}.filter-btn-badge{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--text);border:2px solid var(--surface-input)}.filters-sheet{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;max-width:430px;margin:0 auto;z-index:1000;display:flex;flex-direction:column;background:var(--canvas);transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);will-change:transform}.filters-sheet.open{transform:translateY(0)}@media (prefers-reduced-motion: reduce){.filters-sheet{transition:none}}.filters-header{flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(14px + var(--safe-t)) 14px 14px;border-bottom:1px solid var(--border)}.filters-close{justify-self:start;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer}.filters-close:active{background:var(--surface-2)}.filters-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text);text-align:center}.filters-clear{justify-self:end;background:none;border:none;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--text-2);cursor:pointer;padding:6px 2px}.filters-clear:disabled{color:var(--text-faint);cursor:default}.filters-body{flex:1;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;padding:20px 18px 24px}.filters-body::-webkit-scrollbar{display:none}.filters-section{margin-bottom:26px}.filters-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.filters-chips{display:flex;flex-wrap:wrap;gap:8px}.filters-empty{font-size:13px;color:var(--text-faint)}.filter-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;font-family:var(--font-body);font-size:13.5px;font-weight:600;color:var(--chip-text);background:var(--surface-input);border:1px solid rgba(255,255,255,.06);border-radius:var(--r-full);padding:8px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.filter-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chip.selected{color:var(--chip-text-selected);font-weight:700;background:var(--chip-bg-selected);border-color:var(--text-muted)}[data-theme=light] .filter-chip.selected{box-shadow:0 1px 6px -2px #14171c24}[data-theme=light] .filter-chip:not(.selected){background:var(--surface);border-color:var(--border)}.period-toggle{display:flex;gap:8px;margin-bottom:var(--space-5)}.period-toggle .filter-chip{flex:1;justify-content:center}.filter-chip-icon{position:relative;flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:5px;overflow:hidden;background:var(--surface-2);color:var(--text-2)}.filter-chip-icon .store-initials{font-size:8.5px}.filter-chip-icon .store-favicon{padding:1px}.filters-footer{flex-shrink:0;padding:12px 18px calc(12px + var(--safe-b));border-top:1px solid var(--border);background:var(--canvas)}.filters-apply{width:100%;font-family:var(--font-body);font-size:15px;font-weight:700;color:#fff;background:var(--primary);border:none;border-radius:var(--r-md);padding:14px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur) var(--ease)}.filters-apply:active{opacity:.88}.filters-apply:disabled{background:var(--surface-2);color:var(--text-faint);cursor:default}.filters-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.filters-section-head .filters-label{margin-bottom:0}.filters-store-search-wrap{position:relative;margin-bottom:10px}.filters-store-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.filters-store-search{width:100%;font-family:var(--font-body);font-size:16px;color:var(--text);background:var(--surface-input);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px 10px 34px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}.filters-store-search::placeholder{color:var(--text-muted)}.filters-store-search:focus{border-color:var(--text-muted)}.filters-store-list{display:flex;flex-direction:column;gap:4px;max-height:44vh;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filters-store-list::-webkit-scrollbar{display:none}#filters-sheet .filters-body{display:flex;flex-direction:column;overflow:hidden}#filters-sheet .filters-section{flex-shrink:0}#filters-sheet #filters-section-stores{flex:1;display:flex;flex-direction:column;min-height:0;margin-bottom:0}#filters-sheet .filters-store-list{flex:1;max-height:none;min-height:0}.filters-store-row{display:flex;align-items:center;gap:10px;width:100%;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--chip-text);text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--r-md);padding:10px 12px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.filters-store-row.selected{background:var(--surface-2);border-color:var(--border);color:var(--text);font-weight:700}.filters-store-check{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:6px;color:var(--text)}.filters-store-check svg{display:block;opacity:0;transition:opacity var(--dur) var(--ease)}.filters-store-row.selected .filters-store-check{border-color:var(--text)}.filters-store-row.selected .filters-store-check svg{opacity:1}.filters-store-row .filter-chip-icon{flex-shrink:0}.filters-store-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters-store-empty{font-size:13px;color:var(--text-muted);padding:10px 4px}.flag-sheet{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;max-width:430px;margin:0 auto;z-index:1000;display:flex;flex-direction:column;background:var(--canvas);transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);will-change:transform}.flag-sheet.open{transform:translateY(0)}@media (prefers-reduced-motion: reduce){.flag-sheet{transition:none}}.filters-header-spacer{width:34px}.flag-sheet-subtitle{font-size:13.5px;line-height:1.5;color:var(--text-muted);margin-bottom:22px}.flag-sheet-disclosure{font-size:12px;line-height:1.5;color:var(--text-faint);margin-top:18px}.flag-issue-list{display:flex;flex-direction:column;gap:4px}.flag-issue-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 4px;background:none;border:none;border-radius:var(--r-sm);font-family:var(--font-body);font-size:14.5px;font-weight:500;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur) var(--ease)}.flag-issue-row:active{background:var(--surface-2)}.flag-issue-row.selected{color:var(--text);font-weight:600}.flag-issue-check{flex-shrink:0;width:20px;height:20px;border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);position:relative;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.flag-issue-row.selected .flag-issue-check{background:var(--surface-2);border-color:var(--border)}.flag-issue-check:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:10px;border:solid var(--text);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--dur) var(--ease)}.flag-issue-row.selected .flag-issue-check:after{opacity:1}.flag-comments-input{width:100%;min-height:90px;resize:vertical;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;margin-top:4px;font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--text)}.flag-comments-input::placeholder{color:var(--text-faint)}.flag-comments-input:focus{outline:none;border-color:var(--text-muted)}.flag-char-counter{margin-top:6px;text-align:right;font-size:12px;font-family:var(--font-mono);color:var(--text-faint)}.flag-char-counter.flag-char-counter-near-limit{color:var(--warning)}.flag-sheet-actions{display:flex;gap:10px}.flag-sheet-actions .btn{flex:1}.settings-section{margin-bottom:22px}.settings-section-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}.settings-row-label{font-size:14px;font-weight:500;color:var(--text-2)}.settings-row .dev-btn{border:1px solid var(--danger-border);background:var(--surface-2);color:var(--danger)}.dev-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-family:var(--font-mono);font-size:12px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:var(--r-full);padding:7px 14px;transition:transform var(--dur) var(--ease)}.dev-btn:active{transform:scale(.96)}.dev-btn-load{width:100%;border:1px dashed var(--border);background:var(--surface-2);color:var(--text-2)}.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:7px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.theme-toggle-btn:active{transform:scale(.96)}.theme-toggle-btn:disabled{opacity:.45;pointer-events:none}.theme-toggle-btn.active{color:var(--surface);background:var(--text-bright);border-color:var(--text-bright)}.settings-row+.settings-row{margin-top:10px}.settings-row-text{display:flex;flex-direction:column;gap:3px;min-width:0}.settings-row-desc{font-size:12.5px;line-height:1.45;color:var(--text-muted)}.settings-row-value{font-size:13px;font-weight:500;color:var(--text-muted)}.settings-segmented{display:flex;gap:6px}.settings-action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--primary-line);border-radius:var(--r-full);padding:7px 16px;cursor:pointer;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:transform var(--dur) var(--ease)}.settings-action-btn:active{transform:scale(.96)}.settings-action-btn:disabled{opacity:.45;pointer-events:none}.settings-btn-neutral{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:7px 16px;cursor:pointer;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:transform var(--dur) var(--ease)}.settings-btn-neutral:active{transform:scale(.96)}.settings-btn-neutral:disabled{opacity:.45;pointer-events:none}.backup-row{flex-wrap:wrap;align-items:flex-start}.backup-row .settings-row-text{flex:1 1 0}.backup-range{flex:0 0 100%}.backup-range-field{display:block;font-size:12.5px;color:var(--text-muted)}.backup-range-field+.backup-range-field{margin-top:12px}.backup-range-field span{display:block;margin-bottom:4px}.backup-range-field input[type=date]{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;margin:0;font:inherit;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm, 8px);padding:6px 10px}.backup-range-field input[type=date]::-webkit-date-and-time-value{text-align:left}.restore-result{flex:0 0 100%;box-sizing:border-box;padding:12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);font-size:13px;line-height:1.45;color:var(--text-2)}.restore-result[hidden]{display:none}.restore-result-warn{border-color:var(--primary-line)}.restore-result-error{border-color:var(--danger)}.restore-result-title{font-weight:600;color:var(--text-bright);margin-bottom:6px}.restore-lines,.restore-conflicts ul{margin:0;padding-left:18px}.restore-lines li+li,.restore-conflicts li+li{margin-top:4px}.restore-note{margin:10px 0 6px;color:var(--text-bright)}.restore-conflicts summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--text-muted)}.restore-conflicts ul{max-height:220px;overflow-y:auto;font-size:12.5px}.backup-progress{flex:0 0 100%;display:flex;flex-direction:column;gap:4px}.backup-progress[hidden]{display:none}.backup-progress progress{width:100%;height:6px}.settings-row-button{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.theme-toggle-btn:focus-visible,.dev-btn:focus-visible,.settings-action-btn:focus-visible,.settings-btn-neutral:focus-visible,.storage-option:focus-visible,.settings-link-row:focus-visible,.settings-row-button:focus-visible,.settings-account-card:focus-visible{outline:2px solid var(--text);outline-offset:2px}.settings-account-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}button.settings-account-card{width:100%;font:inherit;text-align:left;color:inherit;-webkit-tap-highlight-color:transparent;transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}button.settings-account-card:hover{background:var(--surface-2)}button.settings-account-card:active{transform:scale(.98)}button.settings-account-card:disabled{opacity:.6;pointer-events:none}.account-sign-out-btn{margin-top:10px}.settings-account-avatar{width:44px;height:44px;flex-shrink:0;border-radius:var(--r-full);background:var(--primary-light);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700}.settings-account-name{font-size:15px;font-weight:600;color:var(--text)}.settings-account-email{font-size:13px;color:var(--text-muted);margin-top:2px}.storage-option{display:flex;align-items:flex-start;width:100%;gap:12px;padding:14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);-moz-appearance:none;appearance:none;-webkit-appearance:none;font:inherit;text-align:left;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.storage-option+.storage-option{margin-top:10px}.storage-option.selected{border-color:var(--text-2);background:var(--surface-2)}.storage-option:disabled,.storage-option.locked{cursor:not-allowed;opacity:.7}.storage-option-radio{width:18px;height:18px;flex-shrink:0;margin-top:2px;border-radius:var(--r-full);border:2px solid var(--border-light);position:relative}.storage-option.selected .storage-option-radio{border-color:var(--text)}.storage-option.selected .storage-option-radio:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:var(--r-full);background:var(--text)}.storage-option-body{flex:1;min-width:0}.storage-option-title-row{display:flex;align-items:center;gap:8px;margin-bottom:3px}.storage-option-title{font-size:14px;font-weight:600;color:var(--text)}.storage-option-desc{font-size:12.5px;line-height:1.45;color:var(--text-muted)}.storage-option-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--primary-line);border-radius:var(--r-full);padding:2px 8px}.settings-link-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.settings-link-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--text-2);border-bottom:1px solid var(--border-light);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease)}.settings-link-row:last-child{border-bottom:none}.settings-link-row:active{background:var(--surface-2)}.settings-link-chevron{color:var(--text-faint);flex-shrink:0}.settings-link-row-danger{color:var(--danger)}.results-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em;padding:16px 4px 8px}.results-count{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:0;color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-full);padding:1px 8px}.results-total{margin-left:auto;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--text-2);text-transform:none}.results-total-note{font-family:var(--font-body);font-size:10px;font-weight:500;color:var(--text-faint)}.item-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:var(--space-2);cursor:pointer;transition:transform var(--dur) var(--ease);-webkit-tap-highlight-color:transparent}.item-result:active{transform:scale(.98)}.store-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:var(--space-2);cursor:pointer;transition:transform var(--dur) var(--ease);-webkit-tap-highlight-color:transparent}.store-result:active{transform:scale(.98)}.store-result-icon{position:relative;flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono)}.store-result-icon .store-initials{font-size:12px}.store-result-icon .store-favicon{padding:2px}.store-result-body{flex:1;min-width:0}.store-result-name{font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-result-meta{font-size:12.5px;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-result-chevron{flex-shrink:0;color:var(--text-faint)}.highlight-card{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.highlight-card:last-child{border-bottom:none}.highlight-emoji{flex-shrink:0;width:26px;font-size:20px;line-height:1.4;text-align:center}.highlight-body{flex:1;min-width:0}.highlight-title{font-family:var(--font-display);font-size:14.5px;font-weight:700;color:var(--text);margin-bottom:3px}.highlight-sentence{font-size:13.5px;color:var(--text-2);line-height:1.5}.highlight-comparison{margin-top:3px;font-size:12px;color:var(--text-2);line-height:1.4}.highlight-comparison-arrow-up{color:var(--danger)}.highlight-comparison-arrow-down{color:var(--success)}.highlight-comparison-arrow-flat{color:var(--text-2)}.item-result-body{flex:1;min-width:0}.item-result-name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.item-result-meta{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-muted);margin-top:2px}.store-favicon-inline{width:14px;height:14px;flex-shrink:0;border-radius:2px;object-fit:contain}.item-result-price{font-family:var(--font-mono);font-size:15.5px;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;color:var(--text-bright)}.item-result-per{font-size:11px;font-weight:500;color:var(--text-faint);margin-left:1px}.toast{position:fixed;bottom:calc(var(--nav-h) + var(--safe-b) + 16px);left:50%;transform:translate(-50%);width:max-content;max-width:min(calc(100vw - 32px),400px);overflow-wrap:anywhere;text-align:center;background:var(--text);color:var(--bg);padding:11px 20px;border-radius:var(--r-lg);font-size:14px;font-weight:500;z-index:300;box-shadow:var(--shadow-lg);pointer-events:none;animation:toast-in var(--dur) var(--ease),toast-out var(--dur) var(--ease) 2.6s forwards}@keyframes toast-in{0%{transform:translate(-50%) translateY(12px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes toast-out{0%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(12px);opacity:0}}.update-banner{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;z-index:400;display:flex;align-items:center;gap:12px;padding:calc(var(--safe-t) + 12px) 16px 12px;background:var(--surface);border-bottom:1px solid var(--border);animation:update-banner-in var(--dur) var(--ease)}.update-banner-text{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--text)}.update-banner-actions{display:flex;align-items:center;gap:6px}.update-banner-reload{font-size:14px;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:6px 14px;cursor:pointer}.update-banner-reload:active{background:var(--border)}.update-banner-dismiss{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--text-muted);background:none;border:none;cursor:pointer}.update-banner-dismiss:active{color:var(--text)}@keyframes update-banner-in{0%{transform:translate(-50%) translateY(-100%)}to{transform:translate(-50%) translateY(0)}}#screen-detail .screen-body{padding-left:16px;padding-right:16px}.detail-store-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.detail-store-text{min-width:0;text-align:center}.store-receipts-head{margin-top:24px;margin-bottom:28px}.detail-store{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text);margin-bottom:4px}.detail-meta{font-size:13px;color:var(--text-muted)}.detail-ticket{position:relative;padding:0 18px}.detail-ticket-head{position:relative;padding:22px 0 18px}.detail-ticket-body{padding:18px 0 28px}.detail-feedback-flag{display:flex;align-items:center;justify-content:center;width:fit-content;margin:14px auto 0;padding:9px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);font:inherit;font-size:12px;font-weight:600;line-height:1.2;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur) var(--ease)}.detail-feedback-flag[hidden]{display:none}.detail-feedback-flag:active{opacity:.6}.detail-feedback-flag.flagged{cursor:default}.detail-feedback-flag.flagged:active{opacity:1}.detail-feedback-share{display:block;margin:28px auto 8px;padding:6px 10px;background:none;border:none;font:inherit;font-size:12px;font-weight:500;color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur) var(--ease)}.detail-feedback-share[hidden]{display:none}.detail-feedback-share:active{opacity:.6}.proc-status{text-align:center;font-size:12.5px;font-weight:500;color:var(--text);margin-top:10px;min-height:16px}@keyframes proc-status-pulse{0%,to{opacity:1}50%{opacity:.55}}.proc-status.pulsing{animation:proc-status-pulse 1.8s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.proc-status.pulsing{animation:none;opacity:1}}.proc-status-hint{text-align:center;font-size:12px;font-weight:400;color:var(--text-faint);margin-top:2px}.detail-perforation{position:relative;height:28px;margin:0 -18px;background-image:repeating-linear-gradient(to right,var(--border) 0 7px,transparent 7px 13px);background-repeat:no-repeat;background-position:center;background-size:calc(100% - 44px) 2px}.detail-perforation:before,.detail-perforation:after{content:"";position:absolute;top:50%;width:28px;height:28px;border-radius:50%;background:var(--page-bg);transform:translateY(-50%)}.detail-perforation:before{left:-14px}.detail-perforation:after{right:-14px}.detail-col-header{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding-bottom:10px;border-bottom:1px solid var(--border)}.detail-item-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--border)}.detail-item-row:last-child{border-bottom:none}.detail-item-row-tappable{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:var(--r-sm);transition:background var(--dur) var(--ease)}.detail-item-row-tappable:active{background:var(--surface-2)}.detail-item-chevron{flex-shrink:0;align-self:flex-start;margin-top:2px;color:var(--text-faint)}.detail-item-name{font-size:14.5px;font-weight:500;color:var(--text-2);flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.detail-item-title{display:flex;align-items:baseline;gap:6px;min-width:0}.detail-item-qty{font-family:var(--font-mono);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-faint);flex-shrink:0}.detail-item-meta{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted)}.item-cat-pill,.item-cat-pill-static{align-self:flex-start;margin-top:1px;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-faint);background-color:var(--surface-2);border:none;border-radius:var(--r-full);padding:3px 9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-cat-pill{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:20px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 24 24' fill='none' stroke='%236E6E70' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center}.item-cat-pill:focus{outline:none}.item-cat-pill option{color:var(--text);background:var(--surface)}.item-cat-pill-static{display:inline-block}.detail-item-gross,.detail-item-discount{display:block;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted)}.detail-item-incl-note{display:block;font-size:12px;font-weight:500;color:var(--text-muted)}.detail-item-raw{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--text-faint);text-transform:uppercase}.detail-item-price{font-family:var(--font-mono);font-size:14.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0}.detail-fee-row{cursor:default}.detail-fee-row .detail-item-name,.detail-fee-row .detail-item-price{color:var(--text-muted);font-weight:500}.detail-tax-rows{border-top:1px solid var(--border-light);margin-top:4px;padding-top:14px}.detail-tax-row .detail-item-name,.detail-tax-row .detail-item-price{color:var(--text-2);font-weight:600}.detail-tax-row .detail-item-price.detail-edit-amount-input{width:84px;flex-shrink:0}.detail-totals{margin-top:16px;padding:12px 14px;background:var(--surface-2);border-radius:var(--r-md)}.detail-total-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--text-muted);padding:4px 0}.detail-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.detail-grand-total{border-top:1px solid var(--border);margin-top:8px;padding-top:12px;font-size:15px;font-weight:700;color:var(--text)}.detail-total-amount{font-family:var(--font-mono);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.receipt-card-icon{position:relative;overflow:hidden}.store-initials{font-family:var(--font-mono);font-weight:600;font-size:13px;letter-spacing:-.01em}.store-favicon{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;padding:3px;background:#fff;border-radius:inherit}.store-favicon.failed{display:none}.receipt-card-icon:not(:has(.store-favicon:not(.failed))),.detail-store-icon:not(:has(.store-favicon:not(.failed))){background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.detail-store-icon{width:56px;height:56px;border-radius:16px;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:600;font-size:16px;letter-spacing:-.01em;flex-shrink:0;position:relative;overflow:hidden}.detail-store-icon .store-favicon{padding:5px}.action-menu-sheet{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:8px;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform .24s var(--ease);display:flex;flex-direction:column}.confirm-backdrop.visible .action-menu-sheet{transform:translateY(0) scale(1)}.image-viewer-backdrop{align-items:center;z-index:1300}.image-viewer-img{max-width:min(100%,720px);max-height:calc(100% - 32px);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);object-fit:contain;transform:translateY(16px) scale(.98);transition:transform .24s var(--ease)}.image-viewer-backdrop.visible .image-viewer-img{transform:translateY(0) scale(1)}.image-viewer-close{position:fixed;top:calc(16px + var(--safe-t));right:16px;width:40px;height:40px;border-radius:50%;border:none;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.action-menu-item{display:flex;align-items:center;gap:12px;width:100%;height:52px;padding:0 14px;border-radius:var(--r-md);font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--text);transition:background-color var(--dur) var(--ease)}.action-menu-item:active{background:var(--surface-2)}.action-menu-item svg{flex-shrink:0;color:var(--text-muted)}.action-menu-item-danger{color:var(--danger)}.action-menu-item-danger svg{color:var(--danger)}.action-menu-item:disabled{opacity:.4;pointer-events:none}.detail-edit-item-name-input{width:100%;background:none;border:none;border-bottom:1px solid var(--border);font-family:var(--font-body);font-size:16px;font-weight:600;color:var(--text);padding:2px 0 4px}.detail-edit-item-name-input:focus{outline:none;border-color:var(--text-muted)}#detail-edit .detail-store-text{align-self:stretch;text-align:left}#detail-edit-store{text-align:left;border-bottom:1px solid var(--border);border-radius:0;transition:border-color .15s ease}#detail-edit-store:focus{border-bottom-color:var(--text-muted)}#detail-edit-date-display{border-bottom:1px solid var(--border);border-radius:0;padding-right:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 24 24' fill='none' stroke='%236E6E70' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 3px center}.detail-edit-amount-input{width:90px;text-align:right;background:none;border:none;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:16px;font-variant-numeric:tabular-nums;color:var(--text);padding:2px 0 4px}.detail-edit-amount-input:focus{outline:none;border-color:var(--text-muted)}.detail-edit-actions{display:flex;gap:10px;margin-top:22px}.detail-edit-actions .btn{flex:1}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:calc(16px + var(--safe-b));background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .22s var(--ease)}.confirm-backdrop.visible{opacity:1}.confirm-sheet{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px 22px 18px;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform .24s var(--ease)}.confirm-backdrop.visible .confirm-sheet{transform:translateY(0) scale(1)}.confirm-title{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.confirm-message{margin-top:7px;font-size:14px;line-height:1.5;color:var(--text-muted)}.confirm-actions{display:flex;gap:10px;margin-top:22px}.confirm-btn{flex:1;height:50px;border-radius:var(--r-lg);font-family:var(--font-body);font-size:15px;font-weight:600;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.confirm-btn:active{transform:scale(.97);opacity:.85}.confirm-cancel{background:var(--surface-2);color:var(--text-2)}.confirm-neutral{background:var(--surface-2);color:var(--text-bright);border:1px solid var(--border)}.confirm-confirm{background:var(--danger);color:#fff;box-shadow:0 8px 20px -8px var(--danger)}.confirm-actions-stack{margin-top:22px;display:flex;flex-direction:column;gap:10px}.confirm-actions-stack .confirm-actions{margin-top:0}.confirm-actions-stack .confirm-btn{height:52px}.confirm-actions-stack>.confirm-btn{flex:none;width:100%;display:flex;align-items:center;justify-content:center}.confirm-primary{background:var(--primary);color:#fff;box-shadow:0 8px 20px -8px var(--primary)}#screen-processing .screen-body{padding:calc(var(--safe-t) + 24px) 16px 24px}.skel,.skel-bar{background:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--surface-2) 55%,var(--surface)) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skel-sweep 1.4s ease infinite;border-radius:6px}.skel-bar{display:inline-block;height:14px;vertical-align:middle}#screen-processing .detail-store-icon.skel{border-color:var(--border);color:transparent;animation:skel-sweep 1.4s ease infinite;background-image:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--surface-2) 55%,var(--surface)) 37%,var(--surface-2) 63%);background-size:400% 100%}@keyframes skel-sweep{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion: reduce){.skel,.skel-bar{animation:none;background:var(--surface-2)}#screen-processing .detail-store-icon.skel{animation:none;background-image:none;background:var(--surface-2)}}.proc-error{display:flex;align-items:center;justify-content:center;min-height:300px;padding:32px 22px}.proc-error-inner{text-align:center;max-width:280px}.proc-error-icon{font-size:30px;margin-bottom:12px}.proc-error-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px}.proc-error-sub{font-size:14px;color:var(--text-muted);margin-bottom:22px}.proc-retake-btn{width:100%;height:46px;border-radius:var(--r-md);background:var(--primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur) var(--ease)}.proc-retake-btn:active{opacity:.88}.preview-actions{position:absolute;left:0;right:0;bottom:0;z-index:10;display:flex;flex-direction:column;gap:14px;padding:14px 16px calc(var(--safe-b) + 14px);background:var(--bg);border-top:1px solid var(--border)}.preview-actions:before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px;background:linear-gradient(to top,var(--bg),transparent);pointer-events:none}.preview-actions .btn{border-radius:var(--r-md)}.preview-actions .preview-save{flex:none;width:100%;height:58px;box-shadow:0 1px 6px -3px var(--primary)}.preview-actions-row{display:flex;gap:10px}.preview-actions-row .btn{flex:1;height:42px;font-size:14px;font-weight:500;background:transparent;border:1px solid var(--border);color:var(--text-muted)}.preview-discard{color:color-mix(in srgb,var(--danger) 72%,var(--text-muted))}.shopping-add-row{width:100%;display:flex;align-items:center;gap:8px}.shopping-add-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:7px 14px}.shopping-add-plus{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text)}.shopping-estimate-bar{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + 10px);transform:translate(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:382px;z-index:90}.shopping-estimate-bar.hidden{display:none}.shopping-estimate-pill{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:10px 18px}.shopping-estimate-total{font-size:13px;font-weight:600;color:var(--text-muted);white-space:nowrap}.shopping-clear-list-btn{flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:10px 18px;font:inherit;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-clear-list-btn:active{background:var(--surface-2)}.shopping-add-ghost{flex:1;min-width:0;display:flex;align-items:center;min-height:32px;text-align:left;background:none;border:none;padding:0;font:inherit;font-size:16px;color:var(--text-muted);cursor:text;-webkit-tap-highlight-color:transparent}.shopping-add-ghost.hidden{display:none}.shopping-add-form{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:32px;padding:0}.shopping-add-form.hidden{display:none}.shopping-add-suggestions{margin:-8px 0 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.shopping-add-suggestions[hidden],.shopping-add-suggestions.hidden{display:none}.shopping-add-suggestion{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border-light);padding:11px 16px;font:inherit;font-size:14.5px;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-add-suggestion:last-child{border-bottom:none}.shopping-add-suggestion:active{background:var(--surface-2)}.shopping-add-suggestion-name{flex:1;min-width:0;overflow-wrap:break-word}.shopping-add-suggestion-store-label{flex-shrink:0;font-size:12px;color:var(--text-faint)}.shopping-add-input{flex:1;min-width:0;background:none;border:none;font-family:var(--font-body);font-size:16px;color:var(--text)}.shopping-add-input::placeholder{color:var(--text-muted)}.shopping-add-input:focus{outline:none}.shopping-add-confirm-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border:none;border-radius:var(--r-md);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.shopping-add-confirm-btn:active{transform:scale(.94);opacity:.85}.shopping-list{margin-bottom:8px}.shopping-item{display:flex;align-items:center;gap:12px;padding:14px 4px;position:relative}.shopping-item:not(:last-child):after{content:"";position:absolute;left:40px;right:0;bottom:0;height:1px;background:var(--border-light)}.shopping-item-check{flex-shrink:0;width:24px;height:24px;border-radius:var(--r-full);border:2px solid var(--text-muted);background:var(--surface);position:relative;z-index:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.shopping-item-check:before{content:"";position:absolute;top:-13px;right:-13px;bottom:-13px;left:-13px}.shopping-item.checked .shopping-item-check{background:var(--success);border-color:var(--success)}.shopping-item-check:after{content:"";position:absolute;left:7px;top:4px;width:6px;height:11px;border:solid #14321f;border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--dur) var(--ease)}.shopping-item.checked .shopping-item-check:after{opacity:1}.shopping-item-name{flex:1;min-width:0;font-size:16px;font-weight:500;color:var(--text);overflow-wrap:break-word}.shopping-item.checked .shopping-item-name{color:var(--text-faint);text-decoration:line-through}.shopping-item-price{flex-shrink:0;font-size:12px;font-weight:400;color:var(--text-faint);font-family:var(--font-mono)}.shopping-item-delete{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-faint);cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-item-delete:active{color:var(--danger)}.shopping-store-row{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:var(--space-2);cursor:pointer;text-align:left;transition:transform var(--dur) var(--ease);-webkit-tap-highlight-color:transparent}.shopping-store-row:active{transform:scale(.98)}.shopping-store-row-icon{position:relative;flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono)}.shopping-store-row-name{flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-store-pill{display:flex;align-items:center;gap:8px;width:100%;padding:8px 8px 8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.shopping-store-trigger{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:0;background:none;border:none;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-store-trigger-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);position:relative}.shopping-store-trigger-icon.hidden{display:none}.shopping-store-trigger-label{flex:1;min-width:0;text-align:left;font-size:16px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-select-items-btn{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;color:var(--text-muted);border:none;border-radius:var(--r-md);cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-select-items-btn:active{background:var(--surface-2)}.shopping-select-items-btn.hidden{display:none}.shopping-store-clear-btn{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;color:var(--text-muted);border:none;border-radius:var(--r-md);cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-store-clear-btn:active{background:var(--surface-2)}.shopping-store-clear-btn.hidden{display:none}#screen-shopping-browse .search-bar{position:sticky;top:0;z-index:5}#shopping-browse-list,#shopping-stores-list{margin-top:var(--space-4)}.shopping-browse-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:none;border-bottom:1px solid var(--border-light);padding:13px 4px;font:inherit;font-size:15px;color:var(--text);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-browse-item:last-child{border-bottom:none}.shopping-browse-item:active{background:var(--surface-2)}.shopping-browse-item-name{flex:1;min-width:0;overflow-wrap:break-word}.shopping-browse-item-price{flex-shrink:0;font-size:13px;font-weight:500;color:var(--text-faint);font-family:var(--font-mono)}.shopping-browse-item-toggle-icon{flex-shrink:0;color:var(--text-faint)}.shopping-browse-item.on-list{opacity:.7}.shopping-browse-item.on-list .shopping-browse-item-name{color:var(--text-faint);text-decoration:line-through}.shopping-browse-item-other-store .shopping-browse-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.shopping-browse-item-store-label{font-size:12px;color:var(--text-faint)}.shopping-browse-other-heading{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin-top:18px;padding-top:14px;border-top:1px solid var(--border-light)}.shopping-browse-footer{display:flex;padding:14px 16px calc(var(--safe-b) + 14px);background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}
