*{box-sizing:border-box}html{width:100%;height:100%}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#f8f9fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;color:#f1f5f9;background-color:#0f172a}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;min-width:320px;min-height:100vh;width:100%}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}h1{font-size:3.2em;line-height:1.1}button{font-family:inherit;cursor:pointer}:root[data-theme=dark] a{color:#818cf8}:root[data-theme=dark] a:hover{color:#a5b4fc}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-fade-in-up{animation:fade-in-up .4s ease-out forwards}.animate-slide-in-right{animation:slide-in-right .3s ease-out forwards}:root{--color-primary: #667eea;--color-primary-container: #f0f4ff;--color-on-primary: #ffffff;--color-on-primary-container: #1a1f71;--color-surface: #ffffff;--color-surface-variant: #f8f9fa;--color-surface-container: #f7fafc;--color-surface-container-high: #edf2f7;--color-surface-container-lowest: #ffffff;--color-on-surface: #333333;--color-on-surface-variant: #666666;--color-inverse-surface: #2d3748;--color-inverse-on-surface: #e2e8f0;--color-outline: #e2e8f0;--color-outline-variant: #cbd5e0;--color-scrim: rgba(0, 0, 0, .32);--color-success: #22543d;--color-success-container: #c6f6d5;--color-on-success: #ffffff;--color-on-success-container: #0f2419;--color-warning: #d69e2e;--color-warning-container: #fefcbf;--color-on-warning: #ffffff;--color-on-warning-container: #5a2d0c;--color-error: #e53e3e;--color-error-container: #fed7d7;--color-on-error: #ffffff;--color-on-error-container: #5b1a1a;--color-info: #2c5282;--color-info-container: #bee3f8;--color-on-info: #ffffff;--color-on-info-container: #1a2332;--color-tertiary-container: #fef3c7;--color-on-tertiary-container: #78350f;--elevation-0: none;--elevation-1: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--elevation-2: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);--elevation-3: 0 4px 12px rgba(0, 0, 0, .15), 0 2px 4px rgba(0, 0, 0, .12);--elevation-4: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);--elevation-5: 0 14px 28px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .22);--motion-easing-standard: cubic-bezier(.2, 0, 0, 1);--motion-easing-decelerate: cubic-bezier(0, 0, 0, 1);--motion-easing-accelerate: cubic-bezier(.3, 0, 1, 1);--motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--motion-easing-emphasized-decelerate: cubic-bezier(.05, .7, .1, 1);--motion-easing-emphasized-accelerate: cubic-bezier(.3, 0, .8, .15);--motion-duration-short: .15s;--motion-duration-medium: .3s;--motion-duration-long: .5s;--motion-duration-extra-long: .7s;--state-hover-opacity: .08;--state-focus-opacity: .12;--state-pressed-opacity: .16;--state-disabled-opacity: .38;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--touch-target-min: 44px;--touch-target-comfortable: 48px;--touch-target-large: 56px;--radius-none: 0;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--storage-good: #4caf50;--storage-warning: #ff9800;--storage-critical: #f44336;--storage-offline: #ff9800}:root[data-theme=dark]{--color-surface: #0f172a;--color-surface-variant: #1e293b;--color-surface-container: #1e293b;--color-surface-container-high: #334155;--color-on-surface: #f1f5f9;--color-on-surface-variant: #94a3b8;--color-inverse-surface: #f1f5f9;--color-inverse-on-surface: #1e293b;--color-surface-container-lowest: #020617;--color-outline: #334155;--color-outline-variant: #475569;--color-primary: #6366f1;--color-primary-container: #312e81;--color-on-primary: #ffffff;--color-on-primary-container: #c7d2fe;--color-success: #16a34a;--color-success-container: #14532d;--color-on-success: #ffffff;--color-on-success-container: #bbf7d0;--color-warning: #d97706;--color-warning-container: #7c2d12;--color-on-warning: #ffffff;--color-on-warning-container: #fed7aa;--color-error: #dc2626;--color-error-container: #7f1d1d;--color-on-error: #ffffff;--color-on-error-container: #fecaca;--color-info: #2563eb;--color-info-container: #1e3a8a;--color-on-info: #ffffff;--color-on-info-container: #bfdbfe;--color-tertiary-container: #78350f;--color-on-tertiary-container: #fde68a;--elevation-1: 0 1px 3px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .05);--elevation-2: 0 4px 6px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .05);--elevation-3: 0 10px 15px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .05)}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--color-surface-variant);transition:background-color var(--motion-duration-medium) var(--motion-easing-standard)}:root[data-theme=dark] .app{background:var(--color-surface)}.app-header{display:flex;justify-content:space-between;align-items:center;background:var(--color-primary);border-bottom:1px solid rgba(0,0,0,.1);padding:var(--spacing-sm) clamp(var(--spacing-sm),2vw,var(--spacing-lg));box-shadow:var(--elevation-2);position:fixed;top:0;left:0;right:0;z-index:100;transition:background-color var(--motion-duration-medium) var(--motion-easing-standard)}.tab-nav{display:flex;justify-content:center;align-items:center;background:var(--color-surface-container);border-top:1px solid var(--color-outline);padding:12px var(--spacing-sm) calc(12px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;z-index:100;box-shadow:0 -1px 3px #0000000f;transition:transform var(--motion-duration-medium) var(--motion-easing-emphasized),background-color var(--motion-duration-medium) var(--motion-easing-standard)}.tab-nav.hidden{transform:translateY(100%);pointer-events:none}.app-header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.account-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:#ffffff1a;color:var(--color-on-primary);font-size:1.1rem;cursor:pointer;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.account-btn:hover{background:#fff3;border-color:#ffffff80}.account-btn.active{background:#ffffff40;border-color:#fffc}.app-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-on-primary);font-weight:var(--font-weight-semibold);flex-shrink:0}.app-title-link{display:flex;align-items:center;gap:var(--spacing-sm);color:inherit;text-decoration:none;transition:opacity .15s ease}.app-title-link:hover{opacity:.8}.title-icon{font-size:1.5rem;line-height:1}.title-text{font-size:clamp(1rem,3vw,1.25rem);white-space:nowrap}.tab-buttons{display:flex;width:100%;max-width:640px;justify-content:space-around}.tab-nav button{background:transparent;border:none;padding:0 var(--spacing-sm);cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--color-on-surface-variant);min-width:0;position:relative}.tab-nav button:hover .tab-indicator{background:#667eea14}.tab-nav button.active{color:var(--color-on-surface)}.tab-nav button.active .tab-indicator{background:var(--color-primary-container)}.tab-nav button.active .tab-icon{color:var(--color-on-primary-container)}.tab-indicator{width:64px;height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;transition:background-color var(--motion-duration-medium) var(--motion-easing-emphasized-decelerate)}.tab-icon{font-size:1.375rem;line-height:1;transition:color var(--motion-duration-short) var(--motion-easing-standard)}.tab-label{font-size:.75rem;font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:color var(--motion-duration-short) var(--motion-easing-standard)}.tab-nav button.active .tab-label{font-weight:var(--font-weight-semibold)}.main-content{flex:1;padding:60px 0 80px;overflow-y:auto;display:flex;flex-direction:column;align-items:center;max-width:100%;transition:padding-bottom var(--motion-duration-medium) var(--motion-easing-emphasized)}.main-content.nav-hidden{padding-bottom:0}.tab-content{width:100%;max-width:800px;text-align:center;padding:clamp(var(--spacing-sm),2vw,var(--spacing-lg))}.tab-content h2{color:var(--color-on-surface);margin-bottom:var(--spacing-sm);font-size:clamp(1.3rem,4vw,2rem);font-weight:var(--font-weight-semibold)}.tab-content p{color:var(--color-on-surface-variant);margin-bottom:clamp(var(--spacing-xl),3vw,var(--spacing-2xl));font-size:clamp(.9rem,2.5vw,1.1rem);line-height:1.5;max-width:100%}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl);text-align:center}.error-boundary-content{max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.error-boundary-icon{font-size:2.5rem}.error-boundary-content h2{margin:0;color:var(--color-on-surface)}.error-boundary-content p{margin:0;color:var(--color-on-surface-variant)}.primary-button{background:linear-gradient(135deg,var(--color-primary) 0%,#764ba2 100%);color:var(--color-on-primary);border:none;padding:clamp(.875rem,2.5vw,1.25rem) clamp(var(--spacing-xl),4vw,2.5rem);font-size:clamp(1rem,2.5vw,1.1rem);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--motion-duration-short) var(--motion-easing-standard);box-shadow:var(--elevation-2);width:100%;max-width:400px;margin:0 auto;display:block;touch-action:manipulation}.primary-button:hover{transform:translateY(-1px);box-shadow:var(--elevation-3)}.primary-button:active{transform:translateY(0)}.shopping-options{display:flex;gap:clamp(.75rem,2vw,1rem);justify-content:center;align-items:center;flex-wrap:wrap;margin-top:clamp(1rem,2vw,1.5rem);width:100%;max-width:600px;margin-left:auto;margin-right:auto}.secondary-button{background:#fff;border:2px solid #667eea;color:#667eea;padding:clamp(.75rem,2vw,1rem) clamp(1rem,3vw,1.5rem);font-size:clamp(.9rem,2.2vw,1rem);border-radius:6px;cursor:pointer;transition:all .2s;flex:1;min-width:120px;max-width:180px;text-align:center;touch-action:manipulation}.secondary-button:hover{background:#667eea;color:#fff}.secondary-button:active{transform:scale(.98)}.dev-badge{background:#ff6b6b;color:#fff;padding:clamp(.2rem,1vw,.3rem) clamp(.4rem,1.5vw,.6rem);border-radius:4px;font-size:clamp(.7rem,2vw,.8rem);font-weight:600;letter-spacing:.5px}@media(display-mode:standalone){.app-header{padding-top:calc(clamp(1rem,3vw,2rem) + env(safe-area-inset-top))}}@media(max-width:768px){.app-header{padding:var(--spacing-sm) var(--spacing-md)}.title-text{font-size:.9rem}.title-icon{font-size:1.1rem}.tab-nav{padding:10px var(--spacing-sm) calc(10px + env(safe-area-inset-bottom))}.tab-indicator{width:56px;height:28px}.tab-label{font-size:.7rem}}@media(max-width:480px){.app-header{padding:var(--spacing-sm) var(--spacing-sm)}.title-text{font-size:.85rem}.tab-indicator{width:48px;height:26px;border-radius:13px}.tab-icon{font-size:1.2rem}.tab-label{font-size:.65rem}}@media(pointer:coarse){.tab-nav button{min-height:56px;padding:0 var(--spacing-xs)}.primary-button,.secondary-button{min-height:44px}}:root[data-theme=dark] .app-header{background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom-color:#334155}:root[data-theme=dark] .tab-nav{background:#1e293b;border-top-color:#334155;box-shadow:0 -1px 4px #0000004d}:root[data-theme=dark] .tab-nav button{color:#94a3b8}:root[data-theme=dark] .tab-nav button:hover .tab-indicator{background:#ffffff14}:root[data-theme=dark] .tab-nav button.active{color:#e2e8f0}:root[data-theme=dark] .tab-nav button.active .tab-indicator{background:#667eea3d}:root[data-theme=dark] .tab-nav button.active .tab-icon{color:var(--color-primary)}:root[data-theme=dark] .tab-content h2{color:#f1f5f9}:root[data-theme=dark] .tab-content p{color:#94a3b8}.shopping-list-container{margin-top:0;text-align:left;max-width:800px;margin-left:auto;margin-right:auto;position:relative}@media(max-width:768px){.main-content{padding-top:56px}.main-content.nav-hidden{padding-top:0}}.list-header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md);margin-top:0;position:sticky;top:0;z-index:10;background:var(--color-surface);padding-top:var(--spacing-sm);transition:transform var(--motion-duration-medium) var(--motion-easing-emphasized),opacity var(--motion-duration-medium) var(--motion-easing-emphasized)}.list-header.header-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}.list-header.header-visible{transform:translateY(0);opacity:1;pointer-events:auto}.list-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-outline-variant);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.list-tabs::-webkit-scrollbar{display:none}.list-tab{background:transparent;border:none;color:var(--color-on-surface-variant);padding:var(--spacing-md) var(--spacing-lg);font-size:.875rem;font-weight:500;cursor:pointer;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;min-height:48px;display:flex;align-items:center;border-bottom:2px solid transparent}.list-tab:hover:not(.active){background:var(--color-surface-container);color:var(--color-on-surface)}.list-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.list-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--color-primary);border-radius:3px 3px 0 0}.header-controls{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end}.header-icon-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--color-on-surface-variant, #666);transition:background .2s,color .2s}.header-icon-btn:hover{background:var(--color-surface-container, rgba(0, 0, 0, .08));color:var(--color-on-surface, #1a1a1a)}.header-icon-btn:active{background:var(--color-surface-container-high, rgba(0, 0, 0, .12))}.header-icon-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;text-align:center;color:var(--color-on-primary, white);background:var(--color-primary, #4CAF50);border-radius:8px}:root[data-theme=dark] .header-icon-btn{color:var(--color-on-surface-variant, #aaa)}:root[data-theme=dark] .header-icon-btn:hover{background:var(--color-surface-container, rgba(255, 255, 255, .08));color:var(--color-on-surface, #e0e0e0)}.actions-dropdown-toggle{background:var(--color-surface-container);border:1px solid var(--color-outline);color:var(--color-on-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:var(--elevation-1)}.actions-dropdown-toggle:hover{background:var(--color-surface-container-high);box-shadow:var(--elevation-2)}.actions-section{position:relative;display:flex;flex-direction:column;align-items:flex-end}.actions-toggle{background:#e2e8f0;border:1px solid #cbd5e0;color:#4a5568;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;white-space:nowrap}.actions-toggle:hover{background:#cbd5e0;color:#2d3748}.actions-bar{position:absolute;top:100%;left:0;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:10;min-width:200px;margin-top:var(--spacing-xs)}.action-btn{background:#f7fafc;border:1px solid #e2e8f0;color:#4a5568;padding:.5rem .75rem;border-radius:4px;font-size:.9rem;cursor:pointer;text-align:left;transition:all .2s;white-space:nowrap}.action-btn:hover{background:#edf2f7;color:#2d3748}.action-btn.clear-completed{color:#d69e2e;border-color:#faf089}.action-btn.clear-completed:hover{background:#fefcbf;color:#b7791f}.action-btn.clear-all{color:#e53e3e;border-color:#feb2b2}.action-btn.clear-all:hover{background:#fed7d7;color:#c53030}.action-btn.cancel{background:#667eea;color:#fff;border-color:#667eea}.action-btn.cancel:hover{background:#5a67d8}.action-btn.exit-bulk{background:#667eea;color:#fff;border-color:#667eea;font-weight:600}.action-btn.exit-bulk:hover{background:#5a67d8;color:#fff}.actions-divider{height:1px;background:#e2e8f0;margin:.25rem 0}.bulk-controls{margin-top:var(--spacing-sm);padding:var(--spacing-md);background:#f0f8ff;border:1px solid #c3dafe;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--spacing-sm)}.bulk-selection{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.bulk-selection span{font-weight:500;color:#4a5568}.select-btn{background:#e2e8f0;border:1px solid #cbd5e0;color:#4a5568;padding:.25rem .75rem;border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .2s}.select-btn:hover{background:#cbd5e0;color:#2d3748}.select-btn.exit-bulk-inline{background:#667eea;color:#fff;border-color:#667eea;font-weight:500;margin-left:auto}.select-btn.exit-bulk-inline:hover{background:#5a67d8;color:#fff}.bulk-actions{display:flex;gap:.75rem;flex-wrap:wrap}.bulk-btn{padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s;border:1px solid;font-weight:500}.bulk-btn.complete{background:#c6f6d5;color:#22543d;border-color:#9ae6b4}.bulk-btn.complete:hover{background:#9ae6b4;color:#1a202c}.bulk-btn.incomplete{background:#fed7d7;color:#742a2a;border-color:#feb2b2}.bulk-btn.incomplete:hover{background:#feb2b2;color:#1a202c}.bulk-btn.delete{background:#fed7d7;color:#c53030;border-color:#feb2b2}.bulk-btn.delete:hover{background:#feb2b2;color:#742a2a}.shopping-item.selected{background:var(--color-primary-container)!important}.bulk-select-checkbox{accent-color:#4299e1;transform:scale(1.1)}.add-item-form{background:var(--color-surface);padding:var(--spacing-lg) var(--spacing-xl);padding-bottom:var(--spacing-md);border-radius:var(--radius-xl);box-shadow:var(--elevation-2);margin-bottom:var(--spacing-lg);text-align:center;border:1px solid var(--color-outline);transition:all var(--motion-duration-short) var(--motion-easing-standard)}.add-item-form:focus-within{box-shadow:var(--elevation-3);border-color:var(--color-primary)}.add-item-input-row{display:flex;align-items:center;gap:var(--spacing-sm)}.add-item-input-row form{flex:1}.mobile-item-input{width:100%;padding:var(--spacing-lg);border:2px solid var(--color-outline);border-radius:var(--radius-xl);font-size:clamp(1rem,4vw,1.2rem);background:var(--color-surface-variant);color:var(--color-on-surface);transition:all var(--motion-duration-short) var(--motion-easing-standard);text-align:center;min-height:var(--touch-target-large);font-weight:var(--font-weight-medium)}.mobile-item-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-container);background:var(--color-surface)}:root[data-theme=dark] .mobile-item-input{background:var(--color-surface-container)}:root[data-theme=dark] .mobile-item-input:focus{background:var(--color-surface-container-high)}.mobile-item-input::placeholder{color:var(--color-on-surface-variant);opacity:.7}.input-hint{margin-top:var(--spacing-xs);margin-bottom:calc(var(--spacing-xs) * -.5);font-size:clamp(.65rem,2vw,.75rem);color:var(--color-on-surface-variant);font-style:italic;opacity:.7;line-height:1.2}.category-chips{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm);flex-wrap:wrap;justify-content:center;transition:all var(--motion-duration-medium) var(--motion-easing-standard)}.category-chips.compact{gap:4px;margin-top:6px;opacity:.7}.category-chips.compact .category-chip{padding:4px 8px;font-size:.7rem;border-width:1px}.category-chip{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-outline);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-on-surface);font-size:.85rem;cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);display:flex;align-items:center;gap:4px;font-weight:var(--font-weight-medium);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;box-shadow:var(--elevation-1)}.category-chip:hover{background:var(--color-surface-container);border-color:var(--color-outline-variant);transform:translateY(-2px);box-shadow:var(--elevation-2)}.category-chip:active{transform:translateY(0);background:var(--color-surface-container-high);box-shadow:var(--elevation-1)}.category-chip.selected{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-on-primary-container);font-weight:var(--font-weight-semibold);box-shadow:0 0 0 2px var(--color-primary-container),var(--elevation-2)}.category-chip.suggested{background:var(--color-success-container);border-color:var(--color-success);color:var(--color-on-success-container);animation:suggestPulse .5s var(--motion-easing-emphasized-decelerate);box-shadow:0 0 0 2px var(--color-success-container),var(--elevation-2)}:root[data-theme=dark] .category-chip{background:var(--color-surface-container)}:root[data-theme=dark] .category-chip:hover{background:var(--color-surface-container-high)}@keyframes suggestPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.form-row{display:grid;grid-template-columns:2fr auto auto auto auto;gap:.75rem;align-items:center}.form-row input[type=text]{padding:var(--spacing-md);border:2px solid var(--color-outline);border-radius:var(--radius-md);font-size:1rem;background:var(--color-surface);color:var(--color-on-surface);transition:border-color var(--motion-duration-short) var(--motion-easing-standard)}.form-row input[type=text]:focus{outline:none;border-color:var(--color-primary)}.quantity-input{width:80px;padding:.75rem .5rem;border:2px solid #e1e5e9;border-radius:6px;font-size:1rem;text-align:center}.form-row select{padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;font-size:1rem;background:#fff;cursor:pointer}.form-row button{background:var(--color-primary);color:var(--color-on-primary);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);min-height:48px;position:relative;overflow:hidden}.form-row button:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--motion-duration-short) var(--motion-easing-standard)}.form-row button:hover:not(:disabled):before{opacity:var(--state-hover-opacity)}.form-row button:hover:not(:disabled){transform:translateY(-1px)}.form-row button:disabled{background:var(--color-surface-container);color:var(--color-on-surface);opacity:var(--state-disabled-opacity);cursor:not-allowed;transform:none}.sorting-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:1px solid var(--color-outline);border-bottom:none;margin-bottom:0;flex-wrap:nowrap;box-shadow:var(--elevation-1)}.sort-chip-container{display:flex;align-items:center;gap:var(--spacing-xs);position:relative}.sort-chip{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-container-high);border:1px solid var(--color-outline);border-radius:var(--radius-sm);color:var(--color-on-surface);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);height:36px;white-space:nowrap}.sort-chip:hover{background:var(--color-surface-container-highest);border-color:var(--color-outline-variant)}.sort-chip:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-container)}.sort-chip.active{background:var(--color-secondary-container);border-color:var(--color-secondary);color:var(--color-on-secondary-container)}.sort-chip-icon{font-size:1rem;line-height:1}.sort-chip-label{line-height:1}.sort-chip-arrow{font-size:.75rem;transition:transform var(--motion-duration-short) var(--motion-easing-standard);opacity:.7}.sort-chip-arrow.open{transform:rotate(180deg)}.sort-menu{position:absolute;top:calc(100% + var(--spacing-xs));left:0;min-width:160px;background:var(--color-surface-container);border:1px solid var(--color-outline-variant);border-radius:var(--radius-md);box-shadow:var(--elevation-2);z-index:100;overflow:hidden;animation:sortMenuFadeIn var(--motion-duration-short) var(--motion-easing-emphasized)}@keyframes sortMenuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sort-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--color-on-surface);font-size:.875rem;font-weight:var(--font-weight-regular);cursor:pointer;transition:background var(--motion-duration-short) var(--motion-easing-standard);text-align:left}.sort-menu-item:hover{background:var(--color-surface-container-high)}.sort-menu-item:focus{outline:none;background:var(--color-surface-container-high)}.sort-menu-item.selected{background:var(--color-secondary-container);color:var(--color-on-secondary-container);font-weight:var(--font-weight-medium)}.sort-menu-item-icon{font-size:1rem;width:20px;text-align:center}.sort-menu-item-label{flex:1}.sort-menu-item-check{color:var(--color-primary);font-weight:var(--font-weight-bold)}.sort-direction-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-surface-container-high);border:1px solid var(--color-outline);border-radius:var(--radius-sm);color:var(--color-on-surface);font-size:1rem;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard)}.sort-direction-btn:hover{background:var(--color-surface-container-highest);border-color:var(--color-outline-variant)}.sort-direction-btn:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-container)}.sort-direction-btn.asc{color:var(--color-primary)}.sort-direction-btn.desc{color:var(--color-tertiary)}:root[data-theme=dark] .sort-chip{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .sort-chip:hover{background:var(--color-surface-container-high)}:root[data-theme=dark] .sort-menu{background:var(--color-surface-container-high);border-color:var(--color-outline)}:root[data-theme=dark] .sort-menu-item:hover,:root[data-theme=dark] .sort-menu-item:focus{background:var(--color-surface-container-highest)}:root[data-theme=dark] .sort-direction-btn{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .sort-direction-btn:hover{background:var(--color-surface-container-high)}.shopping-list{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--elevation-2);overflow:hidden;margin-top:0;border:1px solid var(--color-outline)}.sorting-controls+.shopping-list{border-radius:0 0 var(--radius-xl) var(--radius-xl);border-top:none}.empty-state{padding:var(--spacing-2xl) var(--spacing-lg);text-align:center;color:var(--color-on-surface-variant);font-size:clamp(.9rem,2.5vw,1rem)}.shopping-item{display:flex;flex-direction:column;border-bottom:1px solid var(--color-outline-variant);transition:background-color var(--motion-duration-medium) var(--motion-easing-standard);position:relative;overflow:hidden;background:var(--color-surface)}.incomplete-items,.completed-items{transition:all var(--motion-duration-medium) var(--motion-easing-emphasized)}.shopping-item:last-child{border-bottom:none}.shopping-item:before{content:"";position:absolute;inset:0;background:var(--color-on-surface);opacity:0;transition:opacity var(--motion-duration-short) var(--motion-easing-standard);pointer-events:none}.shopping-item:hover:before{opacity:var(--state-hover-opacity)}.shopping-item.animating-complete{position:relative;z-index:100;animation:itemCompletionSequence 1s var(--motion-easing-emphasized-decelerate) forwards}@keyframes itemCompletionSequence{0%{opacity:1;background:var(--color-surface)}15%{background:var(--color-success-container);opacity:1}30%{background:var(--color-success-container);opacity:1}60%{opacity:.7;background:var(--color-surface);transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.shopping-item.completed{opacity:.6;background:var(--color-surface)}.shopping-item.completed .item-name{color:var(--color-on-surface-variant);position:relative}.shopping-item.completed .item-supporting-text{opacity:.7}.shopping-item.animating-complete .item-row{position:relative}.shopping-item.animating-complete .item-row:before{content:"";position:absolute;left:44px;top:50%;width:0;height:2px;background:var(--color-on-surface-variant);animation:strikethroughFull .5s .2s var(--motion-easing-standard) forwards;border-radius:1px;z-index:10}@keyframes strikethroughFull{0%{width:0}to{width:calc(100% - 36px)}}.shopping-item.entering-completed{animation:slideIntoCompleted .5s var(--motion-easing-emphasized-decelerate) forwards}@keyframes slideIntoCompleted{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:.6;transform:translateY(0) scale(1)}}@keyframes itemAdded{0%{opacity:0;transform:translateY(20px) scale(.9)}60%{opacity:1;transform:translateY(-2px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.shopping-item.item-added{animation:itemAdded var(--motion-duration-long) var(--motion-easing-emphasized-decelerate)}.completed-section{margin-top:var(--spacing-xl);padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);border-top:1px solid var(--color-outline-variant)}.completed-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0;cursor:pointer;transition:opacity var(--motion-duration-short) var(--motion-easing-standard);opacity:.7}.completed-header:hover{opacity:1}.completed-title{font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);font-size:var(--text-body-medium)}.completed-toggle{color:var(--color-on-surface-variant);font-size:var(--text-body-small);transition:transform var(--motion-duration-short) var(--motion-easing-standard);opacity:.6}.completed-header-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;cursor:pointer}.overflow-menu-btn{background:transparent;border:none;padding:var(--spacing-xs);cursor:pointer;font-size:1rem;color:var(--color-on-surface-variant);border-radius:var(--radius-sm);min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;transition:all var(--motion-duration-short) var(--motion-easing-standard);opacity:.5}.overflow-menu-btn:hover{opacity:1;background:var(--color-surface-container)}.overflow-menu-btn:active{background:var(--color-surface-container-high)}.completed-items{padding-top:var(--spacing-xs)}.completed-section .shopping-item.completed{opacity:.55}.completed-section .shopping-item.completed:hover{opacity:.75}.item-action-btn{flex-shrink:0}.favourite-btn.active{color:#f59e0b!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.list-stats-inline{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.stat-item{font-size:.75rem;color:var(--color-on-surface-variant);white-space:nowrap;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-container);border-radius:var(--radius-sm);display:flex;align-items:center;gap:2px}@media(max-width:640px){.stat-item{font-size:.7rem;padding:2px var(--spacing-xs)}}.item-leading{flex-shrink:0;display:flex;align-items:center}.item-content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:14px 0}.item-name{font-size:1rem;font-weight:400;line-height:1.5rem;letter-spacing:.03125em;color:var(--color-on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-supporting-text{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.015625em;color:var(--color-on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-category-badge{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:500;line-height:1.5;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;margin-right:4px}.shopping-item.completed .item-category-badge{opacity:.5}.item-category-badge[data-category=produce]{background:#dcfce7;color:#166534}.item-category-badge[data-category=dairy]{background:#dbeafe;color:#1e40af}.item-category-badge[data-category=meat]{background:#fee2e2;color:#991b1b}.item-category-badge[data-category=bakery]{background:#fef3c7;color:#92400e}.item-category-badge[data-category=pantry]{background:#fef9c3;color:#713f12}.item-category-badge[data-category=frozen]{background:#e0f2fe;color:#075985}.item-category-badge[data-category=beverages]{background:#ede9fe;color:#5b21b6}.item-category-badge[data-category=snacks]{background:#ffedd5;color:#9a3412}.item-category-badge[data-category=condiments]{background:#d1fae5;color:#065f46}.item-category-badge[data-category=household]{background:#f1f5f9;color:#334155}.item-category-badge[data-category=other]{background:#f3f4f6;color:#374151}:root[data-theme=dark] .item-category-badge[data-category=produce]{background:#14532d;color:#4ade80}:root[data-theme=dark] .item-category-badge[data-category=dairy]{background:#1e3a8a;color:#93c5fd}:root[data-theme=dark] .item-category-badge[data-category=meat]{background:#7f1d1d;color:#fca5a5}:root[data-theme=dark] .item-category-badge[data-category=bakery]{background:#78350f;color:#fcd34d}:root[data-theme=dark] .item-category-badge[data-category=pantry]{background:#713f12;color:#fde68a}:root[data-theme=dark] .item-category-badge[data-category=frozen]{background:#0c4a6e;color:#7dd3fc}:root[data-theme=dark] .item-category-badge[data-category=beverages]{background:#4c1d95;color:#c4b5fd}:root[data-theme=dark] .item-category-badge[data-category=snacks]{background:#7c2d12;color:#fdba74}:root[data-theme=dark] .item-category-badge[data-category=condiments]{background:#064e3b;color:#6ee7b7}:root[data-theme=dark] .item-category-badge[data-category=household]{background:#1e293b;color:#94a3b8}:root[data-theme=dark] .item-category-badge[data-category=other]{background:#1f2937;color:#9ca3af}.item-trailing{display:flex;align-items:center;flex-shrink:0;padding-right:8px;gap:0}.item-quantity-inline{font-size:.875rem;font-weight:400;color:var(--color-on-surface-variant);letter-spacing:.01em;white-space:nowrap}.shopping-item.completed .item-quantity-inline{opacity:.6}.edit-panel-notes{padding-top:var(--spacing-xs)}.edit-panel-notes-input{width:100%;padding:.4rem .75rem;font-size:.9rem;border:1px solid var(--color-outline-variant);border-radius:999px;background:var(--color-surface);color:var(--color-on-surface);outline:none;transition:border-color var(--motion-duration-short) var(--motion-easing-standard),box-shadow var(--motion-duration-short) var(--motion-easing-standard)}.edit-panel-notes-input::placeholder{color:var(--color-on-surface-variant);opacity:.7}.edit-panel-notes-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary-container)}.input-char-counter{display:block;text-align:right;font-size:.7rem;line-height:1;color:var(--color-on-surface-variant);opacity:.75;margin-top:3px;padding-right:12px;pointer-events:none}.input-char-counter.at-limit{color:var(--color-error);opacity:1;font-weight:500}.add-item-char-counter{padding-right:16px}.item-name-input{flex:1;font-size:clamp(.95rem,3.5vw,1.05rem);font-weight:500;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-outline-variant);background:var(--color-surface-container-highest);color:var(--color-on-surface);outline:none;transition:border-color var(--motion-duration-short) var(--motion-easing-standard),box-shadow var(--motion-duration-short) var(--motion-easing-standard),background-color var(--motion-duration-short) var(--motion-easing-standard),transform var(--motion-duration-short) var(--motion-easing-standard);box-shadow:0 0 #667eea2e}.item-name-input::placeholder{color:var(--color-on-surface-variant);opacity:.8}.item-name-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 1px #667eea59;transform:translateY(-.5px)}.item-name-input:hover:not(:focus){background:var(--color-surface-container)}.shopping-item.completed .item-name-input{opacity:.85;text-decoration:line-through}.shopping-item.animating-complete .item-name-input{position:relative}.item-edit-panel{width:100%;margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-container);border-radius:var(--radius-md);border:1px solid var(--color-outline-variant);display:flex;flex-direction:column;gap:var(--spacing-sm);animation:expandPanel var(--motion-duration-medium) var(--motion-easing-emphasized-decelerate)}@keyframes expandPanel{0%{opacity:0;transform:translateY(-10px) scaleY(.9);max-height:0}to{opacity:1;transform:translateY(0) scaleY(1);max-height:360px}}.edit-panel-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);width:100%}.edit-panel-row-secondary{justify-content:flex-end}.edit-panel-right{display:flex;align-items:center;gap:var(--spacing-sm)}.edit-panel-section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.edit-panel-label{font-size:.85rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.edit-panel-quantity{display:flex;align-items:center;justify-content:flex-start;gap:var(--spacing-sm)}.edit-panel-quantity .quantity-btn{width:var(--touch-target-comfortable)!important;height:var(--touch-target-comfortable)!important;font-size:1.2rem!important;border-radius:var(--radius-md)!important}.edit-panel-quantity .quantity-display{font-size:1rem;font-weight:var(--font-weight-semibold);min-width:80px;text-align:center;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-outline-variant);background:var(--color-surface-container-high);color:var(--color-on-surface);display:inline-block}.edit-panel-category{width:100%;display:flex;justify-content:flex-end}.edit-panel-category-select{width:100%;max-width:180px;padding:.4rem .75rem;font-size:1rem;min-height:var(--touch-target-comfortable);border:1px solid var(--color-outline-variant);border-radius:999px;background:var(--color-primary-container);color:var(--color-on-primary-container);cursor:pointer}.edit-panel-category-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-container)}.edit-panel-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.edit-panel-delete{flex:1;padding:var(--spacing-md);background:var(--color-error-container);color:var(--color-on-error-container);border:2px solid var(--color-error);border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;min-height:var(--touch-target-comfortable);transition:all var(--motion-duration-short) var(--motion-easing-standard);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.edit-panel-delete:hover{background:var(--color-error);color:var(--color-on-error);transform:translateY(-1px);box-shadow:var(--elevation-2)}.edit-panel-delete:active{transform:translateY(0)}.edit-panel-delete-icon{width:var(--touch-target-comfortable);height:var(--touch-target-comfortable);border-radius:999px;border:1px solid var(--color-error);background:var(--color-error-container);color:var(--color-on-error-container);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);box-shadow:none}.edit-panel-delete-icon:hover{background:var(--color-error);color:var(--color-on-error);box-shadow:var(--elevation-2);transform:translateY(-1px)}.edit-panel-delete-icon:active{transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.item-row{display:flex;align-items:center;width:100%;min-height:72px}.quantity-controls{display:flex;align-items:center;gap:.5rem;background:#f7fafc;padding:.25rem .5rem;border-radius:6px;border:1px solid #e2e8f0}.quantity-display{font-weight:500;color:#555;min-width:60px;text-align:center;font-size:.95rem}.category-select{padding:.5rem;border:2px solid #e1e5e9;border-radius:6px;font-size:.9rem;background:#fff;cursor:pointer;max-width:140px}.category-select:focus{outline:none;border-color:#667eea}.action-buttons{display:flex;align-items:center;gap:.5rem;touch-action:manipulation;margin-left:auto}.quantity-btn{background:#4299e1!important;border-color:#3182ce!important;color:#fff!important;width:28px!important;height:28px!important;font-size:.875rem!important}.quantity-btn:hover:not(:disabled){background:#3182ce!important;color:#fff!important}.quantity-btn:disabled{background:#cbd5e0!important;color:#a0aec0!important;border-color:#e2e8f0!important}.remove-btn{background:#fed7d7!important;border-color:#feb2b2!important;color:#c53030!important;width:28px!important;height:28px!important}.remove-btn:hover{background:#feb2b2!important;color:#742a2a!important}.list-footer{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#f8f9fa;border-radius:var(--radius-sm);border:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm)}.list-stats{display:flex;gap:1rem;font-size:.9rem;color:#666;flex-wrap:wrap}.list-stats span{display:flex;align-items:center;gap:.25rem}.footer-actions{display:flex;gap:.75rem;flex-wrap:wrap}.footer-btn{background:#f7fafc;border:1px solid #e2e8f0;color:#4a5568;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;white-space:nowrap}.footer-btn:hover{background:#edf2f7;color:#2d3748}.footer-btn.clear-completed{color:#d69e2e;border-color:#faf089}.footer-btn.clear-completed:hover{background:#fefcbf;color:#b7791f}.footer-btn.bulk-edit{color:#667eea;border-color:#c3dafe}.footer-btn.bulk-edit:hover{background:#ebf4ff;color:#5a67d8}@media(max-width:768px){.form-row{grid-template-columns:1fr;gap:.5rem}.actions-bar{position:static;margin-top:.5rem;box-shadow:none;border:1px solid #e2e8f0}.list-footer{flex-direction:column;gap:.5rem;text-align:center}.footer-actions{justify-content:center}.list-tab{font-size:.8125rem;padding:var(--spacing-sm) var(--spacing-md);min-height:40px}.list-tab.active:after{height:2px}.list-header{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.header-controls{width:100%;justify-content:flex-end}.actions-dropdown-toggle{flex-shrink:0}}@media(max-width:480px){.list-tab{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm);min-height:36px}.actions-dropdown-toggle{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem}}:root[data-theme=dark] .shopping-list-container h3{color:var(--color-on-surface)}:root[data-theme=dark] .add-item-form,:root[data-theme=dark] .shopping-list{background:var(--color-surface-container);color:var(--color-on-surface)}:root[data-theme=dark] .form-row input,:root[data-theme=dark] .form-row select{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface)}:root[data-theme=dark] .shopping-item{border-bottom-color:var(--color-outline)}:root[data-theme=dark] .shopping-item:hover{background:var(--color-surface-container-high)}:root[data-theme=dark] .shopping-item.completed{background:var(--color-surface)}:root[data-theme=dark] .item-name{color:var(--color-on-surface)}:root[data-theme=dark] .item-supporting-text{color:var(--color-on-surface-variant)}:root[data-theme=dark] .quantity-display{color:var(--color-on-surface)}:root[data-theme=dark] .category-select{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface)}:root[data-theme=dark] .edit-btn{color:var(--color-on-surface-variant)!important}:root[data-theme=dark] .empty-state{color:var(--color-on-surface-variant)}:root[data-theme=dark] .actions-toggle{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface-variant)}:root[data-theme=dark] .actions-bar{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .action-btn{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface-variant)}:root[data-theme=dark] .list-footer{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .list-stats{color:var(--color-on-surface-variant)}:root[data-theme=dark] .footer-btn{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface-variant)}:root[data-theme=dark] .bulk-controls{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .bulk-selection span{color:var(--color-on-surface-variant)}:root[data-theme=dark] .select-btn{background:var(--color-surface-container-high);border-color:var(--color-outline-variant);color:var(--color-on-surface-variant)}:root[data-theme=dark] .shopping-item.selected{background:var(--color-primary-container)!important}.undo-bar{position:fixed;bottom:calc(80px + var(--spacing-md));left:50%;transform:translate(-50%);background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);border-radius:var(--radius-2xl);box-shadow:var(--elevation-4);min-width:320px;max-width:500px;z-index:1300;overflow:hidden;animation:undoBarEnter var(--motion-duration-long) var(--motion-easing-emphasized-decelerate);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes undoBarEnter{0%{opacity:0;transform:translate(-50%) translateY(100%) scale(.8)}60%{opacity:1;transform:translate(-50%) translateY(-8px) scale(1.02)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes undoBarExit{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(100%) scale(.9)}}@keyframes stageTransition{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(100%)}to{opacity:1;transform:translate(-50%) translateY(0)}}.undo-content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);gap:var(--spacing-lg)}.undo-message{flex:1;font-size:.95rem;font-weight:var(--font-weight-medium);color:var(--color-inverse-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.undo-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.undo-btn{background:var(--color-primary);color:var(--color-on-primary);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.9rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);white-space:nowrap;min-height:var(--touch-target-min);position:relative;overflow:hidden}.undo-btn:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--motion-duration-short) var(--motion-easing-standard);border-radius:inherit}.undo-btn:hover:before{opacity:var(--state-hover-opacity)}.undo-btn:focus:before{opacity:var(--state-focus-opacity)}.undo-btn:active:before{opacity:var(--state-pressed-opacity)}.undo-btn:hover{transform:translateY(-1px);box-shadow:var(--elevation-2)}.undo-btn:active{transform:translateY(0);box-shadow:var(--elevation-1)}.dismiss-btn{background:transparent;color:#a0aec0;border:1px solid #4a5568;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;flex-shrink:0}.dismiss-btn:hover{background:#4a5568;color:#e2e8f0;border-color:#718096}.undo-bar--success{background:var(--color-success)!important;border-left:4px solid var(--color-success-container);animation:stageTransition var(--motion-duration-medium) var(--motion-easing-emphasized),successPulse var(--motion-duration-short) var(--motion-easing-decelerate) .1s}.undo-bar--preview{background:var(--color-info)!important;border-left:4px solid var(--color-info-container);animation:stageTransition var(--motion-duration-medium) var(--motion-easing-emphasized)}.undo-message--success{color:var(--color-on-success)!important;font-weight:var(--font-weight-semibold);animation:successTextAppear var(--motion-duration-medium) var(--motion-easing-decelerate)}.undo-message--preview{color:var(--color-on-info)!important;animation:previewTextAppear var(--motion-duration-medium) var(--motion-easing-decelerate)}@keyframes successPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes successTextAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes previewTextAppear{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.dismiss-btn--text{background:var(--color-surface-container)!important;color:var(--color-on-surface)!important;border:1px solid var(--color-outline)!important;padding:var(--spacing-sm) var(--spacing-lg)!important;border-radius:var(--radius-md)!important;width:auto!important;height:auto!important;font-size:.9rem!important;position:relative;overflow:hidden}.dismiss-btn--text:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--motion-duration-short) var(--motion-easing-standard)}.dismiss-btn--text:hover:before{opacity:var(--state-hover-opacity)}.dismiss-btn--text:focus:before{opacity:var(--state-focus-opacity)}.undo-timer-bar{height:3px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-info) 100%);transition:width 1s linear;position:absolute;bottom:0;left:0}.redo-btn{background:var(--color-secondary, #6c757d);color:var(--color-on-secondary, #fff)}.interactive-surface{position:relative;overflow:hidden;min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.interactive-surface:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--motion-duration-short) var(--motion-easing-standard);pointer-events:none;border-radius:inherit}.interactive-surface:hover:before{opacity:var(--state-hover-opacity)}.interactive-surface:focus:before{opacity:var(--state-focus-opacity)}.interactive-surface:active:before{opacity:var(--state-pressed-opacity)}.interactive-surface:disabled:before{opacity:0}.ripple-surface{position:relative;overflow:hidden}.ripple-surface:after{content:"";position:absolute;border-radius:50%;background:currentColor;opacity:.3;transform:scale(0);pointer-events:none}.ripple-surface:active:after{animation:ripple var(--motion-duration-medium) var(--motion-easing-decelerate)}@keyframes ripple{0%{transform:scale(0);opacity:.3}50%{opacity:.1}to{transform:scale(4);opacity:0}}.touch-target-comfortable{min-height:var(--touch-target-comfortable);min-width:var(--touch-target-comfortable)}.touch-target-large{min-height:var(--touch-target-large);min-width:var(--touch-target-large)}@media(max-width:768px){.undo-bar{left:var(--spacing-sm);right:var(--spacing-sm);bottom:calc(80px + var(--spacing-sm));transform:none;min-width:auto;max-width:none}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.undo-content{padding:.875rem 1rem}.undo-message{font-size:.9rem}.undo-btn{padding:.4rem .8rem;font-size:.875rem}}:root[data-theme=dark] .undo-bar{background:var(--color-surface);box-shadow:var(--elevation-3)}:root[data-theme=dark] .undo-message{color:var(--color-on-surface)}:root[data-theme=dark] .dismiss-btn{border-color:var(--color-outline);color:var(--color-on-surface-variant)}:root[data-theme=dark] .dismiss-btn:hover{background:var(--color-surface-container-high);color:var(--color-on-surface);border-color:var(--color-outline-variant)}:root[data-theme=dark] .undo-bar--success{background:var(--color-surface);border-left-color:var(--color-success)}:root[data-theme=dark] .undo-bar--preview{background:var(--color-surface);border-left-color:var(--color-info)}:root[data-theme=dark] .undo-message--success{color:var(--color-on-success-container)}:root[data-theme=dark] .undo-message--preview{color:var(--color-on-info-container)}:root[data-theme=dark] .dismiss-btn--text{background:var(--color-surface-container-high);color:var(--color-on-surface);border-color:var(--color-outline-variant)}:root[data-theme=dark] .dismiss-btn--text:hover{background:var(--color-surface-container);color:var(--color-on-surface);border-color:var(--color-outline)}.action-btn.generator-btn{opacity:.6;cursor:not-allowed;color:#718096!important;border-color:#e2e8f0!important}.action-btn.generator-btn:hover{background:#f7fafc!important;color:#718096!important;transform:none}:root[data-theme=dark] .action-btn.generator-btn{background:var(--color-surface-container);border-color:var(--color-outline);color:var(--color-on-surface-variant)}:root[data-theme=dark] .action-btn.generator-btn:hover{background:var(--color-surface-container);color:var(--color-on-surface-variant)}.storage-status{position:relative;display:inline-block}.storage-status-main{display:flex;align-items:center;gap:4px;font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none;transition:var(--transition-smooth)}.storage-status-main:hover{opacity:.8}.storage-details{position:absolute;top:100%;right:0;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:var(--radius-lg);padding:var(--spacing-3);min-width:200px;box-shadow:var(--shadow-md);z-index:1000;font-size:var(--font-size-sm);line-height:1.4}.storage-details>div{margin-bottom:var(--spacing-2)}.storage-details>div:last-child{margin-bottom:0}.storage-health-bar{width:100%;height:6px;background:var(--color-outline-variant);border-radius:var(--radius-full);overflow:hidden;margin:var(--spacing-2) 0}.storage-health-fill{height:100%;border-radius:var(--radius-full);transition:var(--transition-smooth)}.storage-health-fill.good{background:var(--storage-good)}.storage-health-fill.warning{background:var(--storage-warning)}.storage-health-fill.critical{background:var(--storage-critical)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.shopping-item.animating-complete{animation:none!important;opacity:.6}.shopping-item.animating-complete .item-row:after{animation:none!important;display:none!important}.shopping-item.animating-complete .item-name:after{animation:none!important}.shopping-item.entering-completed{animation:none!important}.shopping-item input[type=checkbox]:checked{animation:none!important}.undo-bar{animation:none}.undo-timer-bar,.storage-status-main,.storage-health-fill{transition:none!important}}.receipt-capture{padding:var(--spacing-lg)}.capture-header{text-align:center;margin-bottom:var(--spacing-xl)}.capture-header h3{font-size:1.5rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin-bottom:var(--spacing-xs)}.capture-header p{color:var(--color-on-surface-variant);font-size:.95rem}.photo-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);max-width:800px;margin-left:auto;margin-right:auto}.photo-card,.add-photo-card{width:150px;flex-shrink:0}.photo-card{position:relative;aspect-ratio:3/4;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--elevation-2)}.photo-preview{width:100%;height:100%;position:relative}.photo-preview img{width:100%;height:100%;object-fit:cover}.upload-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-medium)}.upload-overlay.success{background:#22543de6}.upload-overlay.error{background:#e53e3ee6}.progress-bar{width:80%;height:4px;background:#ffffff4d;border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--spacing-sm)}.progress-fill{height:100%;background:var(--color-primary);transition:width var(--motion-duration-short) var(--motion-easing-standard)}.remove-photo-btn{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);background:var(--color-error);color:var(--color-on-error);border:none;width:28px;height:28px;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:var(--elevation-2);transition:all var(--motion-duration-short) var(--motion-easing-standard)}.remove-photo-btn:hover{transform:scale(1.1);box-shadow:var(--elevation-3)}.add-photo-card{aspect-ratio:3/4;border:2px dashed var(--color-outline);border-radius:var(--radius-lg);background:var(--color-surface-container);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);color:var(--color-on-surface-variant)}.add-photo-card:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-on-primary-container);transform:scale(1.02)}.add-photo-card:disabled{opacity:.5;cursor:not-allowed}.add-icon{font-size:2rem;font-weight:var(--font-weight-light)}.max-photos-notice{text-align:center;color:var(--color-on-surface-variant);font-size:.875rem;margin-bottom:var(--spacing-lg)}.offline-notice{background:var(--color-secondary-container);color:var(--color-on-secondary-container);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);text-align:center}.offline-notice span{display:block;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}.offline-notice p{font-size:.875rem;margin:0}.manual-entry-section{background:var(--color-surface-container-low);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl)}.manual-entry-section h4{font-size:1.125rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin-bottom:var(--spacing-xs)}.manual-entry-section .help-text{font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin-bottom:var(--spacing-xs)}.form-input{width:100%;padding:var(--spacing-md);border:1px solid var(--color-outline);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-on-surface);font-size:1rem;font-family:inherit;transition:all var(--motion-duration-short) var(--motion-easing-standard)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6750a41a}.form-input::placeholder{color:var(--color-on-surface-variant);opacity:.6}.capture-actions{display:flex;gap:var(--spacing-md);justify-content:center}.error-notice{text-align:center;color:var(--color-error);background:var(--color-error-container);padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-md);font-size:.875rem}.receipt-gallery{padding:var(--spacing-lg)}.receipts-summary{text-align:center;padding:var(--spacing-md);background:var(--color-primary-container);color:var(--color-on-primary-container);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);font-weight:var(--font-weight-medium)}.receipts-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.receipts-table-container{background:var(--color-surface);border:1px solid var(--color-outline);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--elevation-1);margin-bottom:var(--spacing-lg)}.receipts-table{width:100%;border-collapse:collapse}.receipts-table thead{background:var(--color-surface-container);border-bottom:2px solid var(--color-outline)}.receipts-table th{text-align:left;padding:var(--spacing-md);font-weight:var(--font-weight-semibold);font-size:.875rem;color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.receipts-table tbody tr{border-bottom:1px solid var(--color-outline-variant);transition:background-color var(--motion-duration-short)}.receipts-table tbody tr:hover{background:var(--color-surface-container-low)}.receipts-table tbody tr:last-child{border-bottom:none}.receipts-table td{padding:var(--spacing-md);font-size:.9375rem}.receipts-table .table-total{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.receipts-table .status-badge{display:inline-block;padding:4px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:var(--font-weight-medium)}.receipts-table .status-badge.unsynced{background:#fff3cd;color:#856404}.receipts-table .status-badge.synced{background:#d4edda;color:#155724}.receipts-table .status-badge.uploaded{background:#d1ecf1;color:#0c5460}.receipts-table .status-badge.quick_processed,.receipts-table .status-badge.detail_processed{background:#d4edda;color:#155724}.receipts-table .status-badge.failed{background:#f8d7da;color:#721c24}.receipts-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.receipts-table th.sortable-th:hover{color:var(--color-primary)}.total-cost-bar{position:sticky;bottom:0;background:var(--color-surface-container-highest);border-top:1px solid var(--color-outline-variant);padding:var(--spacing-lg) var(--spacing-xl);margin-top:var(--spacing-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.total-cost-bar-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto}.total-cost-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.total-cost-bar .total-label{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.total-cost-bar .total-amount{font-size:2rem;font-weight:var(--font-weight-bold);color:var(--color-on-surface);line-height:1}.total-cost-bar .total-count{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-surface-container-low);border-radius:var(--radius-full)}.receipt-card{background:var(--color-surface);border:1px solid var(--color-outline);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--elevation-1);transition:all var(--motion-duration-short) var(--motion-easing-standard)}.receipt-card:hover{box-shadow:var(--elevation-2);transform:translateY(-2px)}.receipt-photos{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);position:relative}.receipt-photo-thumb{width:80px;height:100px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--elevation-1)}.receipt-photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-count-badge{position:absolute;right:var(--spacing-xs);top:var(--spacing-xs);background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);font-size:.75rem;font-weight:var(--font-weight-semibold)}.receipt-status{margin-bottom:var(--spacing-sm)}.status{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:.75rem;font-weight:var(--font-weight-medium)}.status.captured{background:var(--color-surface-container);color:var(--color-on-surface)}.status.uploaded{background:var(--color-info-container);color:var(--color-on-info-container)}.status.processing{background:var(--color-warning-container);color:var(--color-on-warning-container)}.status.processed{background:var(--color-success-container);color:var(--color-on-success-container)}.status.failed{background:var(--color-error-container);color:var(--color-on-error-container)}.receipt-details{margin-bottom:var(--spacing-md)}.receipt-details p{margin:var(--spacing-xs) 0;color:var(--color-on-surface)}.receipt-details strong{font-weight:var(--font-weight-semibold)}.extraction-method{font-size:.75rem;color:var(--color-on-surface-variant);font-style:italic}.receipt-items{margin-bottom:var(--spacing-md)}.receipt-items h4{font-size:.875rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin-bottom:var(--spacing-sm)}.items-list{background:var(--color-surface-variant);border-radius:var(--radius-md);padding:var(--spacing-sm)}.items-list .item{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:.875rem}.more-items{text-align:center;color:var(--color-on-surface-variant);font-size:.75rem;margin-top:var(--spacing-xs);font-style:italic}.non-food-note{text-align:center;color:var(--color-on-surface-variant);font-size:.75rem;margin-top:var(--spacing-sm);font-style:italic}.receipt-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.extraction-group{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.extraction-group button{flex:1;min-width:150px}.loading-state,.empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-on-surface-variant)}.loading-overlay{position:fixed;inset:0;background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}.loading-spinner{text-align:center;padding:var(--spacing-2xl);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--elevation-3)}.spinner{width:48px;height:48px;margin:0 auto var(--spacing-md);border:4px solid var(--color-outline);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.error-message{background:var(--color-error-container);color:var(--color-on-error-container);padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-md);text-align:center}.bulk-actions-bar{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-surface-container);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.bulk-actions-bar button{flex:1;min-width:200px}.bulk-actions-bar-compact{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-container);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.bulk-actions-left,.bulk-actions-right{display:flex;gap:var(--spacing-sm)}.segmented-button{display:flex;gap:0;background:var(--color-surface-container);border:1px solid var(--color-outline);border-radius:var(--radius-sm);padding:4px;height:40px}.segment{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);color:var(--color-on-surface);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);white-space:nowrap;flex:1;justify-content:center}.segment:hover:not(.active){background:var(--color-surface-container-highest)}.segment.active{background:var(--color-secondary-container);color:var(--color-on-secondary-container);box-shadow:var(--elevation-1)}.segment-icon{font-size:1rem;line-height:1}.segment-label{line-height:1}:root[data-theme=dark] .segmented-button{background:var(--color-surface-container);border-color:var(--color-outline)}:root[data-theme=dark] .segment:hover:not(.active){background:var(--color-surface-container-high)}.sync-button-compact,.extract-button-compact{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.875rem;font-weight:var(--font-weight-medium);font-family:var(--font-family);border-radius:var(--radius-md);border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.sync-button-compact:hover:not(:disabled){background:var(--color-primary-container);color:var(--color-on-primary-container);border-color:var(--color-primary-container)}.sync-button-compact:disabled,.extract-button-compact:disabled{opacity:.45;cursor:not-allowed}.extract-button-compact{border-color:var(--color-secondary);color:var(--color-secondary)}.extract-button-compact:hover:not(:disabled){background:var(--color-secondary-container);color:var(--color-on-secondary-container);border-color:var(--color-secondary-container)}.toolbar-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:.6875rem;font-weight:700;line-height:1;background:var(--color-primary);color:var(--color-on-primary)}.extract-button-compact .toolbar-badge{background:var(--color-secondary);color:var(--color-on-secondary)}.sync-button-compact:hover:not(:disabled) .toolbar-badge{background:var(--color-on-primary-container);color:var(--color-primary-container)}.extract-button-compact:hover:not(:disabled) .toolbar-badge{background:var(--color-on-secondary-container);color:var(--color-secondary-container)}.actions-dropdown{position:relative}.actions-menu-button{background:var(--color-surface-variant);color:var(--color-on-surface-variant);border:none;width:32px;height:32px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all var(--motion-duration-short);display:flex;align-items:center;justify-content:center;line-height:1}.actions-menu-button:hover{background:var(--color-primary);color:var(--color-on-primary)}.actions-menu{position:absolute;top:100%;right:0;margin-top:var(--spacing-xs);background:var(--color-surface);border:1px solid var(--color-outline);border-radius:var(--radius-md);box-shadow:var(--elevation-3);min-width:200px;z-index:100;overflow:hidden}.actions-menu button{width:100%;text-align:left;background:none;border:none;padding:var(--spacing-md);color:var(--color-on-surface);cursor:pointer;transition:background var(--motion-duration-short);font-size:.875rem;display:flex;align-items:center;gap:var(--spacing-sm)}.actions-menu button:hover{background:var(--color-surface-variant)}.sync-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:.75rem;font-weight:var(--font-weight-medium);z-index:1}.sync-badge.unsynced{background:var(--color-secondary-container);color:var(--color-on-secondary-container)}.sync-badge.synced{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container)}.receipt-date{font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium)}.receipt-photo-thumb.placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-surface-variant);font-size:2rem}.edit-button{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all var(--motion-duration-short);margin-top:var(--spacing-sm)}.edit-button:hover{background:var(--color-tertiary);color:var(--color-on-tertiary)}.sync-button{background:var(--color-primary);color:var(--color-on-primary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all var(--motion-duration-short);margin-top:var(--spacing-sm)}.sync-button:hover:not(:disabled){background:var(--color-primary-container);color:var(--color-on-primary-container);transform:translateY(-1px);box-shadow:var(--elevation-1)}.sync-button:disabled{opacity:.5;cursor:not-allowed}.sync-button.disabled{opacity:.5;cursor:not-allowed}.receipt-edit-form{padding:var(--spacing-md);background:var(--color-surface-container-low);border-radius:var(--radius-md);margin-top:var(--spacing-sm)}.receipt-edit-form .form-group{margin-bottom:var(--spacing-md)}.receipt-edit-form label{display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);font-size:.875rem;color:var(--color-on-surface)}.edit-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md)}.receipt-card{position:relative}.empty-field{color:var(--color-on-surface-variant);opacity:.6;font-style:italic}.receipt-photo-container{display:flex;justify-content:center;margin-bottom:var(--spacing-md)}.receipt-photo-main{position:relative;width:100%;max-width:200px;aspect-ratio:3/4;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-variant)}.receipt-photo-main img{width:100%;height:100%;object-fit:cover}.receipt-photo-main.placeholder{display:flex;align-items:center;justify-content:center;font-size:3rem}.receipt-details-compact{text-align:center;padding:var(--spacing-sm) 0}.receipt-store{font-size:1.1rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin-bottom:var(--spacing-xs)}.receipt-meta{font-size:.875rem;color:var(--color-on-surface-variant);display:flex;justify-content:center;align-items:center;gap:var(--spacing-xs)}.receipt-meta .separator{opacity:.5}.receipt-total{font-weight:var(--font-weight-medium)}.edit-button-compact{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:var(--color-primary);color:var(--color-on-primary);border:none;width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;box-shadow:var(--elevation-2);transition:all var(--motion-duration-short);z-index:1}.edit-button-compact:hover{transform:scale(1.1);box-shadow:var(--elevation-3)}.additional-info-section{margin-top:var(--spacing-md);border-top:1px solid var(--color-outline);padding-top:var(--spacing-md)}.additional-info-toggle{background:none;border:none;color:var(--color-primary);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;padding:var(--spacing-sm);width:100%;text-align:left;display:flex;align-items:center;gap:var(--spacing-xs);transition:opacity var(--motion-duration-short)}.additional-info-toggle:hover{opacity:.8}.additional-info-content{margin-top:var(--spacing-sm);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.photo-gallery-centered{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.detail-photo-large{max-width:100%;width:auto;max-height:500px;border-radius:var(--radius-md);box-shadow:var(--elevation-2);transition:transform var(--motion-duration-short),box-shadow var(--motion-duration-short)}.detail-photo-large:hover{transform:scale(1.02);box-shadow:var(--elevation-3)}.fullscreen-image-overlay{position:fixed;inset:0;background:#000000f2;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl)}.fullscreen-controls{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);display:flex;gap:var(--spacing-sm);z-index:2001}.zoom-button{background:var(--color-surface);color:var(--color-on-surface);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:all var(--motion-duration-short);box-shadow:var(--elevation-2)}.zoom-button:hover{background:var(--color-primary);color:var(--color-on-primary);transform:translateY(-2px);box-shadow:var(--elevation-3)}.close-fullscreen-button{background:var(--color-error);color:var(--color-on-error);border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:all var(--motion-duration-short);box-shadow:var(--elevation-2);display:flex;align-items:center;justify-content:center}.close-fullscreen-button:hover{transform:scale(1.1);box-shadow:var(--elevation-4)}.fullscreen-image-container{max-width:100%;max-height:90vh;display:flex;align-items:center;justify-content:center;overflow:auto}.fullscreen-image-container img{cursor:move;-webkit-user-select:none;user-select:none}.receipt-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg);overflow-y:auto}.receipt-modal{background:var(--color-surface);border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--elevation-5)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-outline)}.modal-header h3{margin:0;color:var(--color-on-surface)}.close-button{background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-on-surface-variant);padding:var(--spacing-xs);line-height:1;transition:color var(--motion-duration-short)}.close-button:hover{color:var(--color-on-surface)}.modal-content{padding:var(--spacing-lg)}.detail-section{margin-bottom:var(--spacing-xl)}.detail-section h4{margin:0 0 var(--spacing-md) 0;color:var(--color-on-surface);font-weight:var(--font-weight-medium)}.status-info .status-badge{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);border-radius:var(--radius-lg);text-align:center}.status-info .status-badge.unsynced{background:var(--color-secondary-container);color:var(--color-on-secondary-container)}.status-info .status-badge.synced{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container)}.status-icon{font-size:2.5rem;margin-bottom:var(--spacing-sm)}.status-description{margin-top:var(--spacing-xs);font-size:.875rem;opacity:.8}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.detail-photo{width:100%;height:150px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-outline)}.info-grid{display:grid;gap:var(--spacing-md)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label{font-size:.75rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.info-value{color:var(--color-on-surface);font-weight:var(--font-weight-medium)}.items-table{display:flex;flex-direction:column;gap:var(--spacing-xs)}.item-row{display:flex;justify-content:space-between;padding:var(--spacing-sm);background:var(--color-surface-variant);border-radius:var(--radius-sm)}.item-name{flex:1;color:var(--color-on-surface)}.item-price{font-weight:var(--font-weight-medium);color:var(--color-primary)}.item-row.non-food{opacity:.65}.item-qty{font-size:.8em;color:var(--color-on-surface-variant);margin-left:2px}.item-tag{display:inline-block;font-size:.7em;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);background:var(--color-surface);border:1px solid var(--color-outline-variant, #ccc);border-radius:var(--radius-sm);padding:1px 5px;margin-left:var(--spacing-xs);vertical-align:middle}.no-data{text-align:center;color:var(--color-on-surface-variant);font-style:italic;padding:var(--spacing-lg)}.pantry-match-section h4{margin-bottom:var(--spacing-md)}.pantry-match-premium{display:flex;flex-direction:column;gap:var(--spacing-sm)}.pantry-match-description{font-size:.875rem;color:var(--color-on-surface-variant);margin:0}.pantry-match-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:none;font-size:.9rem;font-weight:var(--font-weight-medium);cursor:pointer;background:var(--color-primary);color:var(--color-on-primary);width:fit-content}.pantry-match-btn.coming-soon{opacity:.5;cursor:not-allowed}.pantry-match-btn.done{background:var(--color-surface-variant);color:var(--color-on-surface-variant)}.pantry-match-done-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:.72rem;font-weight:var(--font-weight-medium);background:var(--color-tertiary-container, #c4eed0);color:var(--color-on-tertiary-container, #002114)}.coming-soon-badge{font-size:.7rem;font-weight:600;background:var(--color-surface-variant);color:var(--color-on-surface-variant);border-radius:var(--radius-xs, 4px);padding:2px 6px}.pantry-match-hint{font-size:.8rem;color:var(--color-on-surface-variant);margin:0;font-style:italic}.pantry-match-upsell{display:flex;gap:var(--spacing-md);align-items:flex-start;background:var(--color-surface-variant);border:1px solid var(--color-outline-variant);border-radius:var(--radius-md);padding:var(--spacing-md)}.pantry-match-upsell-icon{font-size:1.5rem;flex-shrink:0}.pantry-match-upsell-body{display:flex;flex-direction:column;gap:var(--spacing-xs)}.pantry-match-upsell-title{font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin:0;font-size:.9rem}.pantry-match-upsell-desc{font-size:.8rem;color:var(--color-on-surface-variant);margin:0;line-height:1.4}.pantry-match-upgrade-btn{margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:var(--font-weight-medium);cursor:pointer;width:fit-content}.pantry-match-upgrade-btn:hover{opacity:.9}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-outline);display:flex;justify-content:space-between;align-items:center}.footer-left,.footer-right{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.sync-button-wrapper{position:relative;display:flex;align-items:center}.sync-status-button{background:var(--color-secondary-container);color:var(--color-on-secondary-container);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.8rem;cursor:pointer;transition:all var(--motion-duration-short);font-weight:var(--font-weight-medium);white-space:nowrap}.sync-status-button:not(:disabled):hover{background:var(--color-secondary);color:var(--color-on-secondary);transform:translateY(-1px)}.sync-status-button.disabled,.sync-status-button:disabled{opacity:.6;cursor:not-allowed}.sync-status-button.synced{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);cursor:default}.sync-status-button.cloud{background:var(--color-primary-container);color:var(--color-on-primary-container);cursor:default}.auth-message-tooltip{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.75rem;white-space:nowrap;box-shadow:var(--elevation-3);animation:slideDown .2s ease-out;z-index:1000}.auth-message-tooltip:after{content:"";position:absolute;top:100%;right:12px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--color-inverse-surface)}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.modal-footer{flex-direction:column;gap:var(--spacing-sm)}.footer-left,.footer-right{width:100%;justify-content:stretch}.footer-right{flex-direction:column-reverse}.sync-status-button{width:100%;text-align:center}.auth-message-tooltip{right:50%;transform:translate(50%);white-space:normal;max-width:90%;text-align:center}.auth-message-tooltip:after{right:50%;transform:translate(50%)}}.delete-button{background:var(--color-error-container);color:var(--color-on-error-container);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all var(--motion-duration-short);font-weight:var(--font-weight-medium)}.delete-button:hover{background:var(--color-error);color:var(--color-on-error)}.confirmation-dialog{background:var(--color-surface);border-radius:var(--radius-xl);max-width:400px;width:90%;padding:var(--spacing-xl);box-shadow:var(--elevation-5)}.confirmation-dialog-inline{padding:var(--spacing-xl);width:100%}.confirmation-dialog h3,.confirmation-dialog-inline h3{margin:0 0 var(--spacing-md) 0;color:var(--color-on-surface)}.confirmation-content{margin-bottom:var(--spacing-lg)}.confirmation-content>p{margin-bottom:var(--spacing-md);color:var(--color-on-surface-variant)}.confirmation-details{background:var(--color-surface-variant);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-md) 0}.confirmation-details p{margin:var(--spacing-xs) 0;font-size:.875rem;color:var(--color-on-surface)}.confirmation-details ul{margin:var(--spacing-xs) 0;padding-left:var(--spacing-lg);font-size:.875rem;color:var(--color-on-surface-variant)}.confirmation-details li{margin:var(--spacing-xs) 0}.warning-text{color:var(--color-error);font-weight:var(--font-weight-medium);font-size:.875rem;margin-top:var(--spacing-md)}.confirmation-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.danger-button{background:var(--color-error);color:var(--color-on-error);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all var(--motion-duration-short);font-weight:var(--font-weight-medium)}.danger-button:hover{background:var(--color-error);filter:brightness(.9)}.info-edit-form{padding:var(--spacing-md);background:var(--color-surface-container-low);border-radius:var(--radius-md)}.info-edit-form .form-group{margin-bottom:var(--spacing-md)}.info-edit-form label{display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);font-size:.875rem;color:var(--color-on-surface)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1500;padding:var(--spacing-lg)}.auth-modal-content{background:var(--color-surface);border-radius:var(--radius-xl);max-width:500px;width:100%;box-shadow:var(--elevation-5)}.auth-modal-content .modal-header h2{margin:0;color:var(--color-on-surface);font-size:1.5rem}.auth-modal-content .modal-body{padding:var(--spacing-lg)}.auth-modal-content .modal-body p{margin:0 0 var(--spacing-md) 0;color:var(--color-on-surface);line-height:1.6}.auth-modal-content .modal-body .info-text{background:var(--color-primary-container);color:var(--color-on-primary-container);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;margin:var(--spacing-md) 0 0 0}.auth-modal-content .modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-outline);display:flex;gap:var(--spacing-sm);justify-content:flex-end}.receipts-header-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.primary-button{background:var(--color-primary);color:var(--color-on-primary);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);box-shadow:var(--elevation-1)}.primary-button:hover{background:var(--color-primary);filter:brightness(1.1);box-shadow:var(--elevation-2)}.secondary-button{background:var(--color-surface-variant);color:var(--color-on-surface-variant);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short)}.secondary-button:hover{background:var(--color-surface-variant);filter:brightness(.95)}@media(max-width:640px){.receipt-capture,.receipt-gallery{padding:var(--spacing-md)}.extraction-group button{min-width:120px;font-size:.8125rem}.auth-modal-content{max-width:90%}.auth-modal-content .modal-footer{flex-direction:column-reverse}.auth-modal-content .modal-footer .primary-button,.auth-modal-content .modal-footer .secondary-button{width:100%}}.rc-kind-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.rc-kind-label{font-size:.8rem;font-weight:600;color:var(--color-on-surface-variant)}.rc-kind-seg{display:inline-flex;gap:3px;padding:3px;background:var(--color-surface-container-high);border-radius:10px}.rc-kind-btn{padding:6px 14px;border:none;background:transparent;border-radius:8px;font-size:.85rem;font-weight:600;color:var(--color-on-surface-variant);cursor:pointer;transition:background .12s ease,color .12s ease}.rc-kind-btn.selected{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 2px #0000001f}.rc-kind-btn.selected.takeout{color:var(--color-on-tertiary-container)}.rc-link-row{margin-top:4px;padding:12px 14px;background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:14px}.rc-link-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.rc-link-check input[type=checkbox]{width:20px;height:20px;margin-top:1px;accent-color:var(--color-on-tertiary-container);flex-shrink:0}.rc-link-text{display:flex;flex-direction:column;gap:2px}.rc-link-title{font-size:.9rem;font-weight:650}.rc-link-sub{font-size:.78rem;opacity:.8}.rc-link-radios{display:flex;flex-direction:column;gap:8px}.rc-link-radio{display:flex;align-items:center;gap:8px;padding-left:30px;font-size:.85rem;text-transform:capitalize;cursor:pointer}.receipt-takeout-badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-full, 999px);background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);font-size:.8rem;font-weight:700}.receipt-planned-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.receipt-planned-badge,.receipt-no-receipt-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full, 999px);font-size:.7rem;font-weight:700;white-space:nowrap}.receipt-planned-badge{background:var(--color-secondary-container, #e0e0f0);color:var(--color-on-secondary-container, #2a2a45)}.receipt-no-receipt-badge{background:var(--color-surface-variant, #eceff1);color:var(--color-on-surface-variant, #5a6067)}.receipts-table .receipt-planned-badge,.receipts-table .receipt-no-receipt-badge{margin-right:4px}@media(prefers-color-scheme:dark){.receipt-no-receipt-badge{background:#333a40;color:#c2c9d0}}.rc-capture{display:flex;flex-direction:column;gap:14px}.rc-file-input{display:none}.rc-header{display:flex;align-items:center;justify-content:space-between}.rc-header-title{margin:0;font-size:17px;font-weight:700;color:var(--color-on-surface)}.rc-close{width:32px;height:32px;border:none;border-radius:50%;background:var(--color-surface-container-high);color:var(--color-on-surface-variant);font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.rc-close:disabled{opacity:var(--state-disabled-opacity, .4);cursor:default}.rc-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:190px;width:100%;padding:24px;border:2px dashed var(--color-outline);border-radius:var(--radius-2xl, 20px);background:var(--color-surface-container);cursor:pointer}.rc-hero-icon{font-size:36px}.rc-hero-title{font-size:16px;font-weight:650;color:var(--color-on-surface)}.rc-hero-sub{font-size:13px;color:var(--color-on-surface-variant)}.rc-hero-optional{margin-top:8px;font-size:12px;font-weight:550;color:var(--color-primary, #667eea)}.rc-example-btn{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;margin-top:10px;padding:12px 16px;border:1px solid var(--color-outline-variant, #d0d0d6);border-radius:var(--radius-lg, 14px);background:color-mix(in srgb,var(--color-primary, #667eea) 8%,transparent);color:var(--color-primary, #667eea);font-size:14px;font-weight:650;cursor:pointer}.rc-example-btn:disabled{opacity:.6;cursor:default}.rc-example-sub{font-size:12px;font-weight:500;color:var(--color-on-surface-variant)}.rc-rail{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.rc-tile{position:relative;flex:0 0 auto;width:88px;height:117px}.rc-tile-img{width:100%;height:100%;border-radius:var(--radius-lg, 12px);overflow:hidden;cursor:zoom-in;box-shadow:var(--elevation-2, 0 2px 6px rgba(0,0,0,.15))}.rc-tile-img img{width:100%;height:100%;object-fit:cover}.rc-tile-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#00000073;color:#fff;font-size:12px;border-radius:var(--radius-lg, 12px)}.rc-tile-overlay.success{background:#107a3c8c}.rc-tile-overlay.error{background:#b000208c}.rc-tile-remove{position:absolute;top:5px;right:5px;width:22px;height:22px;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:11px;cursor:pointer}.rc-tile-add{flex:0 0 auto;width:88px;height:117px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px dashed var(--color-outline);border-radius:var(--radius-lg, 12px);background:transparent;color:var(--color-on-surface-variant);cursor:pointer;font-size:12px;font-weight:600}.rc-tile-add-plus{font-size:22px;font-weight:300}.rc-tile-add:disabled{opacity:var(--state-disabled-opacity, .4);cursor:default}.rc-max-notice{font-size:12px;color:var(--color-on-surface-variant);margin:0}.rc-status{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-lg, 12px);font-size:13px}.rc-status-text{display:flex;flex-direction:column;gap:2px}.rc-status-title{font-weight:600}.rc-status-sub{font-size:12px;opacity:.9}.rc-status--info{background:var(--color-info-container, var(--color-surface-container-high));color:var(--color-on-info-container, var(--color-on-surface))}.rc-status--warning{background:var(--color-warning-container, #fdecc8);color:var(--color-on-warning-container, #4a3410)}.rc-status--error{background:var(--color-error-container, #fcd8df);color:var(--color-on-error-container, #5c0e1c)}.rc-status--offline{background:var(--color-surface-container-high);color:var(--color-on-surface-variant)}.rc-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:rc-spin .7s linear infinite;flex-shrink:0}.rc-spinner--btn{margin-right:8px;vertical-align:middle}@keyframes rc-spin{to{transform:rotate(360deg)}}.rc-details-card{background:var(--color-surface-container);border-radius:var(--radius-xl, 14px);padding:15px 16px;display:flex;flex-direction:column;gap:14px}.rc-details-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rc-details-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-on-surface-variant)}.rc-field{display:flex;flex-direction:column;gap:5px;flex:1}.rc-field-row{display:flex;flex-direction:column;gap:14px}@media(min-width:480px){.rc-field-row{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}}.rc-field-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--color-on-surface-variant)}.rc-input{font-variant-numeric:tabular-nums}.rc-auto-chip{font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:var(--radius-full, 999px);background:var(--color-primary-container, #dbe4ff);color:var(--color-on-primary-container, #142d6e)}.rc-input--autofilled{animation:rc-autofill-fade var(--motion-duration-long, .5s) ease-out}@keyframes rc-autofill-fade{0%{background:var(--color-primary-container, #dbe4ff)}to{background:var(--color-surface)}}@media(prefers-reduced-motion:reduce){.rc-input--autofilled{animation:none}}.rc-cost-wrap{position:relative;display:flex;align-items:center}.rc-cost-symbol{position:absolute;left:12px;color:var(--color-on-surface-variant);font-size:15px;pointer-events:none}input.rc-cost-input{padding-left:26px}.rc-items-card{background:var(--color-surface-container);border-radius:var(--radius-xl, 14px);padding:15px 16px;display:flex;flex-direction:column;gap:10px}.rc-items-hint{margin:0;font-size:.85rem;color:var(--color-on-surface-variant);line-height:1.4}.rc-items-total{margin-top:2px}.rc-items-retry{background:none;border:none;color:var(--color-primary);font-size:.8rem;font-weight:600;cursor:pointer;padding:2px 4px}.rc-items-skeleton{display:flex;flex-direction:column;gap:8px}.rc-items-skeleton-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-on-surface-variant)}.rc-skel-row{display:grid;grid-template-columns:1fr 96px;gap:8px}.rc-skel-bar{height:34px;border-radius:var(--radius-md, 8px);background:linear-gradient(90deg,var(--color-surface-container-high) 25%,var(--color-surface-container-highest, var(--color-surface-container-high)) 37%,var(--color-surface-container-high) 63%);background-size:400% 100%;animation:rc-skel-shimmer 1.4s ease infinite}@keyframes rc-skel-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.rc-skel-bar{animation:none}}.rc-items-fallback{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.rc-items-manual-btn{margin-top:2px;padding:9px 14px;border:1px solid var(--color-outline-variant, var(--color-outline));border-radius:var(--radius-md, 10px);background:var(--color-surface);color:var(--color-on-surface);font-size:.9rem;font-weight:600;cursor:pointer}.rc-items-manual-btn:hover{background:var(--color-surface-container-high)}.rc-items-upsell{margin-top:4px;font-size:.82rem;font-weight:600;color:var(--color-primary);text-decoration:none}.rc-items-upsell:hover{text-decoration:underline}.rc-switch-text{display:flex;flex-direction:column;gap:1px}.rc-scan-count{font-size:.7rem;color:var(--color-on-surface-variant)}.rc-scan-count--empty{color:var(--color-error, #c0392b)}.rc-match-intro{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin:12px 0;background:var(--color-surface-container);border-radius:var(--radius-lg, 12px)}.rc-match-intro-icon{font-size:18px;line-height:1.4}.rc-match-intro p{margin:0;font-size:.88rem;color:var(--color-on-surface-variant);line-height:1.4}.rc-match-intro--warning{background:var(--color-warning-container, #fdecc8)}.rc-match-intro--warning p{color:var(--color-on-warning-container, #4a3410)}.rc-actionbar{position:sticky;bottom:0;display:flex;flex-direction:column;gap:10px;padding:12px 0 calc(4px + env(safe-area-inset-bottom,0px));background:var(--color-surface);border-top:1px solid var(--color-outline-variant, var(--color-outline))}.rc-save{width:100%;height:48px;border:none;border-radius:var(--radius-xl, 14px);background:var(--color-primary);color:var(--color-on-primary);font-size:15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.rc-save--offline{background:var(--color-surface-container-high);color:var(--color-on-surface-variant)}.rc-save:disabled{opacity:var(--state-disabled-opacity, .4);cursor:default}.rc-save-hint{margin:-2px 0 0;font-size:12px;line-height:1.35;color:var(--color-on-surface-variant);text-align:center}.rc-actionbar-row{display:flex;align-items:center;justify-content:space-between}.rc-cancel{background:transparent;border:none;font-size:14px;font-weight:600;color:var(--color-on-surface-variant);cursor:pointer}.rc-cancel:disabled{opacity:var(--state-disabled-opacity, .4);cursor:default}.rc-switch-row{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--color-on-surface-variant);cursor:pointer}.rc-switch-row.disabled{opacity:.55;cursor:not-allowed}.rc-switch{width:34px;height:20px;accent-color:var(--color-primary);cursor:pointer}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:var(--spacing-lg);background:var(--color-surface-dim)}.auth-container.authenticated{min-height:auto;padding:var(--spacing-xl)}.auth-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:420px;width:100%;box-shadow:var(--elevation-3)}.auth-card h2{margin:0 0 var(--spacing-md) 0;color:var(--color-on-surface);font-size:1.75rem;font-weight:var(--font-weight-bold);text-align:center}.auth-description{margin:0 0 var(--spacing-lg) 0;color:var(--color-on-surface-variant);text-align:center;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{color:var(--color-on-surface);font-size:.875rem;font-weight:var(--font-weight-medium)}.form-group input{padding:var(--spacing-md);border:2px solid var(--color-outline);border-radius:var(--radius-md);font-size:1rem;background:var(--color-surface);color:var(--color-on-surface);transition:border-color var(--motion-duration-short)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.field-hint{color:var(--color-on-surface-variant);font-size:.75rem;margin-top:-4px}.auth-error{background:var(--color-error-container);color:var(--color-on-error-container);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--spacing-xs)}.auth-error:before{content:"⚠️"}.auth-message{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--spacing-xs)}.auth-message:before{content:"ℹ️"}.auth-button{padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short)}.auth-button.primary{background:var(--color-primary);color:var(--color-on-primary)}.auth-button.primary:hover:not(:disabled){background:var(--color-primary);filter:brightness(1.1);transform:translateY(-1px);box-shadow:var(--elevation-2)}.auth-button.sign-out{background:var(--color-error-container);color:var(--color-on-error-container);width:100%}.auth-button.sign-out:hover:not(:disabled){background:var(--color-error);color:var(--color-on-error)}.auth-button:disabled{opacity:.5;cursor:not-allowed}.auth-switch{margin:var(--spacing-lg) 0 0 0;text-align:center;color:var(--color-on-surface-variant);font-size:.875rem}.link-button{background:none;border:none;color:var(--color-primary);font-weight:var(--font-weight-medium);cursor:pointer;padding:0;font-size:inherit;text-decoration:underline}.link-button:hover{color:var(--color-primary);filter:brightness(1.2)}.link-button:disabled{opacity:.5;cursor:not-allowed}.auth-user-info{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-surface-variant);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.user-icon{font-size:1.5rem}.user-id{font-size:.875rem;color:var(--color-on-surface-variant);font-family:monospace}@media(max-width:640px){.auth-container{padding:var(--spacing-md)}.auth-card{padding:var(--spacing-lg)}.auth-card h2{font-size:1.5rem}}.account-page{max-width:72rem;margin:0 auto;padding:var(--spacing-2xl) var(--spacing-lg)}.account-page__bottom{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.account-page .auth-card{max-width:none}.account-page .auth-card h2{text-align:left}.account-card .auth-user-info{margin-bottom:var(--spacing-lg)}.account-card .user-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:20ch}.legal-links{display:flex;flex-direction:column}.legal-links a{color:var(--color-on-surface);font-size:.875rem;text-decoration:none;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-outline);transition:color var(--motion-duration-short);display:flex;align-items:center;justify-content:space-between}.legal-links a:after{content:"→";color:var(--color-on-surface-variant);font-size:.75rem}.legal-links a:last-child{border-bottom:none}.legal-links a:hover{color:var(--color-primary)}.settings-card{margin-bottom:var(--spacing-lg)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-lg)}.setting-item{display:flex;flex-direction:column;gap:var(--spacing-sm)}.setting-label{font-weight:var(--font-weight-semibold);color:var(--color-on-surface);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.theme-option{background:var(--color-surface-variant);border:2px solid var(--color-outline);border-radius:var(--radius-lg);padding:var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard)}.theme-option:hover{background:var(--color-surface-container);border-color:var(--color-primary);transform:translateY(-2px)}.theme-option.active{background:var(--color-primary-container);border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-container)}.theme-icon{font-size:1.5rem}.theme-name{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface)}.setting-hint{font-size:.75rem;color:var(--color-on-surface-variant);margin:0;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-variant);border-radius:var(--radius-md)}.setting-divider{height:1px;background:var(--color-outline-variant, #e5e7eb);margin:var(--spacing-xs) 0}.setting-sublabel{font-size:.75rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:var(--spacing-xs)}.alarm-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.alarm-mode-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--spacing-md) var(--spacing-sm);background:var(--color-surface-variant);border:2px solid var(--color-outline);border-radius:var(--radius-lg);cursor:pointer;text-align:center;transition:all var(--motion-duration-short) var(--motion-easing-standard)}.alarm-mode-option:hover{background:var(--color-surface-container);border-color:var(--color-primary);transform:translateY(-1px)}.alarm-mode-option.active{background:var(--color-primary-container);border-color:var(--color-primary)}.alarm-mode-option.active.forever{background:#ef535014;border-color:var(--color-error, #d32f2f)}.alarm-mode-icon{font-size:1.4rem}.alarm-mode-name{font-size:.875rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface)}.alarm-mode-desc{font-size:.7rem;color:var(--color-on-surface-variant);line-height:1.3}.alarm-sound-options{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-sm)}.alarm-sound-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--spacing-sm) var(--spacing-xs);background:var(--color-surface-variant);border:2px solid var(--color-outline);border-radius:var(--radius-lg);cursor:pointer;text-align:center;transition:all var(--motion-duration-short) var(--motion-easing-standard)}.alarm-sound-option:hover{background:var(--color-surface-container);border-color:var(--color-primary);transform:translateY(-1px)}.alarm-sound-option.active{background:var(--color-primary-container);border-color:var(--color-primary)}.alarm-sound-icon{font-size:1.25rem}.alarm-sound-name{font-size:.8rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface)}.alarm-sound-desc{font-size:.65rem;color:var(--color-on-surface-variant);line-height:1.2}@media(max-width:480px){.alarm-sound-options{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.account-page{padding:var(--spacing-lg) var(--spacing-md)}.account-page__bottom{grid-template-columns:1fr}}.danger-zone-card{margin-top:var(--spacing-xl);border:2px solid var(--color-error);border-radius:var(--radius-xl);padding:var(--spacing-xl);background:var(--color-error-container)}.danger-zone-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.danger-zone-header h2{margin:0;color:var(--color-on-error-container);font-size:1.25rem;font-weight:var(--font-weight-bold);text-align:left}.danger-zone-icon{font-size:1.25rem;flex-shrink:0}.danger-zone-description{margin:0 0 var(--spacing-lg) 0;font-size:.875rem;color:var(--color-on-error-container);opacity:.85;line-height:1.5}.danger-zone-message{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-weight-medium)}.danger-zone-message.success{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container)}.danger-zone-message.error{background:var(--color-error);color:var(--color-on-error)}.danger-zone-actions{display:flex;flex-direction:column;gap:var(--spacing-md)}.danger-zone-action{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-error)}.danger-zone-action-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.danger-zone-action-info strong{font-size:.9375rem;color:var(--color-on-surface)}.danger-zone-action-info span{font-size:.8125rem;color:var(--color-on-surface-variant);line-height:1.4}.danger-zone-confirm{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.danger-zone-confirm span{font-size:.8125rem;color:var(--color-on-surface-variant);white-space:nowrap}.danger-zone-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);white-space:nowrap;flex-shrink:0}.danger-zone-btn:disabled{opacity:.5;cursor:not-allowed}.danger-zone-btn--destructive{background:var(--color-error);color:var(--color-on-error)}.danger-zone-btn--destructive:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.danger-zone-btn--confirm{background:var(--color-error);color:var(--color-on-error)}.danger-zone-btn--confirm:hover:not(:disabled){filter:brightness(1.1)}.danger-zone-btn--cancel{background:var(--color-surface-variant);color:var(--color-on-surface-variant)}.danger-zone-btn--cancel:hover:not(:disabled){background:var(--color-surface-container)}@media(max-width:640px){.danger-zone-action{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.danger-zone-confirm{flex-wrap:wrap;width:100%}.danger-zone-confirm span{width:100%}.danger-zone-btn{flex:1}}.oauth-section{margin-bottom:var(--spacing-lg)}.oauth-info{background:var(--color-primary-container);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.oauth-note{margin:0 0 var(--spacing-sm) 0;color:var(--color-on-primary-container);font-size:.875rem}.oauth-description{margin:0 0 var(--spacing-sm) 0;color:var(--color-on-primary-container);font-size:.8125rem;line-height:1.5}.oauth-description code{background:#0000001a;padding:2px 6px;border-radius:var(--radius-xs);font-size:.75rem}.oauth-instructions{margin-top:var(--spacing-sm)}.oauth-instructions summary{cursor:pointer;color:var(--color-on-primary-container);font-weight:var(--font-weight-medium);font-size:.8125rem;padding:var(--spacing-xs);border-radius:var(--radius-xs);transition:background-color var(--motion-duration-short)}.oauth-instructions summary:hover{background:#0000000d}.provider-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding-left:var(--spacing-md)}.provider-item{padding:var(--spacing-xs)}.provider-item strong{display:block;margin-bottom:4px;color:var(--color-on-primary-container)}.provider-item p{margin:0;font-size:.75rem;color:var(--color-on-primary-container);opacity:.8}.provider-item a{color:var(--color-primary);text-decoration:underline}.provider-item a:hover{filter:brightness(1.2)}.oauth-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.oauth-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-outline);border-radius:var(--radius-md);font-size:.9375rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);background:var(--color-surface);color:var(--color-on-surface)}.oauth-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--elevation-2);border-color:var(--color-on-surface)}.oauth-button:disabled{opacity:.5;cursor:not-allowed}.oauth-button.google:hover:not(:disabled){background:#f8f9fa;border-color:#4285f4}.oauth-button.facebook:hover:not(:disabled){background:#f0f5ff;border-color:#1877f2}.oauth-button.amazon:hover:not(:disabled){background:#fff8f0;border-color:#f90}.oauth-button.apple:hover:not(:disabled){background:#f5f5f5;border-color:#000}.oauth-icon{width:20px;height:20px;flex-shrink:0}.divider{display:flex;align-items:center;margin:var(--spacing-lg) 0;color:var(--color-on-surface-variant);font-size:.875rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-outline)}.divider span{padding:0 var(--spacing-md)}@media(max-width:640px){.oauth-button{font-size:.875rem;padding:var(--spacing-sm) var(--spacing-md)}.provider-list{padding-left:var(--spacing-sm)}}@media(max-width:768px){.receipts-table th,.receipts-table td{padding:var(--spacing-sm);font-size:.875rem}.receipts-table th{font-size:.75rem}.total-cost-bar{padding:var(--spacing-md) var(--spacing-lg)}.total-cost-bar-content{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.total-cost-bar .total-amount{font-size:1.5rem}.total-cost-bar .total-count{align-self:flex-start}}@media(max-width:480px){.receipts-table-container{overflow-x:auto}.receipts-table th,.receipts-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem}.receipts-table th{font-size:.6875rem}.total-cost-bar{padding:var(--spacing-sm) var(--spacing-md)}.total-cost-bar .total-label{font-size:.75rem}.total-cost-bar .total-amount{font-size:1.25rem}.total-cost-bar .total-count{font-size:.75rem;padding:4px 8px}}.danger-zone{border:1px solid var(--color-error);background:var(--color-surface)}.danger-zone-intro{margin:0 0 var(--spacing-md) 0;color:var(--color-on-surface-variant);font-size:.875rem;line-height:1.5}.danger-zone-warning{margin:0 0 var(--spacing-md) 0;color:var(--color-error);font-size:.875rem;line-height:1.5}.danger-zone-list{margin:0 0 var(--spacing-md) 0;padding-left:var(--spacing-lg);color:var(--color-on-surface-variant);font-size:.875rem;line-height:1.6}.danger-zone .danger-zone-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.danger-zone-progress{margin-top:var(--spacing-md);color:var(--color-on-surface-variant);font-size:.875rem;font-style:italic}.danger-button{padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);background:var(--color-error);color:var(--color-on-error)}.danger-button:hover:not(:disabled){filter:brightness(1.1);box-shadow:var(--elevation-2)}.danger-button:disabled{opacity:.5;cursor:not-allowed}.danger-button-outline{padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-error);border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);background:transparent;color:var(--color-error)}.danger-button-outline:hover:not(:disabled){background:var(--color-error-container);color:var(--color-on-error-container)}.danger-button-outline:disabled{opacity:.5;cursor:not-allowed}.auth-button-secondary{padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-outline);border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short);background:var(--color-surface);color:var(--color-on-surface)}.auth-button-secondary:hover:not(:disabled){background:var(--color-surface-variant)}.auth-button-secondary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.danger-zone .danger-zone-actions{flex-direction:column;align-items:stretch}.danger-button,.danger-button-outline,.auth-button-secondary{width:100%}}.has-tooltip{position:relative}.has-tooltip[data-tooltip]:hover:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.75rem;white-space:nowrap;box-shadow:var(--elevation-3);animation:slideDown .2s ease-out;z-index:1000;pointer-events:none}.has-tooltip[data-tooltip]:hover:after{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--color-inverse-surface);pointer-events:none}.has-tooltip[data-tooltip-bottom]:hover:before{content:attr(data-tooltip-bottom);top:calc(100% + 8px);bottom:auto}.has-tooltip[data-tooltip-bottom]:hover:after{top:calc(100% + 2px);bottom:auto;border-top:none;border-bottom:6px solid var(--color-inverse-surface)}.has-tooltip[disabled][data-tooltip]:hover:before,.has-tooltip.disabled[data-tooltip]:hover:before{content:attr(data-tooltip);cursor:not-allowed}@media(max-width:640px){.has-tooltip[data-tooltip]:hover:before,.has-tooltip[data-tooltip-bottom]:hover:before{font-size:.6875rem;padding:6px 10px;white-space:normal;max-width:200px}}.filter-bar{background:var(--color-surface-container-low);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.filter-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.filter-bar-title{font-size:1rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin:0}.reset-filters-button{padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.reset-filters-button:hover{background:var(--color-primary);color:var(--color-on-primary)}.filter-bar-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group--full{grid-column:1 / -1}.date-range-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-surface);color:var(--color-on-surface);border:1px solid var(--color-outline);border-radius:var(--radius-md);font-size:.875rem;font-family:var(--font-family);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .18s ease;white-space:nowrap;height:36px}.date-range-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.date-range-button.active{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary)}.date-range-button-icon{font-size:.9rem;line-height:1}.date-range-button-label{flex:1}.date-range-button-chevron{font-size:.6rem;opacity:.7}.date-popover{padding:6px 0;min-width:220px}.date-popover-presets{list-style:none;margin:0;padding:0}.date-popover-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 16px;background:transparent;border:none;font-size:.9rem;font-family:var(--font-family);font-weight:var(--font-weight-medium);color:var(--color-on-surface);cursor:pointer;transition:background .15s ease;text-align:left}.date-popover-option:hover{background:var(--color-surface-container-high)}.date-popover-option.active{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.date-popover-check{font-size:.85rem;color:var(--color-primary)}.date-popover-divider{height:1px;background:var(--color-outline-variant);margin:4px 0}.date-popover-custom{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);border-top:1px solid var(--color-outline-variant);margin-top:4px}.filter-label{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant)}.filter-select{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);color:var(--color-on-surface);border:1px solid var(--color-outline);border-radius:var(--radius-md);font-size:.9375rem;font-family:var(--font-family);cursor:pointer;transition:all .2s ease}.filter-select:hover{border-color:var(--color-primary)}.filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.1)}.filter-bar-summary{padding-top:var(--spacing-sm);border-top:1px solid var(--color-outline-variant)}.summary-text{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant)}.summary-panel{background:var(--color-surface-container-low);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.summary-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.summary-icon{font-size:1.25rem}.summary-title{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{background:var(--color-surface);border:1px solid var(--color-outline-variant);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:center;transition:all .2s ease}.stat-card:hover{border-color:var(--color-primary);box-shadow:var(--elevation-1)}.stat-icon{font-size:1.5rem;display:block;margin-bottom:var(--spacing-xs)}.stat-value{font-size:1.75rem;font-weight:var(--font-weight-bold);color:var(--color-on-surface);line-height:1;margin-bottom:var(--spacing-xs)}.stat-label{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant)}.stat-subtitle{font-size:.75rem;color:var(--color-on-surface-variant);margin-top:var(--spacing-xs);opacity:.7}.top-stores-section{margin-bottom:var(--spacing-lg)}.section-title{font-size:.9375rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin:0 0 var(--spacing-md) 0}.top-stores-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.store-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-surface);border-radius:var(--radius-sm)}.store-rank{font-size:.875rem;font-weight:var(--font-weight-bold);color:var(--color-on-surface-variant);min-width:24px}.store-info{flex:1;min-width:0}.store-name{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin-bottom:var(--spacing-xs)}.store-bar-container{height:4px;background:var(--color-surface-container-highest);border-radius:2px;overflow:hidden}.store-bar{height:100%;background:var(--color-primary);transition:width .3s ease}.store-stats{text-align:right;min-width:100px}.store-amount{font-size:.9375rem;font-weight:var(--font-weight-bold);color:var(--color-on-surface);display:block}.store-percentage{font-size:.75rem;color:var(--color-on-surface-variant)}.monthly-breakdown-section{margin-top:var(--spacing-lg)}.monthly-breakdown-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.month-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-sm);font-size:.875rem}.month-label{font-weight:var(--font-weight-medium);color:var(--color-on-surface);flex:1}.month-amount{font-weight:var(--font-weight-bold);color:var(--color-on-surface);margin:0 var(--spacing-md)}.month-count{color:var(--color-on-surface-variant);font-size:.8125rem}.pagination-container{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-surface-container-low);border-radius:var(--radius-md)}.pagination-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.pagination-text{font-size:.875rem;color:var(--color-on-surface-variant);font-weight:var(--font-weight-medium)}.page-size-selector{display:flex;align-items:center;gap:var(--spacing-sm)}.page-size-label{font-size:.875rem;color:var(--color-on-surface-variant)}.page-size-select{padding:4px 8px;background:var(--color-surface);color:var(--color-on-surface);border:1px solid var(--color-outline);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-family);cursor:pointer}.pagination-actions{display:flex;gap:var(--spacing-md);justify-content:center;align-items:center}.load-more-button,.show-all-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.9375rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;border:none}.load-more-button{background:var(--color-primary);color:var(--color-on-primary)}.load-more-button:hover{background:var(--color-primary-dark, var(--color-primary));box-shadow:var(--elevation-2)}.show-all-button{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.show-all-button:hover{background:var(--color-primary);color:var(--color-on-primary)}.pagination-warning{font-size:.8125rem;color:var(--color-error);margin:0;font-style:italic}@media(max-width:768px){.filter-bar-controls{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1.5rem}.pagination-info{flex-direction:column;gap:var(--spacing-sm);align-items:flex-start}.pagination-actions{flex-direction:column;width:100%}.load-more-button,.show-all-button{width:100%}.store-stats{min-width:80px}.store-amount{font-size:.875rem}}@media(max-width:480px){.filter-bar,.summary-panel{padding:var(--spacing-md)}.stat-cards{gap:var(--spacing-sm)}.stat-value{font-size:1.25rem}.stat-label{font-size:.8125rem}.filter-bar-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.reset-filters-button{width:100%}}.filter-select-compact{padding:6px 12px;background:var(--color-surface);color:var(--color-on-surface);border:1px solid var(--color-outline);border-radius:var(--radius-md);font-size:.875rem;font-family:var(--font-family);cursor:pointer;transition:all .2s ease;min-width:140px}.filter-select-compact:hover{border-color:var(--color-primary)}.filter-select-compact:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #6200ee1a}.filter-summary-compact{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);padding:6px 12px;background:var(--color-surface-container-low);border-radius:var(--radius-md);white-space:nowrap}@media(max-width:768px){.bulk-actions-bar-compact{flex-direction:column;gap:var(--spacing-sm)}.bulk-actions-left,.bulk-actions-right{width:100%;justify-content:flex-start;flex-wrap:wrap}.filter-select-compact{flex:1;min-width:120px}.filter-summary-compact{flex-basis:100%;text-align:center}}@media(max-width:480px){.filter-select-compact{font-size:.8125rem;padding:4px 8px;min-width:100px}.filter-summary-compact{font-size:.8125rem;padding:4px 8px}}.bulk-select-button{padding:6px 12px;font-size:.875rem;font-weight:500;border:1px solid var(--color-outline);background:var(--color-surface);color:var(--color-on-surface);border-radius:var(--radius-md);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);white-space:nowrap}.bulk-select-button:hover{background:var(--color-surface-variant);border-color:var(--color-primary)}.bulk-select-button.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.bulk-actions-selected{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background:var(--color-primary-container);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);gap:var(--spacing-lg);box-shadow:var(--elevation-2)}.bulk-selected-info{display:flex;align-items:center;gap:var(--spacing-md);font-weight:600;font-size:.9375rem;color:var(--color-on-primary-container)}.bulk-selected-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.bulk-select-all-bar{display:flex;justify-content:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-surface-variant);border-radius:var(--radius-md)}.text-button{background:none;border:none;color:var(--color-primary);font-size:.875rem;font-weight:500;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:background var(--motion-duration-short) var(--motion-easing-standard)}.text-button:hover{background:#667eea14}.receipt-card.bulk-mode{position:relative}.receipt-card.selected{outline:3px solid var(--color-primary);outline-offset:-3px;background:var(--color-primary-container)}.receipt-table-row.selected{background:var(--color-primary-container)!important;font-weight:500}.receipt-table-row.bulk-mode:hover{background:var(--color-surface-variant)}.bulk-checkbox{position:absolute;top:8px;left:8px;z-index:10;background:var(--color-surface);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--elevation-2);cursor:pointer}.bulk-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}@media(max-width:768px){.bulk-actions-selected{flex-direction:column;align-items:stretch}.bulk-selected-info,.bulk-selected-actions{justify-content:center}.bulk-select-all-bar{flex-direction:column}}.extraction-badge{position:absolute;top:8px;right:8px;padding:4px 10px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;white-space:nowrap;box-shadow:var(--elevation-2);z-index:5;transition:transform var(--motion-duration-short) var(--motion-easing-standard)}.extraction-badge:hover{transform:scale(1.05)}.eligibility-ready{background:var(--color-primary);color:var(--color-on-primary);border:1px solid var(--color-primary)}.eligibility-extracted{background:var(--color-success-container);color:var(--color-on-success-container);border:1px solid var(--color-success)}.eligibility-needs-upload{background:var(--color-warning-container);color:var(--color-on-warning-container);border:1px solid var(--color-warning)}.eligibility-no-photos{background:var(--color-error-container);color:var(--color-on-error-container);border:1px solid var(--color-error)}.eligibility-processing{background:var(--color-info-container);color:var(--color-on-info-container);border:1px solid var(--color-info);animation:pulse 2s ease-in-out infinite}.eligibility-failed{background:var(--color-error);color:var(--color-on-error);border:1px solid var(--color-error);cursor:pointer}.eligibility-failed:hover{transform:scale(1.1);box-shadow:var(--elevation-3)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.receipt-card .sync-badge{top:8px;left:8px}.receipt-card .extraction-badge{top:8px;right:8px}.receipt-table-row .extraction-badge{position:static;display:inline-block;margin-left:8px}@media(max-width:768px){.extraction-badge{font-size:.6875rem;padding:3px 8px}}.inventory-tab{display:flex;flex-direction:column;gap:0;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.inventory-expiry-banner{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;font-size:.875rem;font-weight:var(--font-weight-medium);border-radius:0;-webkit-user-select:none;user-select:none}.inventory-expiry-banner.urgent{background:var(--color-error-container);color:var(--color-on-error-container)}.inventory-expiry-banner.soon{background:var(--color-warning-container);color:var(--color-on-warning-container)}.expiry-banner-icon{font-size:1.1rem}.expiry-banner-text{flex:1}.expiry-banner-action{font-size:.8rem;opacity:.75;text-decoration:underline}.inventory-header{position:sticky;top:0;z-index:10;background:var(--color-surface);border-bottom:1px solid var(--color-outline)}.inventory-search-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg)}.inventory-search-wrap{flex:1;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--spacing-md);font-size:.9rem;pointer-events:none}.inventory-search{width:100%;padding:var(--spacing-sm) var(--spacing-xl) var(--spacing-sm) calc(var(--spacing-md) * 2 + 1rem);border:1.5px solid var(--color-outline);border-radius:var(--radius-full, 999px);font-size:.9rem;background:var(--color-surface-variant);color:var(--color-on-surface);outline:none;transition:border-color var(--motion-duration-short)}.inventory-search:focus{border-color:var(--color-primary);background:var(--color-surface)}.search-clear{position:absolute;right:var(--spacing-sm);background:none;border:none;cursor:pointer;color:var(--color-on-surface-variant);padding:2px 4px;font-size:.8rem;border-radius:50%;line-height:1}.inventory-location-tabs{display:flex;gap:0;padding:0 var(--spacing-lg) 0;overflow-x:auto;scrollbar-width:none}.inventory-location-tabs::-webkit-scrollbar{display:none}.view-mode-segment{display:flex;border:1.5px solid var(--color-outline);border-radius:var(--radius-full, 999px);overflow:hidden;flex-shrink:0}.view-mode-btn{width:34px;height:34px;border:none;background:var(--color-surface-variant);color:var(--color-on-surface-variant);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--motion-duration-short),color var(--motion-duration-short)}.view-mode-btn.active{background:var(--color-primary);color:var(--color-on-primary)}.auto-sort-btn{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--color-outline);background:var(--color-surface-variant);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--motion-duration-short)}.auto-sort-btn:active{background:var(--color-primary-container);border-color:var(--color-primary)}.loc-tab{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-on-surface-variant);font-size:.85rem;font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--motion-duration-short)}.loc-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.inventory-sync-indicator{text-align:center;font-size:.75rem;color:var(--color-text-secondary, #888);padding:var(--spacing-xs, 4px) 0;letter-spacing:.03em}.inventory-review-banner{display:flex;align-items:stretch;gap:var(--spacing-xs, 4px);margin:var(--spacing-sm, 8px) var(--spacing-lg, 16px) 0;background:var(--color-surface-container-high, #2a2a30);border:1px solid var(--color-outline-variant, #444);border-radius:var(--radius-lg, 12px);overflow:hidden}.inventory-review-banner-main{flex:1;display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 12px);background:transparent;border:none;cursor:pointer;text-align:left;color:inherit}.inventory-review-banner-icon{font-size:1.2rem;flex-shrink:0}.inventory-review-banner-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.inventory-review-banner-text strong{font-size:.88rem;color:var(--color-on-surface)}.inventory-review-banner-sub{font-size:.72rem;color:var(--color-on-surface-variant)}.inventory-review-banner-cta{font-size:.82rem;font-weight:var(--font-weight-semibold, 600);color:var(--color-primary, #6db580);flex-shrink:0}.inventory-review-banner-dismiss{width:38px;background:transparent;border:none;border-left:1px solid var(--color-outline-variant, #444);color:var(--color-on-surface-variant);font-size:.9rem;cursor:pointer}.inventory-review-banner-dismiss:active{background:var(--color-surface-container-highest, #25252b)}.inventory-list{flex:1;padding:var(--spacing-md) var(--spacing-lg)}.inventory-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl) * 3;padding-top:60px;text-align:center;color:var(--color-on-surface-variant)}.empty-icon{font-size:2.5rem}.empty-hint{font-size:.85rem;opacity:.75}.empty-action{padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-full, 999px);font-size:.9rem;font-weight:var(--font-weight-medium);cursor:pointer;margin-top:var(--spacing-sm)}.inventory-category-group{margin-bottom:var(--spacing-lg)}.category-heading{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.8rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant);margin:0 0 var(--spacing-sm)}.category-count{margin-left:auto;background:var(--color-surface-container-high);border-radius:var(--radius-full, 999px);padding:1px 7px;font-size:.75rem}.inventory-items-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.inventory-item-card{background:var(--color-surface-container-lowest);border-radius:var(--radius-lg, 12px);overflow:hidden;cursor:pointer;box-shadow:var(--elevation-1);transition:box-shadow var(--motion-duration-short);border-left:3px solid transparent}.inventory-item-card:active{box-shadow:var(--elevation-2)}.inventory-item-card.expiry-expired,.inventory-item-card.expiry-urgent{border-left-color:var(--color-error)}.inventory-item-card.expiry-soon{border-left-color:var(--color-warning)}.item-card-body{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:10px var(--spacing-md)}.item-card-left{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.item-card-name{display:block;font-weight:var(--font-weight-medium);font-size:.875rem;color:var(--color-on-surface)}.item-card-provenance{display:flex;align-items:baseline;gap:3px}.provenance-icon{font-size:.68rem;flex-shrink:0;line-height:1.4}.provenance-text{font-size:.72rem;color:var(--color-on-surface-variant);opacity:.75;font-style:italic;word-break:break-word}.item-card-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.item-qty-badge{font-size:.72rem;color:var(--color-on-surface-variant);white-space:nowrap;background:var(--color-outline-variant);padding:2px 8px;border-radius:var(--radius-full, 999px)}.item-qty-badge strong{font-weight:700;color:var(--color-on-surface)}.item-flag-chip{font-size:.7rem;font-weight:var(--font-weight-medium);padding:2px 7px;border-radius:var(--radius-full, 999px);white-space:nowrap;background:var(--color-warning-container);color:var(--color-on-warning-container)}.inventory-item-card.flagged{border-left:3px solid var(--color-warning, #d8a23a)}.inventory-item-card.flagged-expired{border-left-color:var(--color-error, #e2554f)}.item-card-compact{align-items:center;flex-wrap:nowrap;gap:var(--spacing-sm)}.item-card-compact-name{flex:1;min-width:0;display:flex;align-items:baseline;gap:5px}.item-card-compact-name .item-card-name{flex:0 1 auto;min-width:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-card-compact-name .item-card-name:only-child{max-width:100%}.item-card-compact-recipe{flex:1;min-width:0;font-size:.7rem;color:var(--color-on-surface-variant);opacity:.7;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-card-compact-chips{display:flex;align-items:center;gap:4px;flex-shrink:0}.item-card-provenance-section{padding:6px var(--spacing-md) 4px;border-top:1px solid var(--color-outline-variant);display:flex;flex-direction:column;gap:2px}.expiry-chip{font-size:.7rem;font-weight:var(--font-weight-medium);padding:2px 7px;border-radius:var(--radius-full, 999px);white-space:nowrap}.expiry-chip.expired,.expiry-chip.urgent{background:var(--color-error-container);color:var(--color-on-error-container)}.expiry-chip.soon{background:var(--color-warning-container);color:var(--color-on-warning-container)}.expiry-chip.ok{background:var(--color-success-container);color:var(--color-on-success-container)}.expiry-chip.none{background:var(--color-surface-container);color:var(--color-on-surface-variant)}.item-cost-chip{font-size:.7rem;font-weight:var(--font-weight-medium);padding:2px 7px;border-radius:var(--radius-full, 999px);background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);white-space:nowrap}.item-card-actions{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-outline-variant);background:var(--color-surface-container-lowest)}.item-action-btn{flex:1;padding:var(--spacing-sm) 0;border:1.5px solid var(--color-outline);border-radius:var(--radius-md, 8px);background:var(--color-surface);font-size:.9rem;cursor:pointer;transition:background var(--motion-duration-short)}.item-action-btn:active{background:var(--color-surface-container-high)}.delete-btn{border-color:var(--color-error);color:var(--color-error)}.qty-btn{font-size:1.1rem;font-weight:700}.inventory-action-bar{position:fixed;bottom:calc(70px + env(safe-area-inset-bottom));right:var(--spacing-lg);display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-sm);z-index:20}.inventory-fab{width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);border:none;font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:var(--elevation-3);transition:transform var(--motion-duration-short),box-shadow var(--motion-duration-short)}.inventory-fab:active{transform:scale(.95);box-shadow:var(--elevation-1)}.recipe-suggest-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-surface);border:1.5px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-full, 999px);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;box-shadow:var(--elevation-2);white-space:nowrap;transition:background var(--motion-duration-short)}.recipe-suggest-btn:active{background:var(--color-primary-container)}.recipe-suggest-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-suggest-btn.locked{border-color:var(--color-outline-variant);color:var(--color-on-surface-variant)}.modal-overlay{position:fixed;inset:0;background:var(--color-scrim);z-index:100;display:flex;align-items:flex-end}.modal-sheet{width:100%;max-height:92vh;background:var(--color-surface);border-radius:20px 20px 0 0;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom);animation:slideUp var(--motion-duration-medium) var(--motion-easing-decelerate)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-handle{width:36px;height:4px;background:var(--color-outline-variant);border-radius:2px;margin:12px auto 4px}.modal-title{font-size:1.1rem;font-weight:var(--font-weight-semibold);margin:0;padding:var(--spacing-md) var(--spacing-xl) 0}.modal-close-btn{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--color-on-surface-variant);padding:var(--spacing-sm)}.modal-header{padding:var(--spacing-sm) var(--spacing-xl) 0}.add-item-form{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-xl) var(--spacing-xl)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.flex-1{flex:1}.form-checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;color:var(--color-on-surface-variant);cursor:pointer;line-height:1.35}.form-checkbox-row input[type=checkbox]{margin-top:2px;flex-shrink:0;width:18px;height:18px;accent-color:var(--color-primary, #667eea);cursor:pointer}.form-row{display:flex;gap:var(--spacing-md)}.form-label{font-size:.78rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface-variant);letter-spacing:.02em}.form-input{padding:12px var(--spacing-md);border:1.5px solid var(--color-outline);border-radius:var(--radius-lg, 8px);font-size:.95rem;background:var(--color-surface-variant);color:var(--color-on-surface);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--motion-duration-short);font-family:inherit}.form-input--name{font-size:1.05rem;font-weight:var(--font-weight-medium)}.form-input:focus{border-color:var(--color-primary)}.form-input::placeholder{color:var(--color-on-surface-variant)}.form-select{appearance:auto}.form-textarea{resize:none;line-height:1.5}:root[data-theme=dark] .form-input{background:var(--color-surface-variant);color:var(--color-on-surface);color-scheme:dark}:root[data-theme=dark] .form-input::placeholder{color:var(--color-on-surface-variant)}.chip-scroll{display:flex;gap:var(--spacing-xs);overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip-scroll::-webkit-scrollbar{display:none}.chip{flex-shrink:0;padding:6px var(--spacing-md);border-radius:var(--radius-full, 999px);border:1.5px solid var(--color-outline);background:var(--color-surface-variant);font-size:.82rem;cursor:pointer;color:var(--color-on-surface);white-space:nowrap;transition:all var(--motion-duration-short)}.chip.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:var(--font-weight-medium)}.location-btn-group{display:flex;gap:var(--spacing-sm)}.location-btn{flex:1;padding:10px var(--spacing-sm);border-radius:var(--radius-full, 999px);border:1.5px solid var(--color-outline);background:var(--color-surface-variant);font-size:.85rem;font-weight:var(--font-weight-medium);cursor:pointer;color:var(--color-on-surface);text-align:center;transition:all var(--motion-duration-short);white-space:nowrap}.location-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.add-collision{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 12px);background:var(--color-surface-container-high, #2a2a30);border:1px solid var(--color-outline-variant, #444);border-radius:var(--radius-lg, 12px)}.add-collision-msg{margin:0;font-size:.85rem;color:var(--color-on-surface-variant)}.add-collision-choices{display:flex;gap:var(--spacing-xs, 4px)}.add-collision-btn{flex:1;padding:8px 4px;border-radius:var(--radius-md, 8px);border:1px solid var(--color-outline-variant, #444);background:transparent;color:var(--color-on-surface);font-size:.82rem;font-weight:var(--font-weight-medium);cursor:pointer}.add-collision-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.modal-actions{display:flex;gap:var(--spacing-md);padding-top:var(--spacing-sm)}.modal-btn-cancel,.modal-btn-save{flex:1;padding:14px;border-radius:var(--radius-full, 999px);border:none;font-size:.95rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-duration-short)}.modal-btn-cancel{background:var(--color-surface-container-high);color:var(--color-on-surface)}.modal-btn-save{background:var(--color-primary);color:var(--color-on-primary)}.modal-btn-save:disabled{opacity:.4;cursor:not-allowed}.ai-gate-sheet{padding-bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom))}.ai-gate-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-xl) var(--spacing-xl);text-align:center}.ai-gate-icon{font-size:2.5rem}.ai-gate-title{font-size:1.15rem;font-weight:var(--font-weight-semibold);margin:0}.ai-gate-body{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.55;margin:0}.ai-gate-features{width:100%;display:flex;flex-direction:column;gap:var(--spacing-sm);background:var(--color-surface-variant);border-radius:var(--radius-lg, 12px);padding:var(--spacing-md);text-align:left}.ai-gate-feature{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.875rem;color:var(--color-on-surface)}.ai-gate-actions{width:100%;display:flex;flex-direction:column;gap:var(--spacing-sm)}.ai-gate-plan-label{font-size:.8rem;color:var(--color-on-surface-variant);margin:0;text-align:center}.ai-gate-signin-hint{font-size:.85rem;color:var(--color-on-surface-variant);margin:0;text-align:center}.ai-gate-upgrade-btn{width:100%;padding:var(--spacing-md)}.recipe-panel{padding-bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom))}.recipe-panel-header{display:flex;align-items:center;justify-content:space-between;padding-right:var(--spacing-lg)}.recipe-panel-subtitle{font-size:.82rem;color:var(--color-on-surface-variant);margin:0 0 var(--spacing-md);padding:0 var(--spacing-xl)}.recipe-loading{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl) * 2;color:var(--color-on-surface-variant)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-outline);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.recipe-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg);color:var(--color-on-surface-variant);font-size:.9rem}.recipe-list{display:flex;flex-direction:column;gap:var(--spacing-md);padding:0 var(--spacing-lg) var(--spacing-xl)}.recipe-card{background:var(--color-surface-variant);border-radius:var(--radius-lg, 12px);padding:var(--spacing-md);cursor:pointer;transition:background var(--motion-duration-short);border:1.5px solid transparent}.recipe-card.expanded{background:var(--color-surface);border-color:var(--color-outline)}.recipe-card-title-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:4px}.recipe-card-name{font-weight:var(--font-weight-medium);font-size:.95rem}.expiry-badge{font-size:.85rem}.recipe-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);font-size:.78rem;color:var(--color-on-surface-variant)}.recipe-match{position:relative;display:inline-flex;align-items:center;background:var(--color-surface-container-high);border-radius:var(--radius-full, 999px);overflow:hidden;padding:2px 8px}.match-bar{position:absolute;left:0;top:0;bottom:0;background:var(--color-success-container);border-radius:inherit;transition:width .4s}.match-label{position:relative;z-index:1;font-weight:var(--font-weight-medium);font-size:.75rem}.recipe-card-detail{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-outline)}.recipe-description{font-size:.875rem;color:var(--color-on-surface-variant);margin:0 0 var(--spacing-md);line-height:1.5}.recipe-expiry-notice{background:var(--color-warning-container);color:var(--color-on-warning-container);border-radius:var(--radius-md, 8px);padding:var(--spacing-sm) var(--spacing-md);font-size:.82rem;margin-bottom:var(--spacing-md)}.recipe-ingredients-section{margin-bottom:var(--spacing-md)}.recipe-ingredients-section h4{font-size:.78rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-on-surface-variant);margin:0 0 var(--spacing-xs, 4px)}.ingredient-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, 4px);margin-bottom:var(--spacing-sm)}.ingredient-chip{padding:2px 8px;border-radius:var(--radius-full, 999px);font-size:.78rem}.ingredient-chip.have{background:var(--color-success-container);color:var(--color-on-success-container)}.ingredient-chip.need{background:var(--color-surface-container-high);color:var(--color-on-surface);border:1px dashed var(--color-outline)}.ingredient-chip em{font-style:normal;opacity:.7;margin-left:4px}.add-to-shopping-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary-container);color:var(--color-on-primary-container);border:none;border-radius:var(--radius-md, 8px);font-size:.85rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-duration-short)}.add-to-shopping-btn:active{background:var(--color-primary);color:var(--color-on-primary)}.recipe-error{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.recipe-error-icon{font-size:2rem}.recipe-error-title{font-size:1rem;font-weight:var(--font-weight-medium);margin:0}.recipe-error-body{font-size:.85rem;color:var(--color-on-surface-variant);margin:0;line-height:1.5}.recipe-retry-btn{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-surface-container-high);color:var(--color-on-surface);border:1.5px solid var(--color-outline);border-radius:var(--radius-full, 999px);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer}.inventory-archive{border-top:1px solid var(--color-outline);margin-top:4px}.inventory-archive-header{display:flex;align-items:center;gap:8px;padding:10px 16px;width:100%;background:none;border:none;cursor:pointer;text-align:left;color:var(--color-on-surface-variant)}.inventory-archive-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex:1}.inventory-archive-chevron{font-size:12px;transition:transform .2s ease;display:inline-block}.inventory-archive-chevron.open{transform:rotate(90deg)}.inventory-archive-list{padding:0 0 8px}.inventory-archive-item{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--color-outline-variant, #e8e3dc)}.inventory-archive-name{flex:1;font-size:13px;color:var(--color-on-surface-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.inventory-archive-category{font-size:11px;color:var(--color-on-surface-variant);flex-shrink:0;white-space:nowrap}.inventory-archive-restock-btn{flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:500;background:var(--color-surface-container-high, #f0ece7);color:var(--color-on-surface);border:1px solid var(--color-outline);border-radius:6px;cursor:pointer;white-space:nowrap}.inventory-archive-restock-btn:hover{background:var(--color-surface-container-highest, #e8e3dc)}.inventory-archive-delete-btn{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;opacity:.5}.inventory-archive-delete-btn:hover{opacity:1}.tab-loading{display:flex;align-items:center;justify-content:center;min-height:240px;width:100%}.tab-loading-spinner{width:28px;height:28px;border:3px solid var(--color-surface-container, rgba(0, 0, 0, .1));border-top-color:var(--color-primary, #4caf50);border-radius:50%;animation:tab-loading-spin .8s linear infinite}@keyframes tab-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.tab-loading-spinner{animation-duration:1.6s}}.site-footer{background:var(--color-surface-container);border-top:1px solid var(--color-outline);padding:2rem 1rem;margin-top:auto;transition:background-color .2s ease,border-color .2s ease}.footer-content{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.footer-brand{display:flex;align-items:center;gap:.75rem}.footer-logo{font-size:1.25rem;font-weight:600;color:var(--color-on-surface)}.footer-location{font-size:.875rem;color:var(--color-on-surface-variant)}.footer-links{display:flex;flex-wrap:wrap;gap:2rem}.footer-links-group{display:flex;flex-direction:column;gap:.5rem;min-width:140px}.footer-links-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-on-surface-variant);margin-bottom:.25rem}.footer-links-group a{font-size:.875rem;color:var(--color-on-surface);text-decoration:none;transition:color .15s ease}.footer-links-group a:hover{color:var(--color-primary);text-decoration:underline}.footer-payment{display:flex;align-items:center}.stripe-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:6px;transition:background-color .2s ease,border-color .2s ease}.stripe-logo{color:#635bff;flex-shrink:0}.stripe-text{font-size:.75rem;color:var(--color-on-surface-variant)}.footer-contact a{font-size:.875rem;color:var(--color-primary);text-decoration:none}.footer-contact a:hover{text-decoration:underline}.footer-copyright{padding-top:1rem;border-top:1px solid var(--color-outline)}.footer-copyright p{font-size:.75rem;color:var(--color-on-surface-variant);margin:0}@media(min-width:640px){.footer-content{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto auto;gap:1.5rem 2rem}.footer-brand{grid-column:1;grid-row:1}.footer-links{grid-column:2;grid-row:1;justify-content:flex-start}.footer-payment{grid-column:3;grid-row:1}.footer-contact{grid-column:1 / -1;grid-row:2}.footer-copyright{grid-column:1 / -1;grid-row:3}}.consent-banner{position:fixed;bottom:24px;left:50%;transform:translate(-50%);max-width:600px;width:calc(100% - 48px);background:linear-gradient(135deg,var(--md-sys-color-surface-container-highest) 0%,var(--md-sys-color-surface-container-high) 100%);border-radius:20px;border:1px solid var(--md-sys-color-outline-variant);box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;padding:24px;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1)}@keyframes slideUpFade{0%{transform:translate(-50%) translateY(40px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.consent-banner-content{max-width:100%;margin:0;display:flex;flex-direction:column;gap:20px}.consent-banner-text h3{font-size:20px;font-weight:700;margin:0 0 8px;color:var(--md-sys-color-on-surface);letter-spacing:-.02em}.consent-banner-text p{font-size:14px;line-height:1.6;margin:0;color:var(--md-sys-color-on-surface-variant);opacity:.9}.consent-banner-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.consent-btn{padding:12px 28px;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:none;font-family:inherit;min-height:48px;position:relative;overflow:hidden;letter-spacing:.01em}.consent-btn:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.15) 0%,transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none}.consent-btn:hover:before{opacity:1}.consent-btn:active{transform:scale(.98)}.consent-btn-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);box-shadow:0 2px 8px #00000026}.consent-btn-primary:hover{background:var(--md-sys-color-primary);filter:brightness(1.08);box-shadow:0 4px 16px #0003;transform:translateY(-1px)}.consent-btn-secondary{background:transparent;color:var(--md-sys-color-on-surface);border:1.5px solid var(--md-sys-color-outline-variant)}.consent-btn-secondary:hover{background:var(--md-sys-color-surface-container);border-color:var(--md-sys-color-outline);box-shadow:0 2px 8px #0000001a}.consent-banner-footer{display:flex;justify-content:center;padding-top:8px;margin-top:-4px}.consent-link{color:var(--md-sys-color-primary);text-decoration:none;font-size:13px;font-weight:600;position:relative;transition:color .2s ease}.consent-link:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:var(--md-sys-color-primary);transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.4,0,.2,1)}.consent-link:hover:after{transform:scaleX(1);transform-origin:left}.consent-link:hover{filter:brightness(1.1)}.consent-details{margin-top:16px;padding:20px;background:#00000005;border-radius:16px;border:1px solid var(--md-sys-color-outline-variant);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.consent-option{padding:16px 0;border-bottom:1px solid rgba(0,0,0,.05);transition:background .2s ease}.consent-option:last-child{border-bottom:none;padding-bottom:0}.consent-option:hover{background:#00000005;margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:8px}.consent-option-label{display:flex;gap:16px;cursor:pointer;align-items:flex-start;-webkit-user-select:none;user-select:none}.consent-option-label input[type=checkbox]{margin-top:2px;width:22px;height:22px;cursor:pointer;accent-color:var(--md-sys-color-primary);transition:transform .2s ease}.consent-option-label input[type=checkbox]:hover{transform:scale(1.1)}.consent-option-label strong{display:block;font-size:15px;font-weight:700;color:var(--md-sys-color-on-surface);margin-bottom:6px;letter-spacing:-.01em}.consent-option-label p{font-size:13px;color:var(--md-sys-color-on-surface-variant);margin:0;line-height:1.5;opacity:.85}@media(max-width:768px){.consent-banner{bottom:16px;width:calc(100% - 32px);padding:20px;border-radius:16px}.consent-banner-text h3{font-size:18px}.consent-banner-text p{font-size:13px}.consent-banner-actions{flex-direction:column;gap:8px}.consent-btn{width:100%;justify-content:center}.consent-details{padding:16px}.consent-option-label{gap:12px}}@media(max-width:480px){.consent-banner{bottom:12px;width:calc(100% - 24px);padding:16px}.consent-banner-text h3{font-size:17px}}.public-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-surface);transition:background-color .2s ease}.public-header{position:sticky;top:0;z-index:100;background:var(--color-surface);border-bottom:1px solid var(--color-outline);transition:background-color .2s ease,border-color .2s ease}.header-content{max-width:1200px;margin:0 auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.header-brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--color-on-surface)}.header-logo-icon{font-size:1.5rem}.header-logo-text{font-size:1.25rem;font-weight:600}.header-nav{display:flex;align-items:center;gap:.5rem}.header-nav a{padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--color-on-surface-variant);text-decoration:none;border-radius:6px;transition:color .15s ease,background .15s ease}.header-nav a:hover{color:var(--color-on-surface);background:var(--color-surface-container)}.header-nav a.active{color:var(--color-primary)}.theme-toggle{padding:.5rem;font-size:1.125rem;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s ease;line-height:1}.theme-toggle:hover{background:var(--color-surface-container)}.header-cta{background:var(--color-primary)!important;color:var(--color-on-primary)!important}.header-cta:hover{filter:brightness(.9)}.public-main{flex:1}@media(max-width:480px){.header-content{padding:.5rem}.header-nav a:not(.header-cta){display:none}.theme-toggle{display:flex}.header-logo-text{font-size:1.125rem}}.landing{--section-padding: 5rem 1.5rem;--max-w: 1100px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:10px;text-decoration:none;transition:all .15s ease;border:none;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #22c55e59}.btn-primary:hover{filter:brightness(.92);box-shadow:0 4px 14px #22c55e66}.btn-secondary{background:var(--color-surface-container);color:var(--color-on-surface);border:1px solid var(--color-outline)}.btn-white{background:#fff;color:#16a34a;box-shadow:0 2px 12px #00000026}.btn-white:hover{background:#f0fdf4}.section-container{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}.section-title{font-size:2.125rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.5rem;text-align:center;line-height:1.2}.section-title.left{text-align:left}.section-subtitle{font-size:1.0625rem;color:var(--color-on-surface-variant);text-align:center;margin-bottom:2.5rem;line-height:1.6;max-width:640px;margin-left:auto;margin-right:auto}.section-subtitle.left{text-align:left;margin-left:0;margin-right:0}.hero{padding:5rem 1.5rem 4rem;background:linear-gradient(160deg,var(--color-surface) 55%,#f0fdf4 100%);transition:background .2s ease}:root[data-theme=dark] .hero{background:linear-gradient(160deg,var(--color-surface) 55%,#052e16 100%)}.hero-inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.hero-eyebrow{display:inline-block;font-size:.8125rem;font-weight:600;color:#16a34a;background:#dcfce7;padding:.3rem .85rem;border-radius:20px;margin-bottom:1.25rem;letter-spacing:.01em}:root[data-theme=dark] .hero-eyebrow{background:#14532d;color:#86efac}.hero-title{font-size:3.25rem;font-weight:800;color:var(--color-on-surface);line-height:1.15;margin-bottom:1.125rem;letter-spacing:-.02em}.hero-subtitle{font-size:1.125rem;color:var(--color-on-surface-variant);line-height:1.7;margin-bottom:2rem;max-width:480px}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.125rem}.hero-note{font-size:.8125rem;color:var(--color-on-surface-variant);margin:0}.hero-visual{display:flex;justify-content:center}.hero-mockup{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden}:root[data-theme=dark] .hero-mockup{box-shadow:0 8px 32px #0006}.mockup-bar{display:flex;gap:6px;padding:12px 16px;background:var(--color-surface-container);border-bottom:1px solid var(--color-outline)}.mockup-dot{width:10px;height:10px;border-radius:50%;background:var(--color-outline-variant)}.mockup-content{padding:1.25rem;display:flex;flex-direction:column;gap:.625rem}.mockup-list-item{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--color-on-surface)}.mockup-check{font-size:.875rem;color:var(--color-outline-variant);width:18px;flex-shrink:0}.mockup-check.checked{color:#22c55e;font-weight:700}.mockup-text{flex:1}.mockup-price{font-size:.8125rem;color:var(--color-on-surface-variant);font-feature-settings:"tnum"}.mockup-divider{height:1px;background:var(--color-outline);margin:.25rem 0}.mockup-receipt-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-on-surface-variant)}.mockup-label{flex:1}.mockup-total{font-weight:700;color:var(--color-on-surface);font-feature-settings:"tnum"}.mockup-bar-chart{display:flex;align-items:flex-end;gap:6px;height:50px;margin-top:.5rem}.mockup-bar-item{flex:1;background:var(--color-outline-variant);border-radius:4px 4px 0 0}.mockup-bar-item.active{background:#22c55e}.trust-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;padding:.875rem 1.5rem;background:var(--color-surface-container);border-top:1px solid var(--color-outline);border-bottom:1px solid var(--color-outline);transition:background-color .2s ease}.trust-bar-item{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:500;color:var(--color-on-surface-variant);padding:.25rem 1.25rem}.trust-bar-sep{width:1px;height:16px;background:var(--color-outline)}.features{padding:var(--section-padding);background:var(--color-surface);transition:background-color .2s ease}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem}.feature-card{padding:1.75rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:14px;transition:box-shadow .15s ease,border-color .15s ease,background-color .2s ease}.feature-card:hover{box-shadow:0 6px 20px #00000014;border-color:var(--color-primary)}:root[data-theme=dark] .feature-card{background:var(--color-surface-container)}:root[data-theme=dark] .feature-card:hover{box-shadow:0 6px 20px #0000004d}.feature-icon-wrap{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f0fdf4;border-radius:12px;margin-bottom:1.125rem}:root[data-theme=dark] .feature-icon-wrap{background:#052e16}.feature-icon{font-size:1.625rem}.feature-card h3{font-size:1.0625rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.5rem}.feature-card p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.6;margin:0}.offline-first{padding:var(--section-padding);background:var(--color-surface-container);transition:background-color .2s ease}.offline-first-inner{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}.offline-text .section-title{margin-bottom:.75rem}.offline-list{list-style:none;padding:0;margin:1.75rem 0 0;display:flex;flex-direction:column;gap:1.25rem}.offline-list li{display:flex;align-items:flex-start;gap:1rem;padding:1.125rem 1.25rem;background:var(--color-surface);border-radius:12px;transition:background-color .2s ease}:root[data-theme=dark] .offline-list li{background:var(--color-surface-variant)}.offline-icon{font-size:1.625rem;flex-shrink:0;line-height:1.3}.offline-list strong{display:block;font-size:.9375rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.2rem}.offline-list p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.5;margin:0}.offline-visual{display:flex;justify-content:center}.offline-card{width:100%;max-width:320px;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:16px;padding:1.5rem;box-shadow:0 4px 20px #00000012}:root[data-theme=dark] .offline-card{background:var(--color-surface-container);box-shadow:0 4px 20px #0000004d}.offline-status{margin-bottom:1.25rem}.offline-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.3rem .75rem;background:#fef9c3;color:#713f12;border-radius:20px}:root[data-theme=dark] .offline-badge{background:#422006;color:#fef08a}.offline-items{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem}.oi-row{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--color-on-surface);padding:.5rem .75rem;background:var(--color-surface-container);border-radius:8px}:root[data-theme=dark] .oi-row{background:var(--color-surface)}.offline-note{font-size:.75rem;color:var(--color-on-surface-variant);margin:0;text-align:center}.ai-enhancement{padding:var(--section-padding);background:#f0fdf4;transition:background-color .2s ease}:root[data-theme=dark] .ai-enhancement{background:#052e16}.ai-inner{text-align:center}.ai-badge{display:inline-block;padding:.3rem .875rem;background:#bbf7d0;color:#14532d;font-size:.75rem;font-weight:700;border-radius:20px;margin-bottom:1rem;letter-spacing:.04em;text-transform:uppercase}:root[data-theme=dark] .ai-badge{background:#14532d;color:#86efac}.ai-features{display:flex;flex-direction:column;gap:1rem;margin:2rem auto;text-align:left;max-width:600px}.ai-feature{display:flex;align-items:flex-start;gap:1rem;padding:1.125rem 1.25rem;background:var(--color-surface);border-radius:12px;box-shadow:0 1px 4px #0000000f;transition:background-color .2s ease}:root[data-theme=dark] .ai-feature{background:#14532d}.ai-feature-icon{font-size:1.625rem;flex-shrink:0;line-height:1.3}.ai-feature strong{display:block;font-size:.9375rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.2rem}.ai-feature p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.5;margin:0}:root[data-theme=dark] .ai-feature strong,:root[data-theme=dark] .ai-feature p{color:#d1fae5}.how-it-works{padding:var(--section-padding);background:var(--color-surface);transition:background-color .2s ease}.steps{display:flex;align-items:flex-start;justify-content:center;gap:.75rem;margin-top:2rem;flex-wrap:wrap;list-style:none;padding:0}.step{flex:1;min-width:180px;max-width:220px;text-align:center;padding:2rem 1rem 1.5rem;background:var(--color-surface-container);border:1px solid var(--color-outline);border-radius:16px;transition:background-color .2s ease,border-color .2s ease}.step-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--color-primary);color:#fff;font-size:.9375rem;font-weight:700;border-radius:50%;margin:0 auto 1rem}.step-icon{font-size:2.5rem;margin-bottom:.75rem}.step h3{font-size:1.0625rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.375rem}.step p{font-size:.875rem;color:var(--color-on-surface-variant);margin:0;line-height:1.5}.step-arrow{font-size:1.5rem;color:var(--color-outline-variant);padding-top:4.5rem;list-style:none}.pricing-preview{padding:var(--section-padding);background:var(--color-surface-container);text-align:center;transition:background-color .2s ease}.pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin:2.5rem 0 2rem;text-align:left}.pricing-card{position:relative;padding:1.75rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:16px;transition:background-color .2s ease,border-color .2s ease}.pricing-card.popular{border-color:var(--color-primary);box-shadow:0 4px 20px #22c55e33}:root[data-theme=dark] .pricing-card.popular{box-shadow:0 4px 20px #22c55e40}.popular-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);padding:.25rem .875rem;background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:700;border-radius:20px;white-space:nowrap}.pricing-name{font-size:1.25rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.25rem}.pricing-description{font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:1rem;line-height:1.5}.pricing-price{margin-bottom:1.125rem}.price-amount{font-size:2.25rem;font-weight:800;color:var(--color-on-surface);letter-spacing:-.02em}.price-period{font-size:.875rem;color:var(--color-on-surface-variant);margin-left:.125rem}.pricing-features{list-style:none;padding:0;margin:0}.pricing-features li{font-size:.875rem;color:var(--color-on-surface);padding:.4rem 0 .4rem 1.625rem;position:relative;line-height:1.4}.pricing-features li:before{content:"✓";position:absolute;left:0;color:var(--color-primary);font-weight:700}.final-cta{background:linear-gradient(135deg,#16a34a,#15803d);padding:var(--section-padding)}.final-cta-inner{max-width:600px;margin:0 auto;text-align:center}.final-cta h2{font-size:2rem;font-weight:800;color:#fff;margin-bottom:.625rem;letter-spacing:-.01em}.final-cta p{font-size:1.0625rem;color:#bbf7d0;margin-bottom:2rem;line-height:1.6}.final-cta-note{font-size:.8125rem!important;color:#86efac!important;margin-top:1rem!important;margin-bottom:0!important}@media(max-width:768px){.hero-inner{grid-template-columns:1fr;text-align:center}.hero-visual{display:none}.hero-cta{justify-content:center}.hero-subtitle{max-width:100%}.hero-title{font-size:2.25rem}.section-title{font-size:1.625rem}.section-title.left{text-align:center}.section-subtitle.left{text-align:center;margin-left:auto;margin-right:auto}.offline-first-inner{grid-template-columns:1fr}.offline-visual{display:none}.offline-list .section-title{text-align:center}.step-arrow{display:none}.steps{flex-direction:column;align-items:center}.step{max-width:100%;width:100%}.trust-bar-sep{display:none}.trust-bar-item{padding:.375rem .75rem}.final-cta h2{font-size:1.625rem}}@media(min-width:1024px){.hero-title{font-size:3.75rem}}.pricing-page{padding:2rem 1rem 4rem;max-width:1100px;margin:0 auto}.pricing-header{text-align:center;margin-bottom:2rem}.pricing-header h1{font-size:2.25rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.5rem}.pricing-header p{font-size:1.125rem;color:var(--color-on-surface-variant)}.billing-toggle-section{display:flex;justify-content:center;margin-bottom:2rem}.billing-toggle{display:inline-flex;background:var(--color-surface-container);border-radius:8px;padding:4px;transition:background-color .2s ease}.billing-toggle button{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--color-on-surface-variant);background:transparent;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .15s ease}.billing-toggle button.active{background:var(--color-surface);color:var(--color-on-surface);box-shadow:0 1px 3px #0000001a}:root[data-theme=dark] .billing-toggle button.active{box-shadow:0 1px 3px #0000004d}.save-badge{font-size:.75rem;padding:.125rem .5rem;background:var(--color-success);color:#fff;border-radius:20px}.pricing-cards-section{margin-bottom:3rem}.pricing-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.pricing-card{position:relative;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:12px;display:flex;flex-direction:column;transition:background-color .2s ease,border-color .2s ease}:root[data-theme=dark] .pricing-card{background:var(--color-surface-container)}.pricing-card.popular{border-color:var(--color-primary);box-shadow:0 4px 12px #667eea33}:root[data-theme=dark] .pricing-card.popular{box-shadow:0 4px 12px #818cf84d}.popular-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);padding:.25rem .75rem;background:var(--color-primary);color:var(--color-on-primary);font-size:.75rem;font-weight:600;border-radius:20px;white-space:nowrap}.pricing-card-header h2{font-size:1.5rem;font-weight:600;color:var(--color-on-surface);margin-bottom:.25rem}.pricing-card-header .description{font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:1rem}.pricing-card-price{margin-bottom:1.5rem}.pricing-card-price .amount{font-size:2.5rem;font-weight:700;color:var(--color-on-surface)}.pricing-card-price .period{font-size:1rem;color:var(--color-on-surface-variant)}.pricing-card-price .savings{display:block;font-size:.875rem;color:var(--color-success);font-weight:500;margin-top:.25rem}.pricing-card-features{list-style:none;padding:0;margin:0 0 1.5rem;flex:1}.pricing-card-features li{font-size:.875rem;color:var(--color-on-surface);padding:.5rem 0 .5rem 1.5rem;position:relative}.pricing-card-features li:before{content:"✓";position:absolute;left:0;color:var(--color-primary);font-weight:600}.pricing-card-cta{display:block;padding:.75rem 1.5rem;text-align:center;font-size:.875rem;font-weight:600;border-radius:8px;text-decoration:none;transition:all .15s ease}.pricing-card-cta.primary{background:var(--color-primary);color:var(--color-on-primary)}.pricing-card-cta.primary:hover{filter:brightness(.9)}.pricing-card-cta.secondary{background:var(--color-surface-container);color:var(--color-on-surface);border:1px solid var(--color-outline)}.pricing-card-cta.secondary:hover{background:var(--color-surface-container-high)}.comparison-section{margin-bottom:3rem}.comparison-section h2{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:1.5rem;color:var(--color-on-surface)}.comparison-table-wrapper{overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:8px;overflow:hidden;transition:background-color .2s ease,border-color .2s ease}.comparison-table th,.comparison-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-outline)}.comparison-table th{background:var(--color-surface-container);font-weight:600;font-size:.875rem;color:var(--color-on-surface);transition:background-color .2s ease}.comparison-table td{font-size:.875rem;color:var(--color-on-surface)}.comparison-table td:first-child{font-weight:500}.feature-check{color:var(--color-primary);font-weight:600}.feature-dash{color:var(--color-outline-variant)}.feature-detail{color:var(--color-on-surface)}.faq-section{margin-bottom:3rem}.faq-section h2{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:1.5rem;color:var(--color-on-surface)}.faq-list{max-width:700px;margin:0 auto}.faq-item{border:1px solid var(--color-outline);border-radius:8px;margin-bottom:.75rem;overflow:hidden;transition:border-color .2s ease}.faq-question{width:100%;padding:1rem;display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);border:none;cursor:pointer;font-size:.9375rem;font-weight:500;text-align:left;color:var(--color-on-surface);transition:background-color .15s ease}:root[data-theme=dark] .faq-question{background:var(--color-surface-container)}.faq-question:hover{background:var(--color-surface-container)}:root[data-theme=dark] .faq-question:hover{background:var(--color-surface-container-high)}.faq-icon{font-size:1.25rem;color:var(--color-on-surface-variant)}.faq-answer{padding:0 1rem 1rem;background:var(--color-surface-container);transition:background-color .2s ease}.faq-answer p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.6;margin:0}.pricing-cta{text-align:center;padding:2rem;background:var(--color-surface-container);border-radius:12px;transition:background-color .2s ease}.pricing-cta h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--color-on-surface)}.pricing-cta p{font-size:1rem;color:var(--color-on-surface-variant);margin-bottom:1.5rem}@media(max-width:640px){.pricing-header h1{font-size:1.75rem}.comparison-table th,.comparison-table td{padding:.625rem .5rem;font-size:.8125rem}}.how-it-works-page{padding:2rem 1rem 4rem;max-width:1000px;margin:0 auto}.hiw-header{text-align:center;margin-bottom:3rem}.hiw-header h1{font-size:2.25rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.5rem}.hiw-header p{font-size:1.125rem;color:var(--color-on-surface-variant)}.hiw-steps{margin-bottom:4rem}.hiw-step{display:flex;gap:2rem;align-items:center;margin-bottom:3rem}.hiw-step.reverse{flex-direction:row-reverse}.hiw-step-content{flex:1}.hiw-step-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-primary);color:var(--color-on-primary);font-size:1.25rem;font-weight:700;border-radius:50%;margin-bottom:1rem}.hiw-step-content h2{font-size:1.5rem;font-weight:600;color:var(--color-on-surface);margin-bottom:.75rem}.hiw-step-content p{font-size:1rem;color:var(--color-on-surface-variant);line-height:1.6;margin-bottom:1rem}.hiw-features{list-style:none;padding:0;margin:0}.hiw-features li{font-size:.875rem;color:var(--color-on-surface);padding:.375rem 0 .375rem 1.5rem;position:relative}.hiw-features li:before{content:"✓";position:absolute;left:0;color:var(--color-primary);font-weight:600}.hiw-step-image{flex:1;max-width:400px}.hiw-step-image img{width:100%;height:auto;border-radius:12px;border:1px solid var(--color-outline);display:block}.image-placeholder{aspect-ratio:4/3;background:var(--color-surface-container);border:2px dashed var(--color-outline);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;transition:background-color .2s ease,border-color .2s ease}.image-placeholder span{font-size:4rem}.image-placeholder p{font-size:.875rem;color:var(--color-on-surface-variant);margin:0}.hiw-features-section{margin-bottom:3rem}.hiw-features-section h2{font-size:1.75rem;font-weight:600;text-align:center;margin-bottom:2rem;color:var(--color-on-surface)}.hiw-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.hiw-feature-card{padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-outline);border-radius:12px;text-align:center;transition:background-color .2s ease,border-color .2s ease}:root[data-theme=dark] .hiw-feature-card{background:var(--color-surface-container)}.hiw-feature-icon{font-size:2.5rem;margin-bottom:1rem}.hiw-feature-card h3{font-size:1rem;font-weight:600;color:var(--color-on-surface);margin-bottom:.5rem}.hiw-feature-card p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.5}.hiw-cta{text-align:center;padding:2rem;background:var(--color-surface-container);border-radius:12px;transition:background-color .2s ease}.hiw-cta h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--color-on-surface)}.hiw-cta p{font-size:1rem;color:var(--color-on-surface-variant);margin-bottom:1.5rem}.hiw-cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:8px;text-decoration:none;transition:all .15s ease;border:none;cursor:pointer}.btn-lg{padding:.875rem 1.75rem;font-size:1rem}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{filter:brightness(.9)}.btn-secondary{background:var(--color-surface);color:var(--color-on-surface);border:1px solid var(--color-outline)}:root[data-theme=dark] .btn-secondary{background:var(--color-surface-container)}.btn-secondary:hover{background:var(--color-surface-container-high)}@media(max-width:768px){.hiw-step,.hiw-step.reverse{flex-direction:column}.hiw-step-image{max-width:100%}.hiw-header h1{font-size:1.75rem}}.legal-page{padding:2rem 1rem 4rem;max-width:800px;margin:0 auto}.legal-page h1{font-size:2rem;font-weight:700;color:var(--color-on-surface);padding-bottom:.75rem;border-bottom:3px solid var(--color-primary);margin-bottom:.5rem}.effective-date{color:var(--color-on-surface-variant);font-style:italic;font-size:.875rem;margin-bottom:2rem}.legal-page h2{font-size:1.375rem;font-weight:600;color:var(--color-on-surface);margin-top:2rem;margin-bottom:.75rem}.legal-page h3{font-size:1.125rem;font-weight:600;color:var(--color-on-surface-variant);margin-top:1.5rem;margin-bottom:.5rem}.legal-page p{font-size:.9375rem;color:var(--color-on-surface);line-height:1.7;margin-bottom:1rem}.legal-page ul,.legal-page ol{margin:.75rem 0;padding-left:1.5rem}.legal-page li{font-size:.9375rem;color:var(--color-on-surface);line-height:1.6;margin-bottom:.5rem}.legal-page a{color:var(--color-primary);text-decoration:none}.legal-page a:hover{text-decoration:underline}.contact-box{background:var(--color-surface-container);padding:1rem 1.25rem;border-radius:8px;margin:1.5rem 0;transition:background-color .2s ease}.contact-box p{margin-bottom:.5rem}.contact-box p:last-child{margin-bottom:0}.pricing-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.875rem}.pricing-table th,.pricing-table td{padding:.75rem;text-align:left;border:1px solid var(--color-outline)}.pricing-table th{background:var(--color-surface-container);font-weight:600;color:var(--color-on-surface);transition:background-color .2s ease}.pricing-table td{background:var(--color-surface);color:var(--color-on-surface);transition:background-color .2s ease}:root[data-theme=dark] .pricing-table td{background:var(--color-surface-container)}@media(max-width:640px){.legal-page h1{font-size:1.5rem}.legal-page h2{font-size:1.25rem}.pricing-table{font-size:.8125rem}.pricing-table th,.pricing-table td{padding:.5rem}}.guide-page,.guides-index-page{padding:2rem 1rem 4rem;max-width:860px;margin:0 auto}.guide-breadcrumbs{display:flex;gap:.5rem;align-items:center;font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:1.5rem}.guide-breadcrumbs a{color:var(--color-primary);text-decoration:none}.guide-breadcrumbs a:hover{text-decoration:underline}.guide-header{text-align:center;margin-bottom:2.5rem}.guide-header-icon{font-size:3rem;margin-bottom:.5rem}.guide-header h1{font-size:2rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.75rem;line-height:1.25}.guide-header p{font-size:1.125rem;color:var(--color-on-surface-variant);max-width:620px;margin:0 auto;line-height:1.6}.guide-page section{margin-bottom:2.5rem}.guide-page h2{font-size:1.5rem;font-weight:600;color:var(--color-on-surface);margin-bottom:1rem}.guide-page section>p,.guide-intro{font-size:1rem;color:var(--color-on-surface-variant);line-height:1.7;margin-bottom:1rem}.guide-page section ul{color:var(--color-on-surface-variant);line-height:1.7;padding-left:1.25rem;margin-bottom:1rem}.guide-page section li{margin-bottom:.375rem}.guide-page strong{color:var(--color-on-surface)}.guide-step{display:grid;grid-template-columns:1fr minmax(200px,300px);gap:1.5rem;align-items:start;padding:1.5rem 0;border-bottom:1px solid var(--color-outline-variant, rgba(128, 128, 128, .2))}.guide-step:last-child{border-bottom:none}.guide-step-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:var(--color-on-primary);font-size:1rem;font-weight:700;border-radius:50%;margin-bottom:.75rem}.guide-step h3{font-size:1.125rem;font-weight:600;color:var(--color-on-surface);margin-bottom:.5rem}.guide-step-body{font-size:.9375rem;color:var(--color-on-surface-variant);line-height:1.65}.guide-step-body p{margin-bottom:.75rem}.guide-step-body ul{padding-left:1.25rem;margin:.5rem 0 .75rem}.guide-figure{margin:0}.guide-figure img{width:100%;height:auto;border-radius:12px;border:1px solid var(--color-outline-variant, rgba(128, 128, 128, .25));box-shadow:0 2px 12px #00000014}.guide-figure figcaption{font-size:.8125rem;color:var(--color-on-surface-variant);text-align:center;margin-top:.5rem;line-height:1.5}.guide-page section>.guide-figure{max-width:420px;margin:1.25rem auto}.guide-tip{display:flex;gap:.75rem;align-items:flex-start;background:var(--color-surface-container, rgba(128, 128, 128, .08));border-left:3px solid var(--color-primary);border-radius:8px;padding:.875rem 1rem;margin:1rem 0;font-size:.9375rem;color:var(--color-on-surface-variant);line-height:1.6}.guide-tip-icon{flex-shrink:0}.guide-faq-item{border-bottom:1px solid var(--color-outline-variant, rgba(128, 128, 128, .2));padding:.25rem 0}.guide-faq-item summary{cursor:pointer;font-weight:600;color:var(--color-on-surface);padding:.75rem 0;line-height:1.5}.guide-faq-item p{color:var(--color-on-surface-variant);line-height:1.7;padding:0 0 1rem}.guide-related-grid,.guides-index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.guide-related-card,.guides-index-card{display:flex;flex-direction:column;gap:.375rem;background:var(--color-surface-container, rgba(128, 128, 128, .08));border:1px solid var(--color-outline-variant, rgba(128, 128, 128, .2));border-radius:12px;padding:1.25rem;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.guide-related-card:hover,.guides-index-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.guide-related-icon,.guides-index-card-icon{font-size:1.75rem}.guide-related-title,.guides-index-card h2{font-size:1.0625rem;font-weight:600;color:var(--color-on-surface);margin:0}.guide-related-desc,.guides-index-card p{font-size:.875rem;color:var(--color-on-surface-variant);line-height:1.55;margin:0}.guide-cta,.guides-index-cta{text-align:center;background:var(--color-surface-container, rgba(128, 128, 128, .08));border-radius:16px;padding:2.5rem 1.5rem}.guide-cta h2{margin-bottom:.5rem}.guide-cta p{color:var(--color-on-surface-variant);margin-bottom:1.5rem}.guides-index-header{text-align:center;margin-bottom:2.5rem}.guides-index-header h1{font-size:2.25rem;font-weight:700;color:var(--color-on-surface);margin-bottom:.75rem}.guides-index-header p{font-size:1.125rem;color:var(--color-on-surface-variant);max-width:640px;margin:0 auto;line-height:1.6}.guides-index-grid{margin-bottom:3rem}@media(max-width:640px){.guide-step{grid-template-columns:1fr}.guide-step .guide-figure{max-width:340px;margin:0 auto}.guide-header h1{font-size:1.625rem}.guides-index-header h1{font-size:1.75rem}}
