*{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;justify-content:center;align-items:flex-start;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%}.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:1000;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}.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}.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}.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}.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%}}.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}}.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-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-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-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)}.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}.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}.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}.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}}.upgrade-modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upgrade-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d;animation:upgrade-modal-appear .3s ease-out}@keyframes upgrade-modal-appear{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.upgrade-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.upgrade-modal-close:hover{background-color:#f0f0f0;color:#333}.upgrade-modal-content{padding:40px 32px;text-align:center}.upgrade-modal-icon{font-size:48px;margin-bottom:16px}.upgrade-modal-title{font-size:28px;font-weight:600;margin:0 0 8px;color:#1a1a1a}.upgrade-modal-subtitle{font-size:16px;color:#666;margin:0 0 24px;line-height:1.5}.upgrade-modal-benefits{background-color:#f8f9fa;border-radius:8px;padding:20px;margin-bottom:24px;text-align:left}.upgrade-modal-benefits h3{font-size:16px;font-weight:600;margin:0 0 12px;color:#1a1a1a}.upgrade-modal-benefits ul{list-style:none;padding:0;margin:0}.upgrade-modal-benefits li{font-size:15px;color:#333;margin-bottom:8px;line-height:1.5}.upgrade-modal-divider{height:1px;background:linear-gradient(to right,transparent,#e0e0e0,transparent);margin:24px 0}.upgrade-modal-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.upgrade-plan{border:2px solid #e0e0e0;border-radius:8px;padding:20px 16px;text-align:left;transition:all .2s;position:relative}.upgrade-plan:hover{border-color:#4caf50;box-shadow:0 4px 12px #4caf5026}.upgrade-plan-popular{border-color:#4caf50;background:linear-gradient(to bottom,#f1f8f4,#fff)}.upgrade-plan-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:#4caf50;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.upgrade-plan h4{font-size:18px;font-weight:600;margin:0 0 8px;color:#1a1a1a}.upgrade-plan-price{font-size:24px;font-weight:700;color:#4caf50;margin-bottom:12px}.upgrade-plan-features{list-style:none;padding:0;margin:0}.upgrade-plan-features li{font-size:14px;color:#666;margin-bottom:6px;padding-left:20px;position:relative}.upgrade-plan-features li:before{content:"•";position:absolute;left:0;color:#4caf50;font-weight:700}.upgrade-modal-actions{display:flex;gap:12px;justify-content:center}.upgrade-modal-btn-secondary,.upgrade-modal-btn-primary{padding:12px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.upgrade-modal-btn-secondary{background:#fff;color:#666;border:2px solid #e0e0e0}.upgrade-modal-btn-secondary:hover{background:#f5f5f5;border-color:#ccc}.upgrade-modal-btn-primary{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;box-shadow:0 4px 12px #4caf504d}.upgrade-modal-btn-primary:hover{background:linear-gradient(135deg,#45a049,#3d8b40);box-shadow:0 6px 16px #4caf5066;transform:translateY(-1px)}@media(max-width:600px){.upgrade-modal-content{padding:32px 24px}.upgrade-modal-title{font-size:24px}.upgrade-modal-plans{grid-template-columns:1fr}.upgrade-modal-actions{flex-direction:column}.upgrade-modal-btn-secondary,.upgrade-modal-btn-primary{width:100%}}.bottom-sheet-backdrop{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:backdropFadeIn .2s ease-out}@keyframes backdropFadeIn{0%{background:#0000}to{background:#00000080}}.bottom-sheet{background:var(--color-surface, #ffffff);border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:sheetSlideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{width:32px;height:4px;background:var(--color-outline-variant, #d0d0d0);border-radius:2px;margin:12px auto 8px;flex-shrink:0}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 12px;border-bottom:1px solid var(--color-outline-variant, #e0e0e0)}.bottom-sheet-title{font-size:18px;font-weight:600;color:var(--color-on-surface, #1a1a1a);margin:0}.bottom-sheet-close{background:none;border:none;padding:8px;cursor:pointer;border-radius:50%;color:var(--color-on-surface-variant, #666);transition:background .2s}.bottom-sheet-close:hover{background:var(--color-surface-container, #f0f0f0)}.bottom-sheet-content{padding:8px 8px 24px;overflow-y:auto;flex:1}.bottom-sheet-option{display:flex;align-items:center;gap:16px;width:100%;padding:14px 12px;border:none;background:none;border-radius:12px;cursor:pointer;text-align:left;transition:background .2s}.bottom-sheet-option:hover:not(.disabled){background:var(--color-surface-container, #f5f5f5)}.bottom-sheet-option:active:not(.disabled){background:var(--color-surface-container-high, #e8e8e8)}.bottom-sheet-option.disabled{opacity:.5;cursor:not-allowed}.bottom-sheet-option.danger .bottom-sheet-option-title,.bottom-sheet-option.danger .bottom-sheet-option-icon{color:var(--color-error, #dc2626)}.bottom-sheet-option-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-container, #f0f0f0);border-radius:10px;flex-shrink:0}.bottom-sheet-option-text{flex:1;min-width:0}.bottom-sheet-option-title{font-size:15px;font-weight:500;color:var(--color-on-surface, #1a1a1a)}.bottom-sheet-option-description{font-size:13px;color:var(--color-on-surface-variant, #666);margin-top:2px}.bottom-sheet-option-badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;background:var(--color-surface-variant, #e0e0e0);color:var(--color-on-surface-variant, #666);white-space:nowrap}.bottom-sheet-divider{height:1px;background:var(--color-outline-variant, #e0e0e0);margin:8px 12px}:root[data-theme=dark] .bottom-sheet{background:var(--color-surface-container, #1e1e1e)}:root[data-theme=dark] .bottom-sheet-handle{background:var(--color-outline, #444)}:root[data-theme=dark] .bottom-sheet-header{border-bottom-color:var(--color-outline, #333)}:root[data-theme=dark] .bottom-sheet-option:hover:not(.disabled){background:var(--color-surface-container-high, #2a2a2a)}:root[data-theme=dark] .bottom-sheet-option-icon{background:var(--color-surface-variant, #2a2a2a)}:root[data-theme=dark] .bottom-sheet-divider{background:var(--color-outline, #333)}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-sheet-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}.rmr-review{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-md)}.rmr-subheader{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.rmr-progress-pill{font-size:.75rem;font-weight:var(--font-weight-medium);padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);white-space:nowrap}.rmr-progress-pill--done{background:var(--color-primary);color:var(--color-on-primary)}.rmr-ai-btn{display:flex;align-items:center;gap:4px;font-size:.8rem;font-weight:var(--font-weight-medium);padding:5px 12px;border-radius:999px;border:1.5px solid var(--color-outline);background:none;color:var(--color-on-surface);cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.rmr-ai-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 8%,transparent);border-color:var(--color-primary);color:var(--color-primary)}.rmr-ai-btn:disabled{opacity:.55;cursor:not-allowed}.rmr-ai-spinner{display:inline-block;width:10px;height:10px;border:2px solid var(--color-outline);border-top-color:var(--color-primary);border-radius:50%;animation:rmr-spin .7s linear infinite;flex-shrink:0}@keyframes rmr-spin{to{transform:rotate(360deg)}}.rmr-ai-error{font-size:.78rem;color:var(--color-error, #cf6679);background:color-mix(in srgb,var(--color-error, #cf6679) 10%,transparent);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);margin:0}.rmr-matched-section{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-radius:var(--radius-md);padding:var(--spacing-sm);padding-bottom:var(--spacing-xs);display:flex;flex-direction:column;gap:var(--spacing-xs);overflow:hidden}.rmr-matched-label{font-size:.75rem;font-weight:var(--font-weight-medium);color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em}.rmr-matched-list{display:flex;flex-direction:column;gap:0;border-radius:var(--radius-xs, 4px);overflow:hidden}.rmr-matched-pair{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--spacing-xs, 6px);padding:5px var(--spacing-xs, 6px);min-width:0}.rmr-matched-pair:nth-child(odd){background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.rmr-matched-pair:nth-child(2n){background:color-mix(in srgb,var(--color-primary) 9%,transparent)}.rmr-pair-shopping{font-size:.78rem;font-weight:var(--font-weight-medium);color:var(--color-secondary, #4a90d9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.rmr-pair-shopping--receipt-only{color:var(--color-text-secondary, #888);font-style:italic}.rmr-pair-right{display:flex;align-items:center;gap:4px;min-width:0}.rmr-pair-receipt{font-size:.78rem;color:#b45309;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.rmr-pair-arrow{color:var(--color-primary);font-size:.75rem;flex-shrink:0}.rmr-pair-price{font-size:.75rem;font-weight:var(--font-weight-medium);color:var(--color-primary);flex-shrink:0;white-space:nowrap}.rmr-pair-unlink{background:none;border:none;cursor:pointer;color:var(--color-on-surface-variant);font-size:.7rem;padding:2px 4px;border-radius:var(--radius-xs, 4px);flex-shrink:0;line-height:1}.rmr-pair-unlink:hover{background:color-mix(in srgb,var(--color-error, #cf6679) 15%,transparent);color:var(--color-error, #cf6679)}.rmr-selection-hint-group{display:flex;flex-direction:column;align-items:center;gap:6px}.rmr-selection-hint{font-size:.78rem;color:var(--color-primary);text-align:center;margin:0;font-style:italic}.rmr-add-unmatched-btn{font-size:.72rem;color:var(--color-on-surface-variant);background:none;border:1px dashed var(--color-outline);border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer;transition:color .1s,border-color .1s}.rmr-add-unmatched-btn:hover{color:var(--color-on-surface);border-color:var(--color-on-surface-variant)}.rmr-pair-no-receipt{font-size:.7rem;color:var(--color-on-surface-variant);font-style:italic;flex:1}.rmr-columns{display:flex;gap:var(--spacing-xs);align-items:flex-start}.rmr-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.rmr-col-header{font-size:.7rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;padding:4px var(--spacing-xs);border-radius:var(--radius-xs, 4px);margin-bottom:2px}.rmr-col--receipt .rmr-col-header{color:#b45309;background:color-mix(in srgb,#f59e0b 12%,transparent)}.rmr-col--shopping .rmr-col-header{color:var(--color-secondary, #4a90d9);background:color-mix(in srgb,var(--color-secondary, #4a90d9) 12%,transparent)}.rmr-col-empty{font-size:.78rem;color:var(--color-on-surface-variant);font-style:italic;padding:var(--spacing-sm);margin:0}.rmr-col-item{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;padding:8px var(--spacing-sm);border-radius:var(--radius-sm);border:1.5px solid transparent;background:var(--color-surface-container, #2a2a2a);text-align:left;cursor:pointer;transition:background .1s,border-color .1s,opacity .1s}.rmr-col--receipt .rmr-col-item{background:color-mix(in srgb,#f59e0b 7%,var(--color-surface-container, #2a2a2a))}.rmr-col--shopping .rmr-col-item{background:color-mix(in srgb,var(--color-secondary, #4a90d9) 7%,var(--color-surface-container, #2a2a2a))}.rmr-col-item--selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface-container, #2a2a2a))!important}.rmr-col-item--hinted{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);animation:rmr-hint-pulse 1.2s ease-in-out infinite}@keyframes rmr-hint-pulse{0%,to{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent)}50%{border-color:color-mix(in srgb,var(--color-primary) 70%,transparent)}}.rmr-col-item--matched{opacity:.35;cursor:default}.rmr-col-item-name{font-size:.78rem;color:var(--color-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.rmr-col-item-price{font-size:.75rem;font-weight:var(--font-weight-medium);color:var(--color-primary);flex-shrink:0;white-space:nowrap}.rmr-footer{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-md);align-items:stretch}.rmr-confirm-btn{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:var(--font-weight-medium);gap:2px}.rmr-confirm-btn:disabled{opacity:.4;cursor:not-allowed}.rmr-confirm-sub{font-size:.72rem;font-weight:400;opacity:.85}.rmr-skip-link{background:none;border:none;font-size:.8rem;color:var(--color-on-surface-variant);cursor:pointer;text-align:center;padding:var(--spacing-xs);text-decoration:underline;text-underline-offset:2px}.rmr-skip-link:hover{color:var(--color-on-surface)}.rmr-skip-link:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.rmr-suggestions-section{background:color-mix(in srgb,#f59e0b 10%,transparent);border:1px solid color-mix(in srgb,#f59e0b 30%,transparent);border-radius:var(--radius-md);padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.rmr-suggestions-label{font-size:.75rem;font-weight:var(--font-weight-medium);color:#b45309;text-transform:uppercase;letter-spacing:.04em}.rmr-suggestions-list{display:flex;flex-direction:column;gap:6px}.rmr-suggestion-item{background:var(--color-surface-container, #2a2a2a);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);display:flex;flex-direction:column;gap:4px}.rmr-suggestion-names{display:flex;align-items:center;gap:6px;font-size:.8rem;min-width:0}.rmr-suggestion-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.rmr-confidence-badge{font-size:.7rem;font-weight:var(--font-weight-medium);padding:2px 7px;border-radius:999px;white-space:nowrap}.rmr-confidence-badge--high{background:color-mix(in srgb,#22c55e 15%,transparent);color:#16a34a}.rmr-confidence-badge--medium{background:color-mix(in srgb,#f59e0b 15%,transparent);color:#b45309}.rmr-confidence-badge--low{background:color-mix(in srgb,#ef4444 12%,transparent);color:#dc2626}.rmr-suggestion-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.rmr-suggestion-reject{background:none;border:none;cursor:pointer;color:var(--color-on-surface-variant);font-size:.7rem;padding:3px 6px;border-radius:var(--radius-xs, 4px);line-height:1}.rmr-suggestion-reject:hover{background:color-mix(in srgb,var(--color-error, #cf6679) 15%,transparent);color:var(--color-error, #cf6679)}.rmr-suggestion-accept{font-size:.75rem;font-weight:var(--font-weight-medium);padding:4px 10px;border-radius:var(--radius-sm);border:none;background:var(--color-primary);color:var(--color-on-primary);cursor:pointer}.rmr-suggestion-accept:hover{opacity:.88}.rmr-col-item-add-btn{background:none;border:none;cursor:pointer;color:var(--color-on-surface-variant);font-size:.65rem;padding:2px 4px;border-radius:var(--radius-xs, 4px);flex-shrink:0;line-height:1;opacity:0;transition:opacity .1s,color .1s,background .1s}.rmr-col-item:hover .rmr-col-item-add-btn,.rmr-col-item:focus-within .rmr-col-item-add-btn{opacity:1}.rmr-col-item-add-btn:hover{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.rmr-success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.rmr-success-icon{font-size:2.5rem}.rmr-success-title{font-size:1rem;font-weight:var(--font-weight-medium);color:var(--color-on-surface);margin:0}.rmr-success-sub{font-size:.825rem;color:var(--color-on-surface-variant);margin:0}.meal-row-action-menu{position:fixed;z-index:9999;background:#fff;border:1px solid #e2ddd5;border-radius:8px;box-shadow:0 4px 16px #0000001f,0 2px 4px #00000014;overflow:hidden}.action-menu-item{display:block;width:100%;padding:9px 14px;text-align:left;background:transparent;border:none;border-bottom:1px solid #f0ebe4;font-size:13px;font-weight:500;color:var(--text-color, #333);cursor:pointer;transition:background .1s ease}.action-menu-item:last-child{border-bottom:none}.action-menu-item:hover{background:#f7f4f0}.action-menu-item.danger{color:var(--danger-color, #d32f2f)}.action-menu-item.danger:hover{background:#fef2f2}:root[data-theme=dark] .meal-row-action-menu{background:var(--surface-1, #1e293b);border-color:var(--border-color, #334155)}:root[data-theme=dark] .action-menu-item{color:var(--text-color, #f1f5f9);border-bottom-color:var(--border-color, #334155)}:root[data-theme=dark] .action-menu-item:hover{background:var(--hover-background, #334155)}:root[data-theme=dark] .action-menu-item.danger{color:var(--danger-color, #f87171)}:root[data-theme=dark] .action-menu-item.danger:hover{background:#f871711a}.day-notecard{background:#fffef9;border:1px solid #e2ddd5;border-radius:10px;box-shadow:0 2px 6px #0000000f,0 1px 2px #0000000a;cursor:pointer;position:relative;transition:box-shadow .15s ease,border-color .15s ease;overflow:visible}.day-notecard:hover{box-shadow:0 4px 12px #0000001a}.day-notecard.other-month{opacity:.45}.day-notecard.today{border-color:var(--primary-color, #1976d2);border-width:2px}.day-notecard.selected{border-color:var(--primary-color, #1976d2);border-width:2px;box-shadow:0 0 0 3px #1976d226,0 2px 8px #0000001a}.notecard-header{display:flex;align-items:center;justify-content:space-between;padding:7px 10px 6px;border-bottom:1.5px solid #e2ddd5}.card-day-name{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary, #888)}.card-date{font-size:14px;font-weight:700;color:var(--text-color, #333);line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.card-date.today-badge{background:var(--primary-color, #1976d2);color:#fff}.meal-row{display:flex;align-items:flex-start;gap:5px;padding:5px 8px;min-height:30px;border-bottom:1px dashed #e8e3dc;cursor:pointer;position:relative;transition:background .12s ease}.meal-row:last-child{border-bottom:none;border-radius:0 0 9px 9px}.meal-row:hover{background:#00000006}.meal-row.empty{color:#bbb;align-items:center;padding:0 8px;min-height:30px}.meal-row.empty:hover{background:#00000006;color:#888}.meal-row-icon{font-size:12px;flex-shrink:0;line-height:1.6}.meal-row-icon--top{margin-top:1px}.meal-dishes{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.meal-dish-entry{display:flex;align-items:flex-start;gap:3px;position:relative;cursor:pointer;padding:1px 2px;border-radius:3px;transition:background .1s ease}.meal-dish-entry:hover{background:#0000000a}.meal-dish-entry+.meal-dish-entry{border-top:1px dashed rgba(0,0,0,.07);padding-top:3px;margin-top:1px}.meal-row-name{font-size:11px;font-weight:500;color:var(--text-color, #333);flex:1;min-width:0;line-height:1.4;white-space:normal;word-break:break-word}.meal-row-placeholder{font-size:15px;font-weight:300;color:inherit;flex:1;line-height:1}.meal-row-recurring{font-size:10px;color:var(--text-secondary, #888);flex-shrink:0;margin-top:2px}@media(max-width:768px){.notecard-header{padding:5px 8px}.card-day-name{font-size:11px}.card-date{font-size:13px;width:22px;height:22px}.meal-row{min-height:27px;padding:4px 6px;gap:4px}.meal-row.empty{padding:0 6px;min-height:27px}.meal-row-icon{font-size:11px}.meal-row-name{font-size:10px}}:root[data-theme=dark] .day-notecard{background:var(--surface-1, #1e293b);border-color:var(--border-color, #334155)}:root[data-theme=dark] .notecard-header{border-bottom-color:var(--border-color, #334155)}:root[data-theme=dark] .card-day-name{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .card-date{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .meal-row{border-bottom-color:#ffffff12}:root[data-theme=dark] .meal-row:hover{background:#ffffff0a}:root[data-theme=dark] .meal-row.empty{color:#475569}:root[data-theme=dark] .meal-row.empty:hover{color:#64748b}:root[data-theme=dark] .meal-row-name{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .meal-dish-entry+.meal-dish-entry{border-top-color:#ffffff0f}:root[data-theme=dark] .meal-dish-entry:hover{background:#ffffff0a}.calendar-week-view{display:flex;flex-direction:column;gap:16px;width:100%}.week-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.week-navigation{display:flex;align-items:center;gap:12px}.nav-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--button-background, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;color:var(--text-color, #333);font-size:22px;cursor:pointer;transition:all .15s ease;line-height:1}.nav-btn:hover{background:var(--button-hover-background, #e0e0e0)}.nav-btn:active{transform:scale(.93)}.week-range{font-size:15px;font-weight:600;color:var(--text-color, #333);min-width:190px;text-align:center}.today-btn{padding:7px 16px;background:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s ease;white-space:nowrap}.today-btn:hover{background:var(--primary-dark, #1565c0)}.week-day-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}@media(max-width:768px){.week-header{gap:10px}.week-navigation{flex:1;justify-content:center}.week-range{font-size:13px;min-width:150px}.nav-btn{width:30px;height:30px;font-size:18px}.week-day-cells{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}.week-day-cells::-webkit-scrollbar{display:none}.week-day-cells>*{flex:0 0 140px;scroll-snap-align:start}}@media(max-width:480px){.week-header{flex-wrap:wrap}.today-btn{flex:1;text-align:center}.week-day-cells>*{flex:0 0 130px}}.calendar-month-view{display:flex;flex-direction:column;gap:16px;width:100%}.month-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.month-navigation{display:flex;align-items:center;gap:12px}.month-title{font-size:18px;font-weight:700;color:var(--text-color, #333);min-width:200px;text-align:center}.month-grid{display:flex;flex-direction:column;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden;background:var(--background-color, #ffffff)}.month-day-headers{display:grid;grid-template-columns:repeat(7,1fr);background:var(--header-background, #f5f5f5);border-bottom:2px solid var(--border-color, #e0e0e0)}.month-day-cells{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(80px,auto)}@media(max-width:768px){.month-header{flex-direction:column;gap:12px}.month-navigation{width:100%;justify-content:center}.month-title{font-size:16px;min-width:180px}.today-btn{width:100%}.month-day-cells{grid-auto-rows:minmax(60px,auto)}}@media(max-width:480px){.month-title{font-size:14px}.month-day-cells{grid-auto-rows:minmax(50px,auto)}}.meal-type-filter{display:flex;align-items:center;gap:10px;padding:12px 0}.filter-label{font-size:14px;font-weight:600;color:var(--text-secondary, #666);white-space:nowrap;flex-shrink:0}.filter-chips{display:flex;gap:6px}.filter-chip{display:flex;align-items:center;gap:5px;padding:6px 14px;background:var(--chip-background, #f5f5f5);border:2px solid var(--chip-border, #e0e0e0);border-radius:20px;color:var(--text-color, #333);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.filter-chip:hover{background:var(--chip-hover-background, #e8e8e8);border-color:var(--chip-hover-border, #d0d0d0)}.filter-chip.selected{background:var(--primary-color, #1976d2);border-color:var(--primary-color, #1976d2);color:#fff}.filter-chip.selected:hover{background:var(--primary-dark, #1565c0);border-color:var(--primary-dark, #1565c0)}.chip-icon{font-size:14px;line-height:1}.chip-label{line-height:1}.chip-indicator{display:none}@media(max-width:640px){.meal-type-filter{gap:8px;padding:8px 0}.filter-label{display:none}.filter-chip{padding:5px 10px;font-size:12px;gap:4px}.chip-icon{font-size:13px}}.popover-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.day-meal-popover{background:var(--background-color, #ffffff);border-radius:12px;box-shadow:0 8px 32px #0003;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.popover-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color, #e0e0e0)}.popover-header h3{margin:0;font-size:20px;font-weight:700;color:var(--text-color, #333)}.close-btn{width:32px;height:32px;padding:0;background:transparent;border:none;color:var(--text-secondary, #666);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s ease}.close-btn:hover{background:var(--hover-background, #f5f5f5)}.popover-date{padding:12px 20px;font-size:14px;font-weight:600;color:var(--text-secondary, #666);background:var(--background-light, #f9f9f9);border-bottom:1px solid var(--border-color, #e0e0e0)}.meal-type-selector{padding:16px 20px;border-bottom:1px solid var(--border-color, #e0e0e0)}.selector-label{display:block;font-size:14px;font-weight:600;color:var(--text-color, #333);margin-bottom:8px}.meal-type-buttons{display:flex;gap:8px}.meal-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--button-background, #f5f5f5);border:2px solid var(--border-color, #e0e0e0);border-radius:8px;cursor:pointer;transition:all .2s ease}.meal-type-btn:hover{background:var(--button-hover-background, #e8e8e8);border-color:var(--primary-color, #1976d2)}.meal-type-btn.selected{background:var(--primary-color, #1976d2);border-color:var(--primary-color, #1976d2);color:#fff}.meal-icon{font-size:24px}.meal-label{font-size:12px;font-weight:600}.recipe-search{padding:16px 20px;border-bottom:1px solid var(--border-color, #e0e0e0)}.search-input{width:100%;padding:10px 16px;font-size:14px;border:2px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--background-color, #ffffff);transition:border-color .2s ease}.search-input:focus{outline:none;border-color:var(--primary-color, #1976d2)}.recipe-list{flex:1;overflow-y:auto;padding:8px 0}.recipe-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 20px;background:transparent;border:none;border-bottom:1px solid var(--border-color, #e0e0e0);cursor:pointer;transition:background-color .2s ease;text-align:left}.recipe-item:last-child{border-bottom:none}.recipe-item:hover{background:var(--hover-background, #f5f5f5)}.recipe-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.recipe-thumbnail{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.recipe-details{flex:1;min-width:0}.recipe-title{font-size:15px;font-weight:600;color:var(--text-color, #333);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-meta{font-size:13px;color:var(--text-secondary, #666)}.select-arrow{font-size:24px;color:var(--text-secondary, #999);flex-shrink:0}.no-recipes{padding:40px 20px;text-align:center;color:var(--text-secondary, #666);font-size:14px}@media(max-width:768px){.day-meal-popover{max-height:90vh}.meal-type-buttons{gap:6px}.meal-type-btn{padding:10px 6px}.meal-icon{font-size:20px}.meal-label{font-size:11px}}@media(max-width:480px){.popover-overlay{padding:0}.day-meal-popover{max-width:100%;max-height:100vh;border-radius:0}}.rt-section{border-top:1px solid var(--border-color, #e8e3dc);margin-top:16px;padding-top:14px;padding-bottom:4px}.rt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rt-header-actions{display:flex;align-items:center;gap:6px}.rt-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary, #888)}.rt-add-btn{display:flex;align-items:center;gap:4px;padding:5px 11px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border:none;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.rt-add-btn:hover{opacity:.8}.rt-alarm-mode-btn{display:flex;align-items:center;gap:3px;padding:5px 9px;background:var(--surface-1, #fff);color:var(--text-secondary, #666);border:1.5px solid var(--border-color, #e0e0e0);border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.rt-alarm-mode-btn:hover{border-color:var(--primary-color, #1976d2);color:var(--primary-color, #1976d2)}.rt-alarm-mode-btn.forever{background:#ef535014;border-color:var(--danger-color, #d32f2f);color:var(--danger-color, #d32f2f)}.rt-empty{font-size:13px;color:var(--text-muted, #bbb);text-align:center;padding:6px 0 12px;margin:0}.rt-countup-section{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.rt-countup-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--surface-2, #f5f5f5);border-radius:10px;transition:background .25s ease}.rt-countup-row.running{background:#4caf501a}.rt-countup-label{font-size:13px;font-weight:600;color:var(--text-color, #333);width:52px;flex-shrink:0}.rt-countup-saved-hint{font-size:11px;color:var(--text-muted, #bbb);flex:1}.rt-countup-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.rt-countup-elapsed{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary, #666);min-width:42px;text-align:right}.rt-countup-elapsed.running{color:var(--success-color, #388e3c)}.rt-save-btn{padding:4px 10px;border-radius:20px;border:none;background:var(--primary-color, #1976d2);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s ease,background .2s ease;white-space:nowrap}.rt-save-btn:hover{opacity:.85}.rt-save-btn.saved{background:var(--success-color, #4caf50)}.rt-list{display:flex;flex-direction:column;gap:6px;padding-bottom:8px}.rt-row{background:var(--surface-2, #f5f5f5);border-radius:10px;overflow:hidden;transition:background .25s ease}.rt-row.running{background:#4caf501a}.rt-row.finished{background:#ef535014}.rt-main-row{display:flex;align-items:center;gap:8px;padding:8px 10px}.rt-name-area{flex:0 0 auto;min-width:0;max-width:90px}.rt-name-btn{display:flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:0;color:var(--text-color, #333);max-width:100%;text-align:left}.rt-name-btn:hover .rt-edit-icon{color:var(--text-secondary, #666)}.rt-name-text{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-edit-icon{color:var(--text-muted, #ccc);flex-shrink:0;transition:color .15s ease}.rt-name-input{font-size:13px;font-weight:600;border:1.5px solid var(--primary-color, #1976d2);border-radius:6px;padding:2px 7px;background:var(--surface-1, #fff);color:var(--text-color, #333);width:100%;max-width:130px;outline:none}.rt-time-area{display:flex;align-items:center;gap:4px;flex-shrink:0}.rt-step-btn{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border-color, #e0e0e0);background:var(--surface-1, #fff);color:var(--text-secondary, #666);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.rt-step-btn:not(:disabled):hover{border-color:var(--primary-color, #1976d2);color:var(--primary-color, #1976d2)}.rt-step-btn:disabled{opacity:.3;cursor:not-allowed}.rt-display{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-color, #333);background:var(--surface-1, #fff);padding:3px 10px;border-radius:20px;min-width:58px;text-align:center;box-shadow:0 1px 3px #00000014;transition:color .2s ease}.rt-display.running{color:var(--success-color, #388e3c)}.rt-display.done{color:var(--danger-color, #d32f2f);animation:rt-pulse-text .75s ease-in-out infinite}@keyframes rt-pulse-text{0%,to{opacity:1}50%{opacity:.5}}.rt-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.rt-btn{width:30px;height:30px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease,background .15s ease;flex-shrink:0}.rt-btn:disabled{opacity:.3;cursor:not-allowed}.rt-btn:not(:disabled):hover{opacity:.8}.rt-play-btn{background:var(--primary-color, #1976d2);color:#fff}.rt-play-btn.pausing{background:var(--success-color, #4caf50)}.rt-reset-btn{background:var(--surface-1, #fff);color:var(--text-secondary, #666);box-shadow:0 1px 2px #00000014}.rt-remove-btn{background:transparent;color:var(--text-muted, #ccc)}.rt-remove-btn:not(:disabled):hover{opacity:1;color:var(--danger-color, #d32f2f)}.rt-presets-inline{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.rt-presets-inline::-webkit-scrollbar{display:none}.rt-preset{padding:3px 11px;border-radius:20px;border:1.5px solid var(--border-color, #e0e0e0);background:var(--surface-1, #fff);color:var(--text-secondary, #666);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s ease,color .12s ease,border-color .12s ease}.rt-preset:hover{border-color:var(--primary-color, #1976d2);color:var(--primary-color, #1976d2)}.rt-preset.active{background:var(--primary-color, #1976d2);border-color:var(--primary-color, #1976d2);color:#fff}:root[data-theme=dark] .rt-countup-row{background:var(--surface-2)}:root[data-theme=dark] .rt-countup-label{color:var(--text-color)}:root[data-theme=dark] .rt-section{border-top-color:var(--border-color)}:root[data-theme=dark] .rt-title{color:var(--text-secondary)}:root[data-theme=dark] .rt-add-btn{background:var(--primary-light);color:var(--primary-color)}:root[data-theme=dark] .rt-row{background:var(--surface-2)}:root[data-theme=dark] .rt-name-btn,:root[data-theme=dark] .rt-name-text{color:var(--text-color)}:root[data-theme=dark] .rt-name-input{background:var(--surface-2);color:var(--text-color)}:root[data-theme=dark] .rt-display{background:var(--surface-2);color:var(--text-color);box-shadow:none}:root[data-theme=dark] .rt-step-btn{background:var(--surface-2);border-color:var(--border-color);color:var(--text-secondary)}:root[data-theme=dark] .rt-alarm-mode-btn{background:var(--surface-2);border-color:var(--border-color);color:var(--text-secondary)}:root[data-theme=dark] .rt-reset-btn{background:var(--surface-2);color:var(--text-secondary);box-shadow:none}:root[data-theme=dark] .rt-preset{background:var(--surface-2);border-color:var(--border-color);color:var(--text-secondary)}:root[data-theme=dark] .rt-preset.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.recipe-video-embed{width:100%;margin-bottom:20px}.recipe-video-player-wrapper{width:100%;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:#000}.recipe-video-player-wrapper--vertical{aspect-ratio:9 / 16;max-height:480px;width:auto;max-width:min(270px,100%);margin-left:auto;margin-right:auto}.recipe-video-player{width:100%;height:100%;border:none;display:block}.recipe-video-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:0 2px}.recipe-video-source{font-size:12px;color:var(--color-on-surface-variant, #666);font-weight:500}.recipe-video-link{font-size:12px;color:var(--color-primary, #667eea);text-decoration:none;font-weight:500;transition:opacity .15s ease}.recipe-video-link:hover{opacity:.75;text-decoration:underline}:root[data-theme=dark] .recipe-video-source{color:var(--text-secondary)}:root[data-theme=dark] .recipe-video-link{color:var(--primary-color)}.review-shopping-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.review-shopping-modal{background:var(--surface-1, #ffffff);border-radius:12px;max-width:700px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003;color:var(--text-color, #111827)}.review-shopping-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb);position:sticky;top:0;background:var(--surface-1, #ffffff);border-radius:12px 12px 0 0;z-index:10}.review-shopping-modal-header h2{margin:0;font-size:1.375rem;font-weight:600;color:var(--text-color, #111827)}.review-shopping-modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary, #6b7280);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s}.review-shopping-modal-close:hover{color:var(--text-color, #111827)}.review-shopping-modal-body{flex:1;overflow-y:auto;padding:1.5rem}.review-shopping-recipe-name{margin-bottom:1.5rem;padding:1rem;background:var(--background-light, #f9fafb);border-radius:8px;font-size:.9375rem;color:var(--text-secondary, #374151)}.review-shopping-recipe-name strong{color:var(--text-color, #111827)}.review-shopping-items-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.shopping-item-card{border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1rem;background:var(--surface-1, #ffffff);transition:all .2s}.shopping-item-card.grayed-out{background:var(--background-light, #f9fafb);opacity:.6}.shopping-item-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.shopping-item-checkbox{margin-top:.25rem;width:18px;height:18px;cursor:pointer;flex-shrink:0}.shopping-item-ingredient{flex:1;font-size:.875rem;color:var(--text-secondary, #6b7280);font-style:italic}.shopping-item-manual-badge{background:var(--primary-light, #dbeafe);color:var(--primary-color, #1e40af);padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.shopping-item-edited-icon{color:var(--text-muted, #9ca3af);flex-shrink:0}.shopping-item-remove-btn{background:none;border:none;color:var(--danger-color, #ef4444);cursor:pointer;padding:.25rem;line-height:1;font-size:1.25rem;transition:color .2s;flex-shrink:0}.shopping-item-remove-btn:hover{color:var(--danger-dark, #dc2626)}.shopping-item-fields{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:end}.shopping-item-field{display:flex;flex-direction:column;gap:.25rem}.shopping-item-field-small{max-width:80px}.shopping-item-field label{font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.025em}.shopping-item-input,.shopping-item-select{padding:.5rem .75rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9375rem;transition:border-color .2s;background:var(--surface-1, #ffffff);color:var(--text-color, #111827)}.shopping-item-input:focus,.shopping-item-select:focus{outline:none;border-color:var(--primary-color, #3b82f6)}.shopping-item-input-small{width:80px}.review-shopping-add-custom-btn{width:100%;padding:.875rem;background:var(--surface-2, #f3f4f6);border:2px dashed var(--border-color, #d1d5db);border-radius:8px;color:var(--text-secondary, #4b5563);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.review-shopping-add-custom-btn:hover{background:var(--button-hover-background, #e5e7eb);border-color:var(--chip-hover-border, #9ca3af);color:var(--text-color, #374151)}.custom-item-form{border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1.25rem;background:var(--background-light, #fafafa)}.custom-item-form h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-color, #111827)}.custom-item-fields{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;margin-bottom:1rem}.custom-item-input,.custom-item-select{padding:.625rem .875rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9375rem;background:var(--surface-1, #ffffff);color:var(--text-color, #111827)}.custom-item-input-small{width:80px}.custom-item-actions{display:flex;gap:.75rem;justify-content:flex-end}.custom-item-btn{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.custom-item-btn-cancel{background:var(--surface-1, #ffffff);border:1px solid var(--border-color, #d1d5db);color:var(--text-color, #374151)}.custom-item-btn-cancel:hover{background:var(--background-light, #f9fafb)}.custom-item-btn-add{background:var(--primary-color, #3b82f6);color:#fff}.custom-item-btn-add:hover:not(:disabled){background:var(--primary-dark, #2563eb)}.custom-item-btn-add:disabled{background:var(--text-muted, #9ca3af);cursor:not-allowed}.review-shopping-modal-footer{border-top:1px solid var(--border-color, #e5e7eb);padding:1.25rem 1.5rem;background:var(--background-light, #f9fafb);border-radius:0 0 12px 12px;position:sticky;bottom:0;z-index:10}.review-shopping-selected-count{margin-bottom:1rem;font-size:.9375rem;color:var(--text-secondary, #6b7280);font-weight:500}.review-shopping-actions{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.review-shopping-btn{padding:.875rem 1.25rem;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.25rem}.review-shopping-btn-subtitle{font-size:.75rem;font-weight:400;opacity:.8}.review-shopping-btn-secondary{background:var(--surface-1, #ffffff);border:2px solid var(--border-color, #d1d5db);color:var(--text-color, #374151)}.review-shopping-btn-secondary:hover:not(:disabled){border-color:var(--chip-hover-border, #9ca3af);background:var(--background-light, #f9fafb)}.review-shopping-btn-primary{background:var(--success-color, #10b981);color:#fff}.review-shopping-btn-primary:hover:not(:disabled){background:var(--success-dark, #059669)}.review-shopping-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.review-shopping-modal-overlay{padding:0;align-items:flex-end}.review-shopping-modal{max-height:95vh;border-radius:16px 16px 0 0;max-width:100%}.review-shopping-modal-header{padding:1rem 1.25rem;border-radius:16px 16px 0 0}.review-shopping-modal-header h2{font-size:1.125rem}.shopping-item-fields,.custom-item-fields{grid-template-columns:1fr}.shopping-item-field-small{max-width:none}.review-shopping-actions{grid-template-columns:1fr}.review-shopping-btn{padding:1rem}}@media(max-width:640px){.shopping-item-checkbox{width:24px;height:24px}.shopping-item-remove-btn,.review-shopping-modal-close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}}.shopping-btn-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.shopping-btn--full{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;background:var(--success-light, #e8f5e9);color:var(--success-color, #4caf50)}.shopping-btn--full:hover{filter:brightness(.95)}.shopping-btn--compact{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;color:var(--text-secondary, #666);background:var(--surface-2, #f0f0f0);border:none;border-radius:8px;cursor:pointer;transition:background .15s ease,color .15s ease}.shopping-btn--compact:hover{background:var(--hover-background, #e8e8e8);color:var(--success-color, #4caf50)}.shopping-btn-last-added{font-size:11px;color:var(--text-secondary, #888);padding-left:2px;white-space:nowrap}@media(max-width:640px){.shopping-btn-wrap--full{width:100%;align-items:stretch}.shopping-btn--full{width:100%;justify-content:center}}:root[data-theme=dark] .shopping-btn--full{background:var(--success-light, #14532d);color:var(--success-color, #4ade80)}:root[data-theme=dark] .shopping-btn--compact{background:var(--surface-2);color:var(--text-secondary)}:root[data-theme=dark] .shopping-btn--compact:hover{background:var(--hover-background);color:var(--success-color, #4ade80)}:root[data-theme=dark] .shopping-btn-last-added{color:var(--text-secondary)}.sdp-pantry-tracker{margin:0 0 12px;border:1px solid var(--border-color, #e8e3dc);border-radius:10px;overflow:hidden;background:var(--surface-2, #faf8f5)}.sdp-pantry-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:none;border:none;width:100%;cursor:pointer;text-align:left;color:var(--text-color, #333)}.sdp-pantry-header-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #888);flex:1}.sdp-pantry-count-chip{font-size:11px;font-weight:600;padding:1px 7px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:8px}.sdp-pantry-chevron{font-size:12px;color:var(--text-secondary, #888);transition:transform .2s ease;display:inline-block}.sdp-pantry-chevron.open{transform:rotate(90deg)}.sdp-pantry-list{border-top:1px solid var(--border-color, #e8e3dc);padding:4px 0}.sdp-pantry-item{padding:6px 14px}.sdp-pantry-item-row{display:flex;align-items:center;gap:8px;min-height:32px}.sdp-pantry-checkbox{width:17px;height:17px;flex-shrink:0;accent-color:var(--primary-color, #1976d2);cursor:pointer}.sdp-pantry-checkbox:disabled{cursor:default;opacity:.35}.sdp-pantry-item-name{font-size:13px;color:var(--text-color, #333);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdp-pantry-item-name.unmatched{color:var(--text-secondary, #888)}.sdp-pantry-link-select{font-size:11px;padding:2px 4px;border-radius:6px;border:1px solid var(--border-color, #e8e3dc);background:var(--surface-1, #fff);color:var(--text-secondary, #888);cursor:pointer;flex-shrink:0;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdp-pantry-link-select:focus{outline:none;border-color:var(--primary-color, #1976d2);color:var(--text-color, #333)}.sdp-pantry-slider-row{display:flex;align-items:center;gap:8px;padding:4px 0 2px 25px}.sdp-pantry-slider{flex:1;height:4px;accent-color:var(--primary-color, #1976d2);cursor:pointer}.sdp-pantry-slider-label{font-size:11px;color:var(--text-secondary, #888);min-width:52px;text-align:right;white-space:nowrap}:root[data-theme=dark] .sdp-pantry-tracker{background:var(--surface-2, #2a2520);border-color:var(--border-color, #3a3530)}:root[data-theme=dark] .sdp-pantry-link-select{background:var(--surface-2, #2a2520);color:var(--text-secondary, #888);border-color:var(--border-color, #3a3530)}@media(max-width:640px){.sdp-pantry-slider-row{flex-wrap:wrap}.sdp-pantry-slider{min-width:0}}.selected-day-panel{background:var(--surface-1, #ffffff);margin:16px 24px 24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;color:var(--text-color, #333)}.sdp-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 12px;border-bottom:1px solid var(--border-color, #e8e3dc);gap:12px}.sdp-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.sdp-date{font-size:15px;font-weight:700;color:var(--text-color, #333);white-space:nowrap}.sdp-badge{font-size:11px;font-weight:600;padding:2px 9px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:10px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.sdp-count{font-size:12px;color:var(--text-secondary, #888);white-space:nowrap;flex-shrink:0}.sdp-meal-slots{display:flex;flex-direction:column}.sdp-empty-slot{display:flex;align-items:center;gap:10px;padding:8px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-color, #f0ece8);cursor:pointer;text-align:left;width:100%;transition:background .12s ease,color .12s ease;color:var(--text-muted, #b0b8c4)}.sdp-empty-slot:last-child{border-bottom:none}.sdp-empty-slot:hover{background:var(--hover-background, #f8f9fa);color:var(--primary-color, #667eea)}.sdp-slot-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0;opacity:.5}.sdp-slot-label{font-size:12px;font-weight:400;flex:1}.sdp-plus{font-size:16px;font-weight:300;color:var(--text-muted, #d0d5dd);line-height:1;opacity:.7}.sdp-meal-section{border-bottom:1px solid var(--border-color, #e8e3dc)}.sdp-meal-slots>.sdp-meal-section:last-child,.sdp-meal-slots>.sdp-empty-slot:last-child{border-bottom:none}.sdp-recipe-card-wrapper{display:flex;align-items:center}.sdp-recipe-card-wrapper .sdp-recipe-card{flex:1;width:auto}.sdp-remove-btn{width:32px;height:32px;flex-shrink:0;margin-right:8px;background:none;border:none;border-radius:50%;cursor:pointer;font-size:20px;line-height:1;color:var(--text-muted, #ccc);display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.sdp-remove-btn:hover{background:#dc262614;color:#dc2626}.sdp-add-another{display:flex;align-items:center;gap:10px;padding:6px 16px;background:transparent;border:none;border-top:1px dashed var(--border-color, #e8e3dc);cursor:pointer;text-align:left;width:100%;color:var(--text-muted, #b0b8c4);transition:background .12s ease,color .12s ease}.sdp-add-another:hover{background:var(--hover-background, #f8f9fa);color:var(--primary-color, #667eea)}.sdp-meal-row{border-bottom:1px solid var(--border-color, #f0ece8)}.sdp-meal-section .sdp-meal-row:last-of-type{border-bottom:none}.sdp-recipe-card{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 16px;background:transparent;border:none;border-bottom:none;cursor:pointer;text-align:left;width:100%;transition:background .12s ease}.sdp-recipe-card:hover{background:var(--hover-background, #f8f9fa)}.sdp-recipe-card.expanded{background:var(--hover-background, #f8f9fa);border-bottom:1px solid var(--border-color, #e8e3dc)}.sdp-thumb{width:60px;height:60px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--surface-2, #f0f0f0)}.sdp-thumb img{width:100%;height:100%;object-fit:cover}.sdp-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--surface-2, #f0f0f0)}.sdp-recipe-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sdp-meal-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary, #888)}.sdp-recipe-title{font-size:15px;font-weight:600;color:var(--text-color, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdp-meta-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.sdp-meta-pill{font-size:11px;color:var(--text-secondary, #888);background:var(--surface-2, #f0f0f0);padding:1px 7px;border-radius:8px}.sdp-chevron{font-size:22px;color:var(--text-muted, #ccc);flex-shrink:0;line-height:1;transition:transform .2s ease}.sdp-chevron.expanded{transform:rotate(90deg)}.sdp-recipe-expanded{padding:16px 20px 20px;background:var(--surface-1, #ffffff)}.sdp-recipe-expanded .recipe-markdown-content{font-size:14px;line-height:1.75;color:var(--text-color, #333)}.sdp-expanded-header{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;margin-bottom:12px}.sdp-fullscreen-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;color:var(--text-secondary, #888);background:var(--surface-2, #f0f0f0);border:none;border-radius:8px;cursor:pointer;transition:background .15s ease,color .15s ease}.sdp-fullscreen-btn:hover{background:var(--hover-background, #e8e8e8);color:var(--primary-color, #667eea)}.sdp-fullscreen-overlay{position:fixed;inset:0;z-index:500;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;animation:sdp-fade-in .2s ease}@keyframes sdp-fade-in{0%{opacity:0}to{opacity:1}}.sdp-fullscreen-content{position:relative;background:var(--surface-1, #ffffff);border-radius:12px;max-width:800px;width:100%;max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 20px 60px #0006}.sdp-fullscreen-close{position:sticky;top:0;right:0;float:right;margin:16px 16px 0 0;padding:10px;background:var(--surface-2, #f0f0f0);border:none;border-radius:8px;cursor:pointer;color:var(--text-secondary, #666);z-index:1;transition:background .15s ease}.sdp-fullscreen-close:hover{background:var(--hover-background, #e0e0e0)}.sdp-fullscreen-body{padding:24px 32px 40px;clear:both}.sdp-fullscreen-photo{width:100%;max-height:400px;overflow:hidden;border-radius:8px;margin-bottom:24px}.sdp-fullscreen-photo img{width:100%;height:100%;object-fit:cover}.sdp-fullscreen-title{font-size:28px;font-weight:700;color:var(--text-color, #333);margin:0 0 12px;line-height:1.25}.sdp-fullscreen-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.sdp-meta-pill--total{font-weight:600;color:var(--text-color, #333)}.sdp-fullscreen-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.sdp-fullscreen-text{font-size:16px;line-height:1.75;color:var(--text-color, #333)}@media(max-width:640px){.selected-day-panel{margin:12px 16px 16px;border-radius:8px}.sdp-header{padding:12px 16px 10px}.sdp-date{font-size:14px}.sdp-empty-slot{padding:7px 14px}.sdp-recipe-card{padding:10px 12px 10px 14px}.sdp-thumb{width:50px;height:50px;border-radius:8px}}:root[data-theme=dark] .selected-day-panel{background:var(--surface-1);box-shadow:var(--elevation-2)}:root[data-theme=dark] .sdp-header{border-bottom-color:var(--border-color)}:root[data-theme=dark] .sdp-date{color:var(--text-color)}:root[data-theme=dark] .sdp-badge{background:var(--primary-light);color:var(--primary-color)}:root[data-theme=dark] .sdp-count{color:var(--text-secondary)}:root[data-theme=dark] .sdp-empty-slot{border-bottom-color:var(--border-color);color:var(--text-muted)}:root[data-theme=dark] .sdp-empty-slot:hover{background:var(--hover-background);color:var(--primary-color)}:root[data-theme=dark] .sdp-meal-section{border-bottom-color:var(--border-color)}:root[data-theme=dark] .sdp-meal-row{border-bottom-color:var(--border-color)}:root[data-theme=dark] .sdp-add-another{border-top-color:var(--border-color);color:var(--text-muted)}:root[data-theme=dark] .sdp-add-another:hover{background:var(--hover-background);color:var(--primary-color)}:root[data-theme=dark] .sdp-remove-btn{color:var(--text-muted)}:root[data-theme=dark] .sdp-remove-btn:hover{background:#dc262626;color:#f87171}:root[data-theme=dark] .sdp-recipe-card:hover,:root[data-theme=dark] .sdp-recipe-card.expanded{background:var(--hover-background)}:root[data-theme=dark] .sdp-recipe-card.expanded{border-bottom-color:var(--border-color)}:root[data-theme=dark] .sdp-thumb-placeholder{background:var(--surface-2)}:root[data-theme=dark] .sdp-meal-label{color:var(--text-secondary)}:root[data-theme=dark] .sdp-recipe-title{color:var(--text-color)}:root[data-theme=dark] .sdp-meta-pill{background:var(--surface-2);color:var(--text-secondary)}:root[data-theme=dark] .sdp-chevron{color:var(--text-muted)}:root[data-theme=dark] .sdp-recipe-expanded{background:var(--surface-1)}:root[data-theme=dark] .sdp-recipe-expanded .recipe-markdown-content{color:var(--text-color)}:root[data-theme=dark] .sdp-fullscreen-btn{background:var(--surface-2);color:var(--text-secondary)}:root[data-theme=dark] .sdp-fullscreen-btn:hover{background:var(--hover-background);color:var(--primary-color)}:root[data-theme=dark] .sdp-fullscreen-content{background:var(--surface-1)}:root[data-theme=dark] .sdp-fullscreen-close{background:var(--surface-2);color:var(--text-secondary)}:root[data-theme=dark] .sdp-fullscreen-close:hover{background:var(--hover-background)}:root[data-theme=dark] .sdp-fullscreen-title{color:var(--text-color)}:root[data-theme=dark] .sdp-fullscreen-text{color:var(--text-color)}:root[data-theme=dark] .sdp-meta-pill--total{color:var(--text-color)}.day-strip-view{display:flex;flex-direction:column;gap:0;background:var(--surface-1, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0)}.dstrip-nav{display:flex;align-items:center;gap:8px;padding:8px 12px 6px}.dstrip-month-label{flex:1;font-size:13px;font-weight:700;color:var(--text-color, #333);text-align:center}.dstrip-nav-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:var(--button-background, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;color:var(--text-color, #333);font-size:20px;cursor:pointer;flex-shrink:0;line-height:1;transition:background .12s ease}.dstrip-nav-btn:hover{background:var(--button-hover-background, #e0e0e0)}.dstrip-nav-btn:active{transform:scale(.92)}.dstrip-today-btn{padding:5px 12px;background:var(--primary-color, #667eea);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s ease;flex-shrink:0}.dstrip-today-btn:hover{background:var(--primary-dark, #5a67d8)}.dstrip-days{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:4px 8px 8px;gap:4px}.dstrip-days::-webkit-scrollbar{display:none}.dstrip-day{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 5px;min-width:40px;flex:1;background:transparent;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.dstrip-day:hover{background:var(--hover-background, #f7fafc)}.dstrip-day.today .dstrip-day-num{background:var(--primary-color, #667eea);color:#fff}.dstrip-day.selected{border-color:var(--primary-color, #667eea);background:var(--primary-light, #f0f4ff)}.dstrip-day-name{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;color:var(--text-secondary, #666);line-height:1}.dstrip-day-num{font-size:15px;font-weight:700;color:var(--text-color, #333);line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.dstrip-dots{display:flex;gap:3px;height:6px;align-items:center}.dstrip-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}:root[data-theme=dark] .day-strip-view{background:var(--surface-1);border-bottom-color:var(--border-color)}:root[data-theme=dark] .dstrip-month-label{color:var(--text-color)}:root[data-theme=dark] .dstrip-nav-btn{background:var(--button-background);border-color:var(--border-color);color:var(--text-color)}:root[data-theme=dark] .dstrip-nav-btn:hover{background:var(--button-hover-background)}:root[data-theme=dark] .dstrip-day:hover{background:var(--hover-background)}:root[data-theme=dark] .dstrip-day.selected{border-color:var(--primary-color);background:var(--primary-light)}:root[data-theme=dark] .dstrip-day-name{color:var(--text-secondary)}:root[data-theme=dark] .dstrip-day-num{color:var(--text-color)}.day-feed{display:flex;flex-direction:column;overflow-y:auto;flex:1;position:relative;background:var(--surface-2, #f4f6f9);padding:10px 10px 20px;gap:10px}.day-feed-section{display:flex;flex-direction:column;background:var(--surface-1, #ffffff);border-radius:16px;border:1px solid var(--border-color, #e8edf3);box-shadow:0 1px 4px #0000000d;overflow:visible}.day-feed-section.past{opacity:.72}.day-feed-section.past .dfs-label{color:var(--text-muted, #94a3b8)}.day-feed-section.today{border-color:var(--primary-color, #667eea);box-shadow:0 2px 12px #6366f11f;opacity:1}.dfs-day-header{display:flex;align-items:center;gap:8px;padding:11px 14px 9px;background:var(--surface-1, #ffffff);border-bottom:1px solid var(--border-color, #e8edf3);border-radius:16px 16px 0 0;position:sticky;top:0;z-index:5}.day-feed-section.today .dfs-day-header{background:var(--primary-light, #f0f4ff)}.dfs-label{font-size:13px;font-weight:700;color:var(--text-color, #333);flex:1;letter-spacing:.1px}.dfs-today-badge{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;padding:3px 9px;background:var(--primary-color, #667eea);color:#fff;border-radius:20px}.dfs-meal-count{font-size:10px;font-weight:600;color:var(--text-secondary, #888);white-space:nowrap;background:var(--surface-2, #f4f6f9);padding:2px 8px;border-radius:10px}.day-feed-section .selected-day-panel{margin:0;border-radius:0 0 16px 16px;box-shadow:none;border:none}.day-feed-section .sdp-header{display:none}:root[data-theme=dark] .day-feed{background:var(--surface-3, #0f172a)}:root[data-theme=dark] .day-feed-section{background:var(--surface-1);border-color:var(--border-color);box-shadow:0 1px 4px #00000040}:root[data-theme=dark] .day-feed-section.today{border-color:var(--primary-color);box-shadow:0 2px 12px #818cf82e}:root[data-theme=dark] .dfs-day-header{background:var(--surface-1);border-bottom-color:var(--border-color)}:root[data-theme=dark] .day-feed-section.today .dfs-day-header{background:var(--primary-light)}:root[data-theme=dark] .dfs-label{color:var(--text-color)}:root[data-theme=dark] .dfs-meal-count{color:var(--text-secondary);background:var(--surface-2)}.meal-planner{width:100%;min-height:100vh;background:var(--page-background);padding-bottom:40px;--page-background: var(--color-surface-variant, #f8f9fa);--surface-1: var(--color-surface, #ffffff);--surface-2: var(--color-surface-variant, #f8f9fa);--surface-3: var(--color-surface-container, #f7fafc);--border-color: var(--color-outline, #e2e8f0);--text-color: var(--color-on-surface, #333333);--text-secondary: var(--color-on-surface-variant, #666666);--text-muted: #94a3b8;--primary-color: var(--color-primary, #667eea);--primary-dark: #5a67d8;--primary-light: var(--color-primary-container, #f0f4ff);--success-color: var(--color-success, #22543d);--success-dark: #1a4731;--success-light: var(--color-success-container, #c6f6d5);--danger-color: var(--color-error, #e53e3e);--danger-dark: #c53030;--hover-background: var(--color-surface-container, #f7fafc);--button-background: var(--color-surface-container, #f7fafc);--button-hover-background: var(--color-surface-container-high, #edf2f7);--meal-background: var(--color-surface-container, #f7fafc);--meal-hover-background: var(--color-surface-container-high, #edf2f7);--chip-background: var(--color-surface, #ffffff);--chip-border: var(--color-outline, #e2e8f0);--chip-hover-background: var(--color-surface-container, #f7fafc);--chip-hover-border: var(--color-outline-variant, #cbd5e0);--skeleton-base: var(--color-surface-container, #f7fafc);--skeleton-highlight: var(--color-surface-container-high, #edf2f7);--background-color: var(--surface-1);--background-light: var(--surface-3);--header-background: var(--surface-2)}.meal-planner-header{background:var(--surface-1);padding:12px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.meal-planner-header h1{font-size:20px;font-weight:700;margin:0;color:var(--text-color, #333)}.filter-icon-btn{position:relative;background:transparent;border:none;padding:6px 8px;border-radius:10px;color:var(--text-secondary, #666);cursor:pointer;display:flex;align-items:center;transition:background .15s ease,color .15s ease;flex-shrink:0}.filter-icon-btn:hover{background:var(--hover-background);color:var(--text-color, #333)}.filter-icon-btn--active{color:var(--primary-color, #667eea)}.filter-badge{position:absolute;top:5px;right:6px;width:7px;height:7px;background:var(--primary-color, #667eea);border-radius:50%;border:1.5px solid var(--surface-1, #fff)}.planner-toolbar{background:var(--surface-1);border-bottom:1px solid var(--border-color);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px}.view-toggle{display:inline-flex;align-items:center;background:var(--surface-2, #f5f5f5);border:1.5px solid var(--border-color, #e2e8f0);border-radius:20px;padding:3px;gap:2px}.view-toggle-btn{background:transparent;border:none;border-radius:16px;padding:5px 14px;font-size:13px;font-weight:600;color:var(--text-secondary, #666);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.view-toggle-btn:hover{color:var(--text-color, #333)}.view-toggle-btn--active{background:var(--surface-1, #fff);color:var(--primary-color, #667eea);box-shadow:0 1px 3px #0000001a}.planner-filter-row{background:var(--surface-1);border-bottom:1px solid var(--border-color);padding:8px 16px;display:flex;gap:8px;align-items:center}.recipe-count{background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500}.planner-tabs{display:flex;background:var(--surface-1);border-bottom:1px solid var(--border-color);padding:0 24px;gap:4px}.planner-tab{display:flex;align-items:center;gap:7px;padding:14px 20px 12px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary, #666);font-size:15px;font-weight:600;cursor:pointer;transition:color .15s ease,border-color .15s ease;position:relative;bottom:-1px;white-space:nowrap}.planner-tab:hover{color:var(--text-color, #333)}.planner-tab.active{color:var(--primary-color, #1976d2);border-bottom-color:var(--primary-color, #1976d2)}.tab-icon{font-size:16px;line-height:1}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:10px;font-size:11px;font-weight:700}.planner-tab.active .tab-badge{background:var(--primary-color, #1976d2);color:#fff}.recipe-section-context{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--primary-light, #e3f2fd);border-bottom:1px solid var(--border-color);font-size:13px;color:var(--text-color, #333);gap:12px}.clear-date-btn{padding:4px 12px;background:transparent;border:1px solid var(--primary-color, #1976d2);border-radius:12px;color:var(--primary-color, #1976d2);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease;flex-shrink:0}.clear-date-btn:hover{background:var(--primary-color, #1976d2);color:#fff}.meal-planner-content{max-width:1400px;margin:0 auto}.calendar-section{background:var(--surface-1, #ffffff);margin:24px 24px 0;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;color:var(--text-color, #333)}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px;flex-wrap:wrap}.feed-range-toggle{display:inline-flex;align-items:center;background:var(--surface-2, #f5f5f5);border:1.5px solid var(--border-color, #e2e8f0);border-radius:20px;padding:3px;gap:2px}.feed-range-btn{background:transparent;border:none;border-radius:16px;padding:5px 16px;font-size:13px;font-weight:600;color:var(--text-secondary, #666);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.feed-range-btn:hover{color:var(--text-color, #333)}.feed-range-btn--active{background:var(--surface-1, #fff);color:var(--primary-color, #667eea);box-shadow:0 1px 3px #0000001a}:root[data-theme=dark] .feed-range-btn--active{background:var(--surface-3)}.recipe-section{background:var(--surface-1, #ffffff);margin:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.meal-planner-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.loading-spinner{width:48px;height:48px;border:4px solid #e0e0e0;border-top-color:#4caf50;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.meal-planner--feed{display:flex;flex-direction:column;height:calc(100dvh - 140px);overflow:hidden}.main-content.nav-hidden .meal-planner--feed{height:calc(100dvh - 60px)}.meal-planner--feed .day-strip-view{flex-shrink:0}.meal-planner--feed .day-feed{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(max-width:767px){.meal-planner-header{padding:8px 12px;gap:8px}.meal-planner-header h1{font-size:18px}}@media(max-width:640px){.planner-tabs{padding:0 12px}.planner-tab{flex:1;justify-content:center;padding:12px 10px 10px;font-size:14px;gap:5px}.tab-icon{font-size:15px}.calendar-section{margin:16px 16px 0;padding:16px;border-radius:8px}.calendar-controls{gap:8px}.recipe-section{margin:16px;border-radius:8px}.recipe-count{font-size:13px;padding:6px 12px}}:root[data-theme=dark] .meal-planner{--page-background: var(--color-surface, #0f172a);--surface-1: var(--color-surface-container, #1e293b);--surface-2: var(--color-surface-container-high, #334155);--surface-3: var(--color-surface, #0f172a);--border-color: var(--color-outline, #334155);--text-color: var(--color-on-surface, #f1f5f9);--text-secondary: var(--color-on-surface-variant, #94a3b8);--text-muted: #64748b;--primary-color: var(--color-primary, #818cf8);--primary-dark: #6366f1;--primary-light: var(--color-primary-container, #312e81);--success-color: var(--color-success, #4ade80);--success-dark: #22c55e;--success-light: var(--color-success-container, #14532d);--danger-color: var(--color-error, #f87171);--danger-dark: #ef4444;--hover-background: var(--color-surface-container-high, #334155);--button-background: var(--color-surface-container, #1e293b);--button-hover-background: var(--color-surface-container-high, #334155);--meal-background: var(--color-surface-container, #1e293b);--meal-hover-background: var(--color-surface-container-high, #334155);--chip-background: var(--color-surface-container, #1e293b);--chip-border: var(--color-outline, #334155);--chip-hover-background: var(--color-surface-container-high, #334155);--chip-hover-border: var(--color-outline-variant, #475569);--skeleton-base: var(--color-surface-container, #1e293b);--skeleton-highlight: var(--color-surface-container-high, #334155)}:root[data-theme=dark] .planner-tabs{background:var(--surface-1);border-bottom-color:var(--border-color)}:root[data-theme=dark] .planner-tab{color:var(--text-secondary)}:root[data-theme=dark] .planner-tab:hover{color:var(--text-color)}:root[data-theme=dark] .planner-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}:root[data-theme=dark] .tab-badge{background:var(--primary-light);color:var(--primary-color)}:root[data-theme=dark] .planner-tab.active .tab-badge{background:var(--primary-color);color:#fff}:root[data-theme=dark] .recipe-section-context{background:var(--primary-light);border-bottom-color:var(--border-color);color:var(--text-color)}:root[data-theme=dark] .clear-date-btn{border-color:var(--primary-color);color:var(--primary-color)}:root[data-theme=dark] .clear-date-btn:hover{background:var(--primary-color);color:#fff}:root[data-theme=dark] .meal-planner-header{background:var(--surface-1);border-bottom-color:var(--border-color)}:root[data-theme=dark] .meal-planner-header h1{color:var(--text-color)}:root[data-theme=dark] .view-toggle,:root[data-theme=dark] .feed-range-toggle{background:var(--surface-2);border-color:var(--border-color)}:root[data-theme=dark] .view-toggle-btn--active,:root[data-theme=dark] .feed-range-btn--active{background:var(--surface-3)}:root[data-theme=dark] .filter-badge{border-color:var(--surface-1)}:root[data-theme=dark] .recipe-count{background:var(--primary-light);color:var(--primary-color)}:root[data-theme=dark] .calendar-section{background:var(--surface-1);border:1px solid var(--border-color);box-shadow:var(--elevation-2);color:var(--text-color)}:root[data-theme=dark] .recipe-section{background:var(--surface-1)}:root[data-theme=dark] .loading-spinner{border-color:var(--border-color);border-top-color:var(--success-color)}.selection-action-bar{position:fixed;bottom:var(--spacing-xl);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:1001;animation:selectionBarEnter var(--motion-duration-long) var(--motion-easing-emphasized-decelerate)}@keyframes selectionBarEnter{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)}}.selection-action-bar-content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-md)}.selection-count{font-size:.9rem;font-weight:var(--font-weight-medium);white-space:nowrap;min-width:80px}.selection-actions{display:flex;gap:var(--spacing-xs);flex:1;justify-content:center}.selection-action-btn{display:flex;align-items:center;gap:var(--spacing-xs);background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--color-inverse-on-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);min-height:40px}.selection-action-btn:hover{background:#ffffff1a}.selection-action-btn:active{transform:scale(.95)}.selection-action-btn.restore{color:var(--color-primary);border-color:var(--color-primary)}.selection-action-btn.complete{color:var(--color-success);border-color:var(--color-success)}.selection-action-btn.delete{color:var(--color-error);border-color:var(--color-error)}.action-icon{font-size:1rem}.action-label{font-size:.85rem;font-weight:var(--font-weight-medium)}.selection-done-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-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);min-height:40px}.selection-done-btn:hover{transform:translateY(-1px);box-shadow:var(--elevation-2)}@media(max-width:480px){.selection-action-bar{left:var(--spacing-sm);right:var(--spacing-sm);transform:none;max-width:none;min-width:auto}@keyframes selectionBarEnter{0%{opacity:0;transform:translateY(100%) scale(.8)}60%{opacity:1;transform:translateY(-8px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.action-label{display:none}.selection-action-btn{padding:var(--spacing-sm)}.selection-action-bar-content{padding:var(--spacing-sm) var(--spacing-md)}}@supports (padding-bottom: env(safe-area-inset-bottom)){.selection-action-bar{bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom))}}.mtp-sheet{display:flex;flex-direction:column;gap:var(--spacing-md, 12px);padding:0 var(--spacing-xl, 20px) var(--spacing-xl, 20px)}.mtp-group-label{font-size:.72rem;font-weight:var(--font-weight-medium, 500);text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant);margin:0 0 var(--spacing-sm, 8px)}.mtp-item-card{background:var(--color-surface-container-highest, #25252b);border-radius:var(--radius-lg, 12px);padding:var(--spacing-md, 12px) var(--spacing-lg, 16px);display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.mtp-item-main{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm, 8px)}.mtp-item-name{font-size:.95rem;font-weight:var(--font-weight-medium, 500);color:var(--color-on-surface);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtp-item-qty{font-size:.82rem;color:var(--color-on-surface-variant);flex-shrink:0}.mtp-location-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:var(--font-weight-medium, 500);padding:3px 10px;border-radius:var(--radius-full, 999px);border:none;cursor:pointer;transition:opacity .15s}.mtp-location-pill:active{opacity:.7}.mtp-location-pill.loc-fridge{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary)}.mtp-location-pill.loc-freezer{background:color-mix(in srgb,#7ecfff 15%,transparent);color:#7ecfff}.mtp-location-pill.loc-pantry{background:var(--color-surface-container-high, #1f1f24);color:var(--color-on-surface-variant)}.mtp-location-picker{display:flex;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.mtp-location-option{flex:1;min-width:80px;padding:var(--spacing-sm, 8px);background:var(--color-surface-container-high, #1f1f24);color:var(--color-on-surface-variant);border:1px solid transparent;border-radius:var(--radius-md, 8px);font-size:.82rem;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.mtp-location-option.active,.mtp-location-option:hover{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-container-high, #1f1f24));border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);color:var(--color-on-surface)}.mtp-footer{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px);padding-top:var(--spacing-md, 12px)}.mtp-footer-hint{font-size:.78rem;color:var(--color-on-surface-variant);text-align:center;margin:0}.mtp-pro-hint{color:var(--color-primary);cursor:pointer}.mtp-btn-primary{width:100%;padding:var(--spacing-lg, 16px);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-container));color:var(--color-on-primary);border:none;border-radius:var(--radius-lg, 12px);font-size:1rem;font-weight:var(--font-weight-semibold, 600);cursor:pointer;transition:opacity .15s}.mtp-btn-primary:active{opacity:.85}.mtp-btn-ghost{width:100%;padding:var(--spacing-md, 12px);background:transparent;color:var(--color-primary);border:none;font-size:.95rem;font-weight:var(--font-weight-medium, 500);cursor:pointer}.mtp-success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md, 12px);padding:var(--spacing-xl, 20px) var(--spacing-xl, 20px) var(--spacing-2xl, 32px);text-align:center}.mtp-success-icon{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--color-success, #4caf50) 15%,transparent);color:var(--color-success, #4caf50);font-size:1.6rem;display:flex;align-items:center;justify-content:center}.mtp-success-text{font-size:1rem;font-weight:var(--font-weight-medium, 500);color:var(--color-on-surface);margin:0}.mtp-success-hint{font-size:.82rem;color:var(--color-on-surface-variant);margin:0}.mtp-receipt-linker{display:flex;flex-direction:column;gap:var(--spacing-xs, 6px);padding-bottom:var(--spacing-sm, 8px);border-bottom:1px solid var(--color-outline-variant, #2a2a2e);margin-bottom:var(--spacing-xs, 6px)}.mtp-match-label{font-size:.75rem;font-weight:var(--font-weight-medium, 500);text-transform:uppercase;letter-spacing:.05em;color:var(--color-on-surface-variant);margin:0}.mtp-receipt-pills{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px)}.mtp-receipt-pill{padding:6px var(--spacing-md, 12px);background:var(--color-surface-container-high, #1f1f24);color:var(--color-on-surface-variant);border:1px solid var(--color-outline-variant, #2a2a2e);border-radius:var(--radius-full, 999px);font-size:.82rem;font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mtp-receipt-pill.selected{background:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface-container-high, #1f1f24));border-color:var(--color-primary);color:var(--color-primary)}.subscription-settings{max-width:72rem;margin:0 auto;padding:var(--spacing-2xl) var(--spacing-lg)}.subscription-settings__header{margin-bottom:var(--spacing-2xl)}.subscription-settings__title{font-size:1.875rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin-bottom:var(--spacing-sm)}.subscription-settings__subtitle{color:var(--color-on-surface-variant);margin-top:var(--spacing-sm)}.subscription-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--elevation-1);border:1px solid var(--color-outline);padding:var(--spacing-xl);margin-bottom:var(--spacing-2xl);transition:box-shadow var(--motion-duration-medium) var(--motion-easing-standard)}.subscription-card:hover{box-shadow:var(--elevation-2)}.subscription-card__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-xl)}.subscription-card__title{font-size:1.25rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface)}.subscription-card__status{color:var(--color-on-surface-variant);margin-top:var(--spacing-xs)}.button-outlined{padding:.625rem 1.5rem;border:2px solid var(--color-outline-variant);border-radius:var(--radius-xl);background:var(--color-surface);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);box-shadow:var(--elevation-1)}.button-outlined:hover{background:var(--color-surface-variant);border-color:var(--color-outline);box-shadow:var(--elevation-2)}.button-outlined:active{transform:scale(.95)}.usage-progress{margin-bottom:var(--spacing-xl)}.usage-progress__label{display:flex;justify-content:space-between;font-size:.875rem;color:var(--color-on-surface-variant);margin-bottom:var(--spacing-sm)}.usage-progress__count{font-weight:var(--font-weight-medium)}.usage-progress__track{width:100%;background:var(--color-surface-container);border-radius:var(--radius-full);height:10px;overflow:hidden;box-shadow:inset 0 1px 2px #0000001a}.usage-progress__fill{height:100%;border-radius:var(--radius-full);transition:width var(--motion-duration-extra-long) var(--motion-easing-emphasized-decelerate)}.usage-progress__fill--success{background:linear-gradient(90deg,#10b981,#059669)}.usage-progress__fill--warning{background:linear-gradient(90deg,#f59e0b,#d97706)}.usage-progress__fill--error{background:linear-gradient(90deg,#ef4444,#dc2626)}.usage-progress__remaining{font-size:.75rem;color:var(--color-on-surface-variant);margin-top:var(--spacing-sm)}.billing-toggle{display:flex;justify-content:center;margin-bottom:var(--spacing-2xl)}.billing-toggle__container{display:inline-flex;background:var(--color-surface-container);border-radius:var(--radius-xl);padding:var(--spacing-xs);box-shadow:inset 0 1px 3px #0000001a}.billing-toggle__button{padding:.625rem 1.5rem;border-radius:var(--radius-lg);font-size:.875rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--motion-duration-medium) var(--motion-easing-standard);border:none;background:transparent;color:var(--color-on-surface-variant);position:relative}.billing-toggle__button:hover{color:var(--color-on-surface)}.billing-toggle__button--active{background:var(--color-surface);color:var(--color-on-surface);box-shadow:var(--elevation-2)}.billing-toggle__badge{position:absolute;top:-.5rem;right:-.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.75rem;padding:.125rem .5rem;border-radius:var(--radius-full);box-shadow:var(--elevation-1)}.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.pricing-card{position:relative;border-radius:var(--radius-2xl);padding:var(--spacing-xl);transition:all var(--motion-duration-medium) var(--motion-easing-emphasized);background:var(--color-surface);border:2px solid var(--color-outline);box-shadow:var(--elevation-1)}.pricing-card:hover{box-shadow:var(--elevation-2);border-color:var(--color-outline-variant);transform:translateY(-2px)}.pricing-card--recommended{background:linear-gradient(135deg,#f3e8ff,#fff);border:2px solid #a855f7;box-shadow:var(--elevation-3),0 0 0 2px #a855f733}.pricing-card--recommended:hover{box-shadow:var(--elevation-4),0 0 0 2px #a855f733;transform:translateY(-4px)}.pricing-card--current{background:linear-gradient(135deg,#d1fae5,#fff);border:2px solid #10b981;box-shadow:var(--elevation-2),0 0 0 2px #10b98133}.pricing-card--current:hover{box-shadow:var(--elevation-3),0 0 0 2px #10b98133;transform:translateY(-2px)}.pricing-card__badge{position:absolute;top:-.75rem;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#9333ea,#a855f7);color:#fff;font-size:.75rem;font-weight:var(--font-weight-semibold);padding:.375rem 1rem;border-radius:var(--radius-full);box-shadow:var(--elevation-3),0 0 16px #9333ea40}.pricing-card__header{text-align:center;margin-bottom:var(--spacing-xl)}.pricing-card__name{font-size:1.5rem;font-weight:var(--font-weight-semibold);color:var(--color-on-surface);margin-bottom:var(--spacing-sm)}.pricing-card__price-container{display:flex;align-items:baseline;justify-content:center;gap:.25rem}.pricing-card__price{font-size:2.5rem;font-weight:var(--font-weight-semibold)}.pricing-card__price-period{color:var(--color-on-surface-variant)}.pricing-card__savings{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:var(--radius-full);background:#d1fae5;border:1px solid #10b981;margin-top:var(--spacing-sm)}.pricing-card__savings-text{font-size:.875rem;font-weight:var(--font-weight-semibold);color:#065f46}.features-list{list-style:none;padding:0;margin:0 0 var(--spacing-2xl) 0}.features-list__item{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.875rem;color:var(--color-on-surface);margin-bottom:var(--spacing-md)}.features-list__icon{color:#22c55e;margin-top:.125rem;flex-shrink:0}.button-cta{width:100%;padding:1rem 1.5rem;border-radius:var(--radius-xl);font-weight:var(--font-weight-semibold);color:#fff;border:none;cursor:pointer;transition:all var(--motion-duration-short) var(--motion-easing-standard);box-shadow:var(--elevation-2);font-size:1rem}.button-cta:hover{box-shadow:var(--elevation-3)}.button-cta:active{transform:scale(.98)}.button-cta--disabled{background:var(--color-surface-variant);color:var(--color-on-surface-variant);box-shadow:none;cursor:not-allowed;opacity:.5}.button-cta--primary{background:linear-gradient(135deg,#1f2937,#374151)}.button-cta--primary:hover{background:linear-gradient(135deg,#111827,#1f2937)}.button-cta--recommended{background:linear-gradient(135deg,#9333ea,#a855f7)}.button-cta--recommended:hover{background:linear-gradient(135deg,#7e22ce,#9333ea);box-shadow:var(--elevation-4),0 0 20px #9333ea40}.button-cta--outlined{background:transparent;color:var(--color-on-surface);border:2px solid var(--color-outline);box-shadow:none}.button-cta--outlined:hover{background:var(--color-surface-variant);border-color:#f59e0b;color:#78350f;box-shadow:var(--elevation-1)}.subscription-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;z-index:1000;background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff;border-radius:var(--radius-2xl);box-shadow:var(--elevation-4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--motion-duration-medium) var(--motion-easing-emphasized)}.subscription-banner:hover{box-shadow:var(--elevation-5)}.subscription-banner--blocked{background:linear-gradient(135deg,#dc2626,#ef4444)}.subscription-banner__content{padding:var(--spacing-lg)}.subscription-banner__main{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.subscription-banner__message{flex:1;min-width:0}.subscription-banner__title{font-weight:var(--font-weight-semibold);font-size:.875rem;margin-bottom:.25rem}.subscription-banner__description{font-size:.75rem;opacity:.95}.subscription-banner__button{padding:.5rem 1rem;border-radius:var(--radius-xl);font-weight:var(--font-weight-medium);font-size:.875rem;flex-shrink:0;background:#fff;color:#1f2937;border:none;cursor:pointer;box-shadow:var(--elevation-2);transition:all var(--motion-duration-short) var(--motion-easing-standard)}.subscription-banner__button:hover{background:#f9fafb;box-shadow:var(--elevation-3)}.subscription-banner__button:active{transform:scale(.95)}.subscription-banner__pricing{padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,.2);font-size:.75rem;opacity:.9}.subscription-banner__pricing>div{margin-bottom:.25rem}.subscription-banner__pricing>div:last-child{margin-bottom:0}.support-message{background:linear-gradient(135deg,#dbeafe,#eff6ff);border:1px solid #3b82f6;border-radius:var(--radius-xl);padding:var(--spacing-xl);text-align:center;box-shadow:var(--elevation-1)}.support-message__text{color:var(--color-on-surface);line-height:1.6}.support-message__emphasis{font-weight:var(--font-weight-medium)}:root[data-theme=dark] .support-message{background:linear-gradient(135deg,#1e3a5f,#0f2741);border:1px solid #3b82f6}:root[data-theme=dark] .support-message__text{color:#e0f2fe}@media(min-width:768px){.subscription-banner{left:auto;right:1rem;max-width:28rem}}@media(max-width:640px){.subscription-settings{padding:var(--spacing-lg) var(--spacing-md)}.subscription-card{padding:var(--spacing-lg)}.subscription-card__header{flex-direction:column;gap:var(--spacing-md)}.pricing-cards{grid-template-columns:1fr}}.sync-status-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffffeb;border:1px solid rgba(255,255,255,.5);border-radius:20px;cursor:pointer;transition:all .2s;position:relative;font-size:14px;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sync-status-badge:hover{background:#fff;border-color:#4caf50;box-shadow:0 2px 8px #4caf5040}.sync-status-badge.locked{border-color:#ff9800b3;background:#fff3e0eb}.sync-status-badge.locked:hover{border-color:#ff9800;box-shadow:0 2px 8px #ff98004d}.sync-status-badge.syncing{border-color:#2196f3b3;animation:badge-pulse 1.5s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1;box-shadow:0 0 #2196f366}50%{opacity:.85;box-shadow:0 0 0 4px #2196f300}}.sync-status-badge.paused{border-color:#ff9800b3;background:#fff8e1eb}.sync-status-badge.paused:hover{border-color:#f57c00;box-shadow:0 2px 8px #ff98004d}.sync-status-badge.paused .sync-status-text{color:#e65100}.sync-status-badge.sync-disabled{border-color:#9e9e9e80;background:#f5f5f5e0}.sync-status-badge.sync-disabled:hover{border-color:#757575;box-shadow:0 2px 8px #0000001a}.sync-status-badge.sync-disabled .sync-status-text{color:#616161}.sync-status-icon{display:flex;align-items:center;flex-shrink:0}.sync-status-icon.syncing{animation:sync-icon-bob 1s ease-in-out infinite}@keyframes sync-icon-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.sync-status-badge.icon-only{padding:8px}.sync-status-text{font-weight:500;color:#333}.sync-status-badge.locked .sync-status-text{color:#e65100}.sync-tooltip{position:absolute;top:calc(100% + 10px);right:0;background:#0f172af2;color:#fff;padding:12px 16px;border-radius:8px;white-space:nowrap;z-index:1000;box-shadow:0 4px 16px #0000004d;animation:panel-appear .2s ease-out}.sync-tooltip:before{content:"";position:absolute;bottom:100%;right:18px;border:6px solid transparent;border-bottom-color:#0f172af2}@keyframes panel-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sync-tooltip-content{text-align:left}.sync-tooltip-content strong{display:block;font-size:14px;margin-bottom:6px;color:#fff}.sync-tooltip-content p{margin:4px 0;font-size:13px;color:#ffffffe6}.sync-tooltip-content small{display:block;margin-top:8px;font-size:11px;color:#fff9;font-style:italic}.sync-settings-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 20px #0000001f;z-index:1000;min-width:190px;padding:8px;animation:panel-appear .15s ease-out}.sync-settings-title{font-size:11px;font-weight:600;color:#9e9e9e;text-transform:uppercase;letter-spacing:.5px;padding:4px 8px 8px}.sync-settings-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;border-radius:8px;font-size:14px;text-align:left;color:#333;transition:background .15s;gap:8px}.sync-settings-option:hover{background:#f5f5f5}.sync-settings-option.selected{background:#e8f5e9;color:#2e7d32;font-weight:500}.sync-settings-queue-count{font-size:11px;color:#e65100;background:#fff3e0;border-radius:10px;padding:2px 7px;font-weight:500;white-space:nowrap}:root[data-theme=dark] .sync-status-badge{background:#ffffff1a;border-color:#ffffff2e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}:root[data-theme=dark] .sync-status-badge:hover{background:#ffffff29;border-color:#4ade80;box-shadow:0 2px 8px #4ade8033}:root[data-theme=dark] .sync-status-text{color:#e2e8f0}:root[data-theme=dark] .sync-status-badge.locked{background:#7c2d1259;border-color:#fb923c}:root[data-theme=dark] .sync-status-badge.locked:hover{box-shadow:0 2px 8px #fb923c40}:root[data-theme=dark] .sync-status-badge.locked .sync-status-text{color:#fed7aa}:root[data-theme=dark] .sync-status-badge.syncing{border-color:#60a5fa}:root[data-theme=dark] .sync-status-badge.paused{background:#78350f59;border-color:#fbbf24}:root[data-theme=dark] .sync-status-badge.paused:hover{box-shadow:0 2px 8px #fbbf2433}:root[data-theme=dark] .sync-status-badge.paused .sync-status-text{color:#fde68a}:root[data-theme=dark] .sync-status-badge.sync-disabled{background:#1e293b99;border-color:#475569}:root[data-theme=dark] .sync-status-badge.sync-disabled:hover{background:#334155b3;border-color:#64748b;box-shadow:none}:root[data-theme=dark] .sync-status-badge.sync-disabled .sync-status-text{color:#94a3b8}:root[data-theme=dark] .sync-settings-dropdown{background:#1e293b;border-color:#334155;box-shadow:0 4px 20px #00000080}:root[data-theme=dark] .sync-settings-title{color:#64748b}:root[data-theme=dark] .sync-settings-option{color:#e2e8f0}:root[data-theme=dark] .sync-settings-option:hover{background:#334155}:root[data-theme=dark] .sync-settings-option.selected{background:#14532d;color:#4ade80}:root[data-theme=dark] .sync-settings-queue-count{background:#f59e0b33;color:#fbbf24}@media(max-width:768px){.sync-status-badge{padding:6px 12px;font-size:13px}.sync-status-icon{font-size:14px}.sync-tooltip,.sync-settings-dropdown{max-width:240px;white-space:normal}}.data-status-badge{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;background-color:var(--md-sys-color-surface-container);font-size:11px;color:var(--md-sys-color-on-surface-variant);cursor:default;position:relative;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.data-status-badge:hover{background-color:var(--md-sys-color-surface-container-high)}.data-status-badge.offline{background-color:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.data-status-icon{font-size:12px;line-height:1}.data-status-text{font-weight:500;white-space:nowrap}.data-status-tooltip{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;max-width:280px;padding:12px;background-color:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);border-radius:8px;box-shadow:var(--md-elevation-2);z-index:1000;animation:tooltip-fade-in .15s ease}.data-status-tooltip:before{content:"";position:absolute;top:-6px;right:16px;width:12px;height:12px;background-color:var(--md-sys-color-inverse-surface);transform:rotate(45deg)}.data-status-tooltip-content strong{display:block;font-size:13px;margin-bottom:6px}.data-status-tooltip-content p{font-size:12px;margin:0 0 4px;opacity:.9;line-height:1.4}.data-status-tooltip-content p:last-child{margin-bottom:0}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.data-status-text{display:none}.data-status-badge{padding:4px 6px}.data-status-tooltip{right:-40px}.data-status-tooltip:before{right:56px}}.recipe-card{background:var(--surface-1, #ffffff);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.recipe-card.expanded{border:2px solid var(--success-color, #4caf50)}.recipe-card-photo{width:100%;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--surface-2, #f5f5f5) 0%,var(--border-color, #e0e0e0) 100%);display:flex;align-items:center;justify-content:center}.recipe-card-photo img{width:100%;height:100%;object-fit:cover}.recipe-card-placeholder{color:var(--text-muted, #9e9e9e);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.recipe-card-info{padding:12px}.recipe-card-title{font-size:16px;font-weight:600;margin:0 0 8px;color:var(--text-color, #333);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;min-height:2.8em}.recipe-card-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary, #666)}.recipe-servings{display:flex;align-items:center;gap:4px}.recipe-tags{display:flex;flex-wrap:wrap;gap:4px}.recipe-tag{font-size:11px;padding:2px 6px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:3px;white-space:nowrap}.recipe-tag-more{font-size:11px;padding:2px 6px;color:var(--text-secondary, #666)}.recipe-custom-tags{margin-top:4px}.recipe-tag.custom{background:var(--success-light, #c6f6d5);color:var(--success-color, #22543d)}.add-to-date-btn{width:100%;margin-top:12px;padding:10px 16px;background:var(--success-color, #4caf50);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s ease}.add-to-date-btn:hover{background:var(--success-dark, #45a049)}.add-to-date-btn:active{transform:scale(.98)}.meal-type-selector{margin-top:12px;padding:12px;background:var(--background-light, #f9f9f9);border-radius:6px;border:2px solid var(--success-color, #4caf50)}.meal-type-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--text-color, #333)}.cancel-selector-btn{width:24px;height:24px;padding:0;background:transparent;border:none;color:var(--text-secondary, #666);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s ease}.cancel-selector-btn:hover{background:var(--hover-background, #e0e0e0)}.meal-type-buttons{display:flex;flex-direction:column;gap:6px}.meal-type-option{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-1, #ffffff);border:2px solid var(--border-color, #e0e0e0);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:var(--text-color, #333)}.meal-type-option:hover{border-color:var(--success-color, #4caf50);background:var(--success-light, #e8f5e9)}.meal-type-option:active{transform:scale(.98)}.meal-icon{font-size:20px}:root[data-theme=dark] .recipe-card{background:var(--surface-1, #1e293b)}:root[data-theme=dark] .recipe-card-photo{background:linear-gradient(135deg,var(--surface-2, #334155) 0%,var(--border-color, #334155) 100%)}:root[data-theme=dark] .recipe-card-placeholder{color:var(--text-muted, #64748b)}:root[data-theme=dark] .recipe-card-title{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .recipe-card-meta{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .recipe-tag{background:var(--primary-light, #312e81);color:var(--primary-color, #818cf8)}:root[data-theme=dark] .recipe-tag.custom{background:var(--success-light, #14532d);color:var(--success-color, #4ade80)}:root[data-theme=dark] .recipe-tag-more{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .meal-type-selector{background:var(--surface-2, #334155)}:root[data-theme=dark] .meal-type-selector-header{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .cancel-selector-btn{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .cancel-selector-btn:hover{background:var(--hover-background, #334155)}:root[data-theme=dark] .meal-type-option{background:var(--surface-1, #1e293b);border-color:var(--border-color, #334155);color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .meal-type-option:hover{border-color:var(--success-color, #4ade80);background:var(--success-light, #14532d)}.recipe-accordion{background:var(--surface-1, #ffffff);border-radius:8px;box-shadow:0 4px 12px #0000001a;overflow:hidden;animation:slideDown .3s ease-out}.recipe-accordion-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color, #e0e0e0)}.recipe-accordion-collapse,.recipe-accordion-close,.recipe-accordion-fullscreen{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-secondary, #666);transition:color .2s;display:flex;align-items:center;justify-content:center}.recipe-accordion-header{gap:4px}.recipe-fullscreen-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.recipe-fullscreen-content{position:relative;background:var(--surface-1, #ffffff);border-radius:12px;max-width:800px;width:100%;max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 20px 60px #0006}.recipe-fullscreen-close{position:sticky;top:0;right:0;float:right;margin:16px 16px 0 0;padding:10px;background:var(--surface-2, #f5f5f5);border:none;border-radius:8px;cursor:pointer;color:var(--text-secondary, #666);z-index:1;transition:background .2s,color .2s}.recipe-fullscreen-close:hover{background:var(--border-color, #e0e0e0);color:var(--text-color, #333)}.recipe-fullscreen-body{padding:24px 32px 40px;clear:both}.recipe-fullscreen-body .recipe-accordion-photo{max-height:400px;margin-bottom:28px}.recipe-fullscreen-body .recipe-accordion-info h2{font-size:32px;margin-bottom:20px}.recipe-fullscreen-body .recipe-markdown-content{font-size:17px;line-height:1.7}.recipe-fullscreen-body .recipe-markdown-content h1{font-size:24px}.recipe-fullscreen-body .recipe-markdown-content h2{font-size:20px}.recipe-fullscreen-body .recipe-markdown-content h3{font-size:18px}.recipe-accordion-collapse:hover,.recipe-accordion-close:hover,.recipe-accordion-fullscreen:hover{color:var(--text-color, #333)}.recipe-accordion-content{padding:20px}.recipe-accordion-photo{width:100%;max-height:300px;overflow:hidden;border-radius:8px;margin-bottom:20px}.recipe-accordion-photo img{width:100%;height:100%;object-fit:cover}.recipe-accordion-info h2{font-size:24px;font-weight:700;margin:0 0 16px;color:var(--text-color, #333)}.recipe-meta-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-color, #e0e0e0)}.recipe-meta-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary, #666)}.recipe-meta-item svg{color:var(--success-color, #4caf50)}.recipe-dietary-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.recipe-dietary-tag{padding:4px 12px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:16px;font-size:13px;font-weight:500}.recipe-markdown-content{line-height:1.6;color:var(--text-color, #333);margin-bottom:24px}.recipe-markdown-content h1,.recipe-markdown-content h2,.recipe-markdown-content h3{margin:16px 0 8px;color:var(--text-color, #333)}.recipe-markdown-content h1:first-child,.recipe-markdown-content h2:first-child,.recipe-markdown-content h3:first-child{margin-top:0}.recipe-markdown-content h1{font-size:20px;font-weight:700}.recipe-markdown-content h2{font-size:18px;font-weight:600}.recipe-markdown-content h3{font-size:16px;font-weight:600}.recipe-markdown-content ul,.recipe-markdown-content ol{margin:12px 0;padding-left:24px}.recipe-markdown-content li{margin:6px 0}.recipe-markdown-content p{margin:12px 0}.recipe-markdown-content strong{font-weight:600;color:var(--text-color, #333)}.recipe-accordion-actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:20px;border-top:1px solid var(--border-color, #e0e0e0)}.recipe-action-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.recipe-action-shopping{background:var(--success-light, #e8f5e9);color:var(--success-color, #4caf50)}.recipe-action-shopping:hover{background:var(--success-light, #e8f5e9)}.recipe-action-shopping:disabled{opacity:.5;cursor:not-allowed}.recipe-action-ai-shopping{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative;overflow:hidden}.recipe-action-ai-shopping.disabled{opacity:.6;cursor:not-allowed;background:var(--text-muted, #9e9e9e)}.recipe-action-ai-shopping .ai-badge{position:absolute;top:-6px;right:-6px;background:var(--danger-color, #d32f2f);color:#fff;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;box-shadow:0 2px 4px #0003}.recipe-action-edit{background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2)}.recipe-action-edit:hover{background:var(--primary-light, #e3f2fd)}.recipe-action-delete{background:#ef53501f;color:var(--danger-color, #d32f2f)}.recipe-action-delete:hover{background:#ef53502e}.recipe-action-delete.confirm{background:var(--danger-color, #d32f2f);color:#fff;animation:pulse .5s ease-in-out}@media(max-width:640px){.recipe-accordion-content{padding:16px}.recipe-accordion-info h2{font-size:20px}.recipe-meta-row{gap:12px}.recipe-meta-item{font-size:13px}.recipe-accordion-actions{flex-direction:column}.recipe-action-btn{width:100%;justify-content:center}}:root[data-theme=dark] .recipe-accordion{background:var(--surface-1, #1e293b)}:root[data-theme=dark] .recipe-accordion-header{border-bottom-color:var(--border-color, #334155)}:root[data-theme=dark] .recipe-accordion-collapse,:root[data-theme=dark] .recipe-accordion-close,:root[data-theme=dark] .recipe-accordion-fullscreen{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .recipe-accordion-collapse:hover,:root[data-theme=dark] .recipe-accordion-close:hover,:root[data-theme=dark] .recipe-accordion-fullscreen:hover{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .recipe-accordion-info h2{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .recipe-meta-row{border-bottom-color:var(--border-color, #334155)}:root[data-theme=dark] .recipe-meta-item{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .recipe-dietary-tag{background:var(--primary-light, #312e81);color:var(--primary-color, #818cf8)}:root[data-theme=dark] .recipe-markdown-content,:root[data-theme=dark] .recipe-markdown-content h1,:root[data-theme=dark] .recipe-markdown-content h2,:root[data-theme=dark] .recipe-markdown-content h3,:root[data-theme=dark] .recipe-markdown-content strong{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .recipe-accordion-actions{border-top-color:var(--border-color, #334155)}:root[data-theme=dark] .recipe-action-shopping{background:var(--success-light, #14532d);color:var(--success-color, #4ade80)}:root[data-theme=dark] .recipe-action-edit{background:var(--primary-light, #312e81);color:var(--primary-color, #818cf8)}:root[data-theme=dark] .recipe-fullscreen-content{background:var(--surface-1, #1e293b)}:root[data-theme=dark] .recipe-fullscreen-close{background:var(--surface-2, #334155);color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .recipe-fullscreen-close:hover{background:var(--border-color, #334155);color:var(--text-color, #f1f5f9)}.recipe-grid-container{width:100%;padding:16px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;width:100%}@media(max-width:640px){.recipe-grid{grid-template-columns:repeat(2,1fr);gap:12px}.recipe-grid-container{padding:12px}}@media(min-width:641px)and (max-width:1024px){.recipe-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1025px){.recipe-grid{grid-template-columns:repeat(4,1fr)}}.recipe-grid-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.recipe-grid-empty .add-recipe-card{margin-bottom:24px;max-width:240px;width:100%}.recipe-grid-empty-message h3{font-size:24px;font-weight:600;margin:0 0 8px;color:var(--text-color, #333)}.recipe-grid-empty-message p{font-size:16px;color:var(--text-secondary, #666);margin:0}.recipe-accordion-wrapper{width:100%;margin-top:8px}.recipe-grid-item{display:flex;flex-direction:column;gap:12px;transition:transform .3s ease,box-shadow .3s ease}.recipe-grid-item.highlighted{animation:highlight-pulse 2s ease-in-out}@keyframes highlight-pulse{0%,to{transform:scale(1);box-shadow:0 0 #1976d200}50%{transform:scale(1.02);box-shadow:0 0 20px #1976d266}}.recipe-grid-loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;padding:16px}.recipe-skeleton{background:var(--skeleton-base, #f5f5f5);border-radius:8px;overflow:hidden;animation:pulse 1.5s ease-in-out infinite}.recipe-skeleton-photo{width:100%;aspect-ratio:4/3;background:linear-gradient(90deg,var(--skeleton-base, #f5f5f5) 25%,var(--skeleton-highlight, #e0e0e0) 50%,var(--skeleton-base, #f5f5f5) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.recipe-skeleton-info{padding:12px}.recipe-skeleton-title{height:20px;background:var(--skeleton-highlight, #e0e0e0);border-radius:4px;margin-bottom:8px;width:80%}.recipe-skeleton-meta{height:16px;background:var(--skeleton-highlight, #e0e0e0);border-radius:4px;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}:root[data-theme=dark] .recipe-grid-empty-message h3{color:var(--text-color, #f1f5f9)}:root[data-theme=dark] .recipe-grid-empty-message p{color:var(--text-secondary, #94a3b8)}:root[data-theme=dark] .recipe-skeleton{background:var(--skeleton-base, #1e293b)}:root[data-theme=dark] .recipe-skeleton-photo{background:linear-gradient(90deg,var(--skeleton-base, #1e293b) 25%,var(--skeleton-highlight, #334155) 50%,var(--skeleton-base, #1e293b) 75%)}.manual-recipe-form-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overflow-y:auto}.manual-recipe-form{background:var(--surface-1, #ffffff);border-radius:12px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color, #e0e0e0)}.form-header h2{font-size:24px;font-weight:700;margin:0;color:var(--text-color, #333)}.form-close{background:none;border:none;font-size:24px;color:var(--text-secondary, #666);cursor:pointer;padding:8px;line-height:1;transition:color .2s}.form-close:hover{color:var(--text-color, #333)}.manual-recipe-form form{display:flex;flex-direction:column;flex:1;overflow:hidden}.form-content{flex:1;overflow-y:auto;padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-color, #333);font-size:14px}.required{color:var(--danger-color, #d32f2f)}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color, #ccc);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--success-color, #4caf50)}.form-group textarea{resize:vertical;min-height:200px;font-family:Courier New,monospace;line-height:1.6}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400;font-size:14px;color:var(--text-secondary, #666);-webkit-user-select:none;user-select:none}.checkbox-label:hover{color:var(--text-color, #333)}.dietary-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--success-color, #4caf50)}.dietary-options{margin-top:12px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dietary-select{width:100%;padding:8px 12px;border:1px solid var(--border-color, #ccc);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s;background:var(--surface-1, #ffffff);cursor:pointer}.dietary-select:focus{outline:none;border-color:var(--success-color, #4caf50)}.dietary-select option{padding:6px}.selected-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.selected-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--primary-light, #e3f2fd);color:var(--primary-color, #1976d2);border-radius:16px;font-size:13px;font-weight:500}.tag-remove{background:none;border:none;color:var(--primary-color, #1976d2);cursor:pointer;padding:0;font-size:14px;line-height:1;opacity:.7;transition:opacity .2s}.tag-remove:hover{opacity:1}.tag-input-row{display:flex;gap:8px}.tag-input{flex:1;padding:10px 12px;border:1px solid var(--border-color, #ccc);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.tag-input:focus{outline:none;border-color:var(--success-color, #4caf50)}.tag-add-btn{padding:10px 16px;background:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;white-space:nowrap}.tag-add-btn:hover:not(:disabled){opacity:.85}.tag-add-btn:disabled{opacity:.4;cursor:not-allowed}.selected-tag.custom-tag{background:var(--success-light, #c6f6d5);color:var(--success-color, #22543d)}.selected-tag.custom-tag .tag-remove{color:var(--success-color, #22543d)}.photo-upload-area{margin-top:8px}.photo-upload-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:40px 20px;border:2px dashed var(--border-color, #ccc);border-radius:8px;background:var(--background-light, #f9f9f9);color:var(--text-secondary, #666);font-size:14px;cursor:pointer;transition:all .2s}.photo-upload-btn:hover{border-color:var(--success-color, #4caf50);color:var(--success-color, #4caf50);background:var(--surface-2, #f5f5f5)}.photo-preview{position:relative;width:100%;max-width:400px}.photo-preview img{width:100%;border-radius:8px;display:block}.photo-remove{position:absolute;top:8px;right:8px;padding:8px 16px;background:#000000b3;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.photo-remove:hover{background:#000000e6}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tiptap-editor-wrapper{margin-top:8px;border:1px solid var(--border-color, #ccc);border-radius:6px;background:var(--surface-1, #ffffff);min-height:300px;overflow:hidden}.tiptap-editor{min-height:300px}.tiptap-editor-wrapper .ProseMirror{outline:none;min-height:280px;padding:16px;line-height:1.6}.tiptap-editor-wrapper .ProseMirror p.is-editor-empty:first-child:before{color:var(--text-secondary, #999);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.tiptap-editor-wrapper .ProseMirror h1,.tiptap-editor-wrapper .ProseMirror h2,.tiptap-editor-wrapper .ProseMirror h3{margin:16px 0 8px;color:var(--text-color, #333);font-weight:600}.tiptap-editor-wrapper .ProseMirror h1{font-size:2em}.tiptap-editor-wrapper .ProseMirror h2{font-size:1.5em}.tiptap-editor-wrapper .ProseMirror h3{font-size:1.25em}.tiptap-editor-wrapper .ProseMirror ul,.tiptap-editor-wrapper .ProseMirror ol{margin:12px 0;padding-left:24px}.tiptap-editor-wrapper .ProseMirror li{margin:6px 0}.tiptap-editor-wrapper .ProseMirror strong{font-weight:600}.tiptap-editor-wrapper .ProseMirror em{font-style:italic}.tiptap-editor-wrapper .ProseMirror p{margin:8px 0}.tiptap-editor-wrapper .ProseMirror code{background:var(--background-light, #f5f5f5);padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:.9em}.form-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-secondary, #666)}.form-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid var(--border-color, #e0e0e0)}.btn-cancel,.btn-save{padding:10px 24px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background:var(--surface-2, #f5f5f5);color:var(--text-secondary, #666)}.btn-cancel:hover{background:var(--button-hover-background, #e0e0e0)}.btn-save{background:var(--success-color, #4caf50);color:#fff}.btn-save:hover{background:var(--success-dark, #45a049)}@media(max-width:640px){.manual-recipe-form-overlay{padding:0}.manual-recipe-form{max-width:100%;max-height:100vh;border-radius:0}.form-header,.form-content,.form-footer{padding:16px}.form-header h2{font-size:20px}.form-row{grid-template-columns:1fr}.dietary-tags-selector{gap:6px}.dietary-tag-btn{font-size:12px;padding:6px 12px}.form-footer{flex-direction:column}.btn-cancel,.btn-save{width:100%}}.fab-container{position:fixed;bottom:90px;right:24px;z-index:999}.fab-button{width:56px;height:56px;border-radius:50%;background:var(--primary-color, #4CAF50);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026,0 2px 6px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);color:#fff}.fab-button:hover{background:var(--primary-dark, #45a049);box-shadow:0 6px 16px #0003,0 3px 8px #00000026;transform:scale(1.05)}.fab-button:active{transform:scale(.95)}.fab-button.open{transform:rotate(45deg)}.fab-button.open:hover{transform:rotate(45deg) scale(1.05)}.fab-button svg{transition:transform .3s cubic-bezier(.4,0,.2,1)}.fab-popup{position:absolute;bottom:72px;right:0;background:var(--surface-1, #ffffff);border-radius:12px;box-shadow:0 8px 32px #00000026,0 4px 16px #0000001a;min-width:280px;max-width:320px;padding:8px;animation:fabPopupSlideIn .2s cubic-bezier(.4,0,.2,1);transform-origin:bottom right}@keyframes fabPopupSlideIn{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fab-popup-option{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;cursor:pointer;transition:background .2s;border:none;background:none;width:100%;text-align:left;position:relative}.fab-popup-option:not(.disabled):hover{background:var(--surface-2, #f5f5f5)}.fab-popup-option:not(.disabled):active{background:var(--surface-3, #eeeeee)}.fab-popup-option.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.fab-popup-icon{font-size:32px;line-height:1;flex-shrink:0}.fab-popup-text{flex:1;min-width:0}.fab-popup-title{font-size:15px;font-weight:600;color:var(--text-color, #333);margin-bottom:2px}.fab-popup-description{font-size:13px;color:var(--text-secondary, #666);line-height:1.3}.fab-popup-badge{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:var(--text-muted, #9e9e9e);color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}@media(max-width:768px){.fab-container{bottom:80px;right:16px}.fab-popup{right:0;max-width:min(320px,calc(100vw - 32px))}}@media(prefers-color-scheme:dark){.fab-popup{background:var(--surface-1, #2a2a2a);box-shadow:0 8px 32px #0006,0 4px 16px #0000004d}.fab-popup-option:not(.disabled):hover{background:var(--surface-2, #353535)}.fab-popup-option:not(.disabled):active{background:var(--surface-3, #404040)}.fab-popup-title{color:var(--text-color, #e0e0e0)}.fab-popup-description{color:var(--text-secondary, #b0b0b0)}}.recipe-library{width:100%;min-height:100%;background:var(--color-surface-variant);padding-bottom:40px;position:relative;--surface-1: var(--color-surface, #ffffff);--surface-2: var(--color-surface-variant, #f8f9fa);--surface-3: var(--color-surface-container, #f7fafc);--border-color: var(--color-outline, #e2e8f0);--text-color: var(--color-on-surface, #333333);--text-secondary: var(--color-on-surface-variant, #666666);--text-muted: #94a3b8;--primary-color: var(--color-primary, #667eea);--primary-light: var(--color-primary-container, #f0f4ff);--success-color: var(--color-success, #22543d);--success-light: var(--color-success-container, #c6f6d5);--danger-color: var(--color-error, #e53e3e);--hover-background: var(--color-surface-container, #f7fafc);--background-light: var(--color-surface-container, #f7fafc);--skeleton-base: var(--color-surface-container, #f7fafc);--skeleton-highlight: var(--color-surface-container-high, #edf2f7)}:root[data-theme=dark] .recipe-library{--surface-1: var(--color-surface-container, #1e293b);--surface-2: var(--color-surface-container-high, #334155);--surface-3: var(--color-surface, #0f172a);--border-color: var(--color-outline, #334155);--text-color: var(--color-on-surface, #f1f5f9);--text-secondary: var(--color-on-surface-variant, #94a3b8);--text-muted: #64748b;--primary-color: var(--color-primary, #818cf8);--primary-light: var(--color-primary-container, #312e81);--success-color: var(--color-success, #4ade80);--success-light: var(--color-success-container, #14532d);--danger-color: var(--color-error, #f87171);--hover-background: var(--color-surface-container-high, #334155);--background-light: var(--color-surface, #0f172a);--skeleton-base: var(--color-surface-container, #1e293b);--skeleton-highlight: var(--color-surface-container-high, #334155)}.recipe-search-bar{padding:12px 16px 8px;background:var(--surface-1);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:9;display:flex;flex-direction:column;gap:8px}.recipe-search-input-wrapper{position:relative;display:flex;align-items:center}.recipe-search-icon{position:absolute;left:10px;color:var(--text-secondary);pointer-events:none;flex-shrink:0}.recipe-search-input{width:100%;padding:8px 32px 8px 34px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background:var(--surface-2);color:var(--text-color);outline:none;transition:border-color .15s ease}.recipe-search-input:focus{border-color:var(--primary-color)}.recipe-search-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;padding:4px;line-height:1;border-radius:50%;display:flex;align-items:center;justify-content:center}.recipe-search-clear:hover{color:var(--text-color);background:var(--hover-background)}.recipe-tag-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.recipe-tag-filter-chip{padding:4px 10px;border:1px solid var(--border-color);border-radius:14px;font-size:12px;font-weight:500;cursor:pointer;background:var(--surface-2);color:var(--text-secondary);transition:all .15s ease;white-space:nowrap}.recipe-tag-filter-chip:hover{border-color:var(--primary-color);color:var(--primary-color)}.recipe-tag-filter-chip.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.recipe-tag-filter-clear{padding:4px 10px;border:none;border-radius:14px;font-size:12px;font-weight:500;cursor:pointer;background:none;color:var(--danger-color);text-decoration:underline;transition:opacity .15s ease}.recipe-tag-filter-clear:hover{opacity:.75}:root[data-theme=dark] .recipe-search-input{background:var(--surface-2);color:var(--text-color);border-color:var(--border-color)}.recipe-library-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.recipe-library-spinner{width:48px;height:48px;border:4px solid #e0e0e0;border-top-color:#4caf50;border-radius:50%;animation:rl-spin 1s linear infinite}@keyframes rl-spin{to{transform:rotate(360deg)}}.slot-context-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--color-primary-container, #e3f2fd);border-bottom:1px solid var(--color-outline, #e2e8f0);font-size:13px;color:var(--color-on-surface, #333);gap:12px;position:sticky;top:0;z-index:10}.clear-slot-btn{padding:4px 12px;background:transparent;border:1px solid var(--color-primary, #1976d2);border-radius:12px;color:var(--color-primary, #1976d2);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .15s ease}.clear-slot-btn:hover{background:var(--color-primary, #1976d2);color:#fff}:root[data-theme=dark] .slot-context-banner{background:var(--color-primary-container, #312e81);border-bottom-color:var(--color-outline, #334155);color:var(--color-on-surface, #f1f5f9)}:root[data-theme=dark] .clear-slot-btn{border-color:var(--color-primary, #818cf8);color:var(--color-primary, #818cf8)}:root[data-theme=dark] .clear-slot-btn:hover{background:var(--color-primary, #818cf8);color:#fff}
