@keyframes viewFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes ptr-spin{to{transform:rotate(360deg)}}@keyframes macro-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes macro-day-highlight{0%{opacity:0;background:rgb(var(--primary-rgb)/.12)}to{opacity:1;background:0 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes sort-game-btn-pulse{0%,to{box-shadow:0 2px 8px rgba(27,94,58,.3)}50%{box-shadow:0 2px 16px rgba(27,94,58,.5)}}@keyframes sort-game-pop{0%{transform:scale(1);opacity:1}50%{transform:scale(.5);opacity:.6}to{transform:scale(0);opacity:0}}@keyframes sort-game-bounce{0%{transform:scale(0)}50%{transform:scale(1.3)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes insightBarGrow{0%{width:0}}@keyframes insightBarVGrow{0%{height:0}}@keyframes shimmer-new{0%{left:-100%}to{left:100%}}@keyframes pulse-new{0%,to{opacity:1}50%{opacity:.5}}@keyframes cm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cm-tip-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes gsMicPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes achievePop{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes bannerSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes aiBrain{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes avoOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes avoOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes avoDance{0%,to{transform:translateY(0) rotate(0deg) scale(1)}10%{transform:translateY(-40px) rotate(-15deg) scale(1.1)}20%{transform:translateY(0) rotate(10deg) scale(1)}30%{transform:translateY(-30px) rotate(-10deg) scale(1.05)}40%{transform:translateY(0) rotate(8deg) scale(1)}50%{transform:translateY(-50px) rotate(-20deg) scale(1.15)}60%{transform:translateY(0) rotate(12deg) scale(1)}70%{transform:translateY(-20px) rotate(-8deg) scale(1.05)}80%{transform:translateY(0) rotate(5deg) scale(1)}90%{transform:translateY(-35px) rotate(-12deg) scale(1.1)}}@keyframes avoMsgIn{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes avoConfettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}to{transform:translateY(calc(100vh + 40px)) rotate(720deg);opacity:0}}@keyframes viewSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes viewSlideLeft{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes viewSlideRight{0%{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}@keyframes staggerIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes expPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes plannerSnap{0%{transform:scale(.95)}40%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes voice-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(229,62,62,.5)}50%{transform:scale(1.1);box-shadow:0 0 0 12px transparent}}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ub-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes streakPop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes strikethrough-sweep{0%{width:0}to{width:100%}}@keyframes tcBounceIn{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tcSpin{0%{transform:rotate(-15deg) scale(.5)}50%{transform:rotate(10deg) scale(1.2)}to{transform:rotate(0) scale(1)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes bookOpen{0%{transform:scale(1) rotateY(0)}50%{transform:scale(1.03) rotateY(-3deg)}to{transform:scale(.95) rotateY(0);opacity:0}}@keyframes streak-glow{0%,to{box-shadow:0 0 0 0 rgba(255,152,0,.2)}50%{box-shadow:0 0 8px 2px rgba(255,152,0,.3)}}@keyframes achFadeIn{to{opacity:1}}@keyframes achBounceIn{0%{transform:scale(0) rotate(-10deg)}60%{transform:scale(1.1) rotate(2deg)}80%{transform:scale(.95) rotate(-1deg)}to{transform:scale(1) rotate(0)}}@keyframes achIconPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes sparkle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}@keyframes cm-pulse-ready{0%,to{box-shadow:0 0 0 0 rgba(52,160,109,.4)}50%{box-shadow:0 0 0 10px transparent}}@keyframes cm-summary-in{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes radial-burst{0%{transform:scale(0);opacity:1}50%{opacity:.6}to{transform:scale(2.5);opacity:0}}@keyframes check-spring{0%,to{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSpringIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes strikeThrough{0%{background-size:0 1.5px}to{background-size:100% 1.5px}}@keyframes burstParticle{0%{opacity:1;transform:translate(0,0) scale(1)}to{opacity:0;transform:translate(var(--burst-x, 20px),var(--burst-y, -20px)) scale(.3)}}@keyframes ai-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes ai-dot-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}@keyframes miFlashGreen{0%{background-color:rgba(16,185,129,.22);box-shadow:inset 0 0 0 1px rgba(16,185,129,.3)}to{background-color:transparent;box-shadow:inset 0 0 0 1px transparent}}@keyframes miSlideOut{to{transform:translateX(-100%);opacity:0;max-height:0;margin:0;padding-top:0;padding-bottom:0;overflow:hidden}}@keyframes miRollUp{0%,to{transform:translateY(0);opacity:1}40%{transform:translateY(-100%);opacity:0}41%{transform:translateY(100%);opacity:0}}@keyframes miRollDown{0%,to{transform:translateY(0);opacity:1}40%{transform:translateY(100%);opacity:0}41%{transform:translateY(-100%);opacity:0}}@keyframes miBounceDrop{0%{transform:scale(1.03)}50%{transform:scale(.97)}to{transform:scale(1)}}@keyframes cqaSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}:root{color-scheme:light;--bg:#F7F7F5;--bg-card:#FFFFFF;--bg-hover:#F3F4F6;--bg-secondary:#F3F4F6;--bg-surface:#FAFAF9;--surface:#FFFFFF;--bg-sidebar:#1B2332;--bg-sidebar-hover:rgba(255,255,255,0.07);--bg-sidebar-active:rgba(255,255,255,0.12);--primary:#2B7A5B;--primary-hover:#236849;--primary-light:#E8F5EE;--accent:#E8622B;--accent-hover:#D4551E;--accent-light:#FEF0E8;--text:#1E293B;--text-secondary:#3E4C5E;--text-muted:#556275;--text-inverse:#F8FAFC;--border:#E2E8F0;--border-light:#F1F5F9;--success:#059669;--success-bg:#ECFDF5;--warning:#D97706;--warning-bg:#FFFBEB;--danger:#DC2626;--danger-bg:#FEF2F2;--info:#2563EB;--info-bg:#EFF6FF;--sidebar-w:240px;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--radius-pill:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,0.04);--shadow-sm:0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);--shadow:0 4px 6px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.04);--shadow-md:0 6px 12px rgba(0,0,0,0.08), 0 3px 6px rgba(0,0,0,0.05);--shadow-lg:0 10px 25px rgba(0,0,0,0.1);--shadow-xl:0 20px 40px rgba(0,0,0,0.15);--font:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;--font-mono:'SF Mono', 'Fira Code', 'Cascadia Code', monospace;--bg-tertiary:#F1F5F9;--ease:150ms ease;--meal-breakfast:#D97706;--meal-lunch:#2B7A5B;--meal-dinner:#1B5E3A;--meal-snack:#9C6B20;--macro-cal:#2B7A5B;--macro-protein:#1B5E3A;--macro-carbs:#D97706;--macro-fat:#DC2626;--macro-cal-bg:#FEF3C7;--macro-cal-text:#92400E;--macro-protein-bg:#DBEAFE;--macro-protein-text:#1E40AF;--macro-carbs-bg:#FEE2E2;--macro-carbs-text:#991B1B;--macro-fat-bg:#FDE68A;--macro-fat-text:#78350F;--expiring-bg:#FEF3C7;--expiring-text:#92400E;--expiring-border:#F59E0B;--gold:#D4930B;--primary-rgb:43, 122, 91;--accent-rgb:232, 98, 43;--text-rgb:30, 41, 59;--success-rgb:5, 150, 105;--warning-rgb:217, 119, 6;--danger-rgb:220, 38, 38;--info-rgb:37, 99, 235;--z-local:10;--z-dropdown:50;--z-sticky:60;--z-drawer:89;--z-fab:90;--z-sidebar:100;--z-popover:200;--z-popover-high:300;--z-modal:500;--z-tooltip:600;--z-overlay:9999;--z-fullscreen:10000;--z-top:10001;--z-banner:99999;--z-critical:100000;--text-2xs:0.6rem;--text-xs:0.65rem;--text-sm:0.78rem;--text-base:0.85rem;--text-md:0.92rem;--text-lg:1.05rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body,button{font-family:var(--font)}body,html{background:var(--bg);height:100%;overflow:hidden}body{color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:0;background:0 0}input,select,textarea{font-family:var(--font);font-size:var(--text-md)}.u-flex,.u-flex-col,body{display:flex}.u-flex-col{flex-direction:column}.u-flex-between,.u-flex-center{display:flex;align-items:center;justify-content:center}.u-flex-between{justify-content:space-between}.u-flex-end{display:flex;justify-content:flex-end}.u-flex-wrap{flex-wrap:wrap}.u-flex-1{flex:1}.u-flex-shrink-0{flex-shrink:0}.u-gap-4{gap:4px}.u-gap-6{gap:6px}.u-gap-8{gap:8px}.u-gap-10{gap:10px}.u-gap-12{gap:12px}.u-gap-14{gap:14px}.u-gap-16{gap:16px}.u-text-center{text-align:center}.u-text-left{text-align:left}.u-text-muted,html.dark .btn-expiring-recipe small{color:var(--text-muted)}.auth-tab:hover,.u-text-secondary{color:var(--text-secondary)}.u-text-xs{font-size:var(--text-xs)}.u-text-sm{font-size:var(--text-sm)}.u-text-base{font-size:var(--text-base)}.u-text-md{font-size:var(--text-md)}.u-text-lg{font-size:var(--text-lg)}.u-text-xl{font-size:var(--text-xl)}.u-text-2xl{font-size:var(--text-2xl)}.u-font-bold{font-weight:700}.u-font-semibold{font-weight:600}.u-min-w-0{min-width:0}.u-w-full{width:100%}.u-truncate{overflow:hidden;text-overflow:ellipsis}.u-nowrap,.u-truncate{white-space:nowrap}.u-p-12{padding:12px}.u-p-16{padding:16px}.u-px-16{padding-left:16px;padding-right:16px}.u-py-8{padding-top:8px;padding-bottom:8px}.u-mt-8{margin-top:8px}.u-mt-12{margin-top:12px}.u-mt-16{margin-top:16px}.u-mb-8{margin-bottom:8px}.u-mb-12{margin-bottom:12px}.u-mb-16{margin-bottom:16px}.u-hidden{display:none}.u-scroll-y{overflow-y:auto}.u-border-top{border-top:1px solid var(--border)}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.toggle-input),select,textarea{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text);background:var(--bg-card);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;line-height:1.4}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.toggle-input):hover,select:hover,textarea:hover{border-color:#cbd5e1}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.toggle-input):focus,select:focus,textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12),inset 0 1px 2px rgba(0,0,0,.04);background:var(--bg-card)}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.toggle-input)::placeholder,textarea::placeholder{color:var(--text-muted);font-weight:400}textarea{resize:vertical;min-height:80px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748B' d='M1.4 0L6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}.auth-tab.active,a{color:var(--primary)}a{-webkit-tap-highlight-color:transparent;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}.auth-screen{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg)}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 36px 36px;margin:16px}.auth-brand{text-align:center;margin-bottom:32px}.auth-brand-icon{width:72px;height:72px;margin:0 auto 8px;display:block}.auth-brand h1{font-size:var(--text-2xl);font-weight:700;color:var(--text);letter-spacing:-.02em}.auth-brand p{color:var(--text-secondary);margin-top:4px}.auth-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid var(--border)}.auth-brand p,.auth-tab{font-size:var(--text-base)}.auth-tab{flex:1;padding:10px 0;text-align:center;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color var(--ease),border-color var(--ease)}.auth-tab.active{border-bottom-color:var(--primary)}.auth-form,.auth-form .form-group{display:flex;flex-direction:column;gap:16px}.auth-form .form-group{gap:4px}.auth-form label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.auth-form input{padding:12px 14px;border-radius:var(--radius-md);font-size:var(--text-md)}.auth-form input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12),inset 0 1px 2px rgba(0,0,0,.04);background:#fff}.auth-error{font-size:var(--text-sm);color:var(--danger);font-weight:500;min-height:20px}.auth-forgot-link{background:0 0;border:0;color:var(--primary);font-size:var(--text-base);cursor:pointer;margin-top:4px;text-decoration:underline}.auth-forgot-link:hover{opacity:.8}.auth-form-hint{font-size:var(--text-base);color:var(--text-muted);margin-bottom:12px}.auth-legal-hint{font-size:var(--text-sm);color:var(--text-muted);margin-top:8px;text-align:center}.auth-legal-hint a,.auth-legal-link{color:var(--primary);text-decoration:underline;font-size:var(--text-sm);cursor:pointer}.auth-learn-more{display:block;text-align:center;margin-top:20px;font-size:var(--text-md);font-weight:500;color:var(--primary);text-decoration:none;transition:opacity .15s}.auth-learn-more:hover{opacity:.8;text-decoration:underline}.legal-modal-content{max-width:560px;max-height:80vh;overflow-y:auto;background:var(--bg-card);border-radius:var(--radius-lg);padding:0}.legal-modal-body,.legal-modal-body h4{font-size:var(--text-md);color:var(--text)}.legal-modal-body{padding:24px 28px;line-height:1.7}.legal-modal-body h3{font-size:var(--text-lg);margin-bottom:12px;color:var(--text)}.legal-modal-body h4{margin:16px 0 6px}.legal-modal-body li,.legal-modal-body p{color:var(--text-secondary);font-size:var(--text-base)}.legal-modal-body ul{padding-left:20px;margin:6px 0 12px}.subscription-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.subscription-plan-badge{display:inline-block;padding:5px 14px;border-radius:20px;font-size:var(--text-sm);font-weight:600;margin-bottom:14px}.subscription-plan-badge.free{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.subscription-plan-badge.pro{background:linear-gradient(135deg,#2b7a5b,#34a06d);color:#fff}.subscription-usage{font-size:var(--text-base);margin-bottom:16px}.subscription-usage .usage-row{display:flex;align-items:center;padding:6px 0;gap:10px}.subscription-usage .usage-row>span:first-child{min-width:60px;color:var(--text-secondary);font-weight:500;font-size:var(--text-sm)}.subscription-usage .usage-row>span:last-child{min-width:40px;text-align:right;font-size:var(--text-sm);font-weight:600;color:var(--text)}.subscription-usage .usage-bar{height:6px;border-radius:3px;background:var(--bg-secondary);flex:1;max-width:200px;overflow:hidden}.subscription-usage .usage-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .3s}.subscription-usage .usage-fill.usage-full{background:var(--accent)}.subscription-actions{display:flex;flex-direction:column;gap:10px}.btn-upgrade{background:linear-gradient(135deg,#2b7a5b,#34a06d);color:#fff;border:0;padding:12px 20px;border-radius:var(--radius);font-weight:600;font-size:var(--text-md);cursor:pointer;transition:all .2s;width:100%}.btn-upgrade:hover{opacity:.9;transform:translateY(-1px)}.plan-toggle{display:flex;gap:8px;margin-bottom:4px}.plan-option{flex:1;position:relative;padding:12px 10px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;text-align:center;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:2px}.plan-option:hover{border-color:var(--text-muted)}.plan-option.active{border-color:var(--primary);background:var(--primary-light)}.plan-option-price{font-weight:700;font-size:var(--text-lg);color:var(--text)}.plan-option.active .plan-option-price{color:var(--primary)}.plan-option-desc{font-size:var(--text-sm);color:var(--text-muted)}.plan-savings-badge{position:absolute;top:-8px;right:-4px;background:var(--accent);color:#fff;font-size:var(--text-xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-md);text-transform:uppercase;letter-spacing:.3px}.btn-manage-sub{background:0 0;border:1px solid var(--border);padding:8px 16px;border-radius:var(--radius);font-size:var(--text-sm);cursor:pointer;color:var(--text-secondary);transition:all .15s}.btn-manage-sub:hover{border-color:var(--text-muted);color:var(--text)}.promo-row{display:flex;gap:8px;align-items:center}.promo-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);background:var(--bg);color:var(--text)}.promo-input::placeholder{color:var(--text-muted)}.auth-invite-info,.upgrade-banner{text-align:center;border-radius:var(--radius)}.upgrade-banner{background:linear-gradient(135deg,rgb(var(--primary-rgb)/.08),rgba(52,160,109,.08));border:1px solid rgb(var(--primary-rgb)/.2);padding:16px;margin:12px 0}.upgrade-banner h3{font-size:var(--text-lg);color:var(--primary);margin:0 0 6px}.upgrade-banner p{font-size:var(--text-base);color:var(--text-muted);margin:0 0 12px}.auth-invite-info{padding:12px;margin-bottom:16px;background:var(--primary-light);font-size:var(--text-base);color:var(--primary);font-weight:600}.sidebar{width:var(--sidebar-w);min-height:100vh;min-height:100dvh;background:var(--bg-sidebar);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:var(--z-sidebar);transition:width 250ms ease}.sidebar-top{padding:24px 20px 16px;gap:10px}.sidebar-brand,.sidebar-logo,.sidebar-top{display:flex;align-items:center}.sidebar-logo{text-decoration:none;line-height:1;flex-shrink:0;justify-content:center}.sidebar-logo img{width:38px;height:38px}.sidebar-brand{font-size:var(--text-lg);font-weight:700;color:var(--text-inverse);letter-spacing:-.01em;overflow:hidden;white-space:nowrap;transition:opacity 200ms ease;min-width:0}.sidebar-brand-text{overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.sidebar-brand .env-badge{flex-shrink:0}.sidebar-collapse-btn{margin-left:auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);color:rgba(255,255,255,.4);font-size:var(--text-base);background:0 0;transition:all var(--ease);flex-shrink:0}.sidebar-collapse-btn:hover,.sidebar-link:hover{background:var(--bg-sidebar-hover);color:rgba(255,255,255,.8)}.sidebar-links{flex:1;padding:8px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:rgba(255,255,255,.6);font-size:var(--text-base);font-weight:500;transition:all var(--ease);overflow:hidden;white-space:nowrap}.sidebar-link:hover{color:rgba(255,255,255,.85)}.sidebar-link.active{background:var(--bg-sidebar-active);color:#fff;font-weight:600}.sidebar-icon{font-size:var(--text-lg);width:20px;text-align:center;flex-shrink:0}.sidebar-label{white-space:nowrap;overflow:hidden;transition:opacity 200ms ease}.sidebar-kbd{margin-left:auto;font-size:.65rem;font-family:inherit;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.12);line-height:1;white-space:nowrap}.sidebar-bottom{padding:8px 12px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);color:rgba(255,255,255,.7);font-size:var(--text-sm);transition:background var(--ease);overflow:hidden}.sidebar-user:hover{background:var(--bg-sidebar-hover)}.sidebar-user-name{font-weight:600;color:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden}.sidebar-user-email{font-size:var(--text-sm);color:rgba(255,255,255,.45);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-link.mobile-search-btn{display:none}.sidebar-link.mobile-secondary{display:flex;transition:opacity .2s ease}.sidebar-link.mobile-more-btn{display:none}.sidebar-link.mobile-more-btn .sidebar-icon{transition:transform .2s ease}@media (max-height:700px) and (min-width:769px){.sidebar-link.mobile-secondary{display:none}.sidebar-link.mobile-more-btn,.sidebar.nav-expanded .sidebar-link.mobile-secondary{display:flex}.sidebar.nav-expanded .sidebar-link.mobile-more-btn .sidebar-icon{transform:rotate(90deg)}}.sidebar.collapsed{width:64px}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .sidebar-label{opacity:0;width:0;overflow:hidden}.sidebar.collapsed .sidebar-kbd,.sidebar.collapsed .sidebar-user>div{display:none}.sidebar.collapsed .sidebar-collapse-btn{transform:rotate(180deg);position:absolute;right:4px;top:24px;width:24px;height:24px;font-size:var(--text-sm)}.sidebar.collapsed .sidebar-top{padding:16px 0 12px;justify-content:center;position:relative;overflow:visible}.sidebar.collapsed .sidebar-logo{width:40px;height:40px}.sidebar.collapsed .sidebar-logo img{width:28px;height:28px}.sidebar.collapsed .sidebar-links{padding:8px}.sidebar.collapsed .sidebar-link{justify-content:center;padding:10px 0;gap:0}.sidebar.collapsed .sidebar-bottom{padding:8px}.sidebar.collapsed .sidebar-bottom .sidebar-link{justify-content:center;padding:10px 0;width:100%}.sidebar.collapsed .sidebar-bottom .sidebar-link .sidebar-icon{margin:0}.sidebar.collapsed .sidebar-user{justify-content:center;padding:8px}.sidebar.collapsed .home-switcher{padding:0 8px 8px}.sidebar.collapsed .home-switcher-arrow,.sidebar.collapsed .home-switcher-name{display:none}.sidebar.collapsed .home-switcher-btn{justify-content:center;padding:8px}.sidebar.collapsed .home-switcher-menu{left:64px;right:auto;top:0;width:220px;z-index:var(--z-popover-high)}.sidebar.collapsed .btn-logout{justify-content:center;padding:10px 0;gap:0}.sidebar.collapsed+.app-content{margin-left:64px}.home-switcher{padding:0 12px 8px;position:relative}.home-switcher-btn{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:var(--bg-sidebar-hover);color:rgba(255,255,255,.85);font-size:var(--text-base);font-weight:600;transition:background var(--ease)}.home-switcher-btn:hover{background:var(--bg-sidebar-active)}.home-switcher-emoji{font-size:var(--text-lg)}.home-switcher-name{flex:1;text-align:left}.home-switcher-arrow{font-size:var(--text-xs);opacity:.5}.home-switcher-menu{display:none;position:absolute;left:12px;right:12px;top:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;z-index:var(--z-popover);margin-top:4px}.home-switcher.open .home-switcher-menu,.info-tip.active .info-tip-content,.sort-dropdown.open .sort-menu{display:block}.home-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--text);transition:background var(--ease)}.home-option:hover{background:var(--bg-hover)}.home-option.active{background:var(--primary-light);color:var(--primary);font-weight:600}.home-option-emoji{font-size:var(--text-lg)}.home-option-info{display:flex;flex-direction:column;align-items:flex-start}.home-option-name{font-weight:500}.home-option-address,.home-option-owner{font-size:var(--text-sm);color:var(--text-muted)}.home-option-owner{font-weight:400}.home-shared-badge{font-size:var(--text-2xs);font-weight:700;padding:1px 5px;border-radius:var(--radius-pill);background:var(--accent-light);color:var(--accent);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;margin-left:4px}.home-option-add{color:var(--text-secondary);font-weight:500}.app-content{flex:1;margin-left:var(--sidebar-w);height:100vh;height:100dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.app-content::-webkit-scrollbar{width:6px}.app-content::-webkit-scrollbar-track{background:0 0}.app-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.mobile-home-bar,.mobile-more-menu,.mobile-only,.sidebar .info-tip-content::before{display:none}.kbd-shortcuts-fab,.kbd-shortcuts-panel{position:fixed;right:86px;background:var(--bg-card);z-index:var(--z-popover)}.kbd-shortcuts-fab{bottom:24px;width:36px;height:36px;border-radius:50%;box-shadow:var(--shadow-md);font-size:1rem;cursor:pointer;display:flex;transition:background .15s,box-shadow .15s;opacity:.6}.kbd-shortcuts-fab:hover{background:var(--bg-hover);box-shadow:var(--shadow-lg)}.kbd-shortcuts-fab.active{background:var(--primary-light)}.kbd-shortcuts-panel{bottom:68px;width:240px;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:none;flex-direction:column;overflow:hidden}.kbd-shortcuts-panel.open{display:flex}.kbd-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:.9rem}.kbd-panel-close{background:0 0;border:0;font-size:1.2rem;cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.kbd-panel-close:hover{color:var(--text)}.kbd-panel-list{padding:8px 0}.kbd-row,.mobile-home-btn{display:flex;align-items:center;color:var(--text)}.kbd-row{gap:12px;padding:6px 16px;font-size:.85rem}.kbd-row kbd{min-width:32px;padding:2px 6px;background:var(--bg);border-radius:4px;font-family:inherit;font-size:.8rem;text-align:center;color:var(--text-secondary)}.mobile-home-btn{gap:6px;padding:8px 14px;border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border);font-size:var(--text-base);font-weight:600;box-shadow:var(--shadow-xs)}.view{display:none;overflow-x:hidden}.view.active{display:block;animation:viewFadeIn .25s ease both}.page-container{max-width:1200px;padding:32px 32px 80px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-title{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;color:var(--text)}.page-subtitle{font-size:var(--text-md);margin-top:4px}.page-actions{display:flex;align-items:center;gap:8px}.page-hero{margin-bottom:28px}.info-tip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border);color:var(--text-muted);font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:all var(--ease);flex-shrink:0;position:relative;vertical-align:middle;margin-left:6px;background:var(--bg-card);line-height:1;font-style:normal;font-family:var(--font)}.info-tip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.info-tip-content,.info-tip-content::before{position:absolute;left:50%;background:var(--bg-card)}.info-tip-content{display:none;z-index:var(--z-tooltip);top:calc(100% + 8px);transform:translateX(-50%);width:280px;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:400;color:var(--text);line-height:1.5;text-align:left}.info-tip-content::before{content:"";top:-6px;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;border-left:1.5px solid var(--border);border-top:1.5px solid var(--border)}.alpha-thanks h3,.info-tip-content h5{font-size:var(--text-base);font-weight:700;color:var(--text);margin-bottom:6px}.info-tip-content ul{margin:6px 0 0;padding-left:16px;list-style:disc}.info-tip-content li{margin-bottom:3px;font-size:var(--text-sm);color:var(--text-secondary)}.info-tip-content li strong{color:var(--text);font-weight:600}.sidebar .info-tip-content{position:fixed;left:calc(var(--sidebar-w) + 8px);top:50%;transform:translateY(-50%);width:300px;max-height:80vh;overflow-y:auto}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.stat-card{position:relative;overflow:hidden;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:center;transition:all var(--ease);cursor:pointer}.stat-card:hover,.suggestion-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-value{font-size:var(--text-3xl);font-weight:800;color:var(--primary);letter-spacing:-.02em}.stat-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.suggestions-section{margin-bottom:24px}.suggestion-cards{display:flex;flex-direction:column;gap:8px}.suggestion-card{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--bg-card);transition:box-shadow var(--ease),transform var(--ease)}.sug-icon,.sug-title{font-size:var(--text-lg);flex-shrink:0}.sug-title{font-size:var(--text-base);font-weight:700;color:var(--text);white-space:nowrap}.sug-desc{font-size:var(--text-sm);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sug-warning{border-left:3px solid var(--warning)}.sug-danger{border-left:3px solid var(--danger)}.sug-success{border-left:3px solid var(--success)}.sug-info{border-left:3px solid var(--info)}.quick-actions{margin-bottom:28px}.section-title{font-size:var(--text-lg);font-weight:700;color:var(--text);margin-bottom:14px}.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.action-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);transition:all var(--ease);font-size:var(--text-sm);font-weight:600;color:var(--text)}.action-card:hover{box-shadow:var(--shadow-sm)}.action-icon{font-size:var(--text-2xl)}.action-label,.alpha-thanks p{font-size:var(--text-sm)}.alpha-thanks{margin-top:8px;text-align:center;padding:20px 16px;background:var(--primary-light);border-radius:var(--radius-md);border:1px solid rgba(43,122,91,.15)}.alpha-thanks h3{font-size:var(--text-md);color:var(--primary)}.alpha-thanks p{color:var(--text-secondary);line-height:1.5;margin:0}.alpha-thanks a{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}.shopping-preview{margin-bottom:24px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.shopping-preview-list{display:flex;flex-direction:column;gap:1px;background:var(--border-light);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.shopping-preview-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);font-size:var(--text-base)}.spi-cat{font-size:var(--text-lg)}.spi-name{flex:1;font-weight:500;color:var(--text)}.spi-member,.spi-qty{font-size:var(--text-sm)}.spi-qty{color:var(--text-secondary);font-weight:500}.spi-member{font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.filters-toggle{display:none;width:100%;padding:8px;margin-bottom:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);font-size:var(--text-base);font-weight:600;color:var(--text-secondary);cursor:pointer;text-align:center}.action-card:hover,.filters-toggle.open{border-color:var(--primary);color:var(--primary)}.filters-toggle.open::before{content:"🔼 "}.filters-toggle:not(.open)::before{content:"🔽 "}.filter-bar,.member-filter-bar,.store-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.filter-pill,.member-pill,.store-pill{padding:6px 14px;border-radius:var(--radius-full);font-size:var(--text-sm);transition:all var(--ease);white-space:nowrap}.filter-pill:hover,.member-pill:hover,.store-pill:hover{border-color:var(--text-muted);color:var(--text)}.filter-pill.active,.member-pill.active,.store-pill.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px rgb(var(--primary-rgb)/.3)}.tab-bar{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--border)}.tab{padding:12px 24px;font-size:var(--text-md);font-weight:700;color:var(--text-muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all var(--ease);cursor:pointer}.tab:hover{color:var(--text-secondary);background:var(--bg-hover);border-radius:var(--radius) var(--radius)0 0}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.sort-dropdown{position:relative}.sort-menu{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;min-width:160px;max-height:70vh;overflow-y:auto;z-index:var(--z-popover)}.sort-option{display:block;width:100%;text-align:left;padding:8px 12px;font-size:var(--text-base);font-weight:500;color:var(--text);border-radius:var(--radius-sm);transition:background var(--ease)}.sort-option:hover{background:var(--bg-hover)}.sort-option.active{color:var(--primary);font-weight:600;background:var(--primary-light)}.unit-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.items-grid,.unit-btn{background:var(--bg-card)}.unit-btn{padding:6px 14px;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);transition:all var(--ease);border:0}.unit-btn.active{background:var(--primary);color:#fff}.items-grid{display:flex;flex-direction:column;gap:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);position:relative}.items-grid.items-grid-buy{background:#fffef8;border-color:#e8e4d9;box-shadow:2px 3px 8px rgba(0,0,0,.06),inset 0 0 0 1px rgba(0,0,0,.02);padding-left:32px}.items-grid.items-grid-buy::before{content:"";position:absolute;top:0;bottom:0;left:30px;width:2px;background:#e88b8b;opacity:.6;z-index:1;pointer-events:none}.items-grid.items-grid-buy .item-card{border-bottom:1px solid #c8daf0}.items-grid.items-grid-stock{background:linear-gradient(180deg,#faf6f0 0,#f5efe6 100%);border-color:#d4c5a9;box-shadow:2px 3px 10px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.6);padding-left:0;border-radius:var(--radius-lg);overflow:hidden}.items-grid.items-grid-stock::before{display:none}.items-grid.items-grid-stock::after{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#8b6914,#c9a96e 30%,#a67c2e 60%,#c9a96e 90%,#8b6914);border-radius:var(--radius-lg) var(--radius-lg)0 0;pointer-events:none}.items-grid.items-grid-stock .item-card{border-bottom:3px solid #c9a96e;background:linear-gradient(180deg,rgba(250,246,240,.5)0,rgba(245,239,230,.8) 100%);padding:10px 16px;position:relative}.items-grid.items-grid-stock .item-card:hover{background:rgba(180,140,80,.1)}.items-grid.items-grid-stock .item-card:last-child{border-bottom:3px solid #c9a96e}.items-grid.items-grid-stock .ic-name{color:#4a3520;font-weight:500}.items-grid.items-grid-stock .ic-qty-badge{background:rgba(180,140,80,.15);color:#6b4c1e;border-radius:var(--radius-md);padding:2px 6px}.items-grid.items-grid-stock .cat-header{background:linear-gradient(90deg,#c9a96e,#d4b87a);color:#3d2800;font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;padding:6px 14px;border-bottom:2px solid #b08d40}.ic-select,.item-card{display:flex;align-items:center;cursor:pointer;position:relative}.item-card{gap:10px;padding:10px 14px;background:0 0;transition:background var(--ease);min-height:48px;contain:layout style;border-bottom:1px solid var(--border-light)}.item-card:hover{background:rgb(var(--primary-rgb)/.04)}.item-card.selected{background:rgb(var(--primary-rgb)/.08)}.item-card.low-stock{border-left:3px solid var(--warning)}.item-card.out-stock{border-left:3px solid var(--danger)}.ic-select{width:18px;height:18px;border-radius:var(--radius-sm);border:2px solid var(--text-muted, #888);flex-shrink:0;justify-content:center;transition:all var(--ease);font-size:var(--text-xs);color:transparent;-webkit-tap-highlight-color:transparent;background:rgba(0,0,0,.04)}.ic-select:hover{border-color:var(--primary)}.item-card.selected .ic-select{background:var(--primary);border-color:var(--primary);color:#fff}.ic-cat{font-size:var(--text-lg);flex-shrink:0}.ic-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.ic-name,.ic-qty-badge{font-weight:600;white-space:nowrap}.ic-name{font-size:var(--text-lg);color:var(--text);overflow:hidden;text-overflow:ellipsis;min-width:0}.ic-qty-badge{font-size:var(--text-base);color:var(--text-secondary);background:var(--bg);padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.ic-tags{display:flex;gap:3px;flex-shrink:0}.ic-action,.ic-controls{display:flex;align-items:center}.ic-controls{gap:3px;flex-shrink:0}.ic-action{width:32px;height:32px;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--text-secondary);transition:background var(--ease);border:0;background:0 0;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}.ic-action:hover{background:var(--bg-hover)}.ic-action.move-btn{background:rgb(var(--primary-rgb)/.08);border-radius:var(--radius-md);color:var(--primary)}.ic-action.move-btn:hover{background:rgb(var(--primary-rgb)/.15)}.ic-action.delete-btn:hover{background:var(--danger-bg);color:var(--danger)}.exp-badge{font-size:var(--text-xs);padding:1px 5px;border-radius:8px;font-weight:600;white-space:nowrap}.exp-badge.expired{background:#fee2e2;color:#dc2626}.exp-badge.expiring{background:#fef3c7;color:#d97706}.exp-badge.added-date{background:var(--bg-hover);color:var(--text-muted);font-weight:500}.exp-badge.frozen-badge{background:#dbeafe;color:#2563eb;font-weight:600}.item-frozen{border-left:3px solid #60a5fa;background:linear-gradient(90deg,rgba(96,165,250,.04)0,transparent 40%)}.freeze-btn,.thaw-btn{font-size:var(--text-base)!important}html.dark .exp-badge.frozen-badge{background:#1e3a5f;color:#93c5fd}html.dark .item-frozen{border-left-color:#3b82f6;background:linear-gradient(90deg,rgba(59,130,246,.08)0,transparent 40%)}html.dark .exp-badge.expired{background:#7f1d1d;color:#fca5a5}html.dark .exp-badge.expiring{background:#78350f;color:#fde68a}html.dark .exp-badge.added-date{background:var(--bg-hover);color:var(--text-muted)}.bulk-bar{position:sticky;top:0;z-index:var(--z-sticky);display:none;align-items:center;gap:10px;padding:10px 16px;background:var(--primary);color:var(--text-inverse);border-radius:var(--radius-md);margin-bottom:8px;box-shadow:var(--shadow);will-change:transform}.bulk-bar.show{display:flex}.bulk-bar-count{font-size:var(--text-base);font-weight:700;flex:1}.bulk-bar .btn-bulk{padding:6px 12px;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius);cursor:pointer;transition:all var(--ease);border:1px solid rgba(255,255,255,.3);background:0 0;color:var(--text-inverse)}.bulk-bar .btn-bulk:hover{background:rgba(255,255,255,.15)}.bulk-bar .btn-bulk.danger{border-color:rgba(255,100,100,.5)}.bulk-bar .btn-bulk.danger:hover{background:rgba(255,80,80,.25)}.store-color-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.store-color-input{width:36px;height:36px;padding:2px;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0}.store-autocomplete{display:none;position:absolute;top:100%;left:0;right:0;z-index:var(--z-overlay);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:220px;overflow-y:auto}.store-autocomplete.open{display:block}.store-ac-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-light)}.store-ac-option:last-child{border-bottom:none}.store-ac-option:hover{background:var(--bg-hover)}.store-ac-color{width:14px;height:14px;border-radius:50%;flex-shrink:0}.store-ac-name{font-size:var(--text-md);font-weight:600;color:var(--text)}.store-ac-icon{font-size:var(--text-lg);flex-shrink:0}.store-select-row{display:flex;gap:6px;align-items:center}.store-select-row select{flex:1;min-width:0}.alias-settings-list{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.alias-row{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius);background:var(--bg);font-size:var(--text-base)}.alias-canonical{font-weight:700;color:var(--text);white-space:nowrap;cursor:pointer;border-bottom:1px dashed transparent;transition:border-color var(--ease)}.alias-canonical:hover{border-bottom-color:var(--primary);color:var(--primary)}.alias-is-label{color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap}.alias-rename-input{font-size:var(--text-base);font-weight:700;color:var(--text);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:2px 6px;background:var(--bg);outline:0;min-width:80px;max-width:200px}.alias-names{flex:1;display:flex;flex-wrap:wrap;gap:4px;min-width:0}.alias-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full);background:var(--primary-light);color:var(--primary);font-size:var(--text-sm);font-weight:600}.alias-chip-remove{font-size:var(--text-xs);opacity:.6;cursor:pointer;padding:0 2px}.alias-chip-remove:hover{opacity:1}.alias-add-btn{font-size:var(--text-sm);padding:2px 8px;border-radius:var(--radius-full);border:1px dashed var(--border);color:var(--text-muted);font-weight:600;cursor:pointer;transition:all var(--ease)}.alias-add-btn:hover,.qty-step:hover{border-color:var(--primary);color:var(--primary)}.alias-add-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.settings-hint{font-size:var(--text-base);color:var(--text-muted);margin-bottom:10px;line-height:1.4}.reorder-btn{font-size:var(--text-xs)!important;width:22px!important;height:22px!important}.qty-stepper{display:flex;gap:2px;flex-shrink:0}.qty-step{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--text-md);font-weight:600;color:var(--text-secondary);background:var(--bg-card);transition:all var(--ease)}.qty-step:hover{background:var(--primary-light)}.ic-actions{display:flex;gap:2px;flex-shrink:0}#recipes-view .recipes-grid{padding:16px 12px;background:linear-gradient(180deg,#fdfbf5 0,#f8f3ea 100%);border-radius:8px;border:1px solid #e0d5c0}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;position:relative}.cook-now-card,.planner-meal,.recipe-card{animation:cardIn .25s cubic-bezier(.22,1,.36,1) both}.planner-meal:nth-child(1),.recipe-card:nth-child(1){animation-delay:.03s}.planner-meal:nth-child(2),.recipe-card:nth-child(2){animation-delay:.06s}.planner-meal:nth-child(3),.recipe-card:nth-child(3){animation-delay:.09s}.planner-meal:nth-child(4),.recipe-card:nth-child(4){animation-delay:.12s}.planner-meal:nth-child(5),.recipe-card:nth-child(5){animation-delay:.15s}.planner-meal:nth-child(6),.recipe-card:nth-child(6){animation-delay:.18s}.planner-meal:nth-child(7),.recipe-card:nth-child(7){animation-delay:.21s}.planner-meal:nth-child(8),.recipe-card:nth-child(8){animation-delay:.24s}.planner-meal:nth-child(n+9),.recipe-card:nth-child(n+9){animation-delay:.27s}.recipe-card,.recipe-card-body{display:flex;flex-direction:column}.recipe-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .3s,transform .3s cubic-bezier(.22,1,.36,1),border-color .3s;height:auto;min-height:200px;box-shadow:0 1px 3px rgba(0,0,0,.04)}.recipe-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.1),0 4px 12px rgba(0,0,0,.06);transform:translateY(-4px);border-color:rgb(var(--primary-rgb)/.2)}.recipe-card-body{padding:16px 18px;flex:1;gap:6px}.recipe-card-title{font-size:var(--text-lg);font-weight:700;color:var(--text);margin-bottom:0;display:flex;align-items:center;gap:6px;min-width:0}.recipe-card-servings,.recipe-card-url{font-size:var(--text-sm);color:var(--text-muted)}.recipe-card-url{color:var(--primary);display:block;opacity:.7}.recipe-card-chips{display:flex;flex-wrap:wrap;gap:4px;max-height:28px;overflow:hidden}.chip{padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;background:var(--bg);border:1px solid var(--border);color:var(--text-secondary)}.chip.more{background:rgb(var(--primary-rgb)/.08);border-color:transparent;color:var(--primary);font-weight:600}.recipe-card-footer{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:10px;border-top:1px solid var(--border)}.recipe-card-footer .rc-btn-emoji{font-size:1.1em}.btn-recipe-fav{background:0 0;border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;font-size:1.15rem;cursor:pointer;transition:all var(--ease);line-height:1}.btn-recipe-fav:hover{border-color:var(--primary);transform:scale(1.15)}.planner-grid{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;transition:margin-right .3s ease}@media (min-width:769px){.drawer-open .page-header,.drawer-open .planner-actions,.drawer-open .planner-grid{margin-right:308px}}.planner-drawer-toggle{position:fixed;right:16px;bottom:24px;z-index:var(--z-fab);width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;font-size:var(--text-xl);border:0;box-shadow:0 2px 8px rgba(0,0,0,.2);cursor:pointer;display:none;align-items:center;justify-content:center;transition:transform .2s,background .2s}.planner-drawer-toggle:hover{background:var(--primary-hover);transform:scale(1.1)}.planner-drawer-toggle.active{right:316px}.planner-drawer{position:fixed;right:-300px;top:0;bottom:0;width:300px;background:var(--bg-card);border-left:1px solid var(--border);z-index:var(--z-drawer);display:flex;flex-direction:column;transition:right .3s ease;box-shadow:-4px 0 12px rgba(0,0,0,.08);padding-top:60px}.planner-drawer.open{right:0}.planner-drawer-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.planner-drawer-header h3{font-size:var(--text-md);font-weight:700;margin:0}.planner-drawer-search{padding:8px 10px}.planner-drawer-list{flex:1;overflow-y:auto;padding:8px}.btn-sort-dir,.planner-drawer-item{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.planner-drawer-item{padding:10px 12px;margin-bottom:6px;cursor:grab;font-size:var(--text-base);font-weight:500;flex-direction:column;gap:2px;transition:box-shadow .15s,border-color .15s}.planner-drawer-item:hover{border-color:var(--primary);box-shadow:0 2px 6px rgb(var(--primary-rgb)/.12)}.planner-drawer-item:active{cursor:grabbing}.planner-drawer-item .drawer-item-meta{font-size:var(--text-xs);color:var(--text-muted);font-weight:400}.planner-drawer-item.drawer-quick{border-left:3px solid var(--success,#16a34a)}.planner-drawer-item.drawer-recipe{border-left:3px solid var(--primary)}.planner-drawer-item.drawer-discover{border-left:3px solid var(--warning,#f59e0b);cursor:pointer;flex-direction:row;align-items:center;gap:8px}.btn-sort-dir{width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-lg);font-weight:700;transition:background .15s,transform .15s}.btn-sort-dir:hover{background:var(--primary-light,#e6f4ef);border-color:var(--primary)}.btn-sort-dir:active{transform:scale(.9)}.sort-dir-divider{height:1px;background:var(--border);margin:6px 0}.sort-dir-toggle{width:100%;text-align:left;padding:8px 12px;border:0;background:0 0;cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--primary);border-radius:var(--radius-sm)}.sort-dir-toggle:hover{background:var(--primary-light,#e6f4ef)}.sort-dir-toggle.desc{color:var(--error,#dc2626)}@media (max-width:768px){.planner-drawer-toggle{display:none!important}.planner-drawer{width:min(280px,calc(100vw - 48px));right:calc(-1*min(280px,calc(100vw - 48px)));padding-top:0}.planner-drawer.open{box-shadow:-6px 0 24px rgba(0,0,0,.18)}}.planner-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.planner-week-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-hover);border-radius:var(--radius);margin:12px 0 4px;border:1px solid var(--border-light)}.planner-week-header.current{background:linear-gradient(to right,rgb(var(--primary-rgb)/.06),rgb(var(--primary-rgb)/.02));border-color:var(--primary)}.planner-week-header:first-child{margin-top:0}.planner-week-label-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.planner-week-name{font-size:var(--text-base);font-weight:700;color:var(--text)}.planner-week-range{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.planner-week-meal-count{font-size:var(--text-xs);font-weight:700;color:var(--primary);background:var(--primary-light);padding:2px 8px;border-radius:var(--radius-pill)}.planner-week-actions{display:flex;align-items:center;gap:6px}.planner-day{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px;min-height:100px;display:flex;flex-direction:column;min-width:0;transition:border-color var(--ease),box-shadow var(--ease)}.planner-day:hover{box-shadow:var(--shadow-xs)}.planner-day.today{border-color:var(--primary);border-width:2px;background:linear-gradient(to bottom,rgb(var(--primary-rgb)/.03),transparent)}.planner-day.today .planner-day-date{color:var(--primary)}.planner-day.past{opacity:.6}.planner-day.past:hover{opacity:1}.planner-day.drag-over{border-color:var(--accent);background:var(--accent-light);border-style:dashed}.planner-day-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}.planner-day-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;line-height:1.2}.planner-day-date{font-size:var(--text-lg);font-weight:800;color:var(--text);line-height:1.2}.planner-day-count{font-size:var(--text-xs);font-weight:700;color:var(--primary);background:var(--primary-light);width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.planner-meals{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.planner-drop-zone{padding:3px 4px;border-radius:var(--radius-sm);min-height:28px;border:1px dashed transparent;transition:all .15s ease;position:relative}.planner-drop-zone.drag-over{border-color:var(--primary);background:rgb(var(--primary-rgb)/.08)}.drop-zone-label{font-size:var(--text-2xs);font-weight:600;color:var(--text-muted);opacity:.6;display:block;margin-bottom:2px}.planner-drop-zone .drop-zone-label,.planner-drop-zone:empty .drop-zone-label{display:block}.planner-drop-zone.drag-over .drop-zone-label{color:var(--primary);opacity:1}.planner-meal{padding:8px 10px 7px;background:var(--bg);border:1px solid var(--border-light);border-left:3px solid var(--primary);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:grab;transition:all var(--ease);position:relative}.planner-meal.meal-type-breakfast{border-left-color:var(--meal-breakfast)}.planner-meal.meal-type-lunch{border-left-color:var(--meal-lunch)}.planner-meal.meal-type-dinner{border-left-color:var(--meal-dinner)}.planner-meal.meal-type-snack{border-left-color:var(--meal-snack)}.planner-meal:hover{background:var(--primary-light);border-color:var(--primary);box-shadow:var(--shadow-xs)}.planner-meal.dragging{opacity:.4;transform:rotate(2deg)}.planner-meal,.planner-meal-main{display:flex;flex-direction:column;gap:1px;min-width:0}.planner-meal-top{display:flex;align-items:center;gap:4px}.planner-meal-type-badge{font-size:var(--text-2xs);font-weight:700;padding:1px 5px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.planner-meal-type-badge.recipe{background:var(--primary-light);color:var(--primary)}.planner-meal-type-badge.quick{background:var(--accent-light);color:var(--accent)}.planner-meal-actions-row{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--ease);position:absolute;top:4px;right:4px;background:var(--bg-card);border-radius:var(--radius-sm);padding:2px 3px;box-shadow:0 1px 4px rgba(0,0,0,.1);z-index:2}@media (hover:hover){.planner-meal:hover .planner-meal-actions-row{opacity:1}}.planner-meal-name{font-weight:700;color:var(--text);line-height:1.3;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0}.planner-meal-meta{font-size:var(--text-2xs);color:var(--text-muted);font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-scaled-dot{color:var(--accent);font-size:.5em;vertical-align:middle}.planner-meal-preview{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;line-height:1.3;display:none}.planner-meal-footer{display:flex;align-items:center;gap:4px;margin-top:2px;opacity:0;max-height:0;overflow:hidden;transition:opacity .15s,max-height .15s}@media (hover:hover){.planner-meal:hover .planner-meal-footer{opacity:1;max-height:30px}}.planner-meal-controls{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.planner-meal-quick{border-left-color:var(--accent)}.planner-meal-quick:hover{background:var(--accent-light);border-color:var(--accent)}.planner-meal-quick .planner-meal-name{color:var(--text)}.planner-meal-ing-count{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.planner-meal-cooked{opacity:.65;border-left-color:var(--success, #16a34a)}.planner-meal-cooked .planner-meal-name{text-decoration:line-through}.meal-cooked-badge{font-size:var(--text-xs);cursor:default}.meal-cook-btn{font-size:var(--text-xs)!important}.meal-reminder-badge{font-size:var(--text-xs);cursor:pointer;padding:1px 3px;border-radius:4px;background:rgba(59,130,246,.1)}.meal-reminder-badge.meal-reminder-unset{opacity:.4;background:0 0}.batch-cook-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.batch-cook-item,.meal-action,.meal-remove{cursor:pointer;border-radius:var(--radius-sm)}.batch-cook-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-secondary);min-height:44px}.batch-cook-item input{width:18px;height:18px;accent-color:var(--success, #16a34a)}.batch-cook-item span{font-weight:600;font-size:var(--text-base)}.batch-cook-item small{margin-left:auto}.meal-action,.meal-remove{font-size:var(--text-xs);padding:2px 3px;background:0 0;border:0;line-height:1;transition:background var(--ease)}.meal-action:hover{background:rgba(0,0,0,.06)}.meal-action:active{transform:scale(.96);background:rgba(0,0,0,.1)}.meal-remove{font-size:var(--text-base);color:var(--text-muted);padding:0 3px;transition:all var(--ease)}.meal-remove:hover{background:var(--danger-bg);color:var(--danger)}.planner-servings{display:flex;align-items:center;gap:2px}.planner-srv-btn{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--text-sm);font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--bg-card);transition:all var(--ease);line-height:1;padding:0}.planner-add-meal:hover .planner-add-icon,.planner-srv-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.planner-srv-btn:active{transform:scale(.96);background:var(--primary);color:#fff}.planner-srv-count{font-size:var(--text-sm);font-weight:800;color:var(--text-secondary);min-width:16px;text-align:center}.planner-srv-count.scaled{color:var(--accent)}.planner-add-meal{display:flex;align-items:center;justify-content:center;gap:4px;font-size:var(--text-sm);font-weight:600;color:var(--primary);padding:6px;border-radius:var(--radius-sm);margin-top:auto;transition:all var(--ease);border:1px dashed transparent}.planner-add-icon,.planner-add-meal:hover{color:var(--primary);background:var(--primary-light)}.planner-add-meal:hover{border-color:var(--primary)}.planner-add-meal:active{transform:scale(.96);background:var(--primary);color:#fff}.planner-add-icon{font-size:var(--text-base);font-weight:700;width:18px;height:18px;border-radius:50%;border:1.5px dashed var(--primary);display:flex;align-items:center;justify-content:center;transition:all var(--ease);line-height:1}.meal-type-selector{display:flex;gap:6px;padding:8px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.meal-type-btn,.planner-meal-class{border-radius:var(--radius-pill);cursor:pointer}.meal-type-btn{padding:4px 10px;border:1.5px solid var(--border);font-size:var(--text-sm);font-weight:600;background:var(--bg-card);color:var(--text-muted);transition:all var(--ease)}.meal-type-btn:hover{border-color:var(--primary);color:var(--primary)}.meal-type-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.planner-meal-class{font-size:var(--text-2xs);opacity:0;width:0;overflow:hidden;padding:0;border:0;pointer-events:none;transition:all .15s;background:0 0}.planner-meal:hover .planner-meal-class{opacity:.7;width:auto;padding:1px 6px;border:1px solid var(--border);pointer-events:auto}.planner-meal-class:hover{background:var(--bg-secondary);opacity:1}.planner-meal-section-header{font-size:var(--text-2xs);font-weight:600;color:var(--text-muted);padding:2px 4px 1px;margin-top:4px;opacity:.7}.planner-range-select,.planner-week-label{font-size:var(--text-md);font-weight:600;color:var(--text)}.planner-range-select{padding:8px 12px;font-size:var(--text-sm);border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.planner-actions{padding:10px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.slot-recipe-servings{margin-left:auto;font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.slot-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);padding:12px 24px 0;flex-shrink:0}.slot-tab{padding:8px 16px;font-size:var(--text-base);font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--ease);cursor:pointer;background:0 0;border-top:none;border-left:none;border-right:none}.slot-tab:hover{color:var(--text-secondary)}.slot-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.slot-tab-content{padding:16px 24px;overflow-y:auto;flex:1;min-height:0}.slot-body{max-height:300px;overflow-y:auto}.quick-meal-form{display:flex;flex-direction:column;gap:12px}.quick-meal-name-input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;color:var(--text);background:var(--bg-card);box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.quick-meal-name-input:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12),inset 0 1px 2px rgba(0,0,0,.04)}.quick-meal-servings-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-muted,#f9fafb);border-radius:var(--radius-md);border:1px solid var(--border)}.quick-meal-servings-row label{font-size:var(--text-base);font-weight:600;color:var(--text-muted);margin-right:auto}.quick-srv-input{width:50px;text-align:center;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:700}.quick-srv-input:focus{border-color:var(--primary);outline:0}.board-search-input:focus,.planner-drawer-search:focus,.quick-search-input:focus,.recipe-search-input:focus{box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12)}.quick-search-input{width:100%;padding:9px 14px;margin-bottom:8px}.quick-ingredient-list{max-height:180px;overflow-y:auto;display:flex;flex-wrap:wrap;gap:6px}.quick-ing-btn,.quick-meal-selected h4{font-size:var(--text-sm);font-weight:600}.quick-ing-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-card);transition:all var(--ease);cursor:pointer}.quick-ing-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.quick-ing-custom{border-style:dashed;color:var(--primary)}.quick-ing-source{font-size:var(--text-xs)}.quick-meal-selected h4{color:var(--text-muted);margin-bottom:6px}.quick-selected-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.quick-selected-item{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:8px 10px;background:var(--primary-light);border-radius:var(--radius-sm);border:1px solid rgb(var(--primary-rgb)/.12)}.quick-sel-name{font-size:var(--text-base);font-weight:600;color:var(--primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-sel-qty{width:60px;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-base);text-align:center}.quick-sel-qty,.quick-sel-remove,.quick-sel-unit{border:1px solid var(--border);background:var(--bg-card)}.quick-sel-unit{padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-base)}.quick-sel-remove{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--text-md);font-weight:700;color:var(--text-muted);transition:all var(--ease)}.quick-sel-remove:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.quick-empty-hint{text-align:center;color:var(--text-muted);font-size:var(--text-base);font-weight:600;padding:12px}.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(15,23,42,.5);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:16px;will-change:opacity;overflow-y:auto;overscroll-behavior:contain}.modal,.modal-overlay.open{display:flex}.modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:440px;max-height:85vh;flex-direction:column;overflow:hidden;overflow-x:hidden}.modal-lg{max-width:600px}#recipe-modal .modal,#settings-modal .modal{max-width:min(780px,calc(100vw - 32px));max-height:90vh}#settings-modal .modal{height:85vh}.modal-close,.modal-header{display:flex;align-items:center}.modal-header{justify-content:space-between;padding:20px 24px 0;flex-shrink:0}.modal-header h3{font-size:var(--text-lg);font-weight:700}.modal-close{width:44px;height:44px;justify-content:center;font-size:var(--text-2xl);color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--ease)}.modal-close:hover,.modal-header h3{color:var(--text)}.modal form,.modal-body,.settings-body{padding:16px 24px 20px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.form-group{margin-bottom:12px;display:flex;flex-direction:column;gap:5px}.form-group label{font-size:var(--text-sm);letter-spacing:.01em}.form-divider{display:flex;align-items:center;gap:12px;margin:12px 0 4px;color:var(--text-muted);font-size:var(--text-sm)}.form-divider::after,.form-divider::before{content:"";flex:1;height:1px;background:var(--border)}.recipe-import-section{background:var(--bg-hover);padding:12px 14px;border-radius:var(--radius-md);border:1px dashed var(--border)}.form-row{display:flex;gap:12px;flex-wrap:wrap}.flex-1{flex:1}.flex-2{flex:2}.form-hint{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px}.parse-preview-header h4{font-size:var(--text-md);color:var(--text);margin:0}.parse-preview-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.parse-preview-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);font-weight:500;transition:background var(--ease)}.modal-close:hover,.parse-preview-row:hover{background:var(--bg-hover)}.parse-preview-row input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;flex-shrink:0}.parse-preview-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parse-preview-qty{font-size:var(--text-sm);color:var(--text-muted);font-weight:600;white-space:nowrap}.parse-preview-removed{opacity:.6}.parse-preview-removed:has(input:checked){opacity:1;background:var(--primary-light)}.parse-removed-section{margin-top:8px}.parse-removed-toggle{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;padding:6px 0}.parse-removed-toggle:hover{color:var(--text)}.form-actions{display:flex;align-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-light)}.spacer{flex:1}.optional{font-weight:400;color:var(--text-muted)}.ingredients-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.ingredient-row{display:flex;gap:6px;align-items:center}.ingredient-row .ing-name,.ingredient-row .ing-qty{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base)}.ingredient-row .ing-name{flex:4;padding:7px 10px;min-width:0}.ingredient-row .ing-qty{width:64px;padding:7px 8px;text-align:center;-moz-appearance:textfield}.ingredient-row .ing-qty::-webkit-inner-spin-button,.ingredient-row .ing-qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ingredient-row .ing-unit{width:72px;padding:7px 6px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm)}.ingredient-row .ing-name:focus,.ingredient-row .ing-qty:focus,.ingredient-row .ing-unit:focus{outline:0;border-color:var(--primary)}.btn-remove-ing{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--ease);flex-shrink:0}.btn-leave-home,.btn-remove-ing:hover{background:var(--danger-bg);color:var(--danger)}.btn-leave-home{padding:2px 10px;font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-sm);transition:all var(--ease);flex-shrink:0}.btn-leave-home:hover{background:var(--danger);color:#fff}.btn-primary{padding:9px 18px;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:var(--text-base);border:0;transition:background var(--ease),box-shadow var(--ease)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-primary:active{transform:scale(.96);background:#1e5c42}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{padding:9px 18px;border-radius:var(--radius);background:var(--bg-card);color:var(--text);font-size:var(--text-base);border:1px solid var(--border);transition:all var(--ease)}.btn-outline:hover{border-color:var(--text-muted);background:var(--bg-hover)}.btn-outline:active{background:var(--bg)}.btn-lg{padding:12px 24px;font-size:var(--text-md)}.btn-sm{padding:6px 12px;font-size:var(--text-sm)}.btn-outline:active,.btn-sm:active{transform:scale(.96)}.btn-danger-text{background:0 0;border:0;color:var(--danger);font-size:var(--text-base);font-weight:600;padding:8px 12px;border-radius:var(--radius);transition:background var(--ease)}.btn-danger-text:hover{background:var(--danger-bg)}.btn-danger{background:var(--danger);color:#fff;border:0}.btn-danger:hover{background:#c0392b}.btn-ghost,.btn-text{background:0 0;border:0;color:var(--primary);font-size:var(--text-base);font-weight:600;padding:6px 0}.btn-ghost:hover,.btn-text:hover{text-decoration:underline}.btn-text{padding:4px 0}.btn-success{border:0}.btn-success:hover{background:#047857}.btn-success,.btn-success-bg{background:var(--success);color:#fff}.btn-accent{background:var(--accent);color:#fff;border:0}.btn-accent:hover{background:var(--accent-hover)}.btn-icon-label{display:flex;align-items:center;gap:4px;padding:7px 14px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);font-size:var(--text-base);font-weight:600;color:var(--text);transition:all var(--ease)}.btn-icon-label:hover{border-color:var(--text-muted)}.sort-arrow{font-size:var(--text-xs);opacity:.5}.btn-cook,.btn-edit-recipe{padding:7px 14px;border-radius:var(--radius);font-size:var(--text-sm);border:1px solid var(--border);background:0 0;color:var(--text-secondary);cursor:pointer}.btn-cook,.btn-edit-recipe,.btn-recipe-collect,.btn-share-recipe{transition:all var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:4px}.btn-recipe-collect{color:var(--text-secondary)}.btn-share-recipe{border-radius:var(--radius)}.btn-cook{background:var(--primary);color:#fff;border:0}.btn-cook:hover{background:var(--primary-hover)}.btn-edit-recipe:hover{border-color:var(--text-muted);color:var(--text)}.btn-recipe-collect:hover{color:var(--text)}.diff-body{padding:0 24px 24px}.diff-link{display:block;font-size:var(--text-base);color:var(--primary);font-weight:500;margin-bottom:16px}.scaling-bar{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-md);margin-bottom:16px}.scaling-controls{display:flex;align-items:center;gap:8px}.scaling-label{font-size:var(--text-base);font-weight:600;color:var(--text-secondary)}.scale-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border);font-weight:700;color:var(--text);background:var(--bg-card);transition:all var(--ease)}.scale-btn:hover{border-color:var(--primary);color:var(--primary)}.scale-btn:disabled{opacity:.3;cursor:not-allowed}.scale-input{width:60px;text-align:center;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-md)}.scale-input:focus{outline:0;border-color:var(--primary)}.scale-presets{display:flex;gap:4px;margin-left:auto}.scale-preset{padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--ease)}.scale-preset:hover{border-color:var(--text-muted)}.scale-preset.active{background:var(--primary);border-color:var(--primary);color:#fff}.scale-save-row{text-align:center;margin-bottom:12px}.scale-default-badge,.scale-save-row .btn-ghost{color:var(--accent);font-weight:600;font-size:var(--text-sm)}.scale-save-row .btn-ghost:hover{background:var(--accent-light)}.scale-default-badge{color:var(--primary);background:var(--primary-light);padding:4px 12px;border-radius:var(--radius-full);display:inline-block}.cook-modal-meal-type{padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:10px}.cook-modal-section-label{font-size:var(--text-base);font-weight:600;color:var(--text-muted);display:block;margin-bottom:6px}.cook-modal-section-label small{font-weight:400;opacity:.7}.cook-meal-type-btns{display:flex;gap:6px;flex-wrap:wrap}.cook-type-btn{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-card);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.cook-type-btn:hover{border-color:var(--primary);background:var(--primary-light)}.cook-type-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.cook-modal-macros{padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:10px}.cook-macro-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cook-macro-field{display:flex;flex-direction:column;align-items:center;gap:2px}.cook-macro-field input{width:100%;text-align:center;padding:6px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-base)}.cook-macro-field input:focus{border-color:var(--primary);outline:0}.cook-macro-field label{font-size:var(--text-xs);color:var(--text-muted);font-weight:600;text-transform:uppercase}.diff-section{margin-bottom:16px}.diff-section h4{font-size:var(--text-base);font-weight:700;color:var(--text);margin-bottom:8px}.diff-section.all-good h4{color:var(--success);text-align:center;padding:20px 0}.diff-list{display:flex;flex-direction:column;gap:4px}.diff-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);font-size:var(--text-base)}.diff-item.have{background:var(--success-bg)}.diff-item.partial{background:var(--warning-bg)}.diff-item.need{background:var(--danger-bg)}.diff-item.supply{background:var(--bg-hover);border:1px dashed var(--border)}.diff-item.supply .btn-add-supply{margin-left:auto;color:var(--primary);font-weight:600}.diff-item.supply .btn-add-supply:disabled{color:var(--success);opacity:.8}.supplies-hint{font-size:var(--text-sm);color:var(--text-muted);margin:-4px 0 8px;font-style:italic}.tools-section{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius);padding:0}.tools-summary{font-size:var(--text-base);font-weight:600;color:var(--text-muted);cursor:pointer;padding:10px 14px;list-style:none}.tools-summary::-webkit-details-marker{display:none}.tools-summary::before{content:"▸ ";font-size:var(--text-sm)}.tools-section[open] .tools-summary::before{content:"▾ "}.tools-section[open] .tools-summary{border-bottom:1px solid var(--border)}.tools-section .diff-list{padding:8px 14px}.diff-item.tool{background:0 0;padding:6px 0;border-bottom:1px solid var(--border)}.diff-item.tool:last-child{border-bottom:none}.diff-check{font-size:var(--text-md);flex-shrink:0}.diff-name{flex:1;font-weight:600;color:var(--text)}.diff-qty,.diff-stock{font-size:var(--text-sm);color:var(--text-secondary)}.diff-stock{color:var(--text-muted)}.diff-deficit,.diff-warn{font-size:var(--text-sm);color:var(--warning);font-weight:500}.diff-deficit{color:var(--accent);font-weight:600}.diff-actions{margin-top:16px;text-align:center}.slot-body{padding:8px 24px 24px;display:flex;flex-direction:column;gap:4px}.slot-recipe-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);font-size:var(--text-md);font-weight:600;color:var(--text);border:1px solid var(--border);background:var(--bg-card);transition:all var(--ease);text-align:left}.slot-recipe-btn:hover{border-color:var(--primary);background:var(--primary-light)}.settings-body{display:flex;flex-direction:column;gap:0}.settings-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--border-light);background:var(--bg);position:sticky;top:0;z-index:2}.settings-tab{padding:10px 16px;font-size:var(--text-base);font-weight:600;color:var(--text-secondary);background:0 0;border:0;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.settings-pane{display:none}.settings-pane.active{display:flex;flex-direction:column}.settings-section{padding:14px 0;border-bottom:1px solid var(--border-light)}.settings-section:last-child{border-bottom:none}.settings-section h4{font-size:var(--text-md);font-weight:700;color:var(--text);margin-bottom:8px}.settings-desc{font-size:var(--text-sm);margin-bottom:12px;line-height:1.4}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.settings-toggle-row span{font-size:var(--text-base);font-weight:500;color:var(--text)}.toggle-row{display:flex;align-items:center;cursor:pointer;padding:8px 0;gap:10px}.toggle-row span:first-child{font-size:var(--text-base);font-weight:600;color:var(--text);flex:1}.toggle-input{display:none}.toggle-slider{width:40px;height:22px;background:var(--border);border-radius:11px;position:relative;transition:background .2s;flex-shrink:0}.toggle-slider::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.15)}.toggle-input:checked+.toggle-slider{background:var(--primary)}.onboarding-notif-toggle input:checked+.onboarding-toggle-slider::after,.toggle-input:checked+.toggle-slider::after{transform:translateX(18px)}.household-list{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.household-member-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);background:var(--bg);font-size:var(--text-base)}.household-member-row.home-active{border:1px solid var(--primary);background:var(--primary-light)}.member-emoji{font-size:var(--text-lg)}.member-name{flex:1;font-weight:600;color:var(--text)}.member-color{width:14px;height:14px;border-radius:50%}.home-address,.home-item-count{font-size:var(--text-sm);color:var(--text-muted)}.home-address{display:block;font-weight:400}.home-item-count{font-weight:500}.btn-icon-sm{background:0 0;border:0;padding:2px 4px;font-size:var(--text-sm);cursor:pointer;opacity:.5;transition:opacity .15s;line-height:1}.btn-icon-sm:hover,.swipeable.swiping .swipe-bg{opacity:1}.add-column-row,.add-member-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.col-icon-input,.col-icon-trigger{width:48px;height:48px;text-align:center;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);transition:border-color .2s ease,box-shadow .2s ease;cursor:pointer}.col-icon-input{padding:8px;font-size:var(--text-2xl);position:relative}.col-icon-trigger{padding:0;font-size:1.5rem;line-height:48px;display:flex;align-items:center;justify-content:center;overflow:visible}.col-icon-input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12)}.emoji-picker-trigger{width:100%;height:48px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);font-size:var(--text-2xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,box-shadow .2s}.emoji-picker-trigger:hover{border-color:var(--primary)}.emoji-picker-trigger:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12)}.emoji-picker-dropdown{display:none;position:fixed;z-index:calc(var(--z-tooltip) + 100);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:10px;width:260px;max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch}.emoji-picker-dropdown.open{display:block}.emoji-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.emoji-pick{border:0;background:0 0;font-size:var(--text-2xl);cursor:pointer;padding:6px;border-radius:var(--radius);transition:background .15s;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.emoji-pick:hover{background:var(--bg-hover)}.emoji-pick.selected{background:var(--primary-light);box-shadow:0 0 0 2px var(--primary)}.comfort .emoji-picker-trigger{height:54px;font-size:var(--text-2xl)}.ehm-emoji-preview{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ehm-emoji-current,.ehm-emoji-grid{display:flex;border-radius:var(--radius-md)}.ehm-emoji-current{font-size:var(--text-3xl);width:52px;height:52px;align-items:center;justify-content:center;border:2px solid var(--primary);background:var(--primary-light)}.ehm-emoji-grid{flex-wrap:wrap;gap:6px;max-height:180px;overflow-y:auto;padding:8px;border:1px solid var(--border);background:var(--bg)}.ehm-emoji-btn{width:38px;height:38px;font-size:var(--text-2xl);border:2px solid transparent;border-radius:8px;background:0 0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.ehm-emoji-btn:hover{border-color:var(--primary);background:var(--bg-hover)}.ehm-emoji-btn.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 2px rgb(var(--primary-rgb)/.2)}.comfort .emoji-pick{font-size:var(--text-3xl);min-width:36px;min-height:36px;padding:8px}.comfort .emoji-picker-dropdown{width:290px;max-height:340px;padding:12px}.brand-prefs-list{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.brand-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;border:1px solid var(--border)}.brand-liked{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.3);color:#16a34a}.brand-disliked{background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.3);color:#dc2626}.brand-editor-add,.brand-editor-row{display:flex;gap:6px;align-items:center}.brand-editor-row{gap:8px;padding:6px 0;border-bottom:1px solid var(--border-light)}.brand-editor-row:last-child{border-bottom:none}.brand-remove-btn,.brand-toggle-btn{background:0 0;border:0;cursor:pointer;font-size:var(--text-base);padding:2px 6px;border-radius:var(--radius-sm);opacity:.6;transition:opacity .15s}.brand-remove-btn:hover,.brand-toggle-btn:hover{opacity:1;background:var(--bg-hover)}.column-settings-list{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.col-setting-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);background:var(--bg);font-size:var(--text-base)}.col-name{flex:1;font-weight:600}.col-default{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.import-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:1.5px solid var(--border)}.import-tab{flex:1;padding:10px 12px;background:0 0;border:0;cursor:pointer;font-size:var(--text-base);font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;transition:all .2s;text-align:center}.import-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.empty-state h3,.import-tab:hover{color:var(--text)}.import-loading{display:flex;align-items:center;gap:10px;padding:14px 0;justify-content:center}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--border);border-top-color:var(--primary);animation:spin .6s linear infinite}.empty-state{display:none;text-align:center;padding:48px 24px;grid-column:1/-1}.empty-state.show{display:block}.empty-illustration{font-size:var(--text-3xl);margin-bottom:12px;opacity:.6}.empty-state h3{font-size:var(--text-lg);font-weight:700;margin-bottom:6px}.empty-state p{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:12px;max-width:360px;margin-left:auto;margin-right:auto;line-height:1.5}.fab-group{position:fixed;bottom:24px;right:24px;z-index:var(--z-fab);gap:8px;transition:opacity .25s ease}.fab-group.hidden{opacity:0;pointer-events:none;transform:translateY(10px)}#toast-container,.fab,.fab-group{display:flex;align-items:center}.fab{position:relative;width:52px;height:52px;border-radius:50%;background:rgba(43,122,91,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:var(--text-2xl);font-weight:300;justify-content:center;box-shadow:0 6px 20px rgba(43,122,91,.35),0 2px 8px rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.18);transition:all .25s cubic-bezier(.22,1,.36,1);will-change:transform}.fab:hover{background:var(--primary-hover);transform:scale(1.08) translateY(-2px);box-shadow:0 10px 28px rgba(43,122,91,.4)}.fab:active{transform:scale(.95);transition:transform .1s}#toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:var(--z-overlay);flex-direction:column;gap:6px}.toast{padding:10px 20px;border-radius:var(--radius);background:var(--text);color:#fff;font-size:var(--text-base);font-weight:600;box-shadow:var(--shadow-lg);animation:toast-in 300ms ease forwards;max-width:calc(100vw - 32px)}.toast.hint-toast{background:linear-gradient(135deg,#2b7a5b,#1b5e43);padding:12px 20px;max-width:min(320px,calc(100vw - 32px));text-align:center;line-height:1.4}.toast.toast-undo{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 20px}.toast-undo-btn,.update-banner button{background:rgba(255,255,255,.2);border:0;color:#fff;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background .15s}.toast-undo-btn{padding:4px 10px;border-radius:4px}.toast-undo-btn:hover,.update-banner button:hover{background:rgba(255,255,255,.35)}#confetti-canvas,.update-banner{position:fixed;z-index:var(--z-banner)}.update-banner{bottom:calc(20px + env(safe-area-inset-bottom,0));left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;padding:10px 18px;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.2);display:flex;align-items:center;gap:10px;animation:toast-in 300ms ease forwards;max-width:calc(100vw - 32px)}.update-banner button{padding:5px 12px;border-radius:var(--radius-sm)}#confetti-canvas{inset:0;pointer-events:none}.skeleton{position:relative;overflow:hidden;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:shimmer 1.5s infinite}.skeleton-card{height:140px;margin-bottom:10px}.skeleton-row{height:48px;margin-bottom:6px;border-radius:8px}.skeleton-circle,.skeleton-text{height:14px;width:60%;margin:8px 12px;border-radius:4px;background:var(--border)}.skeleton-circle{width:40px;height:40px;border-radius:50%;margin:8px}html.dark .skeleton::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent)}.swipeable{position:relative;overflow:hidden;transition:transform .2s ease}.ptr-indicator,.swipeable .swipe-bg{position:absolute;display:flex;align-items:center;justify-content:center}.swipeable .swipe-bg{top:0;right:0;bottom:0;width:80px;background:#e53e3e;color:#fff;font-size:var(--text-sm);font-weight:700;opacity:0;transition:opacity .2s}.swipeable.swiped{transform:translateX(-80px)}.ptr-indicator{top:-50px;left:50%;transform:translateX(-50%);min-width:36px;height:36px;border-radius:18px;background:var(--bg-card);border:2px solid var(--primary);gap:6px;padding:0 6px;transition:top .2s ease,transform .2s ease;box-shadow:var(--shadow);z-index:var(--z-sidebar);white-space:nowrap}.ptr-icon{font-size:1rem;flex-shrink:0}.ptr-msg{font-size:.75rem;font-weight:600;color:var(--text-secondary);overflow:hidden}.ptr-indicator.active{top:12px}.ptr-indicator.refreshing .ptr-icon{animation:ptr-spin .8s linear infinite;display:inline-block}.member-email{display:block;font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.member-role{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.invite-section{margin-top:8px}.invite-row{display:flex;gap:6px;align-items:center}.invite-link-display{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text-secondary);word-break:break-all;line-height:1.4;margin-top:8px}.pending-invites{margin-top:12px}.pending-invites-title{font-size:var(--text-base);font-weight:700;color:var(--text-secondary);margin-bottom:8px}.pending-invite-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--warning-bg);border:1px solid #f0dca0;border-radius:var(--radius-md);margin-bottom:6px;flex-wrap:wrap}.pending-invite-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.pending-invite-email{font-size:var(--text-base);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-invite-time{font-size:var(--text-sm);color:var(--text-muted)}.pending-invite-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.btn-cancel-invite,.btn-copy-invite,.btn-resend-invite{border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s}.btn-copy-invite{padding:5px 10px;font-size:var(--text-sm);font-weight:600;background:var(--bg-card);color:var(--text);white-space:nowrap}.btn-copy-invite:hover{border-color:var(--primary);color:var(--primary)}.btn-cancel-invite,.btn-resend-invite{padding:5px 8px;font-size:var(--text-base);background:0 0}.btn-resend-invite:hover{border-color:var(--primary);background:var(--primary-light)}.btn-cancel-invite:hover{border-color:var(--danger);background:var(--danger-bg)}.my-invite-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--info-bg);border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-md);margin-bottom:8px}.my-invite-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.my-invite-home{font-size:var(--text-base);font-weight:600;color:var(--text)}.my-invite-meta{font-size:var(--text-sm);color:var(--text-muted)}.my-invite-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.btn-logout{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:rgba(255,255,255,.5);font-size:var(--text-base);font-weight:500;transition:all var(--ease)}.btn-logout:hover{background:rgb(var(--danger-rgb)/.15);color:rgba(255,255,255,.8)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.shop-store-picker{background:linear-gradient(135deg,rgb(var(--primary-rgb)/.03) 0%,rgb(var(--primary-rgb)/.07) 100%);border-radius:var(--radius-lg);padding:28px 24px 24px;border:1px solid rgb(var(--primary-rgb)/.12);position:relative;overflow:hidden}.shop-store-picker::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--success),var(--primary));border-radius:var(--radius-lg) var(--radius-lg)0 0}.shop-picker-title{font-size:var(--text-2xl);font-weight:800;color:var(--text);margin-bottom:4px;letter-spacing:-.01em}.shop-picker-subtitle{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:20px}.shop-store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-items:start}.shop-store-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 14px 18px;border-radius:var(--radius-lg);background:var(--bg-card);border:2px solid var(--border);cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}.shop-store-card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--store-color, var(--border));border-radius:3px 3px 0 0;opacity:.7;transition:opacity .2s}.shop-store-card:hover{border-color:var(--store-color, var(--primary));box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-3px)}.shop-store-card:hover::after{opacity:1;height:4px}.shop-store-icon{font-size:var(--text-3xl);filter:drop-shadow(0 2px 3px rgba(0,0,0,.1))}.shop-store-name{font-size:var(--text-md);font-weight:700;color:var(--text);text-align:center}.shop-store-count{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);background:var(--bg);padding:2px 8px;border-radius:var(--radius-full);border:1px solid var(--border-light)}.shop-store-card:hover .shop-store-count{background:rgb(var(--primary-rgb)/.08);border-color:rgb(var(--primary-rgb)/.2);color:var(--primary)}.shop-store-all{border-style:dashed;border-color:var(--primary);background:linear-gradient(145deg,rgb(var(--primary-rgb)/.04),rgb(var(--primary-rgb)/.09))}.shop-store-all::after{background:var(--primary)}.shop-store-all .shop-store-name{color:var(--primary)}.shop-store-add,.shop-store-untagged{border-style:dashed;border-color:var(--text-muted)}.shop-store-add::after,.shop-store-untagged::after{background:var(--text-muted)}.shop-store-add{opacity:.8}.shop-store-add .shop-store-name{color:var(--text-secondary);font-weight:600}.shop-store-add:hover{opacity:1;border-color:var(--primary)}.shop-progress-bar{display:flex;align-items:center;gap:14px;margin:16px 0 8px}.shop-progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--primary),var(--success));transition:width .4s ease}.shop-progress-text{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:16px}.shop-pct{font-weight:700;color:var(--primary)}.shop-category{margin-bottom:12px}.shop-category-label{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 12px 6px 36px;border-bottom:1px solid var(--border-light);margin-bottom:0}.aisle-items{background:var(--notepad-bg, #fffef8);border-radius:0 0 var(--radius-md) var(--radius-md);border:1px solid var(--notepad-border, #e8e4d9);border-top:none;position:relative;padding-left:32px;box-shadow:1px 2px 6px rgba(0,0,0,.04)}.aisle-items::before{content:"";position:absolute;top:0;bottom:0;left:30px;width:2px;background:var(--notepad-rule, #e88b8b);opacity:.6;z-index:1;pointer-events:none}.shop-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:0 0;border:0;border-bottom:1px solid var(--notepad-line, #c8daf0);border-radius:0;margin-bottom:0;cursor:pointer;transition:all var(--ease)}.shop-item:last-child{border-bottom:none}.shop-item.checked,.shop-item:hover{border-color:var(--notepad-line, #c8daf0)}.shop-item:hover{background:rgb(var(--primary-rgb)/.04)}.shop-item.checked{opacity:.5;background:rgba(22,163,74,.04);text-decoration:line-through}.shop-item.checked .shop-item-name{text-decoration:line-through;color:var(--text-muted)}.shop-check{font-size:var(--text-lg);flex-shrink:0;background:0 0;border:0;cursor:pointer;padding:0;line-height:1}.shop-item-name{flex:1;font-size:var(--text-md);font-weight:600;color:var(--text);min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:1px}.shop-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.shop-item-qty-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.shop-qty-input{width:60px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:600;text-align:center;background:var(--bg);color:var(--text);font-family:inherit;-moz-appearance:textfield}.shop-qty-input::-webkit-inner-spin-button,.shop-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.shop-qty-input:focus,.shop-unit-select:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 2px rgb(var(--primary-rgb)/.12)}.shop-unit-select{padding:5px 6px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-family:inherit;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.shop-item.checked .shop-qty-input,.shop-item.checked .shop-unit-select{opacity:.5}.shop-item-store{font-size:var(--text-base);flex-shrink:0}.shop-active-header{display:flex;align-items:center;gap:12px;margin-bottom:4px}.shop-active-store{font-size:var(--text-lg);font-weight:700;color:var(--text)}.shop-checkout-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:12px;box-shadow:var(--shadow);transition:transform .2s ease,opacity .2s ease}.shop-checkout-bar.hidden{transform:translateY(100%);opacity:0;pointer-events:none}.shop-checkout-bar.all-done{background:var(--success-bg);border-color:var(--success)}.settle-section h4,.shop-checkout-label,.shop-done h3{font-size:var(--text-md);font-weight:700;color:var(--text)}.shop-checkout-bar.all-done .shop-checkout-label{color:var(--success)}.shop-checkout-actions{display:flex;gap:8px;align-items:center}.shop-done{text-align:center;padding:48px 24px}.shop-done-icon{font-size:var(--text-3xl);margin-bottom:12px}.settle-section h4,.shop-done h3{font-size:var(--text-2xl);margin-bottom:6px}.shop-done p{font-size:var(--text-md);color:var(--text-secondary)}.settle-section,.shop-done p{margin-bottom:20px}.settle-section h4{font-size:var(--text-lg);margin-bottom:8px}.settle-hint{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:10px}.settle-items{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;padding-right:4px}.settle-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md)}.settle-split-toggle{font-size:var(--text-xl);background:0 0;border:0;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s}.settle-split-toggle:hover{background:var(--primary-light)}.settle-item-name{flex:1;font-size:var(--text-base);font-weight:500}.settle-item-by{font-size:var(--text-sm);color:var(--text-muted);min-width:60px;text-align:right}.settle-price-input{width:70px;padding:4px 8px;font-size:var(--text-base);text-align:right;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card)}.settle-totals{display:flex;flex-direction:column;gap:8px}.settle-total-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settle-summary span,.settle-total-row label{font-size:var(--text-base);color:var(--text-secondary)}.settle-summary{flex-direction:column;align-items:flex-end;padding-top:8px;border-top:1px solid var(--border);gap:4px}.settle-breakdown{display:flex;flex-direction:column;gap:8px}.settle-person{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg)}.settle-person.owes{border-color:var(--warning, #fbbf24);background:var(--warning-bg, #fffbeb)}.settle-person.owed{border-color:var(--success, #34d399);background:var(--success-bg, #ecfdf5)}.settle-person.even{border-color:var(--border)}.settle-person-name{font-weight:700;font-size:var(--text-md);min-width:80px}.settle-person-detail{flex:1;font-size:var(--text-sm);color:var(--text-muted)}.settle-person-net{font-size:var(--text-base);font-weight:600}.settle-person.owes .settle-person-net{color:#d97706}.settle-person.owed .settle-person-net{color:#059669}.settle-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border)}.aisle-items.collapsed{display:none}.aisle-complete .shop-category-label{opacity:.5;text-decoration:line-through}.aisle-collapse-icon,.aisle-count{font-size:var(--text-sm);color:var(--text-muted)}.aisle-count{font-weight:400;margin-left:4px}.aisle-collapse-icon{margin-left:auto}.shop-category-label{cursor:pointer;display:flex;align-items:center;gap:4px;user-select:none}.shop-price-input{width:80px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);text-align:right;background:var(--bg-card);color:var(--text)}.shop-price-input::placeholder{color:var(--text-muted);opacity:.6}.shop-estimated-total{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin-top:12px;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border)}.shop-total-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-md);color:var(--text-muted)}.shop-total-row small{opacity:.7;font-weight:400}.shop-tax-row{padding-top:4px;border-top:1px dashed var(--border)}.shop-grand-total{padding-top:6px;border-top:2px solid var(--border);font-weight:700;font-size:var(--text-lg);color:var(--text)}.shop-total-amount{font-size:var(--text-xl);color:var(--primary)}.shop-total-empty{color:var(--text-muted);font-size:var(--text-md);font-style:italic;text-align:center;width:100%;justify-content:center}.shop-budget-warning{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:10px 12px;border-radius:8px;font-size:var(--text-base);font-weight:600}.shop-budget-warning.over{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.shop-budget-warning.near{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}html.dark .shop-budget-warning.over{background:rgb(var(--danger-rgb)/.15);border-color:rgb(var(--danger-rgb)/.3)}html.dark .shop-budget-warning.near{background:rgba(180,83,9,.15);border-color:rgba(180,83,9,.3)}.shop-budget-warning small{font-weight:400;opacity:.8}.budget-bar,.budget-fill{display:block;border-radius:3px}.budget-bar{height:6px;background:var(--border);overflow:hidden;margin-top:2px}.budget-fill{height:100%;transition:width .3s}.budget-fill.near{background:#f59e0b}.budget-fill.over{background:#dc2626}.store-budget-input{width:86px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);text-align:right;background:var(--bg-card);color:var(--text);transition:border-color var(--ease),box-shadow var(--ease)}.store-budget-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12);outline:0}.shop-qty-hint{display:block;font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.shop-item-note{color:var(--primary);font-style:italic}.aisle-reorder-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:var(--text-md)}.aisle-reorder-row:last-child{border-bottom:none}.btn-aisle-move{background:0 0;border:1px solid var(--border);border-radius:4px;padding:2px 8px;cursor:pointer;font-size:var(--text-sm);color:var(--text);margin-left:4px}.btn-aisle-move:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary)}.btn-aisle-move:disabled{opacity:.3;cursor:default}.trip-history-card{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:all .15s;text-align:left;width:100%}.trip-history-card:hover{border-color:var(--primary);background:rgb(var(--primary-rgb)/.04)}.trip-card-left{display:flex;flex-direction:column;gap:2px}.trip-card-store{font-weight:600;font-size:var(--text-md)}.trip-card-date{font-size:var(--text-sm);color:var(--text-muted)}.trip-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.trip-card-total{font-weight:700;font-size:var(--text-lg)}.trip-card-badge{font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius-lg);font-weight:600}.trip-card-badge.settled{background:rgb(var(--success-rgb)/.12);color:var(--success)}.trip-card-badge.unsettled{background:rgb(var(--warning-rgb, 245 158 11)/.12);color:var(--warning, #f59e0b)}.trip-detail-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.trip-detail-date{font-size:var(--text-base);color:var(--text-muted)}.trip-detail-store{font-weight:600;font-size:var(--text-md)}.trip-detail-section{margin-bottom:16px}.trip-detail-section h4,.trip-items-table th{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.trip-detail-section h4{font-size:var(--text-base);font-weight:700;margin-bottom:8px}.trip-items-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.trip-items-table th{text-align:left;font-size:var(--text-sm);padding:6px 8px;border-bottom:1px solid var(--border)}.trip-items-table td{padding:6px 8px;border-bottom:1px solid rgb(var(--text-rgb)/.05)}.trip-item-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-item-split{text-align:center;width:30px}.trip-item-price{text-align:right;font-weight:500;white-space:nowrap}.trip-detail-totals{background:var(--bg-hover, #f8f9fa);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px}.trip-total-row{display:flex;justify-content:space-between;padding:4px 0;font-size:var(--text-base)}.trip-grand-total{font-weight:700;font-size:var(--text-md);padding-top:8px;margin-top:4px;border-top:1px solid var(--border)}.trip-balances{display:flex;flex-direction:column;gap:6px}.trip-balance-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);font-size:var(--text-base)}.trip-owes{color:var(--danger, #e53e3e);font-weight:600}.trip-gets-back{color:var(--success);font-weight:600}.trip-even{color:var(--text-muted);font-weight:500}.trip-detail-actions{display:flex;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.cook-now-section{margin-bottom:32px;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.cook-now-subtitle{font-size:var(--text-base);color:var(--text-secondary);margin:-8px 0 14px}.cook-now-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.cook-now-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:8px;transition:box-shadow var(--ease),transform var(--ease);cursor:pointer;position:relative;overflow:hidden}.cook-now-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.cook-now-card.ready{border-left:4px solid var(--success)}.cook-now-card.almost{border-left:4px solid var(--warning)}.cook-now-card.close{border-left:4px solid var(--info)}.cook-now-title{font-size:var(--text-md);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cook-now-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cook-now-badge{font-size:var(--text-sm);font-weight:700;padding:3px 10px;border-radius:var(--radius-full);white-space:nowrap}.cook-now-badge.ready{background:var(--success-bg);color:var(--success)}.cook-now-badge.almost{background:var(--warning-bg);color:var(--warning)}.cook-now-badge.close{background:var(--info-bg);color:var(--info)}.btn-expiring-recipe small,.cook-now-servings{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.cook-now-progress{height:5px;border-radius:3px;background:var(--border-light);overflow:hidden}.cook-now-progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.cook-now-progress-fill.ready{background:var(--success)}.cook-now-progress-fill.almost{background:var(--warning)}.cook-now-progress-fill.close{background:var(--info)}.cook-now-ingredients{display:flex;flex-wrap:wrap;gap:4px}.cook-now-ing{font-size:var(--text-sm);padding:2px 8px;border-radius:var(--radius-full);font-weight:600}.cook-now-ing.have{background:var(--success-bg);color:var(--success)}.cook-now-ing.miss{background:var(--danger-bg);color:var(--danger)}.cook-now-ing.expiring-ing{border:1px solid rgb(var(--warning-rgb)/.25)}.cook-now-ing.expiring-ing em{font-style:normal;font-weight:800;font-size:var(--text-xs)}.cook-now-badge.expiring-badge,.cook-now-ing.expiring-ing{background:var(--expiring-bg);color:var(--expiring-text)}.cook-now-actions{display:flex;gap:6px;margin-top:auto}.use-it-banner{background:linear-gradient(135deg,var(--expiring-bg) 0%,rgb(var(--warning-rgb)/.1) 100%);border:1px solid rgb(var(--warning-rgb)/.25);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px}.use-it-header{font-size:var(--text-lg);color:var(--expiring-text);display:flex;align-items:center;gap:6px;margin-bottom:8px}.use-it-icon{font-size:var(--text-xl)}.use-it-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.expiring-pill{font-size:var(--text-sm);font-weight:600;background:var(--bg-card);border:1px solid var(--expiring-border);color:var(--expiring-text);padding:4px 12px;border-radius:var(--radius-full)}.expiring-pill em{font-style:normal;font-weight:800;color:var(--danger);margin-left:4px}.use-it-recipes{display:flex;flex-direction:column;gap:6px}.btn-expiring-recipe{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;text-align:left;font-size:var(--text-base);font-weight:600;color:var(--text);cursor:pointer;transition:all var(--ease)}.btn-expiring-recipe:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-expiring-recipe small{font-weight:400;display:block;margin-top:2px}.btn-expiring-recipe:hover small,html.dark .btn-expiring-recipe:hover small{color:#ffffffcc}.macro-bar{display:flex;flex-wrap:wrap;gap:3px;padding:4px 0;margin-top:auto}.macro-item{font-size:var(--text-2xs);font-weight:700;padding:1px 4px;border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:-.01em}.macro-cal{background:var(--macro-cal-bg);color:var(--macro-cal-text)}.macro-protein{background:var(--macro-protein-bg);color:var(--macro-protein-text)}.macro-carbs{background:var(--macro-carbs-bg);color:var(--macro-carbs-text)}.macro-fat{background:var(--macro-fat-bg);color:var(--macro-fat-text)}.macro-coverage{font-size:var(--text-2xs);color:var(--text-muted);font-weight:500;align-self:center}.macro-week-summary{margin-top:4px}.macro-avg{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;margin-top:2px}.macro-bar-meal{padding:2px 0;margin-top:3px;gap:2px;opacity:0;max-height:0;overflow:hidden;transition:opacity .15s,max-height .15s}@media (hover:hover){.planner-meal:focus-within .macro-bar-meal,.planner-meal:hover .macro-bar-meal{opacity:1;max-height:24px}}.macro-bar-meal .macro-item{font-size:var(--text-2xs);padding:0 3px;opacity:.85}.macro-bar-meal.macro-low-coverage{opacity:.6}.macro-bar-meal .macro-warn{font-weight:700;color:var(--accent,#f59e0b)}.macro-bar-day{border-top:2px solid var(--primary);background:linear-gradient(to bottom,rgb(var(--primary-rgb)/.06),rgb(var(--primary-rgb)/.02));border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:4px 6px;margin:4px -6px -5px;display:grid;grid-template-columns:1fr 1fr;gap:2px}.macro-bar-day .macro-item{font-size:var(--text-2xs);font-weight:800;text-align:center}.macro-bar-day.macro-bar-compact{padding:5px 6px;position:relative}[data-macro-tip]{position:relative}[data-macro-tip]::after,[data-macro-tip]::before{position:absolute;left:50%;transform:translateX(-50%);pointer-events:none;opacity:0;transition:opacity .15s;z-index:var(--z-sidebar)}[data-macro-tip]::after{content:attr(data-macro-tip);bottom:calc(100% + 8px);background:var(--bg-sidebar,#1B2332);color:#fff;font-size:var(--text-sm);font-weight:500;padding:6px 12px;border-radius:var(--radius-md);white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15)}[data-macro-tip]::before{content:"";bottom:calc(100% + 2px);border:5px solid transparent;border-top-color:var(--bg-sidebar,#1B2332)}[data-macro-tip]:hover::after,[data-macro-tip]:hover::before{opacity:1}.macro-compact-bars{display:flex;gap:3px;align-items:center}.macro-compact-track{flex:1;height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.macro-compact-fill{height:100%;border-radius:2px;transition:width .3s ease}.macro-compact-label{font-size:var(--text-2xs);font-weight:700;color:var(--text-secondary);text-align:center}.macro-bar-day.macro-bar-compact,.macro-bar-day.macro-bar-progress{display:flex;flex-direction:column;gap:3px}.macro-progress-row{display:flex;align-items:center;gap:4px}.macro-progress-label{font-size:var(--text-2xs);font-weight:700;min-width:52px;white-space:nowrap}.macro-progress-track{flex:1;height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.macro-progress-fill{height:100%;border-radius:2px;transition:width .3s ease}.macro-progress-cal{background:var(--macro-cal)}.macro-progress-protein{background:var(--macro-protein)}.macro-progress-carbs{background:var(--macro-carbs)}.macro-progress-fat{background:var(--macro-fat)}.macro-over{background:#fee2e2!important;border:1px solid #fca5a5}.macro-over .macro-compact-fill{background:#dc2626!important}.macro-over-text{color:#dc2626!important;font-weight:800;animation:macro-pulse 1.5s ease-in-out infinite}.macro-bar-warning{border:1px solid #fca5a5;border-radius:4px;background:rgb(var(--danger-rgb)/.04);padding:2px 4px}.macro-item.macro-met{color:#16a34a;background:rgba(22,163,74,.1)}.macro-item.macro-close{color:#d97706;background:rgba(217,119,6,.1)}.macro-item.macro-under{color:#dc2626;background:rgb(var(--danger-rgb)/.08)}.macro-bar-card{margin-top:4px;padding:3px 0}.macro-bar-card .macro-item,.macro-srv-label{font-size:var(--text-2xs)}.macro-srv-label{color:var(--text-muted);font-style:italic;align-self:center}.macro-bar-recipe{padding:6px 0;gap:6px}.macro-bar-recipe .macro-item{font-size:var(--text-sm);padding:3px 8px}.recipe-macros-preview{margin-top:12px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.recipe-macros-preview label{font-size:var(--text-base);font-weight:600;margin-bottom:6px;display:block}.recipe-macros-preview .macro-coverage{font-size:var(--text-xs);margin-top:4px;display:block}.macros-toggle{cursor:pointer;display:flex!important;align-items:center;justify-content:space-between;margin-bottom:0!important;user-select:none}.macros-toggle-icon{transition:transform .2s ease;font-size:var(--text-sm);color:var(--text-muted)}.recipe-macros-preview:not(.collapsed) .macros-toggle-icon{transform:rotate(90deg)}.macros-collapsible{overflow:hidden;transition:max-height .25s ease,opacity .2s ease;max-height:500px;opacity:1}.recipe-macros-preview.collapsed .macros-collapsible{max-height:0;opacity:0}.recipe-macros-preview.collapsed{padding-bottom:12px}.recipe-macros-edit{margin-top:8px}.recipe-tags-picker{display:flex;flex-wrap:wrap;gap:6px}.macro-input-group input,.recipe-tag-btn{border:1px solid var(--border);background:var(--bg-card)}.recipe-tag-btn{padding:4px 10px;font-size:var(--text-sm);border-radius:var(--radius-pill);cursor:pointer;transition:all .15s;color:var(--text-secondary)}.recipe-tag-btn:hover{border-color:var(--primary);color:var(--primary)}.recipe-tag-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.macro-input-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}.ing-macro-hint,.macro-input-group label{font-size:var(--text-xs);color:var(--text-muted)}.macro-input-group label{font-weight:600;display:block;margin-bottom:2px}.macro-input-group input{width:100%;padding:6px 8px;font-size:var(--text-base);border-radius:var(--radius-sm)}.ing-macro-hint{font-weight:500;margin-left:4px}.toggle-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;margin:0;flex-shrink:0}.toggle-label{font-size:var(--text-base);color:var(--text-secondary);font-weight:500}.discover-section-card{margin-bottom:24px;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.community-plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.community-plan-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;transition:all var(--ease);cursor:pointer}.community-plan-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.plan-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.plan-card-author{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.plan-card-imports{font-size:var(--text-sm);color:var(--text-muted)}.plan-card-title{font-size:var(--text-lg);font-weight:700;color:var(--text);margin-bottom:4px}.plan-card-desc{font-size:var(--text-base);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-card-meta{font-size:var(--text-sm);color:var(--text-muted);font-weight:500;margin-bottom:8px}.plan-card-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;overflow:hidden}.plan-card-actions{display:flex;gap:8px}.plan-preview-day{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-light);animation:staggerIn .4s ease both}.plan-preview-day:nth-child(2){animation-delay:.05s}.plan-preview-day:nth-child(3){animation-delay:.1s}.plan-preview-day:nth-child(4){animation-delay:.15s}.plan-preview-day:nth-child(5){animation-delay:.2s}.plan-preview-day:nth-child(6){animation-delay:.25s}.plan-preview-day:nth-child(7){animation-delay:.3s}.plan-preview-day:last-child{border-bottom:none}.plan-preview-day-label{font-size:var(--text-base);font-weight:700;color:var(--primary);margin-bottom:6px}.plan-preview-meal{padding:6px 0;font-size:var(--text-md)}.plan-preview-day .macro-bar{animation:macro-day-highlight .6s ease .3s both}html.comfort{font-size:18px}.comfort body{line-height:1.6}.comfort .item-card,.comfort .recipe-card{padding:14px}.comfort .recipe-card{height:auto;min-height:260px}.comfort .item-name,.comfort .recipe-card-title{font-size:1.1rem}.comfort .item-qty,.comfort .item-unit{font-size:.95rem}.comfort .ic-action{width:36px;height:36px;font-size:1.1rem}.comfort .btn-outline,.comfort .btn-primary{font-size:.95rem;padding:12px 18px}.comfort .btn-sm{font-size:.9rem;padding:10px 14px}.comfort input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.toggle-input),.comfort select,.comfort textarea{font-size:1rem;padding:12px 16px}.comfort .bottom-nav-label,.comfort .sidebar-link span{font-size:.85rem}.comfort .settings-section h4{font-size:1.15rem}.comfort .modal-header h3{font-size:1.25rem}.comfort .modal{max-height:95vh;max-width:520px}.comfort .modal-lg{max-width:700px}.comfort #recipe-modal .modal,.comfort #settings-modal .modal{max-width:min(780px,calc(100vw - 32px))}.comfort .modal form,.comfort .modal-body,.comfort .settings-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.comfort .quick-action-label{font-size:.85rem}.comfort .toast{font-size:.95rem;padding:14px 22px;max-width:min(360px,calc(100vw - 32px))}.comfort .form-hint,.comfort .settings-desc,.comfort .settings-hint{font-size:.92rem}.comfort .app-content{overflow-x:hidden}.comfort .quick-ingredient-list{max-height:240px}.comfort .slot-body{max-height:400px}.comfort .quick-selected-list{max-height:260px}.comfort .parse-preview-list{max-height:400px}.comfort .items-grid{overflow:visible}.comfort .stat-card{padding:14px 10px}.comfort .stat-value{font-size:1.5rem}.comfort .stat-label{font-size:.82rem}@media (max-width:1024px) and (min-width:769px){.page-container{padding:24px 24px 60px}.stats-row{grid-template-columns:repeat(2,1fr)}.action-grid{grid-template-columns:repeat(3,1fr)}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.suggestion-cards{gap:6px}.modal{max-width:min(90vw,500px)}.planner-week-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.ing-item-row{grid-template-columns:1fr auto auto auto 80px 30px 30px 30px 24px;gap:4px}.sidebar{width:200px}:root{--sidebar-w:200px}.sidebar-label{font-size:.72rem}.sidebar-link{padding:9px 14px}}@media (max-width:767px) and (min-width:481px){.modal{max-width:min(92vw,540px)}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.mobile-hamburger{display:none}@media (max-width:768px){:root{--sidebar-w:0px}html{font-size:14px}body{font-size:1rem;-webkit-text-size-adjust:100%}*{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch}.community-plans-grid{grid-template-columns:1fr}.community-plan-card,.discover-section-card{overflow:hidden;max-width:100%}.macro-bar{gap:2px}.app-content{margin-left:0;padding-bottom:calc(72px + env(safe-area-inset-bottom,0));background:var(--bg);min-width:0;width:100%;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;min-height:auto;height:auto;flex-direction:row;z-index:var(--z-sidebar);background:#fff;border-top:1px solid var(--border);padding:0;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0-2px 12px rgba(0,0,0,.08)}.sidebar,.sidebar.collapsed{width:100%}html.dark .sidebar{background:var(--bg-sidebar);border-top-color:rgba(255,255,255,.08);box-shadow:0-2px 12px rgba(0,0,0,.3)}.home-switcher,.sidebar-bottom,.sidebar-search-bar,.sidebar-top{display:none}.sidebar-links{flex-direction:row;justify-content:space-around;padding:0;gap:0;width:100%}.sidebar-link{flex-direction:column;gap:2px;padding:6px 2px 4px;font-size:.62rem;flex:1;align-items:center;justify-content:center;border-radius:0;min-height:auto;color:var(--text-muted);transition:color .15s;position:relative}.sidebar-link::before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:0 0;border-radius:0 0 2px 2px;transition:background .2s}.sidebar-link.active{color:var(--primary);background:0 0}.sidebar-link.active::before{background:var(--primary)}html.dark .sidebar-link{color:rgba(255,255,255,.4)}html.dark .sidebar-link.active{color:var(--primary)}.sidebar-icon{font-size:1.25rem;line-height:1;margin-bottom:1px}.sidebar-label{font-size:.6rem;font-weight:600;text-align:center;letter-spacing:.01em}.info-tip-content::before,.sidebar-link.mobile-secondary{display:none}.mobile-home-menu.open,.mobile-only{display:flex}.mobile-home-bar,.mobile-home-btn{display:flex;align-items:center;justify-content:center}.mobile-home-bar{padding:8px 16px;padding-top:calc(env(safe-area-inset-top,0) + 8px);position:sticky;top:0;z-index:var(--z-popover);background:var(--bg);border-bottom:1px solid var(--border);min-height:48px}.mobile-home-btn{flex:1;gap:6px;overflow:hidden;min-width:0}#mobile-home-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-home-menu{display:none;position:absolute;top:100%;left:14px;right:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;z-index:var(--z-modal);margin-top:4px;flex-direction:column;gap:2px}.mobile-home-option{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:var(--radius);font-size:.9rem;font-weight:500;color:var(--text);background:0 0;border:0;cursor:pointer;transition:background .15s;text-align:left;width:100%;min-height:44px}.mobile-home-option:hover{background:var(--bg-hover)}.mobile-home-option.active{background:var(--primary-light)}.mobile-home-option-add,.mobile-home-option.active{color:var(--primary);font-weight:600}.mobile-user-btn{position:absolute;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);font-size:1rem;cursor:pointer;transition:all .15s}.mobile-user-btn:hover{background:var(--primary-light);border-color:var(--primary)}html.dark .mobile-home-bar{background:var(--bg);border-color:var(--border)}html.dark .mobile-home-menu{background:var(--bg-card);border-color:var(--border)}html.dark .mobile-user-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}.page-container{padding:12px 16px 28px;max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}#board-view .page-header,#insights-view .page-header{flex-direction:row;align-items:center;flex-wrap:nowrap}.page-title{font-size:1.15rem}.page-subtitle{font-size:.82rem;margin-top:2px}.page-hero{margin-bottom:14px}.page-actions{width:100%;flex-wrap:wrap;gap:8px}.info-tip{min-width:44px;min-height:44px;width:44px;height:44px;font-size:var(--text-sm)}.info-tip-content{position:fixed;left:16px;right:16px;top:50%;transform:translateY(-50%);width:auto;max-width:calc(100vw - 32px);max-height:80vh;overflow-y:auto;z-index:calc(var(--z-modal) + 100)}.suggestions-section{margin-bottom:14px}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.stat-card{padding:12px;border-radius:var(--radius-md)}.stat-value{font-size:1.25rem}.stat-label{font-size:.68rem}.action-grid{grid-template-columns:repeat(2,1fr);gap:10px}.action-card{padding:14px 10px;border-radius:var(--radius-md);font-size:.8rem;min-height:44px}.action-icon{font-size:1.2rem}.section-title{font-size:.92rem;margin-bottom:10px}.items-grid{border-radius:var(--radius-lg);gap:0}.items-grid.items-grid-buy{padding-left:28px}.items-grid.items-grid-buy::before{left:26px}.item-card{padding:12px 14px;gap:8px;min-height:48px;flex-wrap:wrap}.ic-select{width:28px;height:28px;min-width:28px;min-height:28px;position:relative;font-size:.8rem}.ic-action.move-btn::before,.ic-select::before{content:"";position:absolute;inset:-8px;z-index:1}.ic-action.move-btn{width:40px;height:40px;min-width:40px;min-height:40px;font-size:1.1rem;position:relative}.ic-action.move-btn::before{inset:-4px}.ic-cat{font-size:1rem;flex-shrink:0}.ic-info{flex:1;min-width:0;order:0}.ic-name{font-size:.9rem;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-qty-badge{font-size:.74rem;padding:2px 8px}.ic-tags{gap:3px}.ic-member-tag,.ic-store-tag{font-size:.62rem;padding:1px 6px}.ic-controls{display:none}.recipes-grid{grid-template-columns:1fr;gap:12px}#recipes-view .recipes-grid{padding:8px;border-radius:var(--radius)}.recipe-card{border-radius:var(--radius-md);height:auto;min-height:unset}.recipe-card-body{padding:10px 12px;gap:4px}.comfort .form-group label,.recipe-card-title{font-size:.88rem}.recipe-card-chips,.recipe-card-desc,.recipe-card-url{display:none}.recipe-card-servings{font-size:.72rem}.recipe-card-tags{gap:3px;padding:0;margin:0}.recipe-card-footer{gap:6px;padding:6px 0 0;border-top:none}.recipe-card-footer .btn-cook,.recipe-card-footer .btn-edit-recipe{flex:1;text-align:center;padding:7px 10px;border-radius:var(--radius);font-size:.78rem;min-height:34px}.recipe-card-footer .btn-recipe-collect,.recipe-card-footer .btn-recipe-fav,.recipe-card-footer .btn-share-recipe{padding:7px 8px;border-radius:var(--radius);min-height:34px;font-size:.88rem}.recipe-card .macro-bar-card{display:none}.recipe-card .recipe-cat-badge,.recipe-card .recipe-pantry-badge,.recipe-card .recipe-source-badge{font-size:.68rem;padding:2px 6px}.rc-pantry-ring,.rc-pantry-ring svg{width:30px;height:30px}.rc-pantry-pct{font-size:.48rem}.rc-meta-row{gap:5px}.rc-cook-badge{font-size:.65rem;padding:1px 4px}.recipe-tag{font-size:.7rem;padding:3px 10px}.recipe-card-chips{gap:4px;margin-bottom:10px}.recipe-filter-bar{gap:8px;margin-bottom:12px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.recipe-filter-bar::-webkit-scrollbar{display:none}.recipe-filter-pill{padding:8px 14px;font-size:.78rem;min-height:36px;flex-shrink:0}.discover-card.recipe-card{min-height:unset}.discover-card .recipe-card-body{padding:8px 10px;gap:2px}.discover-card .recipe-card-title{font-size:.84rem}.discover-card .recipe-card-chips,.discover-card .recipe-card-desc{display:none}.discover-card .discover-card-meta{font-size:.7rem;gap:4px}.discover-card .recipe-card-footer{padding:4px 0 0;border-top:none}.discover-card .recipe-card-footer .btn-sm{padding:5px 8px;font-size:.74rem}.discover-card .macro-bar-card{display:none}.discover-card .recipe-card-tags{gap:2px}.discover-card .recipe-tag{font-size:.62rem;padding:1px 5px}#discover-grid.recipes-grid{grid-template-columns:1fr 1fr;gap:6px}.discover-card .discover-vote-row{margin-left:0;gap:2px}.discover-card .discover-vote-row .vote-btn{padding:2px 4px;font-size:.72rem}.discover-card .discover-vote-row .vote-score{font-size:.72rem;min-width:14px}.comfort .recipe-card{min-height:unset}.comfort .recipe-card-desc{display:none}.planner-week-grid{grid-template-columns:1fr!important;gap:8px}.planner-week-header{padding:12px 14px;flex-wrap:wrap;border-radius:var(--radius-md)}.planner-week-label-left{gap:6px}.planner-week-name{font-size:.82rem}.planner-week-range{font-size:.74rem}.planner-day{min-height:auto;padding:14px 16px;border-radius:var(--radius-lg);gap:8px}.planner-day.today{box-shadow:0 0 0 2px var(--primary)}.planner-day-header{margin-bottom:2px;padding-bottom:6px;border-bottom:1px solid var(--border-light)}.planner-day-header>div{display:flex;align-items:center;gap:8px;flex-direction:row}.planner-day-label{font-size:.78rem;display:inline;text-transform:uppercase;font-weight:700;color:var(--text-secondary)}.planner-day-date{font-size:1.05rem;display:inline;font-weight:800}.planner-meals{gap:8px}.planner-meal{padding:12px 14px;cursor:pointer;border-radius:var(--radius);border-left-width:4px}.planner-meal-name{font-size:.88rem;-webkit-line-clamp:2;font-weight:700}.planner-meal-meta{font-size:.72rem}.planner-meal-preview{display:block;font-size:.72rem;color:var(--text-secondary);margin-top:2px;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.planner-meal-actions-row{opacity:0;right:6px;top:6px;padding:3px;box-shadow:var(--shadow)}.planner-day.empty-day:hover,.planner-meal.meal-expanded .planner-meal-actions-row,.planner-meal:active .planner-meal-actions-row{opacity:1}.planner-meal-top{align-items:flex-start}.planner-day.empty-day .planner-day-header>div,.planner-meal-controls{gap:6px}.meal-action,.meal-remove{min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}.meal-action{font-size:.8rem;padding:6px;border-radius:var(--radius)}.meal-remove{opacity:1;font-size:.95rem}.planner-srv-btn{width:32px;height:32px;font-size:.82rem}.planner-add-meal{padding:10px 14px;font-size:.82rem;border-radius:var(--radius-md);min-height:44px;background:var(--bg);border:1px dashed var(--border);gap:8px}.planner-add-icon{width:22px;height:22px;font-size:.8rem}.planner-actions{gap:8px;padding:10px 0;flex-wrap:wrap}.planner-actions .btn-primary{flex:1 1 100%;text-align:center;padding:14px;min-height:48px;font-size:.88rem}.planner-actions .btn-danger-text,.planner-actions .btn-outline{flex:1 1 auto;text-align:center;font-size:.82rem;padding:12px 14px;min-height:44px}.planner-week-label{font-size:.82rem}#planner-view .page-actions .planner-range-select,.planner-range-select{font-size:.82rem;padding:10px 12px;min-height:40px}.planner-day-macros{gap:2px}.macro-bar-meal{display:none}.macro-bar-day .macro-item{font-size:.62rem;padding:2px 5px}.macro-item{font-size:.58rem;padding:1px 4px}.planner-meal-footer{margin-top:6px;opacity:1;max-height:none;overflow:visible}.planner-meal.meal-expanded{background:var(--primary-light);border-color:var(--primary);box-shadow:var(--shadow-xs)}#planner-view .page-actions{display:grid;grid-template-columns:1fr auto auto;gap:6px;width:100%;align-items:center}#planner-view .page-actions .planner-range-select{grid-column:1/-1;width:100%}#planner-view .page-actions .planner-week-label{grid-column:1/-1;text-align:center;font-size:.82rem;font-weight:700;padding:2px 0;white-space:nowrap}#planner-view .page-actions .btn-outline{padding:10px 14px;font-size:.82rem;min-height:40px}#planner-view .page-actions #btn-planner-prev{justify-self:start}#planner-view .page-actions #btn-planner-next{justify-self:end}.planner-day.empty-day{min-height:0;padding:10px 16px;flex-direction:row;align-items:center;gap:10px;border-style:dashed;border-color:var(--border-light);opacity:.7}.planner-day.empty-day .planner-day-header{margin-bottom:0;padding-bottom:0;border-bottom:none;flex-shrink:0}.planner-day.empty-day .planner-meals{display:none}.planner-day.empty-day .planner-add-meal{margin-top:0;padding:4px 12px;font-size:.75rem;min-height:auto;border:0;flex-shrink:0;margin-left:auto}.planner-day.empty-day .planner-add-icon{width:18px;height:18px;font-size:.7rem}.planner-day.empty-day.today{opacity:1;border-style:solid}.planner-week-header{flex-direction:column;align-items:flex-start;gap:8px}.planner-week-actions{width:100%;flex-wrap:wrap;gap:6px}.macro-week-summary{width:100%}.macro-week-summary .macro-bar{flex-wrap:wrap;gap:3px}.macro-week-summary .macro-avg{font-size:.65rem}.modal-overlay{padding:0;align-items:flex-end}.modal{max-height:92vh;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg)0 0;width:100%;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal,.modal-lg{max-width:100%}.modal-header{padding:16px 16px 0}.modal-header h3{font-size:1.05rem}.modal-close{width:44px;height:44px;min-width:44px;min-height:44px;font-size:1.3rem}.modal form,.modal-body,.settings-body{padding:16px 16px 24px}.slot-tabs{padding:8px 16px 0;gap:0}.slot-tab{padding:10px 14px;font-size:.82rem;min-height:40px}.slot-tab-content{padding:12px 16px}.slot-body{padding:10px 16px 16px}#parse-preview{padding:12px 16px 24px}.diff-body{padding:0 16px 24px}.form-group input,.form-group select,.form-group textarea,.form-row input[type=date]{padding:12px 14px;font-size:16px;border-radius:var(--radius-md);min-height:44px}input,select,textarea{font-size:16px}.form-group{margin-bottom:12px}.form-group label{font-size:.8rem;margin-bottom:4px}.legal-modal-content{max-width:calc(100vw - 32px)}.sort-menu{z-index:var(--z-popover)}.store-autocomplete{left:0!important;right:0!important;width:auto!important}.emoji-pick{font-size:1.3rem;min-width:44px;min-height:44px;padding:5px}.form-row{flex-direction:column;gap:8px}#recipe-form .form-row{flex-direction:row;gap:8px}#item-expire-group .form-row{flex-direction:row;align-items:center;gap:8px}.form-row input[type=date]{-webkit-appearance:none;appearance:none;width:100%;background:var(--bg-card);border:1.5px solid var(--border);color:var(--text)}.form-actions{flex-wrap:wrap;gap:8px}.form-actions .btn-outline,.form-actions .btn-primary{min-height:44px;flex:1}.ingredient-row{flex-wrap:nowrap;gap:4px}.ingredient-row .ing-name{flex:1;min-width:0;padding:8px;font-size:.82rem;min-height:40px}.ingredient-row .ing-qty,.ingredient-row .ing-unit{width:56px;min-width:56px;flex:0 0 56px;padding:8px 6px;min-height:40px;font-size:.85rem}.ingredient-row .ing-unit{padding:8px 4px;font-size:.75rem}.btn-remove-ing{width:28px;height:28px;min-width:28px;min-height:28px;font-size:.9rem}.cook-macro-inputs,.macro-input-row{grid-template-columns:repeat(2,1fr)}.quick-meal-name-input,.quick-search-input{padding:12px 14px;font-size:.9rem;min-height:44px}.quick-search-input{font-size:.88rem}.quick-ing-btn{padding:10px 12px;font-size:.8rem;border-radius:var(--radius);min-height:40px}.quick-selected-item{flex-wrap:wrap;gap:8px;padding:10px 12px}.quick-sel-name{flex:1 1 100%;margin-bottom:2px;font-size:.84rem}.quick-sel-qty,.quick-sel-unit{flex:1;min-width:50px;padding:10px;min-height:40px}.quick-sel-remove{width:32px;height:32px;min-width:32px;min-height:32px}.scaling-bar{gap:8px;padding:12px 14px}.scale-presets,.scaling-controls{gap:8px;justify-content:center}.scale-presets{flex-wrap:wrap;gap:6px}.scale-btn,.scale-input{min-height:40px;flex-shrink:0}.scale-btn{width:40px;height:40px;border-radius:var(--radius);font-size:1rem;min-width:40px}.scale-input{width:60px;padding:10px;font-size:16px;text-align:center}.scale-preset{padding:8px 14px;font-size:.78rem;min-height:36px}.diff-item{flex-wrap:wrap;gap:6px;padding:10px 12px;font-size:.84rem}.fab-group{bottom:calc(74px + env(safe-area-inset-bottom,0));right:16px}.fab-dismiss{display:flex}.fab{width:44px;height:44px;font-size:1.1rem}.fab-restore{bottom:calc(74px + env(safe-area-inset-bottom,0))}#toast-container,.undo-toast,.update-banner{bottom:calc(80px + env(safe-area-inset-bottom,0))}.shop-store-grid{grid-template-columns:repeat(2,1fr);gap:10px}.shop-store-card{padding:18px 12px;border-radius:var(--radius-lg);min-height:44px}.shop-store-icon{font-size:1.5rem}.shop-store-name{font-size:.84rem}.shop-store-count{font-size:.74rem}.shop-category{margin-bottom:6px}.shop-category-label{padding:4px 12px 4px 30px;font-size:.72rem;margin-bottom:0}.aisle-items{padding-left:28px}.aisle-items::before{left:26px}.shop-item{padding:8px 12px;gap:6px;border-radius:0;margin-bottom:0;display:flex;align-items:center;flex-wrap:nowrap}.shop-item .shop-check{flex-shrink:0}.shop-item-name{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.3}.shop-item-qty-group{flex-shrink:0;margin-top:0}.shop-check{font-size:1rem;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center}.shop-qty-input{width:48px;text-align:center}.shop-qty-input,.shop-unit-select{padding:4px;font-size:16px;min-height:36px}.shop-checkout-bar{bottom:calc(72px + env(safe-area-inset-bottom,0));margin:8px -16px 0;border-radius:0;border-left:0;border-right:0;padding:14px 16px;z-index:var(--z-fab)}.shop-quick-add{gap:8px;padding:10px 0;margin-bottom:6px}.search-bar input,.shop-quick-add-input{padding:12px 14px;font-size:.9rem;min-height:44px}.shop-progress-bar{margin:12px 0 6px}.shop-progress-text{font-size:.84rem;margin-bottom:12px}.view-header{gap:10px;margin-bottom:14px;flex-direction:column;align-items:stretch}.search-bar{min-width:0;width:100%;flex:unset}.search-bar input{border-radius:var(--radius-md);width:100%}.cook-now-grid{grid-template-columns:1fr}.cook-now-section{padding:14px;margin-bottom:20px}.cook-now-card{padding:14px}.discover-card .recipe-card-footer{flex-wrap:wrap;gap:6px}.discover-card .recipe-card-footer .btn-sm{min-height:38px}.discover-card .discover-vote-row{width:100%;justify-content:center;margin-top:4px}.discover-section-card{padding:14px;margin-bottom:16px}.discover-preview-meta{flex-wrap:wrap;gap:10px;font-size:.8rem}.preview-unit-swap{font-size:.7rem;padding:3px 6px;min-height:auto;max-height:26px;border-radius:var(--radius-sm)}.auth-card{padding:24px 20px 20px;border-radius:var(--radius-lg)}.suggestion-cards{gap:6px}.suggestion-card{padding:8px 12px}.sug-title{font-size:.82rem}.sug-desc{font-size:.76rem}.filters-collapsible.open,.filters-toggle{display:block}.filters-collapsible{display:none}.filter-bar,.member-filter-bar,.store-filter-bar{flex-wrap:nowrap;scrollbar-width:none;padding-bottom:4px;margin-bottom:10px;scroll-snap-type:x proximity}.member-filter-bar,.store-filter-bar{-webkit-overflow-scrolling:touch}.filter-bar::-webkit-scrollbar,.member-filter-bar::-webkit-scrollbar,.store-filter-bar::-webkit-scrollbar,.tab-bar::-webkit-scrollbar{display:none}.filter-pill,.member-pill,.store-pill{padding:8px 14px;font-size:.76rem;min-height:36px;flex-shrink:0;scroll-snap-align:start}.tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:12px}.tab{white-space:nowrap;padding:10px 14px;font-size:.82rem;min-height:40px}.settings-section{padding:12px 0}.settings-section h4{font-size:.9rem}.household-member-row{padding:10px 14px;min-height:44px}.add-column-row,.add-member-row,.col-setting-row{flex-wrap:wrap;gap:8px}.invite-row,.pending-invite-row{flex-direction:column;gap:8px}.invite-row .btn-outline,.invite-row .btn-primary{width:100%;min-height:44px}.pending-invite-row{align-items:stretch;gap:6px}.pending-invite-actions{justify-content:flex-start}.toggle-row{padding:10px 0;min-height:44px}.shopping-preview-item{padding:12px 14px;min-height:44px}.btn-outline,.btn-primary{min-height:44px;border-radius:var(--radius-md);font-size:.84rem;padding:10px 16px}.btn-sm{min-height:36px;padding:8px 14px;font-size:.8rem}.btn-cook,.btn-edit-recipe,.btn-recipe-collect,.btn-share-recipe{min-height:44px;padding:10px 14px}.btn-icon-label{min-height:44px}.btn-danger-text,.btn-ghost{min-height:44px;padding:10px 14px}.btn-ghost{padding:10px 0}.btn-text{min-height:36px;padding:8px 0}.ing-item-actions .ing-cat-select,.ing-item-actions .ing-store-select,.ing-item-row .ing-cat-select,.ing-item-row .ing-group-tag,.ing-item-row .ing-macro-btn,.ing-item-row .ing-shelflife-btn,.ing-item-row .ing-store-select{display:none}.ing-item-row{padding:10px 14px;font-size:.85rem;display:grid;grid-template-columns:1fr auto 30px 24px!important;align-items:center;gap:4px 8px;min-height:48px}.ing-item-name{grid-column:1;font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ing-item-sources{grid-column:2;flex-shrink:0;display:flex;gap:3px}.ing-item-row .btn-xs{min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center}.ing-item-row .ing-all-group-btn{grid-column:3}.ing-item-row .ing-delete-btn{grid-column:4}.ing-source-badge{font-size:.64rem;padding:2px 6px}.ing-suggestion{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 14px}.ing-suggestion-actions{gap:8px}.ing-suggestion-actions .btn-xs{min-height:36px;min-width:36px;padding:8px 12px}.ing-group-header{flex-direction:column;align-items:flex-start;gap:6px}.ing-group-canonical{font-size:.86rem}.ing-group-aliases{gap:6px}.ing-alias-chip{font-size:.78rem;padding:4px 10px;min-height:28px}.ing-group-delete{position:absolute;top:10px;right:10px;min-width:32px;min-height:32px}.ing-group-card{position:relative;padding:12px 40px 12px 14px;border-radius:var(--radius-md)}.btn-xs{min-height:32px;padding:8px 12px;font-size:.74rem}.ing-cat-group{border-radius:var(--radius-md)}.ing-cat-group-header{padding:12px 14px;min-height:44px}.ing-cat-group-name{font-size:.86rem}.ing-cat-group-count{font-size:.74rem;padding:2px 8px}.ing-section-header{margin-bottom:6px}.ing-section{margin-bottom:14px}.ing-search-clear{min-width:32px;min-height:32px;padding:4px 8px}.board-search-input{width:100%;max-width:100%;padding:10px 14px;font-size:.88rem;min-height:44px}.board-search-input:focus{width:100%}.bulk-bar{padding:10px 14px;margin-bottom:8px;flex-wrap:wrap;gap:8px}.bulk-bar .btn-bulk{padding:8px 14px;font-size:.8rem;min-height:36px}.sort-menu{min-width:min(180px,calc(100vw - 32px));right:0;left:auto;max-width:calc(100vw - 32px)}.sort-option{padding:12px 14px;min-height:44px;font-size:.84rem}.filter-bar,.items-grid,.member-filter-bar,.store-filter-bar{overflow-x:hidden;max-width:100vw}.filter-bar{overflow-x:auto;-webkit-overflow-scrolling:touch}.community-plan-card{padding:14px}.plan-card-title{font-size:.95rem}html.comfort{font-size:17px}.comfort body{line-height:1.6}.comfort .sidebar-link{min-height:58px;padding:10px 2px 8px}.comfort .sidebar-icon{font-size:1.4rem}.comfort .sidebar-label{font-size:.72rem}.comfort .mobile-home-bar{min-height:52px;padding:10px 16px;padding-top:calc(env(safe-area-inset-top,0) + 10px)}.comfort .form-group input,.comfort .form-group select,.comfort .form-group textarea,.comfort .mobile-home-option{font-size:1rem;padding:14px 16px;min-height:48px}.comfort .mobile-user-btn{width:40px;height:40px;font-size:1.1rem}.comfort .page-container{padding:14px 16px 32px}.comfort .page-title{font-size:1.3rem}.comfort .page-subtitle{font-size:.9rem}.comfort .section-title{font-size:1rem}.comfort .stat-value{font-size:1.35rem}.comfort .stat-label{font-size:.78rem}.comfort .stat-card{padding:14px 10px}.comfort .action-card{padding:16px 12px;font-size:.9rem;min-height:48px}.comfort .action-icon{font-size:1.3rem}.comfort .ic-name{font-size:1rem}.comfort .ic-qty-badge{font-size:.82rem;padding:3px 10px}.comfort .ic-member-tag,.comfort .ic-store-tag{font-size:.72rem;padding:2px 8px}.comfort .ic-action{font-size:1.1rem}.comfort .ic-action,.comfort .ic-action.move-btn{width:44px;height:44px;min-width:44px;min-height:44px}.comfort .qty-step{width:38px;height:38px;min-width:38px;min-height:38px;font-size:.95rem}.comfort .ic-select{width:30px;height:30px;min-width:30px;min-height:30px}.comfort .item-card{padding:14px 16px;min-height:52px}.comfort .recipe-card-title,.comfort .settings-section h4{font-size:1.05rem}.comfort .recipe-card-desc{font-size:.85rem}.comfort .recipe-card-footer .btn-cook,.comfort .recipe-card-footer .btn-edit-recipe{font-size:.9rem;padding:14px 16px;min-height:48px}.comfort .recipe-card-footer .btn-recipe-collect,.comfort .recipe-card-footer .btn-share-recipe{font-size:1.1rem;padding:14px;min-height:48px}.comfort .recipe-tag{font-size:.78rem;padding:4px 12px}.comfort .recipe-filter-pill{font-size:.85rem;padding:10px 16px;min-height:40px}.comfort .modal-header h3,.comfort .planner-day-date{font-size:1.15rem}.comfort .planner-day-label{font-size:.85rem}.comfort .planner-meal-name{font-size:.95rem}.comfort .planner-meal{padding:14px 16px}.comfort .planner-add-meal{padding:12px 16px;font-size:.9rem;min-height:48px}.comfort .meal-action{font-size:.88rem;min-width:40px;min-height:40px}.comfort .modal{max-width:100%;width:100%;max-height:92vh;max-height:92dvh}.comfort .modal-lg{max-width:100%}.comfort .modal-close{width:40px;height:40px;min-width:40px;min-height:40px;font-size:1.4rem}.comfort .modal form,.comfort .modal-body,.comfort .settings-body{padding:18px 18px 28px}.comfort .form-hint,.comfort .settings-desc,.comfort .settings-hint{font-size:.88rem}.comfort .btn-outline,.comfort .btn-primary{min-height:48px;font-size:.92rem;padding:12px 18px}.comfort .btn-sm{min-height:40px;padding:10px 16px;font-size:.85rem}.comfort .btn-xs{min-height:36px;padding:10px 14px;font-size:.8rem}.comfort .btn-cook,.comfort .btn-edit-recipe,.comfort .btn-recipe-collect,.comfort .btn-share-recipe{min-height:48px;padding:12px 16px}.comfort .btn-danger-text,.comfort .btn-ghost{min-height:48px}.comfort .filter-pill,.comfort .member-pill,.comfort .store-pill{padding:10px 16px;font-size:.82rem;min-height:40px}.comfort .tab{padding:12px 16px;font-size:.88rem;min-height:44px}.comfort .toggle-row{min-height:48px;padding:12px 0}.comfort .household-member-row{min-height:48px}.comfort .shop-store-name{font-size:.92rem}.comfort .shop-store-icon{font-size:1.6rem}.comfort .shop-store-count{font-size:.8rem}.comfort .shop-item{padding:10px 12px;gap:8px}.comfort .shop-item-name{font-size:.95rem}.comfort .shop-check{width:34px;height:34px;min-width:34px;font-size:1.1rem}.comfort .shop-qty-input{width:44px;min-height:34px;font-size:.84rem}.comfort .shop-unit-select{min-height:34px;font-size:.8rem}.comfort .shop-category-label{font-size:.82rem}.comfort .ing-item-name{font-size:.95rem}.comfort .ing-source-badge{font-size:.72rem;padding:3px 8px}.comfort .ing-cat-group-name{font-size:.92rem}.comfort .fab{width:62px;height:62px;font-size:1.5rem}.comfort .toast{font-size:.92rem;padding:14px 20px}.comfort #toast-container{bottom:calc(90px + env(safe-area-inset-bottom,0))}.comfort .bulk-bar .btn-bulk{min-height:40px;font-size:.85rem}}@media (max-width:480px){.page-container{padding:10px 12px 24px}.fab-group,.fab-restore{bottom:calc(60px + env(safe-area-inset-bottom,0))}.page-title{font-size:1.05rem}.page-subtitle{font-size:.78rem}.stat-card{padding:10px 8px}.stat-value{font-size:1.05rem}.stat-label{font-size:.62rem}.action-card{padding:12px 8px;font-size:.75rem}.action-grid{grid-template-columns:repeat(2,1fr);gap:6px}.action-icon{font-size:1rem}.planner-week-grid{grid-template-columns:1fr!important}.planner-week-header{flex-direction:column;align-items:flex-start;gap:4px}.planner-day{flex-direction:column;min-height:auto;padding:12px 14px;gap:6px}.planner-day-header{margin-bottom:2px}.planner-day-label{font-size:.7rem;min-width:auto}.planner-day-date{font-size:.95rem;min-width:auto}.planner-meals{gap:6px}.planner-add-meal{padding:8px 12px}.planner-meal-actions-row{opacity:0}.planner-meal{padding:10px 12px}.planner-meal-name{font-size:.84rem}.planner-meal-preview{font-size:.68rem}.planner-srv-btn{width:30px;height:30px}.ing-item-row{grid-template-columns:1fr auto 28px 22px!important;gap:3px 4px;min-height:44px}.ing-item-name{font-size:.84rem}.ing-source-badge{font-size:.6rem;padding:1px 5px}.ing-cat-group-name{font-size:.82rem}.ing-suggestion{padding:8px 12px;gap:6px}.ing-suggestion-actions .btn-xs{min-height:34px;min-width:34px;padding:6px 10px}.shop-item{padding:7px 10px;gap:5px}.shop-item-name{font-size:.82rem}.shop-item-qty-group{margin-top:0}.shop-qty-input{width:44px;padding:3px 2px;font-size:.82rem;min-height:28px}.shop-unit-select{padding:3px 2px;font-size:.72rem;min-height:28px}.shop-check{min-width:28px;min-height:28px;font-size:.9rem}.shop-store-grid{grid-template-columns:repeat(2,1fr);gap:8px}.shop-store-card{padding:14px 10px}.recipe-card-body{padding:12px 14px}.recipe-card-title{font-size:.88rem}.recipe-card-footer{padding:0 14px 12px}.recipe-card-footer .btn-cook,.recipe-card-footer .btn-edit-recipe{padding:10px 12px;font-size:.8rem}.recipe-card-footer .btn-recipe-collect,.recipe-card-footer .btn-share-recipe{padding:10px;font-size:.95rem}.filter-pill,.member-pill,.store-pill{padding:6px 10px;font-size:.72rem;min-height:32px}.recipe-filter-pill{padding:6px 12px;font-size:.74rem;min-height:32px}.tab{padding:8px 12px;font-size:.78rem}.item-card{padding:10px 12px;gap:6px}.ic-name{font-size:.86rem}.ic-action,.qty-step{width:32px;height:32px;min-width:32px;min-height:32px}.ing-item-row{padding:8px 10px;font-size:.82rem}.ing-cat-group-header{padding:10px 12px}.ing-group-card{padding:10px 36px 10px 12px}.modal-header{padding:14px 14px 0}.modal form,.modal-body,.settings-body{padding:14px 14px 20px}.modal,.modal-lg{max-width:calc(100vw - 16px)}.settings-tabs{padding:0 14px;gap:0}.settings-tab{padding:8px 10px;font-size:.75rem}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;font-size:.88rem}.cook-now-card,.cook-now-section{padding:12px}.btn-outline,.btn-primary{padding:8px 12px;font-size:.82rem}.btn-sm{padding:6px 10px;font-size:.78rem}.suggestion-card{padding:8px 10px;gap:8px}.sug-title{font-size:.8rem}.sug-desc{font-size:.74rem}html.comfort{font-size:16px}.comfort .page-container{padding:12px 14px 28px}.comfort .page-title,.comfort .stat-value{font-size:1.2rem}.comfort .stat-label{font-size:.72rem}.comfort .action-card{padding:14px 10px;font-size:.85rem;min-height:46px}.comfort .ic-name{font-size:.95rem}.comfort .ic-action,.comfort .qty-step{width:36px;height:36px;min-width:36px;min-height:36px}.comfort .item-card{padding:12px 14px;min-height:48px}.comfort .recipe-card-title{font-size:.98rem}.comfort .filter-pill,.comfort .member-pill,.comfort .store-pill{padding:8px 12px;font-size:.78rem;min-height:36px}.comfort .recipe-filter-pill{font-size:.8rem;padding:8px 14px;min-height:36px}.comfort .tab{padding:10px 14px;font-size:.84rem;min-height:40px}.comfort .btn-outline,.comfort .btn-primary{min-height:46px;padding:10px 14px;font-size:.88rem}.comfort .btn-sm{min-height:38px;padding:8px 14px;font-size:.82rem}.comfort .form-group input,.comfort .form-group select,.comfort .form-group textarea{font-size:.95rem;padding:12px 14px;min-height:46px}.comfort .modal form,.comfort .modal-body,.comfort .settings-body{padding:16px 16px 24px}.comfort .planner-day,.comfort .planner-meal{padding:12px 14px}.comfort .planner-meal-name{font-size:.9rem}.comfort .planner-add-meal{min-height:46px;font-size:.85rem}.comfort .shop-item-name{font-size:.92rem}.comfort .shop-check{width:24px;height:24px;min-width:24px}.comfort .ing-item-name{font-size:.9rem}.stats-row{grid-template-columns:repeat(2,1fr)}.admin-stats-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.ing-section{margin-bottom:20px}.ing-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;cursor:pointer;user-select:none}.ing-section-header::before,.ing-suggestions-section>.ing-section-title::before{content:"▾";font-size:.75rem;color:var(--text-muted);margin-right:6px;transition:transform .2s ease;display:inline-block}.ing-section.collapsed .ing-section-header::before,.ing-suggestions-section.collapsed>.ing-section-title::before{transform:rotate(-90deg)}.ing-section.collapsed>:not(.ing-section-header),.ing-suggestions-section.collapsed>:not(.ing-section-title){display:none}.ing-section-title{font-size:.95rem;font-weight:700;color:var(--text);margin:0}.ing-section-hint{font-size:.8rem;color:var(--text-muted);margin:2px 0 8px}.ing-manage-btn{padding:4px 8px;font-size:1.1rem;line-height:1;min-width:32px;display:flex;align-items:center;justify-content:center}.ing-manage-popup{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);min-width:180px;padding:4px 0}.ing-manage-option{display:block;width:100%;text-align:left;padding:10px 14px;font-size:var(--text-sm);color:var(--text);background:0 0;border:0;cursor:pointer;white-space:nowrap}.ing-manage-option:hover{background:var(--bg-hover)}.ing-manage-option[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.ing-suggestions-section{margin-bottom:20px;padding:14px;background:linear-gradient(to right,rgb(var(--primary-rgb)/.04),rgb(var(--primary-rgb)/.01));border:1px solid var(--primary);border-radius:var(--radius-lg)}.ing-suggestions-section>.ing-section-title{cursor:pointer;user-select:none}.ing-suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);margin-bottom:4px}.ing-suggestion-pair{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ing-suggestion-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ing-suggestion-arrow{color:var(--text-muted);font-size:.78rem;flex-shrink:0}.ing-suggestion-actions{display:flex;gap:6px;flex-shrink:0}.ing-group-card{padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);margin-bottom:4px;transition:border-color var(--ease)}.ing-group-card:hover{border-color:var(--primary)}.ing-group-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ing-group-canonical{font-size:.88rem;font-weight:700;color:var(--primary)}.ing-group-eq{color:var(--text-muted);font-size:.82rem;font-weight:600}.ing-group-aliases{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}.ing-alias-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:.76rem;font-weight:500;color:var(--text-secondary);max-width:100%;overflow:hidden;text-overflow:ellipsis}.ing-alias-chip-x{background:0 0;border:0;cursor:pointer;font-size:.85rem;color:var(--text-muted);padding:0 0 0 2px;line-height:1}.ing-alias-chip-x:hover{color:var(--danger)}.ing-alias-add-btn{font-size:.75rem;font-weight:600;color:var(--primary);background:0 0;border:1px dashed var(--primary);border-radius:var(--radius-pill);padding:2px 8px;cursor:pointer;transition:all var(--ease)}.ing-alias-add-btn:hover{background:var(--primary-light)}.ing-group-delete{background:0 0;border:0;cursor:pointer;font-size:.85rem;opacity:.4;transition:opacity var(--ease);margin-left:auto;flex-shrink:0}.ing-group-delete:hover{opacity:1}.ing-empty{padding:32px 24px;text-align:center;color:var(--text-muted);font-size:.85rem;background:var(--bg-hover);border:2px dashed var(--border);border-radius:var(--radius-lg)}.ing-empty-icon{font-size:1.8rem;margin-bottom:6px}.ing-empty-hint{font-size:.78rem;margin-top:4px}.ing-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:0 0;border:0;font-size:1.1rem;color:var(--text-muted);cursor:pointer;padding:2px 6px;line-height:1}.ing-search-clear:hover{color:var(--text)}.ing-cat-group{margin-bottom:8px;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card)}.ing-cat-group-header{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;user-select:none;transition:background var(--ease)}.ing-cat-group-header:hover{background:var(--bg-hover)}.ing-cat-group-icon{font-size:1.1rem}.ing-cat-group-name{font-size:.88rem;font-weight:700;color:var(--text)}.ing-cat-group-count{font-size:.72rem;font-weight:600;color:var(--text-muted);background:var(--bg-hover);padding:1px 7px;border-radius:var(--radius-pill)}.ing-cat-group-chevron{margin-left:auto;font-size:.7rem;color:var(--text-muted);transition:transform .2s}.ing-cat-group-body{border-top:1px solid var(--border-light)}.ing-item-row{display:grid;grid-template-columns:1fr auto 120px 120px 80px 30px 30px 30px 24px;align-items:center;gap:6px;padding:6px 14px;border-bottom:1px solid var(--border-light);font-size:.82rem;transition:background var(--ease)}.ing-item-row:last-child{border-bottom:none}.ing-item-row:hover{background:var(--bg-hover)}.ing-item-name{font-weight:500;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ing-item-sources{display:flex;gap:3px;justify-content:flex-end}.ing-item-row .ing-cat-select,.ing-item-row .ing-store-select{font-size:.74rem;padding:2px 4px;width:100%}.ing-item-row .ing-group-tag{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ing-item-row .btn-xs{padding:2px 6px;font-size:.68rem;justify-self:center}.ing-delete-btn,.ing-macro-btn{border:0;background:0 0;cursor:pointer;font-size:.8rem;transition:opacity .2s}.ing-delete-btn{opacity:.3;color:var(--danger,#D94444)}.ing-delete-btn:hover,.ing-macro-btn:hover{opacity:1}.ing-macro-btn{opacity:.4}.ing-macro-btn.has-macros{opacity:1;color:var(--primary)}.ing-item-name{transition:color .15s}.ing-item-name:hover{color:var(--primary);text-decoration:underline}.ing-detail-body{padding:16px}.ing-detail-status{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.ing-detail-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.82rem;font-weight:600}.ing-detail-badge.in-stock{background:var(--primary-light);color:var(--primary)}.ing-detail-badge.on-buy{background:#fef3c7;color:#92400e}.ing-detail-badge.none{background:var(--bg-hover);color:var(--text-muted)}.ing-detail-stats{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:var(--bg-hover);border-radius:var(--radius);margin-bottom:14px}.ing-stat-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:.88rem}.ing-detail-section h4,.ing-stat-label{color:var(--text-muted);font-weight:500}.ing-stat-value{font-weight:600;color:var(--text)}.ing-detail-section{margin-bottom:14px}.ing-detail-section h4{font-size:.85rem;font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.ing-detail-pantry-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:4px;font-size:.85rem}.ing-detail-added,.ing-detail-expiry{font-size:.78rem;color:var(--text-muted)}.ing-detail-expiry.expired{color:var(--danger,#dc2626)}.ing-detail-history{display:flex;flex-direction:column;gap:3px}.ing-detail-history-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:5px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem}.ing-source-badge{font-size:.6rem;font-weight:600;padding:1px 5px;border-radius:var(--radius-pill);white-space:nowrap}.ing-source-badge.pantry{background:var(--primary-light);color:var(--primary)}.ing-source-badge.shopping{background:#fef3c7;color:#92400e}.ing-source-badge.recipe{background:#ede9fe;color:#6d28d9}.ing-source-badge.meal{background:#fee2e2;color:#991b1b}.ing-store-select{padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.76rem;background:var(--bg-card);cursor:pointer;width:100%}.ing-cat-select:focus,.ing-store-select:focus{border-color:var(--primary);outline:0}.ing-cat-select,.search-bar input{width:100%;border:1px solid var(--border)}.ing-cat-select{padding:3px 6px;border-radius:var(--radius-sm);font-size:.76rem;background:var(--bg-card);cursor:pointer;transition:border-color var(--ease)}.ing-cat-select.overridden{border-color:var(--primary);background:var(--primary-light)}.ing-no-stores{font-size:.72rem;color:var(--text-muted)}.ing-group-tag{font-weight:600;color:var(--primary);font-size:.76rem}.ing-group-tag.none{color:var(--text-muted);font-weight:400;font-style:italic}.btn-xs{padding:3px 7px;font-size:.7rem}.view-header{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px}.search-bar{flex:1;min-width:200px}.search-bar input{padding:10px 14px;border-radius:var(--radius);font-size:var(--text-md);background:var(--surface);color:var(--text)}.search-bar input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12)}.recipe-card-desc{font-size:var(--text-sm);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.import-count{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.recipe-domain-badge{font-size:var(--text-xs);color:var(--text-muted);display:inline-flex;align-items:center;gap:2px}#discover-grid.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.discover-mine-badge{font-size:.68rem;background:linear-gradient(135deg,#a78bfa,#818cf8);color:#fff;padding:2px 6px;border-radius:10px;font-weight:600;white-space:nowrap}.discover-card.discover-card-added .recipe-card-body{position:relative}.discover-trending .recipe-card-body{border-left:3px solid #ff6b35}.discover-new .recipe-card-body{border-left:3px solid #4ecdc4}.discover-card-badges{display:flex;flex-wrap:wrap;gap:4px}.discover-added-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;color:var(--success, #16a34a);background:rgba(22,163,74,.08);padding:2px 8px;border-radius:var(--radius-pill);vertical-align:middle}.btn-discover-import.added,.btn-discover-preview-import.added{background:var(--bg-secondary);color:var(--success, #16a34a);border:1px solid var(--success, #16a34a);opacity:.8;cursor:default;font-weight:600}.btn-discover-preview-import.added{padding:8px 16px;border-radius:var(--radius-md)}.discover-card-meta{font-size:var(--text-sm)}.discover-card-meta span{white-space:nowrap}.discover-preview-title{font-size:var(--text-xl);font-weight:700;color:var(--text);margin-bottom:8px}.discover-preview-desc{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5;margin-bottom:12px}.discover-preview-meta{display:flex;gap:16px;font-size:var(--text-base);font-weight:600;color:var(--text-muted);margin-bottom:8px}.discover-preview-macros{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding:8px 12px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.discover-preview-macros .macro-item{font-size:var(--text-sm);font-weight:600}.discover-preview-controls{display:flex;align-items:center;gap:16px;margin:12px 0;flex-wrap:wrap}.preview-scale-row{display:flex;align-items:center;gap:8px}.preview-scale-row button{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);padding:0;border-radius:50%}.preview-srv-label{font-weight:600;font-size:var(--text-md);min-width:80px;text-align:center}.preview-unit-toggle{display:flex;gap:4px}.preview-unit-swap,.preview-unit-toggle button{font-size:var(--text-sm);padding:4px 10px;border-radius:var(--radius)}.preview-unit-swap{font-size:var(--text-xs);padding:2px 4px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;margin-left:4px;vertical-align:middle}.discover-preview-link{font-size:var(--text-base);font-weight:600;color:var(--primary);text-decoration:none;display:inline-block;margin-bottom:12px}.discover-preview-link:hover,.insight-chart-note a:hover{text-decoration:underline}.discover-preview-section{font-size:var(--text-base);font-weight:700;color:var(--text);margin:12px 0 8px;border-top:1px solid var(--border);padding-top:12px}.discover-preview-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.discover-preview-ing{font-size:var(--text-base);color:var(--text-secondary);padding:4px 0}#recipe-notes,.discover-preview-notes{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base)}.discover-preview-notes{color:var(--text-secondary);line-height:1.6;padding:8px 12px;background:var(--bg);max-height:250px;overflow-y:auto;white-space:pre-wrap}#recipe-notes{width:100%;padding:10px 12px;resize:vertical;font-family:inherit;background:var(--surface);color:var(--text)}.recipe-filter-bar{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.collections-scroll::-webkit-scrollbar,.recipe-filter-bar::-webkit-scrollbar{display:none}.recipe-cat-badge,.recipe-filter-pill{font-weight:600;border-radius:var(--radius-pill);color:var(--text-secondary)}.recipe-filter-pill{padding:5px 14px;font-size:var(--text-sm);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;white-space:nowrap;transition:all var(--ease)}.recipe-filter-pill:hover{border-color:var(--primary);color:var(--primary)}.recipe-filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.recipe-cat-badge{font-size:var(--text-xs);padding:2px 8px;background:var(--bg-hover);display:inline-block;margin-top:2px}.recipe-group-header{font-size:var(--text-lg);font-weight:700;color:var(--text);padding:14px 0 8px;border-bottom:2px solid var(--border);margin-top:20px;grid-column:1/-1;font-style:italic;letter-spacing:.02em}.recipe-group-header:first-child{margin-top:0}.cat-manage-row{display:flex;align-items:center;gap:8px;padding:6px 0}.cat-count{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.recipe-manage-cats-btn{opacity:.6;font-size:var(--text-sm)!important;padding:4px 10px!important}.recipe-manage-cats-btn:hover{opacity:1}.recipe-search-input{width:100%;padding:10px 14px;margin-bottom:16px}.recipe-collections-bar{margin-bottom:12px}.collections-scroll{display:flex;gap:8px;overflow-x:auto;padding:4px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.collection-pill{padding:8px 16px;border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:600;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--ease);display:flex;align-items:center;gap:6px}.collection-pill:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-hover)}.collection-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.collection-count{font-size:var(--text-sm);opacity:.7;font-weight:500}.collection-add-btn{border-style:dashed;opacity:.6;font-size:var(--text-lg);padding:8px 14px}.collection-add-btn:hover{opacity:1;border-color:var(--primary)}.collection-picker-dropdown{position:absolute;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-popover);min-width:200px;max-width:calc(100vw - 32px);max-height:300px;overflow-y:auto;padding:8px 0}.collection-picker-header{padding:8px 14px;font-size:var(--text-sm);font-weight:700;color:var(--text-muted);border-bottom:1px solid var(--border-light)}.collection-picker-item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;font-size:var(--text-base);transition:background .15s}.collection-context-menu .ctx-item:hover,.collection-picker-item:hover{background:var(--bg-hover)}.collection-check-item input,.collection-picker-item input{accent-color:var(--primary)}.recipe-collections-picker{display:flex;flex-wrap:wrap;gap:8px}.collection-check-item{display:flex;align-items:center;gap:6px;font-size:var(--text-base);cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);transition:all .15s}.collection-check-item:hover{border-color:var(--primary);background:var(--bg-hover)}.collection-picker-new{border:0;background:0 0;color:var(--primary);font-weight:600;font-size:var(--text-base);border-top:1px solid var(--border-light);margin-top:4px}.collection-context-menu{position:absolute;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-fullscreen);min-width:160px;padding:6px 0}.collection-context-menu .ctx-item{display:block;width:100%;text-align:left;padding:8px 14px;font-size:var(--text-base);border:0;background:0 0;cursor:pointer;color:var(--text);transition:background .15s}.collection-context-menu .ctx-danger{color:var(--danger, #ef4444)}.collection-hidden-btn{opacity:.5;font-style:italic;border-style:dotted}.hidden-coll-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-light)}.hidden-coll-row:last-child{border-bottom:none}.btn-recipe-collect{background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:6px 8px;font-size:var(--text-base);transition:all .15s}.btn-recipe-collect:hover{border-color:var(--primary);background:var(--bg-hover)}:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-outline:focus-visible,.btn-primary:focus-visible,button:focus-visible{box-shadow:0 0 0 4px rgb(var(--primary-rgb)/.15)}.board-search-input{padding:9px 14px;width:180px}.board-search-input:focus{width:240px}.shop-quick-add{display:flex;gap:8px;padding:12px 0;margin-bottom:8px}.shop-quick-add-input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);background:var(--bg-card)}.shop-quick-add-input:focus{border-color:var(--primary);outline:0}.undo-toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg-sidebar, #1B2332);color:#fff;padding:12px 20px;border-radius:var(--radius-lg);display:flex;align-items:center;gap:16px;z-index:var(--z-overlay);box-shadow:var(--shadow-xl);opacity:0;transition:all .3s ease;font-size:var(--text-md);max-width:calc(100vw - 32px)}.undo-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.undo-toast-btn{background:0 0;border:0;color:var(--accent);font-weight:600;cursor:pointer;font-size:var(--text-md);padding:4px 8px;border-radius:var(--radius-sm)}.undo-toast-btn:hover{background:rgba(255,255,255,.1)}@media (max-width:768px){.board-search-input{width:100%;max-width:100%}.board-search-input:focus{width:100%}.qty-step{font-size:var(--text-md)}.ic-action,.qty-step{min-width:34px;min-height:34px}.ic-select{min-width:22px;min-height:22px}.shop-check{min-width:36px;min-height:36px;font-size:var(--text-xl)}.sidebar-link{min-height:52px}.fab{width:56px;height:56px;font-size:var(--text-2xl)}.modal-close{min-width:36px;min-height:36px}input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{min-height:44px}.comfort .qty-step{font-size:var(--text-md)}.comfort .ic-action,.comfort .qty-step{min-width:38px;min-height:38px}.comfort .ic-select{min-width:24px;min-height:24px}.comfort .shop-check{min-width:38px;min-height:38px;font-size:var(--text-xl)}.comfort .fab{width:62px;height:62px;font-size:var(--text-2xl)}.comfort .modal-close{min-width:40px;min-height:40px}.comfort input[type=email],.comfort input[type=number],.comfort input[type=password],.comfort input[type=text],.comfort select,.comfort textarea{min-height:48px}}body.syncing::after{background:#fcd34d;animation:pulse 1s infinite}body.sync-error::after,body.synced::after,body.syncing::after{content:"";position:fixed;top:8px;right:8px;width:8px;height:8px;border-radius:50%;z-index:var(--z-overlay)}body.synced::after{background:#10b981}body.sync-error::after{background:#ef4444}#offline-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;text-align:center;padding:6px 16px;font-size:var(--text-sm);font-weight:600;z-index:var(--z-critical);transform:translateY(-100%);transition:transform .3s ease;pointer-events:none;letter-spacing:.02em}#offline-banner.show{transform:translateY(0)}.page-container>section+section,body.is-offline .main-content,body.is-offline .sidebar{margin-top:28px}.discover-vote-row{display:flex;align-items:center;gap:4px;margin-left:auto}.vote-btn,.vote-score{font-size:var(--text-sm);color:var(--text-muted)}.vote-btn{background:0 0;border:0;border-radius:var(--radius-sm);padding:4px 6px;cursor:pointer;transition:all .15s;opacity:.7}.vote-btn:hover{opacity:1;background:var(--bg-hover)}.vote-btn.active.vote-up{background:var(--success-bg);color:var(--success);opacity:1}.vote-btn.active.vote-down{background:var(--danger-bg);color:var(--danger);opacity:1}.vote-score{font-weight:700;min-width:18px;text-align:center}.vote-report{margin-left:auto;opacity:.5;border:0!important}.onboarding-staple-btn.selected .staple-check,.vote-report:hover{opacity:1}.discover-conflict-warn{font-size:var(--text-sm);padding:3px 8px;border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning);border:1px solid rgb(var(--warning-rgb)/.3);margin:2px 0;line-height:1.3}.discover-conflict-unknown{background:var(--info-bg);color:var(--info);border-color:rgb(var(--info-rgb)/.3)}.discover-controls{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.discover-result-count{font-size:var(--text-base);color:var(--text-muted);font-weight:500}.discover-load-more{display:block;margin:20px auto 0;padding:10px 28px;font-size:var(--text-md);font-weight:600;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all .15s}.discover-load-more:hover{border-color:var(--primary);background:var(--bg-hover);color:var(--primary)}.discover-pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:20px;flex-wrap:wrap}.discover-page-btn{min-width:34px;height:34px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .15s}.discover-page-btn:hover:not(.disabled):not(.active){border-color:var(--primary);background:var(--bg-hover);color:var(--primary)}.discover-page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.discover-page-btn.disabled{opacity:.4;cursor:not-allowed}.discover-page-ellipsis{color:var(--text-muted);font-size:var(--text-base);padding:0 2px}.onboarding-overlay{position:fixed;inset:0;z-index:var(--z-top);background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px}.onboarding-card{background:var(--bg-card, #fff);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);width:100%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.onboarding-progress{padding:20px 24px 0}.onboarding-progress-bar{height:6px;background:var(--border, #e5e7eb);border-radius:6px;overflow:hidden}.onboarding-progress-fill{height:100%;background:var(--primary, #2B7A5B);border-radius:6px;transition:width .4s ease}.onboarding-steps-indicators{display:flex;justify-content:space-between;margin-top:12px;padding:0 8px}.onboarding-step-dot{font-size:var(--text-xl);opacity:.35;transition:all .3s}.onboarding-step-dot.active{opacity:1;transform:scale(1.2)}.onboarding-step-dot.done{opacity:.7}.onboarding-step-label{text-align:center;font-size:var(--text-sm);color:var(--text-muted, #888);margin-top:6px;font-weight:500}.onboarding-content{flex:1;overflow-y:auto;padding:20px 24px}.onboarding-fade-in{animation:staggerIn .3s ease}.onboarding-step-header{text-align:center;margin-bottom:16px}.onboarding-step-header h2{font-size:var(--text-xl);margin:0 0 4px;color:var(--text, #1a1a1a)}.onboarding-step-header p{font-size:var(--text-base);color:var(--text-secondary, #666);margin:0}.onboarding-step-body{display:flex;flex-direction:column;gap:12px}.onboarding-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary, #555);margin-bottom:6px}.onboarding-input{width:100%;padding:10px 14px;border:1.5px solid var(--border, #ddd);border-radius:var(--radius-md, 8px);font-size:var(--text-md);background:var(--bg, #fff);color:var(--text, #1a1a1a);outline:0;transition:border-color .2s;box-sizing:border-box}.onboarding-input:focus{border-color:var(--primary, #2B7A5B)}.onboarding-input-row{display:flex;gap:8px;align-items:stretch}.onboarding-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--border, #eee)}.onboarding-nav-right{display:flex;gap:8px}.onboarding-btn-skip{opacity:.7}.onboarding-home-form{text-align:center}.onboarding-emoji-current{font-size:var(--text-3xl);margin-bottom:12px}.onboarding-emoji-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.onboarding-emoji-btn{width:44px;height:44px;font-size:var(--text-xl);border:2px solid var(--border, #ddd);border-radius:var(--radius-lg);background:var(--bg, #fff);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.onboarding-emoji-btn:hover{border-color:var(--primary, #2B7A5B);background:var(--bg-hover, #f5f5f5)}.onboarding-emoji-btn.selected{border-color:var(--primary, #2B7A5B);background:var(--primary-light, #e6f4ee);box-shadow:0 0 0 2px rgb(var(--primary-rgb)/.2)}.ob-store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ob-store-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:2px solid var(--border,#ddd);border-radius:var(--radius-lg);background:var(--bg,#fff);cursor:pointer;transition:all .15s;position:relative;font-size:var(--text-sm);color:var(--text,#333)}.ob-store-btn.selected,.ob-store-btn:hover{border-color:var(--store-color,var(--primary))}.ob-store-btn.selected{background:color-mix(in srgb,var(--store-color) 10%,var(--bg,#fff))}.ob-store-icon{font-size:var(--text-xl)}.ob-store-name{font-size:var(--text-xs);line-height:1.1;text-align:center;font-weight:600}.ob-store-check{position:absolute;top:2px;right:4px;font-size:var(--text-xs);color:var(--primary);font-weight:700}.ob-store-custom{display:flex;gap:8px;align-items:stretch;margin-top:8px}.ob-store-custom .onboarding-input{flex:1}.ob-store-added-label{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-top:4px}.onboarding-staples-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.onboarding-staple-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border:2px solid var(--border, #ddd);border-radius:var(--radius-lg);background:var(--bg, #fff);cursor:pointer;transition:all .15s;position:relative;font-size:var(--text-sm);color:var(--text, #333)}.onboarding-staple-btn:hover{border-color:var(--primary, #2B7A5B)}.staple-emoji{font-size:var(--text-xl)}.staple-name{font-size:var(--text-xs);line-height:1.1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.staple-check{position:absolute;top:2px;right:4px;font-size:var(--text-xs);color:var(--primary, #2B7A5B);opacity:0;transition:opacity .15s;font-weight:700}.onboarding-staple-btn.selected{background:var(--primary-light, #e6f4ee)}.onboarding-staples-count{text-align:center;margin-top:10px;font-size:var(--text-sm);color:var(--text-muted, #888)}.onboarding-recipe-status{margin-top:12px}.onboarding-loading{color:var(--text-secondary, #666);font-size:var(--text-base);text-align:center;padding:12px}.onboarding-recipe-success{color:var(--primary, #2B7A5B);font-size:var(--text-base)}.onboarding-recipe-error{color:var(--danger, #e53e3e);font-size:var(--text-base);margin-top:6px}.recipe-preview-card{display:flex;gap:12px;align-items:center;padding:12px;border:1.5px solid var(--primary, #2B7A5B);border-radius:var(--radius-lg);background:var(--primary-light, #e6f4ee)}.recipe-preview-img{width:64px;height:64px;object-fit:cover;border-radius:8px}.recipe-preview-info{display:flex;flex-direction:column;gap:2px}.onboarding-notif-text small,.recipe-preview-sub{font-size:var(--text-sm);color:var(--text-muted, #888)}.onboarding-day-picker,.onboarding-meal-picker{display:flex;gap:6px;flex-wrap:wrap}.onboarding-day-btn,.onboarding-meal-btn{padding:8px 12px;border:1.5px solid var(--border, #ddd);border-radius:8px;background:var(--bg, #fff);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--text, #333);transition:all .15s}.onboarding-day-btn:hover,.onboarding-meal-btn:hover,.onboarding-staple-btn.selected{border-color:var(--primary, #2B7A5B)}.onboarding-day-btn.selected,.onboarding-meal-btn.selected{background:var(--primary, #2B7A5B);color:#fff;border-color:var(--primary, #2B7A5B)}.onboarding-meal-form{display:flex;flex-direction:column;gap:8px}.onboarding-empty-state{text-align:center;padding:20px 0}.onboarding-empty-icon{font-size:var(--text-3xl);margin-bottom:8px}.onboarding-empty-state p{color:var(--text-secondary, #666);font-size:var(--text-base)}.onboarding-invite-form{max-width:400px;margin:0 auto}.onboarding-invite-status{margin-top:10px}.onboarding-complete{text-align:center;padding:20px 0}.onboarding-complete-icon{font-size:var(--text-3xl);margin-bottom:8px}.onboarding-complete h2{font-size:var(--text-2xl);margin:0 0 12px;color:var(--text, #1a1a1a)}.onboarding-summary{display:flex;gap:16px;justify-content:center;margin-bottom:16px;font-size:var(--text-md);color:var(--text-secondary, #555)}.onboarding-bonus{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;padding:10px 16px;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;margin-bottom:16px;display:inline-block}.onboarding-btn-start{font-size:var(--text-lg);padding:12px 32px;margin-top:4px}.onboarding-notif-form{max-width:400px;margin:0 auto}.onboarding-notif-toggles{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.onboarding-notif-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-lg);background:var(--bg-hover, #f9fafb);cursor:pointer;transition:background .2s}.onboarding-notif-toggle:hover{background:var(--bg-card-alt, #f3f4f6)}.onboarding-notif-icon{font-size:var(--text-xl);flex-shrink:0}.onboarding-notif-text{flex:1;display:flex;flex-direction:column}.onboarding-notif-text strong{font-size:var(--text-base);color:var(--text, #1a1a1a)}.onboarding-notif-text small{margin-top:1px}.onboarding-notif-toggle input[type=checkbox]{display:none}.onboarding-toggle-slider{width:40px;height:22px;border-radius:12px;flex-shrink:0;background:var(--border, #d1d5db);position:relative;transition:background .2s}.onboarding-toggle-slider::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.onboarding-notif-toggle input:checked+.onboarding-toggle-slider{background:var(--primary, #2B7A5B)}.onboarding-notif-time{margin-top:4px}@media (max-width:600px){.onboarding-card{max-width:100%;max-height:100vh;border-radius:0}.onboarding-overlay{padding:0}.onboarding-staples-grid{grid-template-columns:repeat(3,1fr)}.onboarding-day-picker{justify-content:center}.onboarding-summary{flex-direction:column;gap:4px}}html.dark{--bg:#1a1a2e;--bg-card:#16213e;--bg-hover:#1f2b47;--bg-sidebar:#0f0f1a;--bg-sidebar-hover:rgba(255,255,255,0.06);--bg-sidebar-active:rgba(255,255,255,0.1);--text:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#7c8ca0;--text-inverse:#1e293b;--border:#2d3748;--border-light:#1e293b;--shadow-xs:0 1px 2px rgba(0,0,0,0.2);--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow:0 4px 6px rgba(0,0,0,0.3);--shadow-lg:0 10px 25px rgba(0,0,0,0.4);--shadow-md:0 6px 12px rgba(0,0,0,0.35);--shadow-xl:0 20px 40px rgba(0,0,0,0.5);--bg-tertiary:#1e293b;--dark-card:#16213e;--primary-light:#1a3a2e;--accent-light:#2e1a10;--success-bg:#0a2e1a;--warning-bg:#2e2a0a;--danger-bg:#2e0a0a;--info-bg:#0a1a2e;--macro-cal-bg:#2e2a0a;--macro-cal-text:#fbbf24;--macro-protein-bg:#0a1a2e;--macro-protein-text:#60a5fa;--macro-carbs-bg:#2e0a0a;--macro-carbs-text:#fca5a5;--macro-fat-bg:#2e2a0a;--macro-fat-text:#fde68a;--expiring-bg:#2e2a0a;--expiring-text:#fbbf24;--expiring-border:#92400e;color-scheme:dark;scrollbar-color:#475569 transparent}html.dark body{background:var(--bg);color:var(--text)}html.dark ::-webkit-scrollbar{width:8px;height:8px}html.dark ::-webkit-scrollbar-track{background:0 0}html.dark ::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}html.dark ::-webkit-scrollbar-thumb:hover{background:#64748b}html.dark .auth-screen{background:var(--bg)}html.dark .auth-card{background:var(--bg-card);border-color:var(--border)}html.dark input,html.dark select,html.dark textarea{box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}html.dark #macro-targets-section input,html.dark .scale-input,html.dark input,html.dark select,html.dark textarea{background:var(--bg);color:var(--text);border-color:var(--border)}html.dark input:focus,html.dark select:focus,html.dark textarea:focus{background:var(--bg-card);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.2),inset 0 1px 3px rgba(0,0,0,.15)}html.dark input:hover,html.dark select:hover,html.dark textarea:hover{border-color:#475569}html.dark .modal{background:var(--bg-card);border-color:var(--border)}html.dark .modal-overlay{background:rgba(0,0,0,.7)}html.dark .stat-card,html.dark .suggestion-card{background:var(--bg-card);border-color:var(--border)}html.dark .page-container{color:var(--text)}html.dark .btn-primary{background:var(--primary);color:#fff}html.dark .btn-outline{border-color:var(--border);color:var(--text)}html.dark .btn-outline:hover{background:var(--bg-hover)}html.dark .sidebar{background:var(--bg-sidebar)}html.dark .planner-drawer-backdrop{background:rgba(0,0,0,.5)}html.dark .store-budget-input{background:var(--bg);border-color:var(--border)}html.dark .store-budget-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.2)}html.dark .board-item,html.dark .column-card,html.dark .planner-day,html.dark .subscription-card{background:var(--bg-card);border-color:var(--border)}html.dark .subscription-plan-badge.free{background:rgba(255,255,255,.06);color:var(--text-secondary);border-color:var(--border)}html.dark .subscription-usage .usage-bar{background:rgba(255,255,255,.08)}html.dark .subscription-usage .usage-fill{background:var(--primary)}html.dark .plan-option{background:var(--bg);border-color:var(--border)}html.dark .plan-option:hover{border-color:#475569}html.dark .plan-option.active{border-color:var(--primary);background:var(--primary-light)}html.dark .plan-option-price{color:var(--text)}html.dark .plan-option.active .plan-option-price{color:#34d399}html.dark .btn-manage-sub{border-color:var(--border);color:var(--text-secondary)}html.dark .btn-manage-sub:hover{border-color:#475569;color:var(--text)}html.dark .board-item:hover{background:var(--bg-hover)}html.dark .search-input{background:var(--bg);color:var(--text)}html.dark .ing-item-row,html.dark .search-input{border-color:var(--border)}html.dark .ing-cat-group-header{background:var(--bg-hover)}html.dark .ing-group-card{background:var(--bg-card);border-color:var(--border)}html.dark .ing-alias-chip{background:var(--bg-hover);color:var(--text);border-color:var(--border)}html.dark .settings-body,html.dark .settings-section h4{color:var(--text)}html.dark .form-group label,html.dark .tab-btn{color:var(--text-secondary)}html.dark .tab-btn.active{color:var(--primary);border-color:var(--primary)}html.dark .page-title{color:var(--text)}html.dark ::placeholder{color:var(--text-muted)}html.dark .shop-store-card{border-color:var(--border);background:var(--bg-card)}html.dark .shop-store-card:hover{background:var(--bg-hover)}html.dark .shop-store-picker{background:linear-gradient(135deg,rgb(var(--primary-rgb)/.04) 0%,rgb(var(--primary-rgb)/.08) 100%);border-color:rgb(var(--primary-rgb)/.15)}html.dark .shop-store-count{background:var(--bg-hover);border-color:var(--border)}html.dark .planner-slot{background:var(--bg);border-color:var(--border)}html.dark .planner-meal-chip{background:var(--bg-hover);border-color:var(--border)}html.dark .quick-srv-input{color:var(--text);background:var(--bg-card);border-color:var(--border)}html.dark .quick-meal-servings-row{background:var(--bg-hover);border-color:var(--border)}html.dark .column-settings-item,html.dark hr{border-color:var(--border)}html.dark .vote-btn.active.vote-up{background:var(--success-bg);color:#a5d6a7}html.dark .vote-btn.active.vote-down{background:var(--danger-bg);color:#ef9a9a}html.dark .items-grid.items-grid-buy{background:#1e2433;border-color:#2d3748;box-shadow:2px 3px 8px rgba(0,0,0,.2)}html.dark .aisle-items::before,html.dark .items-grid.items-grid-buy::before{background:#7f3333;opacity:.4}html.dark .items-grid.items-grid-buy .item-card{border-bottom-color:#2d3748}html.dark .items-grid.items-grid-stock{background:linear-gradient(180deg,#1e1a14 0,#231e16 100%);border-color:#3d3020}html.dark .items-grid.items-grid-stock::after{background:linear-gradient(90deg,#5c4220,#8b6914 30%,#6b4c1e 60%,#8b6914 90%,#5c4220)}html.dark .items-grid.items-grid-stock .item-card{border-bottom-color:#5c4a2a;background:linear-gradient(180deg,transparent 0,rgba(140,100,40,.05) 100%)}html.dark .items-grid.items-grid-stock .item-card:hover{background:rgba(140,100,40,.1)}html.dark .items-grid.items-grid-stock .ic-name{color:#e8dcc8}html.dark .items-grid.items-grid-stock .ic-qty-badge{background:rgba(140,100,40,.2);color:#d4b87a}html.dark .items-grid.items-grid-stock .cat-header{background:linear-gradient(90deg,#5c4220,#6b4c1e);color:#d4b87a;border-bottom-color:#8b6914}html.dark .item-card:hover{background:rgb(var(--primary-rgb)/.08)}html.dark .item-card.selected{background:rgb(var(--primary-rgb)/.15)}html.dark .aisle-items{background:#1e2433;border-color:#2d3748;box-shadow:none}html.dark .shop-item{border-bottom-color:#2d3748}html.dark .shop-item:hover{background:rgb(var(--primary-rgb)/.08)}html.dark .shop-item.checked{background:rgba(22,163,74,.08)}html.dark .settle-person.owes{background:var(--warning-bg);border-color:var(--warning)}html.dark .settle-person.owed{background:var(--success-bg);border-color:var(--success)}html.dark #recipes-view .recipes-grid{background:linear-gradient(180deg,#181410 0,#1e1a14 100%);border-color:#3d3020}html.dark .recipe-card{background:linear-gradient(135deg,#1e1a14 0,#252018 100%);border-color:#3d3020}html.dark .recipe-card:hover{background:linear-gradient(135deg,#262019 0,#2a241c 100%)}html.dark .recipe-card-title{color:#e8dcc8}html.dark .recipe-card-servings{color:#b8a88a}html.dark .recipe-card-footer{border-top-color:#3d3020}html.dark .recipe-card .chip{background:rgba(140,100,40,.12);border-color:#3d3020;color:#c9a96e}html.dark .recipe-group-header{color:#e8dcc8;border-bottom-color:#5c4a2a}html.dark .onboarding-card{background:var(--bg-card)}html.dark .kbd-row kbd,html.dark .onboarding-emoji-btn{background:var(--bg);border-color:var(--border)}html.dark .onboarding-emoji-btn:hover{background:var(--bg-hover)}html.dark .onboarding-emoji-btn.selected{background:var(--primary-light);border-color:var(--primary)}html.dark .onboarding-day-btn,html.dark .onboarding-meal-btn,html.dark .onboarding-staple-btn{background:var(--bg);border-color:var(--border);color:var(--text)}html.dark .onboarding-staple-btn:hover{border-color:var(--primary)}html.dark .onboarding-staple-btn.selected{background:var(--primary-light);border-color:var(--primary)}html.dark .onboarding-day-btn.selected,html.dark .onboarding-meal-btn.selected{background:var(--primary);color:#fff}html.dark .onboarding-nav{border-top-color:var(--border)}html.dark .recipe-preview-card{background:var(--primary-light);border-color:var(--primary)}html.dark .onboarding-bonus{background:linear-gradient(135deg,#422006,#78350f);color:#fde68a}.dark-toggle{position:relative;display:inline-block;width:44px;height:24px}.dark-toggle input{opacity:0;width:0;height:0}.dark-toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:24px;transition:.25s;cursor:pointer}.dark-toggle-slider::before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.dark-toggle input:checked+.dark-toggle-slider{background:var(--primary)}.dark-toggle input:checked+.dark-toggle-slider::before{transform:translateX(20px)}html.dark .insight-fun-fact{background:rgba(30,41,59,.8);border-color:rgba(99,102,241,.15)}html.dark .insight-stat-card:hover{box-shadow:0 8px 30px rgba(99,102,241,.2),0 2px 8px rgba(0,0,0,.3)}html.dark .insight-panel:hover{box-shadow:0 4px 20px rgba(99,102,241,.15),0 1px 4px rgba(0,0,0,.2)}html.dark .kbd-shortcuts-fab,html.dark .kbd-shortcuts-panel{background:var(--bg-card);border-color:var(--border)}html.dark .kbd-shortcuts-fab.active{background:rgba(43,122,91,.2);border-color:var(--primary)}html.dark .kbd-panel-header{border-color:var(--border)}html.dark .insight-bar{box-shadow:0 0 12px rgba(99,102,241,.4)}html.dark .insight-hbar-fill{box-shadow:0 1px 6px rgba(59,130,246,.4)}html.dark .seasonal-card{background:var(--bg-card);border-color:var(--border)}html.dark .seasonal-badge{background:rgba(43,122,91,.2);color:#4ade80}html.dark .tonight-card{background:var(--bg-card);border-color:var(--border)}html.dark .tonight-header,html.dark .tonight-pick{background:var(--bg);border-color:var(--border)}html.dark .tonight-pick:hover{background:rgba(43,122,91,.15);border-color:var(--primary)}html.dark .ch-card{background:var(--bg-card);border-color:var(--border)}html.dark .ch-card.ch-done{background:rgba(43,122,91,.1);border-color:var(--primary)}html.dark .ch-bar-wrap{background:rgba(255,255,255,.08)}html.dark .cqa-card{border-color:var(--border)}html.dark .ach-unlock-modal,html.dark .cqa-card{background:var(--bg-card)}html.dark .ach-unlock-share{background:var(--bg);border-color:var(--border);color:var(--text)}html.dark .ai-thinking-card{background:var(--bg-card)}html.dark .ai-think-step.active{background:rgba(43,122,91,.2)}html.dark .af-react-picker{background:var(--bg-card);border-color:var(--border)}html.dark .expiring-banner{background:rgba(146,64,14,.15);border-color:rgba(146,64,14,.3)}html.dark .expiring-banner-text{color:var(--text)}html.dark .expiring-banner-text strong{color:#fbbf24}html.dark .insight-donut-svg-wrap{box-shadow:0 4px 20px rgba(99,102,241,.2)}html.dark .insight-fun-facts{background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(6,182,212,.06),rgba(34,197,94,.04))}html.dark .insight-donut-svg-center{box-shadow:inset 0 0 0 3px #16213e}html.dark .btn-expiring-recipe{background:var(--bg-card);color:var(--text);border-color:var(--border)}html.dark .btn-expiring-recipe:hover{background:var(--primary);color:#fff}html.dark .ing-detail-badge.on-buy,html.dark .ing-source-badge.shopping{background:rgba(146,64,14,.2);color:#fbbf24}html.dark .ing-source-badge.recipe{background:rgba(109,40,217,.2);color:#a78bfa}html.dark .ing-source-badge.meal{background:rgba(153,27,27,.2);color:#fca5a5}html.dark .macro-over{background:rgba(220,38,38,.15)!important;border-color:rgba(220,38,38,.3)!important}html.dark .tier-bronze .ach-unlock-tier{background:rgba(146,64,14,.2);color:#fbbf24}html.dark .ach-unlock-tier.tier-bronze{background:rgba(146,64,14,.2)}html.dark .tier-silver .ach-unlock-tier{background:rgba(71,85,105,.3);color:#94a3b8}html.dark .ach-unlock-tier.tier-silver{background:rgba(71,85,105,.3)}html.dark .tier-gold .ach-unlock-tier{background:rgba(146,64,14,.25);color:#fde68a}html.dark .ach-unlock-tier.tier-gold{background:rgba(146,64,14,.25)}html.dark .ach-unlock-tier.tier-diamond,html.dark .tier-diamond .ach-unlock-tier{background:rgba(30,64,175,.2);color:#93c5fd}html.dark .metrics-section{background:var(--bg-card);border-color:var(--border)}html.dark .metrics-kpi-card{background:var(--bg);border-color:var(--border)}html.dark .metrics-kpi-bar-wrap{background:rgba(255,255,255,.08)}.scanner-overlay{position:fixed;inset:0;z-index:var(--z-overlay);background:#000;display:flex;flex-direction:column}.scanner-header{display:flex;align-items:center;gap:12px;padding:max(12px,env(safe-area-inset-top)) 16px 12px;background:rgba(0,0,0,.8);color:#fff;z-index:2}.scanner-browser-hint{text-align:center;padding:5px 12px;font-size:var(--text-xs);color:rgba(255,255,255,.7);background:rgba(0,0,0,.6);letter-spacing:.02em}.scanner-close{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:0;color:#fff;font-size:var(--text-xl);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.scanner-close:hover{background:rgba(255,255,255,.25)}.scanner-title{flex:1;font-size:var(--text-md);font-weight:700}.scanner-count{font-size:var(--text-sm);font-weight:600;color:var(--primary);background:rgb(var(--primary-rgb)/.2);padding:3px 10px;border-radius:var(--radius-full)}.scanner-torch{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:0;color:#fff;font-size:1.1rem;cursor:pointer;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.scanner-torch:active{transform:scale(.9)}.scanner-torch.active{background:rgba(250,204,21,.35);color:#fbbf24}.scanner-capture-btn,.scanner-torch,.scanner-viewport{display:flex;align-items:center;justify-content:center}.scanner-viewport{flex:1;position:relative;overflow:hidden;min-height:0}#scanner-reader,#scanner-video{width:100%;height:100%}#scanner-reader video{width:100%!important;height:100%!important;object-fit:cover!important}#scanner-reader img{display:none!important}#scanner-video{object-fit:cover}.scanner-capture-btn{position:absolute;bottom:12px;right:12px;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.85);border:2px solid var(--primary);font-size:var(--text-xl);cursor:pointer;z-index:2;box-shadow:0 2px 10px rgba(0,0,0,.3);transition:transform .15s;-webkit-tap-highlight-color:transparent}.scanner-capture-btn:active{transform:scale(.9)}.scanner-crosshair{position:absolute;top:50%;left:50%;width:85vw;max-width:500px;height:30vw;max-height:160px;transform:translate(-50%,-50%);border:2.5px solid rgb(var(--primary-rgb)/.9);border-radius:14px;box-shadow:0 0 0 3000px rgba(0,0,0,.35);pointer-events:none;transition:border-color .25s,box-shadow .25s}.scanner-crosshair.scanner-flash{border-color:#22c55e!important;box-shadow:0 0 0 3000px rgba(0,0,0,.25),inset 0 0 40px rgba(34,197,94,.35)!important}.scanner-crosshair::after,.scanner-crosshair::before{content:"";position:absolute;background:var(--primary);border-radius:2px}.scanner-crosshair::before{top:50%;left:8px;right:8px;height:2px;transform:translateY(-50%);opacity:.4}.scanner-bottom-panel{background:#fff;border-radius:20px 20px 0 0;box-shadow:0-4px 20px rgba(0,0,0,.2);max-height:50vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,0)}.admin-login-form input,html.dark .scanner-bottom-panel{background:var(--bg-card)}.scanner-result{padding:16px 20px;min-height:100px;display:flex;align-items:center;justify-content:center}.scanner-history{padding:0 16px 12px}.scan-history-header{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 4px 6px;border-top:1px solid var(--border-light)}.scan-history-list{display:flex;flex-direction:column;gap:4px}.scan-history-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-secondary);border-radius:var(--radius);min-height:40px}.scan-history-icon{font-size:var(--text-base);flex-shrink:0}.scan-history-name{flex:1;font-size:var(--text-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-history-add{font-size:var(--text-2xs)!important;padding:5px 10px!important;min-height:28px!important;white-space:nowrap;flex-shrink:0}.scanner-result-empty,.scanner-result-error,.scanner-result-loading{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:12px 0}.scanner-result-icon{font-size:var(--text-3xl)}.scanner-result-hint{font-size:var(--text-base);color:var(--text-muted);font-weight:500}.scanner-product{display:flex;gap:12px;align-items:flex-start;width:100%}.scanner-product-img{width:56px;height:56px;border-radius:var(--radius);object-fit:cover;background:var(--bg);border:1px solid var(--border);flex-shrink:0}.scanner-product-info{flex:1;min-width:0}.scanner-product-name{font-size:var(--text-md);font-weight:700;color:var(--text);line-height:1.3;margin-bottom:2px}.scanner-product-brand{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:2px}.scanner-product-cat{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:4px}.scanner-macros{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.scanner-product-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.scanner-btn-action{padding:10px 16px;white-space:nowrap}.scanner-btn-action,.scanner-btn-skip{font-size:var(--text-sm)}.scanner-success{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px 0;width:100%}.scanner-success-msg{font-size:var(--text-md);font-weight:700;color:var(--success)}.scanner-success-hint{font-size:var(--text-sm);color:var(--text-muted)}.scanner-not-found{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;width:100%}.scanner-nf-text{margin-bottom:4px}.scanner-nf-title{font-size:var(--text-base);font-weight:700;color:var(--text)}.scanner-nf-code{font-size:var(--text-xs);color:var(--text-muted);font-family:monospace}.scanner-nf-actions{display:flex;gap:8px;width:100%;align-items:center}.btn-scan,.scanner-manual-name{border-radius:var(--radius);border:1px solid var(--border)}.scanner-manual-name{flex:1;padding:10px 12px;font-size:var(--text-base)}.btn-scan{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-card);font-size:var(--text-sm);font-weight:600;color:var(--text);cursor:pointer;transition:all .15s}.btn-scan:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.btn-scan:active{transform:scale(.96)}.btn-scan-icon{font-size:var(--text-lg)}@media (max-width:768px){.btn-scan{padding:10px 16px;font-size:var(--text-md)}.btn-scan-icon{font-size:var(--text-2xl)}}.tour-overlay{position:fixed;inset:0;z-index:var(--z-fullscreen);background:rgba(0,0,0,.55);transition:opacity .3s}.tour-highlight{position:fixed;z-index:var(--z-top);border-radius:8px;box-shadow:0 0 0 4000px rgba(0,0,0,.55),0 0 0 3px var(--primary),0 0 20px rgb(var(--primary-rgb)/.4);background:0 0;transition:all .35s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none}.tour-highlight.visible,.tour-tooltip.visible{opacity:1}.tour-tooltip,html.dark .tour-tooltip{background:var(--bg-card);color:var(--text)}.tour-tooltip{position:fixed;z-index:calc(var(--z-top) + 1);border-radius:12px;border:1px solid var(--border);box-shadow:0 20px 50px rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.05);padding:20px 24px;max-width:min(320px,calc(100vw - 32px));min-width:220px;opacity:0;transform-origin:top left;transition:opacity .3s,transform .3s}@media (max-width:768px){.tour-tooltip{max-width:none;min-width:auto;padding:16px 18px;border-radius:14px}.tour-tooltip-title{font-size:var(--text-lg)}.tour-tooltip-text{font-size:var(--text-base);margin-bottom:12px}.tour-btn-next{padding:10px 18px;font-size:var(--text-base)}.tour-btn-skip{padding:10px 14px;font-size:var(--text-sm)}}html.dark .tour-tooltip{border-color:var(--border)}.tour-tooltip-title{font-weight:700;font-size:var(--text-lg);margin-bottom:6px}.tour-tooltip-text{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5;margin-bottom:14px}.admin-login-card p,html.dark .tour-tooltip-text{color:var(--text-muted)}.tour-tooltip-footer{display:flex;align-items:center;justify-content:space-between}.tour-tooltip-counter{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.tour-tooltip-btns{display:flex;gap:8px}.tour-btn-skip{padding:6px 12px;border-radius:6px;font-size:var(--text-sm);color:var(--text-muted);background:0 0;border:1px solid var(--border);cursor:pointer;transition:.15s}.tour-btn-skip:hover{background:var(--bg-hover)}html.dark .tour-btn-skip{border-color:var(--border);color:var(--text-muted)}.sort-game-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 18px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#1b5e3a,#2b7a5b);color:#fff;font-weight:700;font-size:var(--text-base);cursor:pointer;border:2px solid transparent;box-shadow:0 2px 8px rgba(27,94,58,.25);transition:transform .2s,box-shadow .2s;text-align:center;letter-spacing:.01em}.sort-game-btn:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(27,94,58,.35)}.sort-game-overlay{position:fixed;inset:0;z-index:var(--z-fullscreen);background:linear-gradient(145deg,#0d3320 0,#1b5e3a 40%,#145230 100%);display:flex;flex-direction:column;overflow:hidden;touch-action:none;font-family:var(--font)}.sort-game-header{display:flex;align-items:center;justify-content:space-between;padding:max(16px,env(safe-area-inset-top)) 20px 8px;flex-shrink:0}.sort-game-title{color:#fff;font-size:var(--text-xl);font-weight:700}.sort-game-close{padding:8px 18px;border-radius:var(--radius-full);background:rgba(255,255,255,.15);color:#fff;font-weight:600;font-size:var(--text-base);cursor:pointer;border:0;backdrop-filter:blur(4px);transition:background .15s}.sort-game-close:hover{background:rgba(255,255,255,.25)}.sort-game-progress{padding:0 20px 12px;flex-shrink:0}.sort-game-progress-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.15);overflow:hidden}.sort-game-progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#34d399,#10b981);transition:width .4s ease}.sort-game-progress-text{color:rgba(255,255,255,.8);font-size:var(--text-base);text-align:center;margin-top:6px;font-weight:500}.sort-game-items-area{flex:1;overflow-y:auto;padding:8px 16px;display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start;justify-content:center;min-height:0}.sort-game-item{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--radius-full);background:rgba(255,255,255,.95);color:#1e293b;font-weight:600;font-size:var(--text-md);box-shadow:0 2px 10px rgba(0,0,0,.2);cursor:grab;user-select:none;transition:opacity .15s,transform .4s ease,box-shadow .15s;opacity:0;transform:translateY(20px) scale(.9);touch-action:none}.sort-game-item.visible{opacity:1;transform:translateY(0) scale(1)}.sort-game-item.dragging{opacity:.7;transform:scale(1.08);z-index:var(--z-sidebar);box-shadow:0 8px 25px rgba(0,0,0,.35);cursor:grabbing;position:fixed;pointer-events:none}.sort-game-item.sorted{animation:sort-game-pop .4s ease forwards;pointer-events:none}.sort-game-item-icon{font-size:var(--text-lg)}.sort-game-buckets{flex-shrink:0;padding:12px 16px 24px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;background:rgba(0,0,0,.2);border-top:1px solid rgba(255,255,255,.1)}.sort-game-bucket{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 20px;min-width:100px;border-radius:var(--radius-lg);border:2px dashed rgba(255,255,255,.35);background:rgba(255,255,255,.07);color:#fff;text-align:center;transition:border-color .2s,background .2s,transform .2s}.sort-game-bucket.drag-over{border-color:#34d399;background:rgba(52,211,153,.2);transform:scale(1.05);box-shadow:0 0 20px rgba(52,211,153,.3)}.sort-game-bucket-icon{font-size:var(--text-3xl)}.sort-game-bucket-name{font-weight:600;font-size:var(--text-base)}.sort-game-bucket-count{font-size:var(--text-sm);color:rgba(255,255,255,.6)}.sort-game-done{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);z-index:10}.sort-game-done-emoji{font-size:var(--text-3xl);animation:sort-game-bounce .6s ease}.sort-game-done-text{color:#fff;font-size:var(--text-3xl);font-weight:700;margin:12px 0}.sort-game-done-sub{color:rgba(255,255,255,.7);font-size:var(--text-lg);margin-bottom:20px}.sort-game-done-btn{padding:12px 32px;border-radius:var(--radius-full);background:linear-gradient(135deg,#34d399,#10b981);color:#fff;font-weight:700;font-size:var(--text-lg);border:0;cursor:pointer;box-shadow:0 4px 15px rgba(16,185,129,.4);transition:transform .15s}.sort-game-done-btn:hover{transform:scale(1.05)}@media (max-width:600px){.sort-game-header{padding:12px 14px 6px}.sort-game-items-area{padding:6px 10px;gap:8px}.sort-game-item{padding:8px 12px;font-size:var(--text-base)}.sort-game-bucket{padding:12px 14px;min-width:80px}.sort-game-bucket-icon{font-size:var(--text-2xl)}.sort-game-buckets{padding:10px 10px 20px;gap:8px}}html.dark .tour-btn-skip:hover{background:#2d3748}.tour-btn-next{padding:6px 14px;border-radius:6px;font-size:var(--text-base);color:#fff;background:var(--primary);border:0;cursor:pointer;font-weight:600;transition:.15s}.tour-btn-next:hover{background:var(--primary-hover)}.sidebar-admin-link{opacity:.7;font-size:.9em}.sidebar-admin-link.active{opacity:1}.admin-login-card{max-width:380px;margin:80px auto;padding:40px;background:var(--bg-card);border-radius:18px;box-shadow:0 8px 32px rgba(0,0,0,.08);text-align:center}.admin-login-icon{font-size:3em;margin-bottom:12px}.admin-login-card h3{margin-bottom:6px;font-size:1.3em}.admin-login-card p{margin-bottom:20px;font-size:.9em}.admin-login-form{display:flex;gap:8px}.admin-login-form input{flex:1;padding:11px 14px;border-radius:var(--radius-md);border:1.5px solid var(--border);font-size:.95em;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:24px}.admin-stat-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:18px 14px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;border:1px solid var(--border)}.admin-stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.admin-stat-card.pro{background:linear-gradient(135deg,rgb(var(--primary-rgb)/.06),rgba(27,94,58,.08));border-color:rgb(var(--primary-rgb)/.25)}.admin-stat-icon{font-size:1.6em;margin-bottom:6px}.admin-stat-value{font-size:2em;font-weight:800;line-height:1.1}.admin-stat-label{font-size:.8em;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.admin-stat-sub{font-size:.75em;color:var(--primary);margin-top:6px;font-weight:600}.admin-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9em;color:var(--text-muted);transition:all .2s;border-radius:var(--radius-md) var(--radius-md)0 0;white-space:nowrap}.admin-tab:hover,.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.admin-tab-content{display:none}.admin-tab-content.active{display:block}.admin-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;margin-bottom:18px;box-shadow:var(--shadow-xs);border:1px solid var(--border)}.admin-section h3{margin-bottom:14px;font-size:1.05em}.admin-section-sub,.admin-table th{font-weight:400;color:var(--text-muted);font-size:.85em}.admin-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width:768px){.admin-grid-2{grid-template-columns:1fr}}.admin-chart-bars{display:flex;align-items:flex-end;gap:2px;height:140px;padding:10px 0}.admin-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.admin-chart-bar{width:100%;min-width:6px;background:linear-gradient(180deg,var(--primary),var(--primary-hover));border-radius:3px 3px 0 0;position:relative;transition:height .4s ease}.admin-chart-count{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:.6em;font-weight:700;color:var(--text)}.admin-chart-label{font-size:.55em;color:var(--text-muted);margin-top:3px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.88em}.admin-table th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--border);font-weight:600;font-size:.8em;text-transform:uppercase;letter-spacing:.5px}.admin-table th.sort-asc::after{content:" ▲";font-size:.7em}.admin-table th.sort-desc::after{content:" ▼";font-size:.7em}.admin-table td{padding:9px 10px;border-bottom:1px solid var(--border)}.admin-row-dead{opacity:.45}.admin-badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:.78em;font-weight:600}.badge-pro{background:rgb(var(--primary-rgb)/.12);color:var(--primary)}.badge-free{background:var(--bg-hover);color:var(--text-muted)}.admin-toolbar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-toolbar .search-input{flex:1;min-width:180px}.admin-recipe-card{background:var(--bg-card);border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 6px rgba(0,0,0,.04);border:1px solid var(--border)}.admin-recipe-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.admin-recipe-meta{font-size:.8em;color:var(--text-muted)}.admin-recipe-desc{font-size:.88em;margin:4px 0 8px}.admin-recipe-url{font-size:.78em;color:var(--primary);word-break:break-all;display:block;margin-bottom:8px}.admin-recipe-actions{display:flex;gap:8px}.admin-recipe-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border, #f0f0f0)}.admin-recipe-row:last-child{border-bottom:none}.admin-rank{font-weight:700;color:var(--text-muted);min-width:28px}.admin-recipe-title{flex:1;font-size:.92em}.admin-recipe-imports{font-size:.8em;color:var(--text-muted);white-space:nowrap}.admin-edit-form{display:flex;flex-direction:column;gap:6px}.admin-edit-form label{font-weight:600;font-size:.82em;color:var(--text-muted);margin-top:4px}.admin-edit-form input,.admin-edit-form textarea{padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9em;background:var(--bg-card);color:var(--text)}.admin-json{font-family:"SF Mono","Consolas",monospace;font-size:.82em!important}.admin-edit-actions{display:flex;gap:8px;margin-top:8px}.admin-promo-create{display:flex;gap:8px;flex-wrap:wrap;flex:1}.admin-promo-create input{flex:1;min-width:80px}.admin-code{background:var(--bg-hover);padding:2px 8px;border-radius:6px;font-weight:600;letter-spacing:1px;font-size:.9em}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border, #eee)}.admin-empty,.admin-page-info{font-size:.82em;color:var(--text-muted)}.admin-empty{text-align:center;padding:30px;font-style:italic;font-size:.9em}.drawer-section-label,.drawer-section-label--discover{font-size:var(--text-xs);color:var(--text-muted);padding:4px 4px 2px;font-weight:600}.drawer-section-label--discover{padding:12px 4px 2px;border-top:1px solid var(--border);margin-top:8px}.empty-state-text,.empty-state-text--bold{text-align:center;color:var(--text-muted);padding:20px}.empty-state-text{font-size:var(--text-sm)}.empty-state-text--bold{font-weight:600}.modal-content-body{padding:16px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content-body--sm{padding:12px 16px 16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.modal-actions--wrap{display:flex;gap:10px;flex-wrap:wrap}.share-option-btn{flex:1;padding:12px;text-align:left;min-width:180px}.metrics-section h4,.share-option-desc{font-size:var(--text-sm);color:var(--text-muted)}.form-label-sm{font-size:var(--text-sm);font-weight:600}.copy-day-btn-grid{padding:12px 16px 16px;display:flex;flex-wrap:wrap;gap:6px}.batch-cook-actions{margin-bottom:8px;display:flex;gap:8px}.batch-cook-footer{margin-top:12px;display:flex;gap:8px}.drawer-discover-content{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.drawer-discover-btn{font-size:var(--text-xs);padding:2px 6px;white-space:nowrap;flex-shrink:0}.privacy-warning{display:none;padding:10px 12px;background:var(--warning-bg, #fff3cd);border:1px solid var(--warning-border, #ffc107);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text)}.metrics-section{background:var(--bg-card);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 1px 6px rgba(0,0,0,.04);border:1px solid var(--border, #eee)}.metrics-section h3{margin:0 0 14px;font-size:var(--text-lg)}.metrics-section h4{margin:12px 0 6px;font-size:var(--text-base)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.metrics-kpi-card{background:var(--bg-hover);border-radius:12px;padding:14px;text-align:center;border:1px solid var(--border);transition:transform .15s}.metrics-kpi-card:hover{transform:translateY(-1px)}.metrics-kpi-icon{font-size:var(--text-2xl);margin-bottom:4px}.metrics-kpi-value{font-size:var(--text-xl);font-weight:700;color:var(--text)}.metrics-kpi-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.metrics-kpi-bar-wrap{height:5px;background:var(--border, #e0e0e0);border-radius:3px;margin-top:8px;overflow:hidden}.metrics-kpi-bar{height:100%;border-radius:3px;transition:width .5s ease}.metrics-kpi-target{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px}.metrics-sparkline-wrap{margin-top:14px}.metrics-sparkline{display:flex;align-items:flex-end;gap:4px;height:70px;padding:4px 0}.metrics-spark-bar{flex:1;background:var(--primary, #2b7a5b);border-radius:3px 3px 0 0;min-width:20px;position:relative;cursor:default;transition:opacity .15s}.metrics-spark-bar:hover{opacity:.8}.metrics-spark-count{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.metrics-targets-table td:nth-child(2){color:var(--primary, #2b7a5b)}.metrics-targets-table td:last-child{text-align:center}@media (max-width:600px){.metrics-grid{grid-template-columns:repeat(2,1fr);gap:8px}.metrics-kpi-card{padding:10px}.metrics-kpi-value{font-size:var(--text-lg)}.metrics-kpi-icon{font-size:var(--text-xl)}}.allergen-warning,.dietary-tag{display:inline-block;font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius-lg);font-weight:500;margin:2px 2px 0 0}.dietary-tag{background:var(--primary-light);color:var(--primary);white-space:nowrap}html.dark .dietary-tag{background:rgb(var(--primary-rgb)/.2);color:#6fcf97}.allergen-warning{background:var(--accent-light, #FEF0E8);color:var(--accent)}html.dark .allergen-warning{background:rgb(var(--accent-rgb)/.15)}.dietary-prefs-grid{display:flex;flex-wrap:wrap;gap:6px}.dietary-pref-btn{padding:6px 12px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text);font-size:var(--text-base);cursor:pointer;transition:all .15s}.dietary-pref-btn:hover{border-color:var(--primary)}.dietary-pref-btn.active{color:#fff}html.dark .dietary-pref-btn{background:var(--bg-card);border-color:var(--border)}.dietary-pref-btn.active,html.dark .dietary-pref-btn.active{background:var(--primary);border-color:var(--primary)}.recipe-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 6px}.btn-share-recipe{background:0 0;border:1px solid var(--border);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:var(--text-base);color:var(--text-secondary);transition:all .15s}.btn-share-recipe:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.insights-grid{padding:0;position:relative;background:radial-gradient(ellipse at 20%0,rgba(99,102,241,.04)0,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(34,197,94,.03)0,transparent 50%)}.insights-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-bottom:28px}.insight-stat-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 14px 16px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;animation:viewSlideIn .3s ease both}.insight-stat-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#06b6d4,#22c55e);opacity:0;transition:opacity .3s;pointer-events:none}.insight-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08);border-color:rgba(99,102,241,.2)}.discover-comment-actions .btn-xs:hover,.import-review-mode .ingredient-row:hover .btn-remove-ing,.insight-macro-card:hover::before,.insight-stat-card:hover::before{opacity:1}.insight-stat-card:nth-child(1){animation-delay:0s}.insight-stat-card:nth-child(2){animation-delay:.05s}.insight-stat-card:nth-child(3){animation-delay:.1s}.insight-stat-card:nth-child(4){animation-delay:.15s}.ai-thinking-dots span:nth-child(2),.insight-stat-card:nth-child(5){animation-delay:.2s}.insight-stat-card:nth-child(6){animation-delay:.25s}.insight-stat-icon{font-size:var(--text-3xl);margin-bottom:6px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.insight-stat-num{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#6366f1,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.insight-stat-label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.insights-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.insight-panel{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:22px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:viewSlideIn .5s ease both;overflow:hidden}.insight-panel::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:16px;background:linear-gradient(135deg,rgba(99,102,241,.02),transparent 40%,rgba(6,182,212,.02));pointer-events:none}.insight-panel:hover{border-color:rgba(99,102,241,.2);box-shadow:0 4px 20px rgba(99,102,241,.08),0 1px 4px rgba(0,0,0,.04);transform:translateY(-2px)}.insight-panel-title{font-size:var(--text-md);font-weight:700;margin-bottom:14px;letter-spacing:-.2px;color:var(--text);display:flex;align-items:center;gap:6px}.insight-list{display:flex;flex-direction:column;gap:6px}.insight-list-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-lg);background:var(--bg);font-size:var(--text-base);transition:all .2s ease;border:1px solid transparent}.insight-list-item:hover{background:rgba(99,102,241,.04);border-color:rgba(99,102,241,.1);transform:translateX(2px)}.insight-rank{font-weight:800;min-width:22px;text-align:center;background:linear-gradient(135deg,#6366f1,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.insight-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.insight-item-value{font-weight:700;color:var(--text);white-space:nowrap;font-size:var(--text-base)}.insight-brand-meta{font-size:var(--text-sm);font-weight:500}.insight-brand-items{font-size:var(--text-sm);color:var(--text-muted);padding:0 0 6px 28px;margin-top:-4px}.insight-empty{font-size:var(--text-base);color:var(--text-muted);font-style:italic;padding:16px 0;text-align:center}.insight-waste-msg{font-size:var(--text-base);color:var(--danger, #D94444);margin-bottom:8px;font-weight:600}.insight-more{font-size:var(--text-sm);color:var(--text-muted);margin-top:6px}.insight-fun-facts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;padding:16px 18px;background:linear-gradient(135deg,rgba(99,102,241,.05),rgba(6,182,212,.04),rgba(34,197,94,.03));border:1px solid rgba(99,102,241,.15);border-radius:14px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:viewSlideIn .35s ease both}.insight-fun-fact{display:flex;align-items:center;gap:6px;font-size:var(--text-base);color:var(--text-secondary);padding:6px 12px;background:rgba(255,255,255,.7);border-radius:20px;border:1px solid rgba(99,102,241,.08);transition:all .2s}.insight-fun-fact:hover{background:rgba(99,102,241,.06);border-color:rgba(99,102,241,.2);transform:scale(1.02)}.insight-fun-fact strong{color:var(--text);font-weight:700}.insight-chart-note{font-size:var(--text-sm);color:var(--text-secondary);margin-top:12px;text-align:center}.insight-chart-note a{color:#6366f1;font-weight:600;text-decoration:none}.insight-bar-chart{display:flex;align-items:flex-end;gap:10px;height:130px;padding:10px 4px 0;border-bottom:1px solid var(--border-light)}.insight-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.insight-bar{width:100%;min-height:4px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#6366f1,#4f46e5);transition:height .4s ease;position:relative}.insight-bar::after,.insight-hbar-fill::after{content:"";position:absolute;top:0;left:0;right:0;height:50%}.insight-bar::after{background:linear-gradient(180deg,rgba(255,255,255,.15),transparent);border-radius:6px 6px 0 0}.insight-bar-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:6px;font-weight:600}.insight-hbar-chart{display:flex;flex-direction:column;gap:10px}.insight-hbar-row{display:flex;align-items:center;gap:10px}.insight-hbar-name{width:90px;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-weight:500}.insight-hbar-track{flex:1;height:22px;background:var(--bg-secondary);border-radius:11px;overflow:hidden;position:relative;box-shadow:inset 0 1px 3px rgba(0,0,0,.06)}.insight-hbar-fill{height:100%;border-radius:11px;background:linear-gradient(90deg,#3b82f6,#60a5fa);position:relative;box-shadow:0 1px 3px rgba(59,130,246,.2)}.insight-hbar-fill::after{background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);border-radius:11px 11px 0 0}.insight-hbar-fill-alt{background:linear-gradient(90deg,#6366f1,#818cf8);box-shadow:0 1px 3px rgba(99,102,241,.2)}.insight-hbar-fill-warm{background:linear-gradient(90deg,#f59e0b,#fbbf24);box-shadow:0 1px 3px rgba(245,158,11,.2)}.insight-hbar-val{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);white-space:nowrap;min-width:40px}.insight-donut-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.insight-donut-svg-wrap{position:relative;width:140px;height:140px;flex-shrink:0}.insight-donut-svg{width:100%;height:100%;transform:rotate(0deg);filter:drop-shadow(0 4px 12px rgba(0,0,0,.08))}.donut-segment{transition:stroke-dasharray .6s ease,stroke-dashoffset .6s ease}.insight-donut-svg-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.donut-center-num{font-size:var(--text-3xl);font-weight:800;line-height:1;color:var(--text, #1a1a1a)}.donut-center-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #888);margin-top:2px}.insight-donut-legend{display:flex;flex-direction:column;gap:10px;flex:1;min-width:140px}.insight-legend-item{display:flex;align-items:center;gap:8px;font-size:var(--text-base);font-weight:500}.insight-legend-item strong{min-width:20px;text-align:right}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-label{white-space:nowrap;color:var(--text-secondary, #555);min-width:80px}.legend-bar-wrap{flex:1;height:6px;border-radius:3px;background:var(--bg-hover, #f3f4f6);overflow:hidden;min-width:40px}.legend-bar{height:100%;border-radius:3px;transition:width .5s ease}.insight-hbar-fill-store{background:linear-gradient(90deg,#059669,#34d399);box-shadow:0 1px 3px rgba(5,150,105,.2)}.insight-macro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.insight-macro-card{text-align:center;padding:16px 8px;border-radius:14px;background:linear-gradient(135deg,var(--bg-surface),var(--bg-card));border:1px solid var(--border);transition:all .3s;position:relative;overflow:hidden}.insight-macro-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#6366f1,#06b6d4);opacity:0;transition:opacity .3s}.insight-macro-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(99,102,241,.1)}.insight-macro-val{font-size:var(--text-2xl);font-weight:800;background:linear-gradient(135deg,#6366f1,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.insight-macro-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.insight-macro-target{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--text-secondary);padding:8px 10px;background:rgba(99,102,241,.04);border-radius:8px;margin-top:8px;border:1px solid rgba(99,102,241,.08)}.insight-food-split{margin:10px 0}.insight-food-bar{display:flex;height:28px;border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.08),inset 0 1px 2px rgba(0,0,0,.05)}.insight-food-fill.food{background:linear-gradient(90deg,#059669,#22c55e);transition:width .4s ease;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}.insight-food-fill.nonfood{background:linear-gradient(90deg,#64748b,#94a3b8);transition:width .4s ease}.insight-food-legend{display:flex;flex-direction:column;gap:6px;margin-top:12px}.insight-food-label{font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;gap:6px;font-weight:500}.insight-food-label strong,.insight-legend-item strong{color:var(--text);font-weight:700}.category-food-grid{display:flex;flex-direction:column;gap:6px;margin-top:8px}.category-food-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-surface)}.category-food-info{flex:1;font-size:var(--text-md);font-weight:500}.category-food-tag{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-lg);white-space:nowrap}.category-food-tag.food{background:rgba(34,197,94,.12);color:#16a34a}.category-food-tag.nonfood{background:rgba(148,163,184,.15);color:#64748b}html.dark .category-food-row{background:var(--bg-hover)}.cm-sub-tooltip-header strong,html.dark .category-food-tag.food{color:#4ade80}html.dark .category-food-tag.nonfood{color:#94a3b8}@media (max-width:600px){.insights-stats-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.insight-stat-card{padding:14px 6px;border-radius:12px;flex:0 1 calc(33.333% - 6px);min-width:0}.insight-stat-num{font-size:var(--text-xl)}.insights-panels{grid-template-columns:1fr}.insight-panel{border-radius:12px;padding:18px 16px}.insight-hbar-name{width:70px}.insight-donut-row{justify-content:center}.insight-macro-grid{grid-template-columns:repeat(2,1fr)}.insight-fun-facts{padding:12px 14px}}.share-range-row{display:flex;gap:10px}.share-range-row input[type=date]{font-size:var(--text-base);padding:8px 10px}.share-options{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius)}.share-toggle{display:flex;align-items:center;gap:8px;font-size:var(--text-base);color:var(--text-secondary);cursor:pointer}.share-toggle input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}@media (max-width:480px){.share-range-row{flex-direction:column}}.discover-rating-display{font-size:var(--text-sm);color:var(--text-secondary);display:inline-flex;align-items:center;gap:2px}.star-display{color:var(--gold);letter-spacing:1px}.rating-text{font-size:var(--text-sm);color:var(--text-muted)}.discover-preview-social{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);margin:12px 0}.discover-star-picker{display:flex;align-items:center;gap:2px}.star-pick{font-size:var(--text-2xl);cursor:pointer;color:var(--gold);transition:transform .1s}.star-pick:hover{transform:scale(1.2)}.star-picker-label{font-size:var(--text-sm);color:var(--text-muted);margin-left:6px}.btn-made-it{transition:all .15s}.btn-made-it.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}.discover-comments-section{margin-top:16px}.discover-comments-list{max-height:300px;overflow-y:auto;margin-bottom:12px}.discover-comment{padding:10px 12px;border-radius:var(--radius);background:var(--bg);margin-bottom:8px}.discover-reply{margin-left:24px;margin-top:6px;background:var(--bg-hover)}.discover-comment-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.discover-comment-avatar{font-size:var(--text-lg)}.discover-comment-author{font-weight:600;font-size:var(--text-base)}.discover-comment-date{font-size:var(--text-sm);color:var(--text-muted);margin-left:auto}.discover-comment-text{font-size:var(--text-base);line-height:1.4;color:var(--text)}.discover-comment-actions{display:flex;gap:8px;margin-top:4px}.discover-comment-actions .btn-xs{font-size:var(--text-sm);opacity:.6;cursor:pointer;background:0 0;border:0;color:var(--text-secondary)}.discover-comment-form{display:flex;gap:8px;align-items:flex-start}.discover-comment-input{flex:1;resize:none;font-size:var(--text-base)}.discover-no-comments{font-size:var(--text-base);color:var(--text-muted);font-style:italic;padding:8px 0}.inline-reply-form{margin-top:6px}.recipe-pantry-badge,.recipe-source-badge{font-size:var(--text-sm);padding:2px 8px;border-radius:var(--radius-full);display:inline-block;margin-bottom:4px}.recipe-source-badge{color:var(--primary);background:var(--primary-light);cursor:pointer}.recipe-pantry-badge{color:#2d6a4f;background:#d8f3dc;font-weight:600}.recipe-pantry-badge.full-match{color:#1b5e20;background:#a5d6a7}.chip-instock{background:#d8f3dc!important;color:#2d6a4f!important}html.dark .recipe-pantry-badge{background:rgba(45,106,79,.2);color:#6fcf97}html.dark .recipe-pantry-badge.full-match{background:rgba(45,106,79,.3);color:#4ade80}html.dark .chip-instock{background:rgba(45,106,79,.2)!important;color:#6fcf97!important}.recipe-pantry-pill{border-color:#2d6a4f!important}.recipe-pantry-pill.active{background:#2d6a4f!important;color:#fff!important}.language-selector{display:flex;gap:8px;flex-wrap:wrap}.lang-option{padding:8px 14px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;font-size:var(--text-base);transition:all .15s}.lang-option:hover{border-color:var(--primary-light)}.lang-option.active{border-color:var(--primary);background:var(--primary-light);font-weight:600}.recipe-card-new{position:relative;overflow:hidden;border-color:var(--primary);box-shadow:0 0 8px rgba(var(--primary-rgb, 79, 70, 229),.25)}.recipe-card-new::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb, 79, 70, 229),.08),transparent);animation:shimmer-new 2.5s ease-in-out infinite;pointer-events:none;z-index:1}.new-badge{font-size:var(--text-sm);font-weight:600;color:var(--primary);margin-left:6px;animation:pulse-new 1.5s ease-in-out 3}.import-review-banner{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;margin:-4px -4px 16px;background:linear-gradient(135deg,rgb(var(--primary-rgb)/.06),rgb(var(--primary-rgb)/.02));border:1.5px solid rgb(var(--primary-rgb)/.2);border-radius:var(--radius-lg)}.import-review-thumb{width:72px;height:72px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;border:1px solid var(--border)}.import-review-info{display:flex;flex-direction:column;gap:3px;min-width:0}.import-review-recipe-name{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3}.import-review-source{font-size:var(--text-sm);color:var(--primary);text-decoration:none;font-weight:500}.import-review-source:hover{text-decoration:underline}.import-review-hint,.import-review-meta{font-size:var(--text-xs);color:var(--text-muted)}.import-review-meta{font-weight:500}.import-review-hint{font-style:italic;margin-top:2px}.import-review-mode .ingredient-row{background:var(--bg-hover);border-radius:var(--radius);padding:4px 6px;margin-bottom:4px;transition:background .15s}.import-review-mode .ingredient-row:hover{background:rgb(var(--primary-rgb)/.06)}.import-review-mode .ingredient-row .ing-name{font-weight:500}.import-review-mode .btn-remove-ing{opacity:.4;transition:opacity .15s}@media (max-width:600px){.import-review-banner{flex-direction:column;gap:10px;padding:12px}.import-review-thumb{width:100%;height:120px;border-radius:var(--radius)}}.cooking-mode-overlay{position:fixed;inset:0;z-index:var(--z-fullscreen);background:#1a1a2e;color:#eef0f2;display:flex;flex-direction:column;animation:cm-fade-in .2s ease}.cooking-mode-container{display:flex;flex-direction:column;height:100%;max-width:700px;margin:0 auto;width:100%}.cooking-mode-header{padding:16px 20px 12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.1);position:relative}.cooking-mode-close{position:absolute;top:12px;right:16px;background:0 0;border:0;color:#eef0f2;font-size:var(--text-2xl);cursor:pointer;opacity:.7;transition:opacity .15s}.cooking-mode-close:hover{opacity:1}.cooking-mode-title{font-size:var(--text-xl);font-weight:700;margin:0;color:#fff}.cooking-mode-meta{font-size:var(--text-sm);color:rgba(255,255,255,.5);margin-top:4px}.cooking-mode-body{overflow-y:auto;padding:20px;gap:24px}.cooking-mode-body,.cooking-mode-step-display,.cooking-mode-steps{flex:1;display:flex;flex-direction:column}.cooking-mode-step-display{justify-content:center;align-items:center;text-align:center;padding:20px;min-height:200px}.cooking-mode-step-counter{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.4);margin-bottom:12px}.cooking-mode-step-text{font-size:var(--text-xl);line-height:1.6;font-weight:400;color:#fff;max-width:560px}.cooking-mode-step-timers{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.cm-start-timer{background:rgba(217,119,6,.2);border:1px solid var(--meal-breakfast);color:var(--meal-breakfast);padding:6px 14px;border-radius:20px;font-size:var(--text-sm);cursor:pointer;transition:all .15s}.cm-start-timer:hover{background:rgba(217,119,6,.35)}.cooking-mode-step-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:12px}.cm-nav-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#eef0f2;padding:10px 20px;border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:all .15s;min-width:100px}.cm-nav-btn:hover:not(:disabled){background:rgba(255,255,255,.2)}.cm-nav-btn:disabled{opacity:.3;cursor:not-allowed}.cooking-mode-step-dots{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}.cm-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2);cursor:pointer;transition:all .15s}.cm-dot.active{background:var(--gold);transform:scale(1.3)}.cm-dot:hover{background:rgba(255,255,255,.5)}.cooking-mode-no-steps{text-align:center;padding:40px 20px;color:rgba(255,255,255,.6);font-size:var(--text-lg)}.cooking-mode-ingredients{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.cooking-mode-section-title{font-size:var(--text-md);font-weight:600;color:rgba(255,255,255,.7);margin-bottom:10px}.cooking-mode-ing-list{display:flex;flex-direction:column;gap:4px}.cm-ing-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s}.cm-ing-item:hover{background:rgba(255,255,255,.05)}.cm-ing-item.checked .cm-ing-text{text-decoration:line-through;opacity:.4}.cm-ing-check{width:18px;height:18px;accent-color:#34a06d;cursor:pointer;transition:width .15s,height .15s}.cm-ing-text{font-size:inherit;color:#eef0f2}.cm-ing-row,.cm-sub-btn{display:flex;align-items:center}.cm-ing-row{position:relative;gap:4px}.cm-sub-btn{flex-shrink:0;width:28px;height:28px;border:0;background:rgba(255,255,255,.08);border-radius:50%;cursor:pointer;font-size:.85rem;line-height:1;justify-content:center;transition:background .15s,transform .15s,width .15s,height .15s;opacity:.6}.cm-sub-btn:hover{background:rgba(255,255,255,.18);opacity:1;transform:scale(1.1)}.cm-sub-tooltip{position:absolute;right:0;top:100%;z-index:10;background:#252a36;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 14px;margin-top:4px;min-width:220px;max-width:300px;box-shadow:0 8px 24px rgba(0,0,0,.4);animation:cm-tip-in .15s ease}.cm-sub-tooltip-header{font-size:.8rem;color:rgba(255,255,255,.5);margin-bottom:8px}.cm-sub-option{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}.cm-sub-option:last-child{border-bottom:none}.cm-sub-name{font-weight:600;color:#eef0f2;font-size:.9rem}.cm-sub-note{display:block;font-size:.75rem;color:rgba(255,255,255,.45);margin-top:2px}.cooking-mode-timers-section{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.cooking-mode-timer-list{display:flex;flex-direction:column;gap:6px}.cm-timer-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);background:rgba(217,119,6,.1);border:1px solid rgba(217,119,6,.3)}.cm-timer-item.done{background:rgba(22,163,106,.15);border-color:rgba(22,163,106,.4)}.cm-timer-display{font-size:var(--text-xl);font-weight:700;color:var(--gold)}.cm-timer-item.done .cm-timer-display{color:#34a06d}.cm-timer-cancel{background:0 0;border:0;color:rgba(255,255,255,.4);font-size:var(--text-lg);cursor:pointer}.cm-timer-cancel:hover{color:#ff6b6b}.cooking-mode-footer{display:flex;gap:8px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2)}.cm-footer-btn{flex:1;padding:10px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);color:#eef0f2;font-size:var(--text-sm);cursor:pointer;transition:all .15s;text-align:center}.cm-footer-btn:hover{background:rgba(255,255,255,.12)}.cm-footer-btn.active{border-color:#34a06d;background:rgba(52,160,109,.15);color:#34a06d}.cm-done-btn{border-color:rgba(22,163,106,.5);color:#34a06d;font-weight:600}.cm-done-btn:hover{background:rgba(22,163,106,.2)}.cm-timer-dialog{position:fixed;inset:0;z-index:var(--z-top);display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);padding:20px}.cm-timer-dialog-inner{background:#1e2530;border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:24px;width:100%;max-width:340px;text-align:center}.cm-timer-dialog-inner h4{color:#fff;font-size:var(--text-lg);margin:0 0 16px;font-weight:600}.cm-timer-inputs{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:16px}.cm-timer-input-group{display:flex;flex-direction:column;align-items:center;gap:4px}.cm-timer-input-group label{font-size:var(--text-xs);color:rgba(255,255,255,.5);text-transform:uppercase}.cm-timer-input{width:56px;height:48px;text-align:center;font-size:var(--text-xl);font-weight:700;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:#fff;-moz-appearance:textfield}.cm-timer-input::-webkit-inner-spin-button,.cm-timer-input::-webkit-outer-spin-button{-webkit-appearance:none}.cm-timer-colon{font-size:var(--text-xl);font-weight:700;color:rgba(255,255,255,.4);padding:0 2px}.cm-timer-presets{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:18px}.cm-preset-btn{padding:6px 12px;border-radius:20px;font-size:var(--text-sm);font-weight:500;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.8);cursor:pointer}.cm-preset-btn:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}.cm-timer-dialog-actions{display:flex;gap:10px;justify-content:center}.cm-timer-cancel-btn,.cm-timer-start-btn{border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer}.cm-timer-cancel-btn{padding:10px 20px;background:0 0;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7)}.cm-timer-cancel-btn:hover{background:rgba(255,255,255,.05)}.cm-timer-start-btn{padding:10px 24px;font-weight:600;background:#34a06d;border:0;color:#fff}.cm-timer-start-btn:hover{background:#2b8a5c}@media (max-width:480px){.cooking-mode-step-text{font-size:var(--text-lg)}.cm-nav-btn{padding:8px 12px;font-size:var(--text-sm);min-width:80px}.cooking-mode-body{padding:14px}.cooking-mode-footer{flex-wrap:wrap;gap:6px}.cm-footer-btn{font-size:var(--text-xs);padding:6px 8px}}.cooking-mode-temp-banner{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}.cm-temp-badge{background:linear-gradient(135deg,#ff6b35,#f44);color:#fff;font-weight:700;font-size:var(--text-md);padding:4px 12px;border-radius:20px;box-shadow:0 2px 8px rgba(255,107,53,.3)}.cm-temp-highlight{color:#ff6b35;font-weight:700;background:rgba(255,107,53,.1);padding:1px 4px;border-radius:4px}.cm-mise-screen{padding:24px 20px}.cm-mise-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);color:#eef0f2;font-size:var(--text-md);cursor:pointer;transition:background .15s}.cm-mise-item:hover{background:rgba(255,255,255,.05)}.cm-mise-check{width:20px;height:20px;accent-color:var(--primary);cursor:pointer}.cm-mise-item.checked{opacity:.4;text-decoration:line-through}.cm-mise-ready-btn{width:100%;margin-top:20px;padding:14px;border-radius:var(--radius-md);border:0;background:var(--primary);color:#fff;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .15s}.cm-mise-ready-btn:hover{background:var(--primary-hover)}.cm-mise-ready-btn:disabled{opacity:.4;cursor:not-allowed}.cm-steps-screen{padding:24px 20px}.cm-ing-highlight{color:#4ade80;font-weight:600;background:rgba(74,222,128,.1);padding:1px 4px;border-radius:4px;cursor:pointer}.cm-ing-highlight:hover{background:rgba(74,222,128,.2)}.cm-ing-used{opacity:.4;text-decoration:line-through}.cm-preheat-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:16px;background:rgba(255,107,53,.15);border:1px solid rgba(255,107,53,.3);border-radius:var(--radius-md);font-size:var(--text-sm);color:#ff6b35;font-weight:500}.cook-modal-temps{margin-top:8px}.cook-temp-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.cook-temp-badge{background:linear-gradient(135deg,#ff6b35,#f44);color:#fff;font-weight:700;font-size:var(--text-md);padding:4px 12px;border-radius:16px;box-shadow:0 2px 6px rgba(255,107,53,.25)}@media (max-width:768px) and (orientation:landscape){.app-content{height:100dvh;padding-bottom:calc(56px + env(safe-area-inset-bottom,0));overflow-y:auto}.sidebar{padding-bottom:env(safe-area-inset-bottom,0);overflow-y:auto}.sidebar-links{overflow-y:auto;flex:1;min-height:0}.sidebar-link{padding:4px 2px 2px;min-height:auto}.sidebar-icon{font-size:1.1rem}.sidebar-label{font-size:.55rem}.mobile-home-bar{min-height:40px;padding:4px 16px;padding-top:calc(env(safe-area-inset-top,0) + 4px)}.modal{max-height:88dvh}.planner-week-grid{grid-template-columns:repeat(3,1fr)!important;gap:6px}.planner-day{padding:8px 10px}.planner-day-date{font-size:.9rem}.page-container{padding:8px 16px 20px}#toast-container,.fab,.undo-toast{bottom:calc(60px + env(safe-area-inset-bottom,0))}.stats-row{grid-template-columns:repeat(4,1fr)}}@media (max-height:500px) and (orientation:landscape){.sidebar{overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar-links{overflow-y:auto;flex:1;min-height:0}.app-content{overflow-y:auto;height:100dvh;-webkit-overflow-scrolling:touch}}@media (max-width:768px){.modal-overlay{transition:padding .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{scroll-margin-bottom:120px}.scale-input{width:70px;min-width:70px}.planner-drawer-item{padding:12px 14px;min-height:44px}.planner-drawer-search{min-height:44px;padding:10px 14px;font-size:.88rem}.info-tip-content{border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-xl)}.info-tip-content h5{margin:0 0 8px}.info-tip-content ul{margin:0;padding-left:16px}.planner-drawer-item[draggable],.planner-meal[draggable]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.planner-meal[draggable]:active{background:var(--primary-light);transition:background .3s}.planner-drawer-item.touch-selected{border-color:var(--primary)!important;background:var(--primary-light);box-shadow:0 0 0 2px var(--primary)}}.planner-drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:var(--z-drawer);opacity:0;transition:opacity .3s}.planner-drawer-backdrop.show{display:block;opacity:1}@media (min-width:769px){.planner-drawer-backdrop{pointer-events:none!important;background:0 0!important;opacity:0!important}}@media (max-width:360px){.item-card{padding:8px 10px;gap:4px}.ic-controls{flex-wrap:wrap;justify-content:flex-end}.qty-step{font-size:.8rem}.ic-action,.qty-step{width:30px;height:30px;min-width:30px;min-height:30px}.ic-action.delete-btn{width:28px;height:28px;min-width:28px;min-height:28px}.ic-name{font-size:.82rem}.ic-qty-badge{font-size:.7rem;padding:1px 6px}.page-container{padding:8px 10px 22px}.page-title{font-size:1rem}.modal form,.modal-body,.settings-body{padding:12px 12px 18px}.form-group input,.form-group select,.form-group textarea{padding:10px;font-size:.86rem}.planner-day{padding:10px 12px}.planner-meal{padding:8px 10px}.shop-item{padding:6px 8px;gap:4px}.shop-item-name{font-size:.8rem}.shop-qty-input{width:40px;font-size:.8rem}.filter-pill,.member-pill,.store-pill{padding:5px 8px;font-size:.68rem;min-height:28px}.btn-outline,.btn-primary{padding:8px 10px;font-size:.8rem}}@media (max-width:768px){html.browser-mode body{min-height:100dvh}html.browser-mode .app-content{height:100dvh;height:calc(var(--app-vh, 1dvh)*100);padding-bottom:calc(88px + env(safe-area-inset-bottom,0))}html.browser-mode .sidebar{padding-bottom:calc(env(safe-area-inset-bottom,0) + 6px)}html.browser-mode .fab-group{bottom:calc(82px + env(safe-area-inset-bottom,0))}html.browser-mode #toast-container,html.browser-mode .shop-checkout-bar,html.browser-mode .undo-toast{bottom:calc(88px + env(safe-area-inset-bottom,0))}html.browser-mode .mobile-more-menu{bottom:calc(72px + env(safe-area-inset-bottom,0))}html.browser-mode,html.browser-mode body{overscroll-behavior-y:none}html.browser-mode .filter-pill,html.browser-mode .item-card,html.browser-mode .recipe-card,html.browser-mode .sidebar-link,html.browser-mode .tab,html.browser-mode button,html.browser-mode input,html.browser-mode select,html.browser-mode textarea{touch-action:manipulation}html.browser-mode .modal-overlay{padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}html.browser-mode .modal{max-height:85svh}}@media (max-width:768px) and (orientation:landscape){html.browser-mode .app-content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0))}html.browser-mode .modal{max-height:80dvh}}.notif-panel{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100vw;background:var(--bg-card);border-left:1px solid var(--border);box-shadow:-4px 0 24px rgba(0,0,0,.1);z-index:var(--z-overlay);display:flex;flex-direction:column;transition:transform 250ms ease}.notif-panel,.notif-panel[style*="display: none"]{transform:translateX(100%)}.notif-panel-sidebar:not([style*="display: none"]),.notif-panel:not([style*="display: none"]){transform:translateX(0)}.notif-panel-sidebar{left:var(--sidebar-w);right:auto;border-left:none;border-right:1px solid var(--border);box-shadow:4px 0 24px rgba(0,0,0,.1);transform:translateX(-100%)}.notif-panel-header{padding:16px 20px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.notif-tabs{display:flex;gap:0}.notif-clear-btn,.notif-close-btn,.notif-tab{color:var(--text-muted);background:0 0;border:0;cursor:pointer;transition:all .15s;min-height:44px}.notif-tab{padding:10px 16px;font-size:var(--text-base);font-weight:500;border-bottom:2px solid transparent}.notif-tab:hover{color:var(--text)}.notif-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.notif-clear-btn,.notif-close-btn{border-radius:var(--radius);display:flex;align-items:center}.notif-clear-btn{font-size:var(--text-sm);padding:6px 10px}.notif-clear-btn:hover{background:var(--bg-hover);color:var(--danger)}.notif-close-btn{font-size:1.4rem;padding:4px 8px;min-width:44px;justify-content:center;line-height:1}.notif-close-btn:hover{color:var(--text)}.notif-panel-body{flex:1;overflow-y:auto;padding:8px 0}.notif-item{border-bottom:1px solid var(--border-light)}.notif-close-btn:hover,.notif-item:hover{background:var(--bg-hover)}.notif-item.unread{background:var(--primary-light)}.notif-item.unread:hover{background:rgb(var(--primary-rgb)/.12)}.notif-item-icon{font-size:var(--text-lg);flex-shrink:0;width:28px;text-align:center}.notif-item-content{flex:1;min-width:0}.notif-item-msg{font-size:var(--text-base);line-height:1.4}.notif-item-time{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.notif-empty{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:var(--text-base)}.notif-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.desktop-notif-badge{top:6px;right:6px}.desktop-notif-fab{display:none;position:fixed;bottom:80px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--primary);color:#fff;font-size:1.2rem;border:0;cursor:pointer;box-shadow:var(--shadow-lg);z-index:var(--z-popover);transition:all .15s}.desktop-notif-fab:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.desktop-fab-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}html.dark .notif-panel{background:var(--bg-card);border-color:var(--border);box-shadow:-4px 0 24px rgba(0,0,0,.4)}html.dark .notif-item.unread{background:rgba(43,122,91,.1)}html.dark .gs-item.selected,html.dark .notif-item.unread:hover{background:rgba(43,122,91,.15)}@media (max-width:768px){.notif-panel{width:100vw;border-left:none}.notif-panel-sidebar{left:0}}.gs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);z-index:var(--z-top);display:flex;align-items:flex-start;justify-content:center;padding:min(12vh,120px) 16px 16px;opacity:0;transition:opacity 150ms ease}.gs-overlay.open{opacity:1}.gs-modal{width:100%;max-width:580px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:min(480px,70vh);transform:translateY(-8px);transition:transform 150ms ease}.gs-overlay.open .gs-modal{transform:translateY(0)}.gs-input-wrap{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.gs-search-icon{font-size:var(--text-lg);flex-shrink:0;opacity:.5}.gs-input{flex:1;border:0;outline:0;background:0 0;font-size:var(--text-lg);color:var(--text);font-family:inherit;min-height:32px}.gs-input::placeholder{color:var(--text-muted)}.gs-kbd,.gs-mic-btn{color:var(--text-muted);flex-shrink:0}.gs-mic-btn{width:32px;height:32px;border-radius:50%;border:0;background:0 0;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}.gs-mic-btn:hover{background:var(--bg-hover);transform:scale(1.1)}.gs-mic-btn.gs-mic-active{background:var(--danger-bg);color:var(--danger);animation:gsMicPulse 1.2s ease infinite}.gs-kbd{font-size:.65rem;padding:3px 7px;border-radius:4px;background:var(--bg-hover);border:1px solid var(--border);font-family:inherit}.gs-results{flex:1;overflow-y:auto;padding:8px 0}.gs-group{margin-bottom:4px}.gs-group-header{padding:6px 16px;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.gs-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .1s;border-radius:0}.gs-footer kbd,.gs-item.selected,.gs-item:hover,html.dark .gs-item:hover{background:var(--bg-hover)}.gs-item.selected{background:var(--primary-light)}.gs-item-icon{font-size:var(--text-lg);width:24px;text-align:center;flex-shrink:0}.gs-item-label{font-size:var(--text-base);color:var(--text);font-weight:500}.gs-empty,.gs-item-desc{font-size:var(--text-sm);color:var(--text-muted)}.gs-empty{padding:32px 16px;text-align:center;font-size:var(--text-base)}.gs-clear-recent,.gs-footer,.gs-recent-remove{font-size:var(--text-xs);color:var(--text-muted)}.gs-footer{display:flex;align-items:center;gap:16px;padding:8px 16px;border-top:1px solid var(--border)}.gs-footer kbd{font-size:.6rem;padding:2px 5px;border-radius:3px;border:1px solid var(--border);font-family:inherit}.gs-clear-recent,.gs-recent-remove{background:0 0;border:0;cursor:pointer;padding:4px 8px;border-radius:var(--radius);margin-left:auto}.gs-clear-recent:hover{color:var(--danger);background:var(--bg-hover)}.gs-recent-remove{opacity:0;font-size:var(--text-sm);padding:4px;transition:opacity .1s}.gs-item:hover .gs-recent-remove{opacity:1}.gs-recent-remove:hover{color:var(--danger)}html.dark .gs-overlay{background:rgba(0,0,0,.7)}html.dark .gs-modal{background:var(--bg-card);box-shadow:0 16px 48px rgba(0,0,0,.5)}html.dark .gs-input-wrap,html.dark .gs-modal{border-color:var(--border)}html.dark .gs-input{color:var(--text)}html.dark .gs-footer kbd,html.dark .gs-kbd{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.4)}html.dark .gs-footer{border-color:var(--border);background:var(--bg-card);color:rgba(255,255,255,.4)}html.dark .gs-footer kbd{color:rgba(255,255,255,.5)}@media (max-width:768px){.gs-overlay{padding:8px;align-items:flex-start;padding-top:env(safe-area-inset-top,8px)}.gs-modal{max-height:calc(100vh - 16px);max-width:100%}.gs-input{font-size:max(16px,var(--text-lg))}.gs-footer,.gs-kbd{display:none}}.expiring-banner{background:linear-gradient(135deg,#fff8e1,#fff3cd);border:1px solid #f0d060;border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px}.expiring-banner-content{display:flex;align-items:flex-start;gap:12px}.expiring-banner-icon{font-size:1.5rem;flex-shrink:0;line-height:1}.expiring-banner-text{flex:1;font-size:var(--text-sm);color:#5d4e00;line-height:1.6}.expiring-banner-text strong{color:#92400e;font-weight:700}.expiring-banner-recipes{margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.expiring-recipe-btn{padding:6px 14px;background:var(--primary);color:#fff;border:0;border-radius:var(--radius-full,100px);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.expiring-recipe-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.env-badge{margin-left:6px;padding:2px 8px;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-radius:4px;background:#f59e0b;color:#1a1a2e;vertical-align:middle}.env-badge,.gs-fab{display:none}.skip-link{position:absolute;top:-100px;left:0;background:var(--primary);color:#fff;padding:8px 16px;z-index:var(--z-top);font-size:.9rem;border-radius:0 0 var(--radius-md)0;transition:top .2s}.skip-link:focus{top:0}.seasonal-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;overflow:hidden;animation:viewFadeIn .3s ease}.seasonal-dismiss{position:absolute;top:8px;right:8px;background:0 0;border:0;font-size:1.2rem;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-md);line-height:1}.seasonal-dismiss:hover{background:var(--bg-hover);color:var(--text)}.seasonal-badge{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:var(--radius-full,100px);background:var(--primary-light);color:var(--primary);margin-bottom:8px}.seasonal-body{display:flex;align-items:flex-start;gap:12px}.seasonal-emoji{font-size:2rem;flex-shrink:0}.seasonal-text{flex:1;min-width:0}.seasonal-name{font-size:var(--text-base);font-weight:600;color:var(--text);margin-bottom:4px}.seasonal-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0}.seasonal-add{margin-top:10px}.tonight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px}.tonight-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--border);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.tonight-header-icon{font-size:1.1rem}.tonight-header-label{flex:1}.tonight-body{padding:16px}.tonight-meal-name{font-size:var(--text-lg);font-weight:700;color:var(--text);margin-bottom:6px}.tonight-meta{gap:12px;font-size:var(--text-sm);color:var(--text-muted)}.tonight-fallback{text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.tonight-fallback-icon{font-size:2rem;margin-bottom:8px}.tonight-pantry-picks{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:12px}.tonight-pick{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.tonight-pick:hover{border-color:var(--primary);background:var(--primary-light)}.tonight-missing{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px}.streak-fire{font-size:1.1rem}.streak-count{font-size:var(--text-sm);font-weight:600;color:var(--text)}.ch-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ch-refresh{background:0 0;border:0;font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:var(--radius-md);transition:background .15s}.ch-refresh:hover{background:var(--bg-hover)}.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px}.ch-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;transition:box-shadow .15s}.ch-card:hover{box-shadow:var(--shadow-md)}.ch-card.ch-done{border-color:var(--primary);background:var(--primary-light)}.ch-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.ch-icon{font-size:1.3rem}.ch-title{font-size:var(--text-sm);font-weight:600;color:var(--text);flex:1}.ch-check{font-size:1rem}.ch-bar-wrap{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:6px}.ch-bar{height:100%;background:var(--primary);border-radius:3px;transition:width .4s ease}.ch-progress{font-size:var(--text-xs);color:var(--text-muted);text-align:right}.cqa-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s;position:relative}.cqa-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-light)}.cqa-icon{font-size:1.5rem;flex-shrink:0}.cqa-text{flex:1;font-size:var(--text-sm);color:var(--text);font-weight:500}.cqa-btn{flex-shrink:0}.cqa-dismiss{position:absolute;top:4px;right:4px;background:0 0;border:0;font-size:.9rem;color:var(--text-muted);cursor:pointer;padding:4px;line-height:1;border-radius:var(--radius-md)}.cqa-dismiss:hover{color:var(--text);background:var(--bg-hover)}.ach-unlock-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal,9000);animation:viewFadeIn .3s ease;backdrop-filter:blur(4px)}.ach-unlock-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px;text-align:center;max-width:360px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:achievePop .4s cubic-bezier(.34,1.56,.64,1)}.ach-unlock-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:700;margin-bottom:12px}.ach-unlock-icon{font-size:3rem;display:block;margin-bottom:8px}.ach-unlock-name{font-size:var(--text-lg);font-weight:700;color:var(--text);margin-bottom:4px}.ach-unlock-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.ach-unlock-tier{display:inline-block;padding:4px 12px;border-radius:var(--radius-full,100px);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}.tier-bronze .ach-unlock-tier{background:#f3e8d0;color:#92400e}.ach-unlock-tier.tier-bronze{background:#f3e8d0}.tier-silver .ach-unlock-tier{background:#e8ecf0;color:#475569}.ach-unlock-tier.tier-silver{background:#e8ecf0}.tier-gold .ach-unlock-tier{background:#fef3c7;color:#92400e}.ach-unlock-tier.tier-gold{background:#fef3c7}.ach-unlock-tier.tier-diamond,.tier-diamond .ach-unlock-tier{background:#dbeafe;color:#1e40af}.ach-unlock-progress{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:6px}.ach-unlock-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .6s ease}.ach-unlock-progress-text{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:16px}.ach-unlock-actions{display:flex;gap:8px;justify-content:center}.ach-unlock-close,.ach-unlock-share{border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.ach-unlock-share{padding:8px 16px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.ach-unlock-share:hover{background:var(--bg-hover)}.ach-unlock-close{padding:8px 20px;border:0;background:var(--primary);color:#fff;font-weight:600}.ach-unlock-close:hover{background:var(--primary-hover)}.pwa-install-prompt{position:fixed;bottom:env(safe-area-inset-bottom,0);left:0;right:0;background:#1b2332;color:#fff;padding:20px;z-index:var(--z-modal,9000);border-radius:var(--radius-lg) var(--radius-lg)0 0;box-shadow:0-4px 30px rgba(0,0,0,.3);animation:bannerSlideUp .3s ease}.pip-close{position:absolute;top:12px;right:12px;background:0 0;border:0;color:rgba(255,255,255,.5);font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1}.pip-close:hover{color:#fff}.pip-header{display:flex;align-items:center;gap:14px;margin-bottom:14px}.pip-icon{font-size:2.2rem}.pip-title{font-size:1.05rem;font-weight:700}.pip-subtitle{font-size:.8rem;color:rgba(255,255,255,.6);margin-top:2px}.pip-features{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.pip-feature{padding:4px 10px;background:rgba(255,255,255,.08);border-radius:var(--radius-full,100px);font-size:.75rem;color:rgba(255,255,255,.8)}.pip-actions{display:flex;gap:10px;justify-content:flex-end}.pip-install,.pip-later{border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.pip-later{padding:10px 18px;background:0 0;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7)}.pip-later:hover{border-color:rgba(255,255,255,.4);color:#fff}.pip-install{padding:10px 24px;background:var(--primary);border:0;color:#fff;font-weight:600}.pip-install:hover{background:var(--primary-hover)}.ai-thinking-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal,9000);backdrop-filter:blur(4px)}.ai-thinking-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px 40px;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.3)}.ai-thinking-brain{font-size:3rem;margin-bottom:16px;animation:aiBrain 1.5s ease-in-out infinite}.ai-thinking-steps{display:flex;flex-direction:column;gap:8px;text-align:left;margin-bottom:16px}.ai-think-step{font-size:var(--text-sm);color:var(--text-muted);padding:6px 10px;border-radius:var(--radius-md);transition:all .3s ease;opacity:.4}.ai-think-step.active{color:var(--text);background:var(--primary-light);opacity:1;font-weight:500}.ai-thinking-dots{font-size:1.5rem;color:var(--text-muted);letter-spacing:4px}.ai-thinking-dots span{animation:dotPulse 1.4s infinite ease-in-out;display:inline-block}.ai-thinking-dots span:nth-child(3){animation-delay:.4s}.af-react-picker{display:flex;gap:4px;padding:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full,100px);box-shadow:var(--shadow-md);position:absolute;bottom:100%;right:0;margin-bottom:4px;z-index:10}.af-react-pick{background:0 0;border:0;font-size:1.1rem;padding:4px 6px;cursor:pointer;border-radius:var(--radius-md);transition:background .15s}.af-react-pick:hover{background:var(--bg-hover)}.avo-dance-overlay{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;flex-direction:column;animation:avoOverlayIn .3s ease;cursor:pointer}.avo-dance-overlay.avo-dance-fadeout{animation:avoOverlayOut .4s ease forwards}.avo-dancer{width:120px;height:120px;animation:avoDance 1.2s ease infinite;filter:drop-shadow(0 8px 24px rgba(0,0,0,.3));z-index:2}.avo-dance-msg{margin-top:24px;font-size:1.6rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4);animation:avoMsgIn .5s ease .3s both;z-index:2;letter-spacing:.02em}.avo-confetti{position:absolute;top:-20px;animation:avoConfettiFall linear forwards;pointer-events:none;z-index:1}.view.slide-left{animation:viewSlideLeft .3s cubic-bezier(.22,1,.36,1) both}.view.slide-right{animation:viewSlideRight .3s cubic-bezier(.22,1,.36,1) both}.board-actions{margin-bottom:6px;position:relative;z-index:var(--z-sticky)}.tonight-widget{margin-bottom:20px}.tonight-actions,.tonight-meta{display:flex;flex-wrap:wrap;margin-bottom:14px}.tonight-actions{gap:8px}.tonight-ing-status{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:8px}.tonight-ing-status .have-count{color:var(--success);font-weight:600}.tonight-missing-label{font-weight:600;color:var(--warning)}.tonight-missing-actions{display:flex;gap:8px;margin-top:6px;align-items:center}.tonight-pick-name{font-weight:600;font-size:var(--text-sm);flex:1}.tonight-pick-match{font-size:var(--text-xs);color:var(--success)}.action-card-highlight{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#66bb6a;color:#2e7d32}html.dark .action-card-highlight{background:linear-gradient(135deg,#1b3a26,#254d35);border-color:#388e3c;color:#81c784}.action-card-highlight:hover{border-color:#43a047;box-shadow:0 2px 8px rgba(76,175,80,.2)}.board-filter-select,.filter-pill,.member-pill,.store-pill{font-weight:600;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary)}.board-filter-select{padding:5px 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;font-family:inherit}.ic-brand-tag,.ic-member-tag,.ic-store-tag{font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-full);display:inline-block}.ic-member-tag,.ic-store-tag{font-weight:600}.ic-brand-tag{font-weight:500;background:rgb(var(--primary-rgb)/.08);color:var(--primary)}.recipe-card-title .title-text{min-width:0;flex:1 1 auto}.recipe-card-title .title-text,.recipe-card-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-snap{animation:plannerSnap .4s cubic-bezier(.34,1.56,.64,1)}.planner-more-actions{gap:8px;flex-wrap:wrap;width:100%;padding-top:6px}.ip-ing-row input:focus,.quick-sel-qty:focus{border-color:var(--primary);outline:0}.form-group label,.form-label{font-weight:600;color:var(--text-secondary)}.form-label{display:block;font-size:var(--text-sm);letter-spacing:.01em;margin-bottom:4px}.fav-units-grid{display:flex;flex-wrap:wrap;gap:6px}.fav-unit-chip{padding:5px 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s;user-select:none}.fav-unit-chip:hover{border-color:var(--primary);background:var(--primary-light)}.fav-unit-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}#parse-preview{padding:16px 24px 24px;overflow-y:auto;flex:1;min-height:0}.import-preview-header h3{font-size:var(--text-lg);margin:0 0 2px}.import-preview-header .form-hint{margin:0 0 12px;color:var(--text-muted);font-size:var(--text-sm)}.import-preview-image{text-align:center;margin-bottom:12px}.import-preview-image img{max-height:160px;max-width:100%;border-radius:var(--radius-lg);object-fit:cover;box-shadow:0 2px 8px rgba(0,0,0,.1)}.import-preview-fields{display:flex;flex-direction:column;gap:10px}.view-header h2{margin:0}.import-preview-fields label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:3px;color:var(--text)}.import-preview-fields .form-input,.ip-ing-row input{border:1.5px solid var(--border);background:var(--bg);color:var(--text)}.import-preview-fields .form-input{width:100%;padding:7px 10px;font-size:var(--text-base);border-radius:var(--radius-md);transition:border-color .15s}.import-preview-fields textarea.form-input{resize:vertical;min-height:60px}.import-preview-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.import-preview-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.import-preview-row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;margin-top:8px}.import-preview-ingredients{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;padding:4px 0}.ip-ing-row{display:flex;align-items:center;gap:6px;padding:4px 0}.ip-ing-remove,.ip-ing-row input{padding:5px 8px;font-size:var(--text-sm);border-radius:var(--radius-sm)}.ip-ing-remove{background:0 0;border:0;color:var(--text-muted);cursor:pointer;font-size:var(--text-base);padding:4px 6px;transition:color .15s,background .15s}.ip-ing-remove:hover{color:var(--danger);background:rgba(220,38,38,.08)}.ip-nutrition-section{margin-top:4px}.ip-nutrition-section summary{cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);padding:6px 0}.import-preview-actions{display:flex;justify-content:space-between;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-light)}.import-preview-actions .btn-primary{flex:1;max-width:200px}@media (max-width:600px){.import-preview{padding:12px 16px 24px}.import-preview-row-3{grid-template-columns:1fr 1fr 1fr}.import-preview-row-4{grid-template-columns:1fr 1fr}.ip-ing-row input[style*="width:60px"]{width:50px!important}}.fab-dismiss{position:absolute;top:-8px;right:-4px;z-index:1;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:.65rem;border:1px solid rgba(255,255,255,.2);display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.fab-voice{background:linear-gradient(135deg,#667eea,#764ba2);font-size:1.2rem;box-shadow:0 6px 20px rgba(102,126,234,.35)}.fab-voice:hover{background:linear-gradient(135deg,#5a6fd6,#6a4093);box-shadow:0 10px 28px rgba(102,126,234,.4)}.fab-voice-active{animation:voice-pulse 1s ease-in-out infinite;background:linear-gradient(135deg,#e53e3e,#c53030)}.voice-review-overlay{display:flex!important}.voice-review-modal{max-width:420px;width:100%;max-height:85vh;overflow-y:auto;padding:24px;border-radius:16px;background:var(--bg-card,#fff);color:var(--text-primary,#1e293b);box-shadow:0 20px 60px rgba(0,0,0,.15)}.voice-review-header{text-align:center;margin-bottom:16px}.voice-review-icon{font-size:2rem;margin-bottom:4px}.voice-review-header h3{font-size:1.1rem;font-weight:700;margin:0 0 4px}.voice-review-summary{font-size:.85rem;color:var(--text-muted,#64748b);margin:0}.voice-transcript-details{margin-bottom:16px;border:1px solid var(--border,#e2e8f0);border-radius:10px;overflow:hidden}.voice-transcript-details summary{padding:10px 14px;font-size:.82rem;font-weight:600;cursor:pointer;background:var(--bg-subtle,#f8fafc);color:var(--text-secondary,#475569)}.voice-transcript-log{padding:10px 14px;max-height:120px;overflow-y:auto;font-size:.78rem}.voice-transcript-line{color:var(--text-muted,#64748b);padding:2px 0;border-bottom:1px solid var(--border,#e2e8f0)}.voice-transcript-line:last-child{border-bottom:none}.voice-review-corrections h4,.voice-review-items h4{font-size:.88rem;font-weight:600;margin:0 0 8px}.voice-review-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;margin-bottom:4px;background:var(--bg-subtle,#f8fafc);transition:opacity .2s}.voice-item-label{font-size:.88rem;font-weight:500;flex:1}.voice-tag.merged{font-size:.68rem;background:#dbeafe;color:#2563eb;padding:1px 6px;border-radius:4px;margin-left:6px;font-weight:600}html.dark .voice-tag.merged{background:#1e3a5f;color:#60a5fa}.voice-item-remove{background:0 0;border:0;color:var(--text-muted,#94a3b8);font-size:.9rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s,background .15s}.voice-item-remove:hover{color:#e53e3e;background:rgba(229,62,62,.08)}.voice-review-corrections{margin-top:14px;padding-top:14px;border-top:1px solid var(--border,#e2e8f0)}.voice-correction-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;margin-bottom:6px;background:#fef3c7;font-size:.82rem;line-height:1.4;flex-wrap:wrap}html.dark .voice-correction-item{background:#422006;color:#fbbf24}.voice-correction-icon{font-size:1rem;flex-shrink:0}.voice-merge-btn{background:#2563eb;color:#fff;border:0;padding:4px 12px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;margin-left:auto}.voice-merge-btn:hover{background:#1d4ed8}.voice-review-actions{margin-top:18px;text-align:center}.btn-voice-done{background:linear-gradient(135deg,#2b7a5b,#236849);color:#fff;border:0;padding:10px 32px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn-voice-done:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(43,122,91,.3)}.btn-voice-done:active{transform:scale(.98)}.fab-restore{position:fixed;bottom:24px;right:16px;z-index:var(--z-fab);width:28px;height:28px;border-radius:50%;background:var(--bg-card);color:var(--text-muted);font-size:.85rem;display:none;cursor:pointer;opacity:.5;transition:opacity .2s}.fab-restore:hover{opacity:1}.fab-restore,.kbd-row kbd,.kbd-shortcuts-fab{align-items:center;justify-content:center;border:1px solid var(--border)}.update-banner .ub-icon{font-size:1.4rem;animation:ub-spin 1s ease-in-out}.update-banner .ub-text{flex:1;line-height:1.3}.update-banner .ub-text small{display:block;font-size:.72rem;opacity:.7;font-weight:400;margin-top:2px}.update-banner .ub-dismiss{background:0 0;border:0;padding:4px 8px;opacity:.5;font-size:1.1rem}.update-banner .ub-dismiss:hover{opacity:1;background:0 0}.swipeable .swipe-bg-left{right:0;background:#e53e3e}.swipeable .swipe-bg-right{left:0;background:#38a169}.shop-progress-ring-wrap{position:relative;flex-shrink:0;width:64px;height:64px}.rc-pantry-ring svg,.shop-ring-svg{display:block}.shop-ring-fill{transition:stroke-dashoffset .5s cubic-bezier(.22,1,.36,1),stroke .3s}.shop-ring-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:800;color:var(--text)}.shop-progress-info{display:flex;flex-direction:column;gap:2px}.shop-progress-main{font-size:var(--text-md);font-weight:700;color:var(--text)}.shop-streak{font-size:var(--text-sm);font-weight:600;color:#d97706;animation:streakPop .3s cubic-bezier(.34,1.56,.64,1)}.shop-live-budget{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}.shop-budget-label{font-size:var(--text-sm);font-weight:600;color:var(--b-color,var(--text-secondary))}.shop-item-qty,.shop-item-qty-compact{font-size:var(--text-base);font-weight:600;color:var(--text-secondary);white-space:nowrap}.shop-item-qty-compact{font-size:var(--text-sm);color:var(--text-muted);flex-shrink:0;padding:2px 8px;background:var(--surface);border-radius:var(--radius-sm)}.shop-fly-item{position:fixed;z-index:var(--z-banner);font-size:1.5rem;pointer-events:none;transition:all .45s cubic-bezier(.34,1.56,.64,1);opacity:1;color:var(--success, #16a34a);font-weight:700}.shop-item-brand,.shop-item-note{display:block;font-size:var(--text-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(180px,60%);min-width:0}.shop-item-brand{color:var(--text-muted);font-weight:500}.trip-complete-overlay{position:fixed;inset:0;z-index:var(--z-fullscreen);background:rgba(0,0,0,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s ease}.trip-complete-overlay.open{opacity:1}.tc-card{background:var(--bg-card);border-radius:20px;padding:32px 28px;max-width:380px;width:100%;text-align:center;animation:tcBounceIn .5s cubic-bezier(.34,1.56,.64,1) forwards;box-shadow:0 20px 60px rgba(0,0,0,.2)}.tc-emoji{font-size:3.5rem;margin-bottom:8px;animation:tcSpin .6s ease}.tc-title{font-size:1.6rem;font-weight:800;color:var(--text);margin-bottom:4px}.tc-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:16px}.tc-stats{display:flex;justify-content:center;gap:20px;margin-bottom:16px}.tc-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.tc-stat-val{font-size:1.4rem;font-weight:800;color:var(--primary)}.tc-stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.tc-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);background:#fef3c7;color:#b45309;font-weight:700;font-size:var(--text-sm);margin-bottom:12px;animation:sparkle-pulse 1.5s ease-in-out infinite}.tc-comparison{background:var(--bg);border-radius:var(--radius-md);padding:12px;margin-bottom:16px;text-align:left}.tc-comp-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;display:block;margin-bottom:6px}.tc-comp-row{display:flex;justify-content:space-between;font-size:var(--text-sm);padding:3px 0;color:var(--text-secondary)}.trip-history-list{display:flex;flex-direction:column;gap:8px}html.dark .tc-badge{background:rgba(180,83,9,.2);color:#fbbf24}html.dark .tc-comparison{background:#1e2433}.comfort .cat-manage-row .form-input{padding:10px 14px;font-size:.95rem}.ach-chevron{font-size:1.2rem;font-weight:700;transition:transform .25s ease;margin-left:auto;color:var(--text-muted)}.ach-count{font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.ach-icon{font-size:1.3rem}.ach-name{font-size:.72rem;font-weight:600;color:var(--text);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ach-progress{width:100%;height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:auto}.ach-progress-bar{height:100%;border-radius:3px;transition:width .4s ease}.ach-progress-bar.tier-bar-bronze{background:linear-gradient(90deg,#cd7f32,#b8721e)}.ach-progress-bar.tier-bar-silver{background:linear-gradient(90deg,#a8a8a8,#888)}.ach-progress-bar.tier-bar-gold{background:linear-gradient(90deg,gold,#daa520)}.ach-progress-bar.tier-bar-special{background:linear-gradient(90deg,#9575cd,#7e57c2)}.ach-progress-label{width:100%;font-size:.6rem;color:var(--text-muted);text-align:center;margin-top:0}.ach-section-header{cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px}.ach-section-header:hover{color:var(--primary)}.ach-tier{font-size:.8rem}.achievement-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);transition:all .2s;position:relative;width:120px;height:100px;text-align:center;box-sizing:border-box}.achievement-badge.earned.tier-bronze{background:linear-gradient(135deg,#fdf2e6,wheat);border-color:#cd7f32}.achievement-badge.earned.tier-silver{background:linear-gradient(135deg,#f0f0f0,#d8d8d8);border-color:#a8a8a8}.achievement-badge.earned.tier-gold{background:linear-gradient(135deg,#fff9e6,gold);border-color:#daa520}.achievement-badge.earned.tier-special{background:linear-gradient(135deg,#ede7f6,#d1c4e9);border-color:#9575cd}.achievement-badge.locked{opacity:.7;filter:grayscale(.3)}.ach-section-header.open .ach-chevron,.achievements-grid:not(.collapsed)~.ach-chevron{transform:rotate(90deg)}.achievements-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;justify-content:center;max-height:360px;overflow-y:auto;padding:4px;transition:max-height .3s ease,opacity .3s ease}.achievements-grid.collapsed{max-height:0;overflow:hidden;margin-top:0;padding:0;opacity:0}.achievements-section{margin-top:20px}.af-avatar{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;border:2px solid var(--border)}.af-body{flex:1;min-width:0}.af-date-group{margin-bottom:4px}.af-date-label{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px 4px;position:sticky;top:0;background:var(--bg-card);z-index:1}.af-empty{text-align:center;padding:32px 16px}.af-empty-icon{font-size:2.5rem;margin-bottom:8px}.af-empty-title{font-weight:700;font-size:1rem;color:var(--text);margin-bottom:4px}.af-empty-text{font-size:.82rem;color:var(--text-muted);margin-bottom:16px}.af-icon-tag{font-size:.75rem}.af-item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.04);transition:background .15s;border-radius:var(--radius-sm);margin:2px 4px}.af-item:hover{background:rgba(0,0,0,.04);cursor:pointer}.af-item:last-child{border-bottom:none}.af-item.af-streak{border-left:3px solid #f59e0b}.af-item.af-achievement{border-left:3px solid #8b5cf6}.af-item.af-shopping{border-left:3px solid #3b82f6}.af-item.af-recipe{border-left:3px solid #10b981}.af-item.af-cook{border-left:3px solid #ef4444}.af-meta{display:flex;align-items:center;gap:6px;margin-top:3px}.af-msg{font-size:.84rem;color:var(--text-secondary);line-height:1.35}.af-nudge-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;background:var(--bg-secondary);scrollbar-width:none;-ms-overflow-style:none}.af-nudge-bar::-webkit-scrollbar{display:none;width:0;height:0}.af-nudge-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:20px;border:0;background:var(--bg-card);font-size:.75rem;cursor:pointer;white-space:nowrap;transition:all .2s;color:var(--text-secondary);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.06)}.af-nudge-btn:hover{color:var(--primary);background:rgb(var(--primary-rgb)/.08);box-shadow:0 2px 6px rgba(0,0,0,.1)}.af-nudge-btn:active{transform:scale(.95);box-shadow:none}.af-nudge-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.af-nudge-label{font-size:.7rem;font-weight:600;color:var(--text-muted);white-space:nowrap;opacity:.7}.af-nudge-section,.planner-empty-week button{margin-top:12px}.af-nudge-section .af-nudge-btn{padding:7px 14px;font-size:.78rem}.af-nudge-section .af-nudge-text{display:inline}.af-nudge-text{display:inline;font-size:.72rem}.af-nudge-title{font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:8px}.af-react-add,.af-react-pill{align-items:center;cursor:pointer;transition:all .15s}.af-react-add{width:22px;height:22px;border-radius:50%;border:1px dashed var(--border);background:0 0;font-size:.65rem;color:var(--text-muted);display:flex;justify-content:center}.af-react-add:hover{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.05)}.af-react-pill{display:inline-flex;gap:2px;padding:2px 7px;border-radius:12px;border:1px solid var(--border);background:var(--bg-tertiary);font-size:.72rem}.af-react-pill:hover{border-color:var(--accent);background:var(--accent-light,rgba(59,130,246,0.08))}.af-react-pill.mine{border-color:var(--accent);background:rgba(59,130,246,.1);font-weight:600}.af-reactions{display:flex;align-items:center;gap:4px;margin-top:5px;flex-wrap:wrap}.af-time,.ai-review-pantry span{font-size:.7rem;color:var(--text-muted)}.af-user{color:var(--text);font-weight:700}.ai-check{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;color:var(--text-secondary)}.ai-check input{accent-color:var(--primary)}.ai-pref-btns{display:flex;gap:6px;flex-wrap:wrap}.ai-pref-btn{padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.ai-pref-btn.active,.ai-pref-btn:hover{border-color:var(--primary);color:var(--primary)}.ai-pref-btn.active{background:var(--primary-light);font-weight:600}.ai-pref-checks{display:flex;gap:12px;flex-wrap:wrap}.ai-pref-label{display:block;font-size:.82rem;font-weight:600;color:var(--text);margin:14px 0 6px}.ai-review-badge{font-size:.6rem;background:var(--warning-bg);color:var(--warning);padding:1px 6px;border-radius:var(--radius-full);font-weight:600;white-space:nowrap}.ai-review-badge.default{background:var(--info-bg);color:var(--info)}.ai-review-body{scroll-behavior:smooth}.ai-review-day{margin-bottom:12px}.ai-review-day-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:4px 0;border-bottom:1px solid var(--border-light)}.ai-review-meal{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:var(--radius);background:var(--bg-hover);margin-top:6px;opacity:0;transform:translateX(-16px);transition:all .3s cubic-bezier(.22,1,.36,1)}.ai-review-meal.visible{opacity:1;transform:translateX(0)}.ai-review-meal-top{display:flex;align-items:center;gap:8px}.ai-review-meal-type{font-size:1rem;flex-shrink:0}.ai-review-meal-name{font-size:.88rem;font-weight:600;color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-review-meta{display:flex;gap:10px;font-size:.75rem;color:var(--text-muted);padding-left:28px}.ai-review-pantry{position:relative;height:4px;background:var(--border-light);border-radius:2px;margin-top:2px;margin-left:28px;overflow:hidden}.ai-review-pantry-fill{position:absolute;left:0;top:0;height:100%;background:var(--success);border-radius:2px;transition:width .5s ease}.ai-review-pantry span{position:absolute;right:0;top:-14px;font-size:.65rem}.ai-review-summary{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0 12px;font-size:.82rem;color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:12px}.ai-review-swap{background:0 0;border:0;cursor:pointer;font-size:.9rem;padding:2px 4px;opacity:.5;transition:opacity .15s;flex-shrink:0}.ai-review-swap:hover{opacity:1;transform:scale(1.2)}.board-search-count{font-size:.7rem;color:var(--text-muted);background:var(--bg-hover);padding:2px 8px;border-radius:10px;margin-left:-4px;white-space:nowrap}.budget-actions{display:flex;gap:6px;margin-top:6px}.budget-actions .btn-xs{font-size:.7rem;padding:3px 8px}.burst-effect{position:absolute;inset:0;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(var(--success-rgb),.3) 0%,transparent 70%);animation:radial-burst .6s cubic-bezier(.22,1,.36,1) forwards}.challenges-section{margin-bottom:16px}.cm-diff-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);font-size:.85rem;cursor:pointer;transition:all .15s}.cm-diff-btn:hover{background:rgba(255,255,255,.1)}.cm-diff-btn.active{border-color:var(--gold);background:rgba(250,204,21,.1);color:var(--gold)}.cm-difficulty-rating{display:flex;gap:8px}.cm-ing-unit-btn{display:inline-block;padding:1px 6px;border-radius:4px;background:rgba(43,122,91,.2);border:1px dashed rgba(43,122,91,.5);cursor:pointer;font-weight:600;transition:background .15s}.cm-ing-unit-btn:active,.cm-ing-unit-btn:hover{background:rgba(43,122,91,.4)}.cm-mise-desc{color:rgba(255,255,255,.5);font-size:.85rem;margin:0}.cm-mise-emoji{font-size:1.3rem;margin-right:6px}.cm-mise-header{margin-bottom:8px}.cm-mise-ready-wrap{display:flex;flex-direction:column;gap:8px;align-items:center;margin-top:20px;width:100%;max-width:340px}.cm-mise-skip-btn{font-size:.85rem;cursor:pointer;padding:6px 12px}.cm-mise-skip-btn:hover{color:rgba(255,255,255,.7)}.cm-mise-subtitle{font-size:.85rem;font-weight:600;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px;text-align:left}.cm-mise-equipment,.cm-mise-ingredients{width:100%;max-width:500px;text-align:left}.cm-mise-ready-btn.cm-mise-all-ready{background:linear-gradient(135deg,#34a06d,#2dd4bf);animation:cm-pulse-ready 1.5s 3}.cm-mise-text{font-size:.95rem;color:#eef0f2}.cm-mise-title{font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 2px}.cm-next-label{color:rgba(255,255,255,.6);font-weight:600;font-size:.75rem}.cm-next-preview{margin-top:18px;padding:10px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);font-size:.85rem;color:rgba(255,255,255,.45);line-height:1.5;text-align:left;max-width:560px;width:100%}.cm-notes-hint{color:rgba(255,255,255,.35);font-size:.78rem;margin:0 0 6px}.cm-notes-textarea{width:100%;padding:10px 12px;border-radius:var(--radius-md);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.9rem;font-family:inherit;resize:vertical;min-height:60px}.cm-notes-textarea:focus{border-color:var(--gold);outline:0}.cm-notes-textarea::placeholder{color:rgba(255,255,255,.25)}.cm-photo-btn{margin-top:16px;padding:10px 20px;border-radius:24px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:0;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.cm-photo-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(99,102,241,.4)}.cm-preheat-dismiss{background:0 0;border:0;color:#fbbf24;font-size:1.1rem;cursor:pointer;opacity:.7;transition:opacity .15s;padding:4px 8px;flex-shrink:0}.cm-preheat-dismiss:hover,.insight-activity-stat:hover::before{opacity:1}.cm-preheat-icon{font-size:1.4rem;flex-shrink:0}.cm-preheat-text{flex:1;color:#fde68a}.cm-preheat-text strong{color:#fbbf24}.cm-prev-notes{width:100%;max-width:500px;text-align:left;background:rgba(250,204,21,.08);border:1px solid rgba(250,204,21,.2);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:4px}.cm-prev-notes-text{color:#fde68a;font-size:.9rem;margin:4px 0 0;line-height:1.5}.cm-progress-bar-wrap{position:relative;height:6px;background:rgba(255,255,255,.1);border-radius:3px;margin:10px 20px 0;overflow:hidden}.cm-progress-bar{height:100%;background:linear-gradient(90deg,var(--gold),#34a06d);border-radius:3px;transition:width .4s ease}.cm-progress-label{position:absolute;top:-18px;right:0;font-size:.7rem;color:rgba(255,255,255,.4);letter-spacing:.5px;text-transform:uppercase}.cm-stat-icon{font-size:1.3rem}.cm-stat-label{font-size:.7rem;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.5px}.cm-stat-value{font-size:1.3rem;font-weight:700;color:#fff}.cm-summary-actions{display:flex;gap:10px;margin-top:20px}.cm-summary-card{width:100%;max-width:440px;padding:24px}.cm-summary-emoji{font-size:3rem;margin-bottom:8px}.cm-summary-save-btn{flex:2;padding:12px;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s}.cm-summary-save-btn:hover{background:#2b8a5c}.cm-summary-screen{align-items:center;justify-content:center;text-align:center;animation:cm-summary-in .4s ease}.cm-summary-section{margin-bottom:18px;text-align:left}.cm-summary-section h4{color:rgba(255,255,255,.7);font-size:.85rem;font-weight:600;margin:0 0 8px}.cm-summary-skip-btn{flex:1;padding:12px;border-radius:var(--radius-md);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.6);font-size:.85rem;cursor:pointer}.cm-summary-skip-btn:hover{background:rgba(255,255,255,.1)}.cm-summary-stats{display:flex;justify-content:center;gap:24px;margin-bottom:24px}.cm-unit-option{padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#e2e8f0;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s}.cm-unit-option:active,.cm-unit-option:hover{background:rgba(43,122,91,.3);border-color:#2b7a5b}.cm-unit-picker{z-index:10001;background:#1e293b;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.5);max-width:260px;min-width:160px}.cm-unit-picker-title{font-size:.75rem;color:#94a3b8;margin-bottom:6px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.cm-unit-picker-options{display:flex;flex-wrap:wrap;gap:6px}.confetti{display:none!important}.cook-modal-time{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:8px;font-weight:500;letter-spacing:.02em}.cooking-streak{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffb74d;border-radius:var(--radius);padding:6px 14px;margin-top:8px;font-size:var(--text-sm);font-weight:700;color:#e65100;animation:streak-glow 2s ease-in-out 3}.cqa-section{margin-bottom:12px}.discover-card .discover-card-meta{font-size:.7rem;gap:4px}.discover-card .recipe-card-footer .btn-sm{min-height:30px;padding:5px 8px;font-size:.74rem}.discover-card .recipe-card-tags{gap:2px}.discover-card .recipe-tag{font-size:.62rem;padding:1px 5px}.discover-card .discover-vote-row{width:100%;justify-content:flex-start;margin-top:0;margin-left:0;gap:2px}.discover-card .discover-vote-row .vote-btn{padding:2px 4px;font-size:.72rem}.discover-card .discover-vote-row .vote-score{font-size:.72rem;min-width:14px}.discover-card.recipe-card{height:auto;min-height:0}.discover-card .recipe-card-body{padding:10px 14px;gap:3px}.discover-card .recipe-card-title{font-size:.92rem;gap:4px}.discover-card .recipe-card-title .title-text{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.discover-card .recipe-card-desc{font-size:.78rem;color:var(--text-muted);line-height:1.3;max-height:2.6em;overflow:hidden;margin:0}.discover-card .recipe-card-chips{max-height:22px}.discover-card .macro-bar-card{padding:3px 8px;margin:2px 0;font-size:.72rem}.discover-card .macro-bar-card .macro-item{font-size:.72rem}.discover-card.discover-card-added{border-color:var(--success, #16a34a);background:rgba(22,163,74,.06)}.discover-card .recipe-card-footer{justify-content:flex-start;gap:6px;flex-wrap:wrap;padding-top:6px;border-top:none}.discover-card-meta{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-muted);flex-wrap:wrap}.discover-card-author{font-weight:600;color:var(--text-secondary)}.discover-new-badge{font-size:.68rem;background:linear-gradient(135deg,#6dd5a0,#4ecdc4);color:#fff;padding:2px 6px;border-radius:10px;font-weight:600;white-space:nowrap;animation:sparkle 2s ease-in-out 3}.discover-personalized-notice{font-size:.78rem;color:var(--primary);background:var(--primary-light,rgba(74,144,217,0.08));padding:6px 12px;border-radius:var(--radius-md);margin-bottom:12px;font-weight:500;text-align:center}.discover-preview-attribution{text-align:center;padding:12px 0;font-size:.85rem;color:var(--text-muted);border-top:1px solid var(--border);margin-top:12px}.discover-author-link{color:var(--primary);font-weight:600;text-decoration:none}.discover-author-link:hover{text-decoration:underline;color:var(--primary-hover)}.discover-trending-badge{font-size:.68rem;background:linear-gradient(135deg,#ff6b35,#ff8c61);color:#fff;padding:2px 6px;border-radius:10px;font-weight:600;white-space:nowrap}.gcm-divider{height:1px;background:var(--border,#e2e2e2);margin:4px 8px}.gcm-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:0;background:0 0;font-size:var(--text-sm);color:var(--text-primary,#333);cursor:pointer;border-radius:8px;text-align:left;font-weight:500;transition:background .12s}.gcm-item:active,.gcm-item:hover{background:var(--hover-bg,#f5f5f5)}.gcm-item.gcm-danger{color:#dc3545}.gcm-item.gcm-danger:hover{background:#fef2f2}.gesture-context-menu{position:fixed;z-index:var(--z-fullscreen);background:var(--card-bg,#fff);border:1px solid var(--border,#e2e2e2);border-radius:12px;padding:6px;box-shadow:0 8px 30px rgba(0,0,0,.18);min-width:180px;max-width:calc(100vw - 32px);opacity:0;transform:scale(.92);transition:opacity .15s ease,transform .15s ease}.gesture-context-menu.gcm-visible{opacity:1;transform:scale(1)}.gs-empty-hint{font-size:.78rem;opacity:.7}.gs-empty-icon{font-size:2rem;display:block;margin-bottom:8px}.gs-group-count{background:var(--bg-hover);border-radius:var(--radius-full);padding:1px 7px;font-size:.65rem;font-weight:600}.gs-item-text{display:flex;flex-direction:column;flex:1;min-width:0}.gs-item-type{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;opacity:.6}.gs-commands-grid{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.gs-cmd-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-secondary);border:1px solid var(--border);font-size:.82rem;font-weight:600;color:var(--text);cursor:pointer;transition:all var(--ease)}.gs-cmd-chip:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.ic-note-tag{font-size:.7rem;color:var(--text-muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.insight-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin-top:12px}.insight-activity-icon{font-size:1.6rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.insight-activity-label{font-size:.7rem;color:var(--text-muted);text-align:center;font-weight:500;line-height:1.3}.insight-activity-num{font-size:1.5rem;font-weight:800;color:var(--text);letter-spacing:-.5px;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.insight-activity-stat{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px 14px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border);transition:all .25s cubic-bezier(.4,0,.2,1);overflow:hidden;cursor:default}.insight-activity-stat::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;transition:opacity .25s;pointer-events:none}.insight-activity-stat:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08);border-color:rgba(43,122,91,.2)}.insight-bar-amount{font-size:.65rem;color:var(--text-secondary);font-weight:700;margin-top:2px;white-space:nowrap}.insight-bar-chart-tall{height:160px}.insight-bar-spend{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 0 8px rgba(16,185,129,.3)}.insight-bar-spend-monthly{background:linear-gradient(180deg,#3b82f6,#2563eb);box-shadow:0 0 8px rgba(59,130,246,.3)}.insight-panel-full{grid-column:1/-1}.insight-saved-hero{display:flex;gap:24px;margin-bottom:12px;padding:12px 16px;background:rgba(22,163,74,.06);border-radius:var(--radius-md)}.insight-saved-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.insight-saved-num{font-size:1.6rem;font-weight:800;color:var(--success, #16a34a)}.insight-saved-stat{display:flex;flex-direction:column;align-items:center}.macro-serving-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.mi-added{animation:miFlashGreen .4s ease both}.mi-check-svg .mi-check-box{fill:none;stroke:var(--border);stroke-width:2;rx:4;transition:stroke .2s,fill .2s}.mi-check-svg .mi-check-mark{fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .3s cubic-bezier(.22,1,.36,1)}.mi-check-svg.checked .mi-check-box{stroke:var(--primary);fill:var(--primary)}.mi-check-svg.checked .mi-check-mark{stroke-dashoffset:0}.mi-check-svg .mi-check-mark,.tab-bar .tab-indicator,.toggle-slider::after{animation:none!important;transition:none!important}.mi-counter{display:inline-block;overflow:hidden;vertical-align:bottom}.mi-counter-inner{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1)}.mi-counter-inner.mi-roll-up{animation:miRollUp .4s cubic-bezier(.22,1,.36,1) forwards}.mi-counter-inner.mi-roll-down{animation:miRollDown .4s cubic-bezier(.22,1,.36,1) forwards}.mi-drag-lift{transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s ease}.mi-drag-lift.dragging,.mi-drag-lift[data-dragging=true]{transform:scale(1.03) rotate(1deg);box-shadow:0 12px 32px rgba(0,0,0,.15),0 4px 12px rgba(0,0,0,.08);z-index:10}.mi-drop-bounce{animation:miBounceDrop .3s cubic-bezier(.34,1.56,.64,1) both}.mi-press{transition:transform .1s cubic-bezier(.34,1.56,.64,1)}.mi-press:active,.update-banner button:active{transform:scale(.97)}.mi-removed{animation:miSlideOut .3s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none}.mi-tilt{transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.mi-tilt:hover{transform:perspective(800px) rotateX(1deg) rotateY(2deg) translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.06)}.mobile-left-btn{order:-1}.mobile-more-backdrop{display:none;position:fixed;inset:0;z-index:var(--z-sidebar);background:0 0}.mobile-more-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:0;background:0 0;font-size:.92rem;font-weight:500;color:var(--text);border-radius:var(--radius-md);width:100%;text-align:left}.mobile-more-item:active,.mobile-more-item:hover{background:var(--bg-hover)}.mobile-more-item span:first-child{font-size:1.2rem;width:28px;text-align:center}.mobile-right-btn{order:1}.modal-handle{width:36px;height:4px;border-radius:4px;background:var(--border);margin:10px auto 4px;flex-shrink:0;display:none;cursor:grab;transition:background .2s}.modal-handle:active{cursor:grabbing;background:var(--text-muted)}.ob-staple-cats{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;justify-content:center}.ob-staple-cat{padding:4px 10px;border:1.5px solid var(--border, #ddd);border-radius:var(--radius-full);background:var(--bg, #fff);cursor:pointer;font-size:var(--text-xs);font-weight:600;color:var(--text-muted, #888);transition:all .15s;white-space:nowrap}.ob-staple-cat.active{background:var(--primary-light, #e6f4ee);color:var(--primary, #2B7A5B)}.ob-staple-cat.active,.ob-staple-cat:hover{border-color:var(--primary, #2B7A5B)}.ob-staple-select-all{display:flex;gap:6px;justify-content:center;margin-bottom:8px}.ob-staple-select-all .btn-sm{font-size:var(--text-xs);padding:3px 10px}.onboarding-ios-installed{text-align:center;padding:32px 0}.onboarding-ios-steps{max-width:400px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.onboarding-ios-step{display:flex;align-items:flex-start;gap:14px;background:var(--surface, #fff);border-radius:12px;padding:14px 16px;border:1px solid var(--border, #e5e7eb)}.onboarding-ios-step-num{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--accent, #2B7A5B);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.95rem}.planner-empty-week{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:.9rem;grid-column:1/-1}.pull-nav-bottom{margin-top:4px}.pull-nav-indicator{text-align:center;padding:10px;font-size:var(--text-sm);color:var(--text-muted);font-weight:500;transition:opacity .2s}.pull-nav-top{margin-bottom:4px}.rc-cook-badge{font-size:var(--text-xs);font-weight:600;color:#d97706;background:#fef3c7;padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap}.rc-diff{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:1px;font-weight:500;display:inline-flex;align-items:center;gap:2px}.rc-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--text-muted);display:inline-block}.rc-dot.filled{background:var(--text-muted)}.rc-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rc-pantry-pct,.rc-pantry-ring{display:flex;align-items:center;justify-content:center}.rc-pantry-pct{position:absolute;inset:0;font-size:.6rem;font-weight:700;color:var(--text-secondary);pointer-events:none}.rc-pantry-ring{position:relative;flex-shrink:0;width:36px;height:36px}.rc-time{font-size:var(--text-xs);color:var(--text-secondary);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.rc-top-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.rc-top-row{display:flex;gap:10px;align-items:flex-start}.recipe-imported-celebrate{animation:bookOpen .4s ease both}.scanner-add-forgotten-form{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0;width:100%}.scanner-footer-actions{padding:10px 16px;display:flex;justify-content:center;background:var(--bg);border-top:1px solid var(--border)}.scanner-footer-actions .btn-outline{font-size:var(--text-base);padding:10px 20px;font-weight:600;border-radius:var(--radius-md)}.scanner-forgotten-actions{display:flex;gap:8px;width:100%}.scanner-forgotten-actions .btn-sm{flex:1;padding:10px 14px;font-size:var(--text-base)}.scanner-forgotten-title{font-size:var(--text-md);font-weight:700;color:var(--text)}.scanner-mode-btn{flex:1;padding:8px 12px;border:0;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .2s,color .2s}.scanner-mode-btn.active{background:var(--primary);color:#fff}.scanner-mode-btn:not(.active):hover{background:rgba(255,255,255,.15)}.scanner-mode-toggle{display:flex;gap:0;margin:0 16px 8px;border-radius:var(--radius-md);overflow:hidden;border:1px solid rgba(255,255,255,.2)}.seasonal-tip{margin-bottom:16px}.settings-advanced-group{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.settings-advanced-group[open] .settings-advanced-toggle{color:var(--primary);margin-bottom:8px}.settings-advanced-toggle{cursor:pointer;font-size:.82rem;color:var(--text-secondary);font-weight:500;padding:6px 0;user-select:none}.settings-advanced-toggle:hover{color:var(--primary)}.shop-check-anim{animation:check-spring .4s cubic-bezier(.34,1.56,.64,1)}.shop-swipe-hint{position:absolute;top:0;bottom:0;display:flex;align-items:center;font-size:1.2rem;opacity:0;transition:opacity .15s;pointer-events:none;padding:0 12px}.shop-swipe-hint-left{right:100%;color:var(--danger)}.shop-swipe-hint-right{left:100%;color:var(--success)}.sidebar-search-btn{position:relative;margin-bottom:4px!important;border:1px dashed var(--border)!important;border-radius:var(--radius)!important;opacity:.8}.sidebar-search-btn:hover{opacity:1;border-color:var(--primary)!important}.sidebar-search-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 6px;border-radius:var(--radius-md);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all var(--ease)}.sidebar-search-bar:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}.sidebar-search-bar-icon{font-size:.85rem;opacity:.6;flex-shrink:0}.sidebar-search-bar-text{flex:1;font-size:.82rem;color:rgba(255,255,255,.45);font-weight:400}.sidebar-search-bar .sidebar-kbd{margin-left:auto;font-size:.6rem;padding:2px 5px;border-radius:3px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.4);font-family:var(--font-mono);line-height:1}.sidebar.collapsed .sidebar-search-bar{padding:8px;justify-content:center;gap:0}.sidebar.collapsed .sidebar-search-bar .sidebar-kbd,.sidebar.collapsed .sidebar-search-bar-text{display:none}.sub-bulb{font-size:.85rem;flex-shrink:0}.sub-label,.sub-note{color:var(--text-muted)}.sub-label{font-weight:600;white-space:nowrap;font-size:.72rem}.sub-note{font-size:.68rem}.sub-option,.sub-suggest{color:var(--text-secondary);font-size:.75rem}.sub-suggest{display:flex;align-items:center;gap:6px;padding:6px 12px 6px 36px;font-size:.78rem;flex-wrap:wrap;border-left:2px solid transparent;margin-top:-1px}.sub-suggest.sub-instock{background:rgba(16,185,129,.04);border-left-color:#10b981}.sub-use-btn{padding:3px 10px;border-radius:12px;border:1px solid #10b981;background:rgba(16,185,129,.08);color:#10b981;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.sub-use-btn:hover{background:#10b981;color:#fff}.tc-stat-value{font-family:var(--font-mono)}.today-widget{margin-bottom:12px}.today-widget-card{background:linear-gradient(135deg,rgba(43,122,91,.06),rgba(43,122,91,.02));border:1px solid rgba(43,122,91,.15);border-radius:var(--radius-md);padding:12px 14px;overflow:hidden}.today-widget-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.today-widget-icon{font-size:1.1rem}.today-widget-title{font-weight:600;font-size:.85rem;color:var(--text);letter-spacing:.02em}.today-widget-count{background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:auto}.today-widget-meals{display:flex;flex-direction:column;gap:6px}.today-widget-meal{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border)}.today-widget-meal-type{font-size:.9rem;flex-shrink:0}.today-widget-meal-name{font-size:.82rem;font-weight:500;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-widget-cook-btn{background:var(--primary);color:#fff;border:0;border-radius:var(--radius-sm);padding:4px 10px;font-size:.72rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:transform .15s}.today-widget-cook-btn:active{transform:scale(.92)}.tour-btn-back{border-color:var(--primary);color:var(--primary)}.virtual-scroll-wrapper{contain:layout style;will-change:transform}.vs-item{contain:layout style}.weekly-summary-card{margin-bottom:16px}.ws-actions{display:flex;gap:8px;flex-wrap:wrap}.ws-card{position:relative;background:linear-gradient(135deg,#eff6ff 0,#faf5ff 50%,#fef3c7 100%);border:1px solid #c7d2fe;border-radius:var(--radius-lg);padding:20px;overflow:hidden}.ws-dismiss{position:absolute;top:8px;right:8px;background:0 0;border:0;font-size:1.2rem;cursor:pointer;color:var(--text-muted);opacity:.5;padding:4px 8px;line-height:1}.ws-dismiss:hover{opacity:1}.ws-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.ws-header-icon{font-size:2rem}.ws-highlights{background:rgba(255,255,255,.5);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px}.ws-hl-item{font-size:.8rem;color:var(--text-secondary);padding:2px 0}.ws-hl-item strong,.ws-hl-title,.ws-stat strong{color:var(--text)}.ws-hl-title{font-size:.78rem;font-weight:700;margin-bottom:6px}.ws-icon{font-size:1rem;flex-shrink:0;width:22px;text-align:center}.ws-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-bottom:14px}.ws-stat{display:flex;align-items:center;gap:6px;font-size:.84rem;color:var(--text-secondary);padding:4px 0}.ws-stat strong{font-weight:700}.ws-subtitle{font-size:.75rem;color:var(--text-muted)}.ws-title{font-size:1.05rem;font-weight:700;color:var(--text)}html.dark .achievement-badge.earned.tier-bronze{background:linear-gradient(135deg,#3a2c1a,#4d3a22);border-color:#cd7f32}html.dark .achievement-badge.earned.tier-silver{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);border-color:gray}html.dark .achievement-badge.earned.tier-gold{background:linear-gradient(135deg,#3a3520,#4d4428);border-color:#daa520}html.dark .achievement-badge.earned.tier-special{background:linear-gradient(135deg,#2d1f4e,#3a2a5c);border-color:#7e57c2}html.dark .af-avatar{background:rgba(255,255,255,.06)}html.dark .af-date-label{background:var(--dark-card)}html.dark .af-item{border-bottom-color:rgba(255,255,255,.04)}html.dark .af-item:hover{background:rgba(255,255,255,.03)}html.dark .af-nudge-bar{background:var(--dark-card);border-bottom-color:rgba(255,255,255,.06)}html.dark .af-nudge-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);box-shadow:none;color:var(--text-secondary)}html.dark .af-nudge-btn:hover{border-color:rgba(59,130,246,.3);color:var(--primary)}@media (max-width:360px){.af-nudge-text{display:none}}html.dark .af-react-pill{background:rgba(255,255,255,.05)}html.dark .af-nudge-btn:hover,html.dark .af-react-pill.mine{background:rgba(59,130,246,.15)}html.dark .ai-pref-btn{border-color:rgba(255,255,255,.12)}html.dark .ai-pref-btn.active{background:rgba(43,122,91,.2);border-color:var(--primary)}html.dark .ai-pref-btn,html.dark .ai-review-meal{background:rgba(255,255,255,.05)}.cm-mise-item.checked .cm-mise-text{text-decoration:line-through;opacity:.4}html.dark .cooking-streak{background:linear-gradient(135deg,#3e2723,#4e342e);border-color:#ff8f00;color:#ffcc02}.discover-meta-counts .count-up{font-variant-numeric:tabular-nums}.collection-context-menu .ctx-disabled{opacity:.5;cursor:default;pointer-events:none}.planner-day-header{cursor:default}.notif-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius);transition:background .15s;cursor:pointer}.comfort .discover-card{padding:16px}html.dark .gcm-item.gcm-danger:hover{background:#3a1a1a}html.dark .gcm-item:hover{background:var(--hover-bg,#2a2a2a)}html.dark .gesture-context-menu{background:var(--card-bg,#1e1e1e);border-color:#3a3a3a;box-shadow:0 8px 30px rgba(0,0,0,.5)}.recipes-grid.grid-dense{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important}.recipes-grid.grid-dense .recipe-card-body{padding:10px}.recipes-grid.grid-dense .recipe-card-title{font-size:var(--text-sm)}.recipes-grid.grid-dense .rc-meta-row,.recipes-grid.grid-dense .recipe-card-chips,.recipes-grid.grid-dense .recipe-card-tags{display:none}.recipes-grid.grid-dense .recipe-card-footer{gap:4px}.recipes-grid.grid-dense .recipe-card-footer button{font-size:var(--text-xs);padding:4px 8px}.recipes-grid.grid-single{grid-template-columns:1fr!important}html.dark .insight-bar-spend{box-shadow:0 0 12px rgba(16,185,129,.5)}html.dark .insight-bar-spend-monthly{box-shadow:0 0 12px rgba(59,130,246,.5)}html.dark .insight-donut{box-shadow:0 4px 20px rgba(99,102,241,.2)}html.dark .insight-donut-center{box-shadow:inset 0 0 0 3px #16213e}.discover-preview-macros.macro-per-serving{background:0 0;border:0;padding:2px 12px;margin-top:-6px;opacity:.75;flex-wrap:wrap;gap:4px 8px}html.dark .rc-cook-badge{background:rgba(217,119,6,.15);color:#fbbf24}html.dark .rc-pantry-pct{color:#b8a88a}.sidebar-link.sidebar-search-btn{display:none}html.dark .sub-suggest.sub-instock{background:rgba(16,185,129,.06)}html.dark .sub-use-btn{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.5)}html.dark .sub-use-btn:hover{background:#10b981;color:#fff}.tab-bar .tab-indicator{position:absolute;bottom:0;height:3px;background:var(--primary);border-radius:3px 3px 0 0;transition:left .25s cubic-bezier(.22,1,.36,1),width .25s cubic-bezier(.22,1,.36,1);z-index:1;pointer-events:none}.ach-unlock-modal.tier-special{background:linear-gradient(145deg,#ede7f6,#d1c4e9);border:2px solid #9575cd;box-shadow:0 0 60px rgba(149,117,205,.4)}html.dark .ach-unlock-modal.tier-special{background:linear-gradient(145deg,#2d1f4e,#3a2a5c);color:#d1c4e9}.ach-unlock-tier.tier-special{background:rgba(149,117,205,.2);color:#7e57c2}html.dark .ach-unlock-tier.tier-bronze{color:wheat}html.dark .ach-unlock-tier.tier-silver{color:#ccc}html.dark .ach-unlock-tier.tier-gold{color:gold}html.dark .ach-unlock-tier.tier-special{color:#d1c4e9}html.dark .today-widget-card{background:linear-gradient(135deg,rgba(43,122,91,.12),rgba(43,122,91,.04));border-color:rgba(43,122,91,.25)}@media (min-width:769px){.today-widget{display:none}}html.dark .ws-card{background:linear-gradient(135deg,rgba(99,102,241,.08)0,rgba(168,85,247,.06) 50%,rgba(234,179,8,.05) 100%);border-color:rgba(99,102,241,.2)}html.dark .ws-highlights{background:rgba(255,255,255,.04)}@media (max-width:480px){.ws-stats{grid-template-columns:1fr}}.sidebar-link:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px;border-radius:var(--radius-md)}.sidebar.collapsed .sidebar-link:hover::after{content:attr(title);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--bg-card);color:var(--text);padding:4px 10px;border-radius:var(--radius);font-size:var(--text-sm);font-weight:500;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:var(--z-popover-high);pointer-events:none}.sidebar.collapsed .desktop-notif-badge{right:-2px;top:-2px;font-size:.55rem;min-width:14px;padding:0 3px}.view.active .view-header{animation:staggerIn .3s ease both;animation-delay:.05s;position:relative;z-index:var(--z-local)}.view.active .planner-grid,.view.active .recipe-grid{animation:staggerIn .3s ease both;animation-delay:.1s}.info-tip.active{z-index:var(--z-tooltip)}.stat-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgb(var(--primary-rgb)/.04) 0%,transparent 60%);opacity:0;transition:opacity .25s;pointer-events:none}.planner-meal:hover .planner-meal-actions-row,.stat-card:hover::before{opacity:1}.action-card:active,.stat-card:active{transform:translateY(0) scale(.97);transition:transform .1s}.tonight-meta span{display:flex;align-items:center;gap:4px}.tonight-fallback p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:12px}.action-card:active{transform:translateY(0) scale(.95)}.shopping-preview-item:hover{background:var(--bg-hover)}.filter-pill:focus-visible,.member-pill:focus-visible,.store-pill:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tab:focus-visible{border-radius:var(--radius-md) var(--radius-md)0 0}.sort-option:focus-visible,.tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.unit-btn:hover{background:var(--bg-hover);color:var(--text)}.item-card:active{background:rgb(var(--primary-rgb)/.08);transform:scale(.99);transition:transform .08s}.qty-step:active{transform:scale(.9);transition:transform .08s}.qty-step:disabled{opacity:.5;cursor:not-allowed}.drawer-open .page-header,.drawer-open .planner-actions,.drawer-open .planner-grid,.planner-grid.transitioning{transition:margin-right .3s ease}@media (min-width:769px){.drawer-open .page-header,.drawer-open .planner-actions,.drawer-open .planner-grid{margin-right:308px}}.planner-meal:hover .planner-meal-footer{opacity:1;max-height:30px}.planner-srv-count::after{content:" srv";font-weight:500;font-size:var(--text-2xs);color:var(--text-muted)}.board-search-input,.form-search,.planner-drawer-search,.quick-search-input,.recipe-search-input{border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);background:var(--bg-card);color:var(--text);box-shadow:inset 0 1px 2px rgba(0,0,0,.03);transition:border-color .25s,box-shadow .25s,background .25s}.board-search-input:focus,.form-search:focus,.planner-drawer-search:focus,.quick-search-input:focus,.recipe-search-input:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px rgb(var(--primary-rgb)/.12),inset 0 1px 2px rgba(0,0,0,.02);background:var(--bg)}.modal-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.import-preview{padding:16px 24px 24px;overflow-y:auto;flex:1;min-height:0}.import-preview-fields .form-group{margin:0}.import-preview-fields .form-input:focus{border-color:var(--primary);outline:0}@media (max-width:600px){.import-preview{padding:12px 16px 24px}.ip-ing-row input[style*="width:60px"]{width:50px!important}}.btn-outline:focus-visible,.btn-primary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.scale-btn:active{transform:scale(.9);transition:transform .08s}.kbd-shortcuts-fab.active,.kbd-shortcuts-fab:hover{opacity:1;border-color:var(--primary);box-shadow:0 4px 12px rgba(0,0,0,.12)}@media (max-width:768px){.kbd-shortcuts-fab,.kbd-shortcuts-panel{display:none}}.pwa-install-prompt .pip-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pwa-install-prompt .pip-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#059669,#10b981);display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 4px 12px rgba(5,150,105,.3)}.pwa-install-prompt .pip-title{font-size:1rem;font-weight:700;line-height:1.2}.pwa-install-prompt .pip-subtitle{font-size:.78rem;opacity:.7;font-weight:400;margin-top:2px}.pwa-install-prompt .pip-features{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.pwa-install-prompt .pip-feature{display:flex;align-items:center;gap:4px;font-size:.72rem;background:rgba(255,255,255,.08);padding:4px 10px;border-radius:20px;opacity:.85}.pwa-install-prompt .pip-actions,.tc-actions{display:flex;gap:10px}.pwa-install-prompt .pip-install{flex:1;background:linear-gradient(135deg,#059669,#10b981);border:0;color:#fff;font-weight:700;font-size:.88rem;padding:12px 20px;border-radius:12px;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px rgba(5,150,105,.25)}.pwa-install-prompt .pip-install:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(5,150,105,.35)}.pwa-install-prompt .pip-install:active{transform:translateY(0) scale(.98)}.pwa-install-prompt .pip-later{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#fff;font-weight:600;font-size:.82rem;padding:12px 16px;border-radius:12px;cursor:pointer;transition:all .2s}.pwa-install-prompt .pip-later:hover{background:rgba(255,255,255,.15)}.pwa-install-prompt .pip-close{position:absolute;top:12px;right:12px;background:0 0;border:0;color:rgba(255,255,255,.4);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .15s}.pwa-install-prompt .pip-close:hover{color:#fff;background:rgba(255,255,255,.1)}html.dark .update-banner{background:linear-gradient(135deg,#1e3a5f 0,#1e293b 100%)}.shop-item:active{background:rgb(var(--primary-rgb)/.08);transform:scale(.99)}.shop-item.checked .shop-item-name::after{content:"";position:absolute;top:50%;left:0;width:100%;height:1.5px;background:var(--text-muted);animation:strikethrough-sweep .4s cubic-bezier(.22,1,.36,1) both}.tc-actions{flex-direction:column;gap:8px}.planner-meal:focus-within .macro-bar-meal,.planner-meal:hover .macro-bar-meal{opacity:1;max-height:24px}.comfort .form-group{margin-bottom:16px}.comfort .form-group label{margin-bottom:6px}.comfort .settings-section{margin-bottom:24px}.comfort .toggle-row{padding:10px 0;gap:12px}.comfort .toggle-row label{font-size:.95rem}.comfort .board-search-input,.comfort .quick-search-input,.comfort .recipe-search-input{padding:12px 16px;font-size:1rem;min-height:48px}.comfort .planner-drawer-search{padding:12px 14px;font-size:.95rem}.comfort .cook-now-card{padding:14px}.comfort .planner-week-grid{gap:10px}.comfort .cat-manage-row{padding:8px 0;gap:10px}@media (max-width:768px){body,html{overscroll-behavior:none}.home-switcher,.sidebar-bottom,.sidebar-link[data-view=board],.sidebar-link[data-view=recipes],.sidebar-link[data-view=shopping],.sidebar-top{display:none}.sidebar-link::before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:0 0;border-radius:0 0 2px 2px;transition:background .2s}.sidebar-link.active::before{background:var(--primary)}html.dark .sidebar-link{color:rgba(255,255,255,.4)}html.dark .sidebar-link.active{color:var(--primary)}.sidebar-links{overflow:visible!important;min-height:auto!important}.mobile-more-btn{display:flex!important;order:2;visibility:visible!important;opacity:1!important}.mobile-more-btn .sidebar-icon{font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center}.mobile-search-btn{display:flex!important;order:3}.mobile-search-btn .sidebar-icon{font-size:1.5rem;filter:brightness(.85)}.sidebar-link[data-view=home]{order:1}.mobile-more-menu.open{display:flex;position:fixed;bottom:60px;left:8px;right:8px;background:#fff;border-radius:var(--radius-lg);box-shadow:0 12px 40px rgba(0,0,0,.18),0 4px 12px rgba(0,0,0,.1);z-index:var(--z-popover-high)}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px 4px;font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}html.dark .mobile-more-menu{background:var(--bg-card);border-color:var(--border);box-shadow:0-8px 32px rgba(0,0,0,.4)}.mobile-home-menu,.mobile-more-menu.open{border:1px solid var(--border);padding:6px;flex-direction:column}.mobile-home-menu{display:none;position:absolute;top:100%;left:14px;right:14px;background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);margin-top:4px;gap:2px}.mobile-home-menu.open{display:flex}.form-row input[type=date],.mobile-home-option{min-height:44px;padding:12px 14px;width:100%;color:var(--text)}.mobile-home-option{display:flex;align-items:center;gap:8px;border-radius:var(--radius);font-size:.9rem;font-weight:500;background:0 0;border:0;cursor:pointer;transition:background .15s;text-align:left}.mobile-home-option:hover{background:var(--bg-hover)}.mobile-home-option.active{background:var(--primary-light)}.mobile-home-option-add,.mobile-home-option.active{color:var(--primary);font-weight:600}.mobile-home-bar{justify-content:space-between}.mobile-home-btn{flex:0 1 auto;max-width:calc(100% - 100px);overflow:hidden;justify-content:center}#planner-view .page-actions,.mobile-user-btn{display:flex;align-items:center;justify-content:center}.mobile-user-btn{position:relative;right:auto;left:auto;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);font-size:1rem;cursor:pointer;transition:all .15s}.mobile-user-btn:hover{background:var(--primary-light);border-color:var(--primary)}html.dark .mobile-home-bar{background:var(--bg);border-color:var(--border)}html.dark .mobile-home-menu{background:var(--bg-card);border-color:var(--border)}html.dark .mobile-user-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}.page-actions .btn-scan{padding:6px 10px;font-size:.78rem;min-height:36px;white-space:nowrap}.page-actions .btn-scan .btn-scan-icon{font-size:1rem}.page-actions .board-search-input{flex:1;min-width:0;padding:8px 10px;font-size:.82rem;min-height:36px}.page-actions .sort-dropdown .btn-icon-label{padding:6px 10px;font-size:.78rem;min-height:36px}.page-actions .unit-toggle{flex-shrink:0}.page-actions .unit-toggle .unit-btn{padding:6px 8px;font-size:.72rem;min-height:36px}.ic-member-tag,.ic-store-tag{font-size:.62rem;padding:1px 6px}.recipe-tag{font-size:.65rem;padding:2px 6px}.recipe-card-footer .btn-cook,.recipe-card-footer .btn-edit-recipe{flex:1;text-align:center;padding:7px 10px;border-radius:var(--radius);font-size:.78rem;min-height:34px}.recipe-card-footer .btn-recipe-collect,.recipe-card-footer .btn-share-recipe{padding:7px 8px;border-radius:var(--radius);min-height:34px;font-size:.88rem}.recipe-card .macro-bar-card{display:none}.recipe-card .recipe-card-cat-badge,.recipe-card .recipe-pantry-badge,.recipe-card .recipe-source-badge{font-size:.68rem;padding:2px 6px}.planner-day-header>div{display:flex;align-items:center;gap:8px;flex-direction:row}.planner-meal.meal-expanded .planner-meal-actions-row{opacity:1;height:auto;overflow:visible}.planner-meal.meal-expanded{background:var(--primary-light);border-color:var(--primary);box-shadow:var(--shadow-xs)}.planner-meal.meal-expanded .planner-meal-footer{opacity:1;max-height:30px}.planner-day.empty-day:hover,.planner-meal:active .planner-meal-actions-row{opacity:1}.planner-actions .btn-primary{flex:1 1 100%;text-align:center;padding:14px;min-height:48px;font-size:.88rem}.planner-actions .btn-danger-text,.planner-actions .btn-outline{flex:1 1 auto;text-align:center;font-size:.82rem;padding:12px 14px;min-height:44px}.planner-more-toggle{flex:1 1 100%!important}.planner-day-macros{gap:2px}#planner-view .page-actions{flex-wrap:wrap;gap:6px;width:100%}#planner-view .page-actions .planner-range-select{min-height:40px;font-size:.82rem;padding:8px 12px;flex:0 0 auto}#planner-view .page-actions .planner-week-label{font-size:.88rem;font-weight:700;padding:2px 8px;white-space:nowrap;flex:1 1 auto;text-align:center}#planner-view .page-actions .btn-outline{padding:8px 14px;font-size:.82rem;min-height:36px}#planner-view .page-actions #btn-planner-today{font-weight:700}.planner-day.empty-day{min-height:0;padding:10px 16px;flex-direction:row;align-items:center;gap:10px;border-style:dashed;border-color:var(--border-light);opacity:.8}.planner-day.empty-day.past{opacity:.7}.planner-day.empty-day .planner-day-header{margin-bottom:0;padding-bottom:0;border-bottom:none;flex-shrink:0}.planner-day.empty-day .planner-day-header>div{gap:6px}.planner-day.empty-day .planner-meals{display:none}.planner-day.empty-day .planner-add-meal{margin-top:0;padding:4px 12px;font-size:.75rem;min-height:auto;border:0;flex-shrink:0;margin-left:auto}.planner-day.empty-day .planner-add-icon{width:18px;height:18px;font-size:.7rem}.planner-day.empty-day.today{opacity:1;border-style:solid}.macro-week-summary .macro-bar{flex-wrap:wrap;gap:3px}.macro-week-summary .macro-avg{font-size:.65rem}.form-group input,.form-group select,.form-group textarea{padding:12px 14px;font-size:.9rem;border-radius:var(--radius-md);min-height:44px}#item-expire-group .form-row{flex-direction:row;align-items:center;gap:6px}.form-row input[type=date]{-webkit-appearance:none;appearance:none;font-size:16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md)}.form-actions .btn-outline,.form-actions .btn-primary{min-height:44px;flex:1}.shop-item .shop-check{flex-shrink:0}.cook-now-actions .btn-sm{min-height:38px;padding:8px 14px}.filters-collapsible.open{display:block}.filter-bar::-webkit-scrollbar,.member-filter-bar::-webkit-scrollbar,.store-filter-bar::-webkit-scrollbar,.tab-bar::-webkit-scrollbar{display:none}.invite-row .btn-outline,.invite-row .btn-primary{width:100%;min-height:44px}.btn-outline,.btn-primary{min-height:44px;border-radius:var(--radius-md);font-size:.84rem;padding:10px 16px}.ing-item-actions .ing-cat-select,.ing-item-actions .ing-store-select,.ing-item-row .ing-macro-btn,.ing-item-row .ing-shelflife-btn{display:none}.ing-item-row .ing-all-group-btn{grid-column:3}.ing-item-row .ing-delete-btn{grid-column:4}.filter-bar,.items-grid,.member-filter-bar,.store-filter-bar{overflow-x:hidden;max-width:100vw}.filter-bar{overflow-x:auto}*,.filter-bar{-webkit-overflow-scrolling:touch}.comfort .sidebar-link{min-height:58px;padding:10px 2px 8px}.comfort .sidebar-icon{font-size:1.4rem}.comfort .sidebar-label{font-size:.72rem}.comfort .mobile-home-bar{min-height:52px;padding:10px 16px;padding-top:calc(env(safe-area-inset-top,0) + 10px)}.comfort .mobile-home-option{font-size:1rem;padding:14px 16px;min-height:48px}.comfort .mobile-user-btn{width:40px;height:40px;font-size:1.1rem}.comfort .page-container{padding:14px 16px 32px}.comfort .page-title{font-size:1.3rem}.comfort .page-subtitle{font-size:.9rem}.comfort .section-title{font-size:1rem}.comfort .action-card{padding:16px 12px;font-size:.9rem;min-height:48px}.comfort .action-icon{font-size:1.3rem}.comfort .ic-name{font-size:1rem}.comfort .ic-qty-badge{font-size:.82rem;padding:3px 10px}.comfort .ic-member-tag,.comfort .ic-store-tag{font-size:.72rem;padding:2px 8px}.comfort .qty-step{width:38px;height:38px;min-width:38px;min-height:38px;font-size:.95rem}.comfort .ic-select{width:24px;height:24px;min-width:24px;min-height:24px}.comfort .item-card{padding:14px 16px;min-height:52px}.comfort .recipe-card-title{font-size:.92rem}.comfort .recipe-card-desc{display:none}.comfort .recipe-card-footer .btn-cook,.comfort .recipe-card-footer .btn-edit-recipe{font-size:.82rem;padding:8px 10px;min-height:34px}.comfort .recipe-card-footer .btn-recipe-collect,.comfort .recipe-card-footer .btn-share-recipe{font-size:.95rem;padding:8px 10px;min-height:34px}.comfort .recipe-tag{font-size:.7rem;padding:3px 8px}.comfort .recipe-filter-pill{font-size:.85rem;padding:10px 16px;min-height:40px}.comfort .planner-day-date{font-size:1.15rem}.comfort .planner-day-label{font-size:.85rem}.comfort .planner-meal-name{font-size:.95rem}.comfort .planner-meal{padding:14px 16px}.comfort .planner-add-meal{padding:12px 16px;font-size:.9rem;min-height:48px}.comfort .meal-action,.comfort .modal-close{font-size:.88rem;min-width:40px;min-height:40px}.comfort .modal-close{width:40px;height:40px;font-size:1.4rem}.comfort .modal form,.comfort .modal-body,.comfort .settings-body{padding:18px 18px 28px}.comfort .form-group input,.comfort .form-group select,.comfort .form-group textarea{font-size:1rem;padding:14px 16px;min-height:48px;box-sizing:border-box;max-width:100%}.comfort .form-group label{font-size:.88rem;margin-bottom:6px}.comfort .form-group{margin-bottom:14px}.comfort .btn-xs{min-height:36px;padding:10px 14px;font-size:.8rem}.comfort .btn-cook,.comfort .btn-edit-recipe,.comfort .btn-recipe-collect,.comfort .btn-share-recipe{min-height:36px;padding:8px 10px}.comfort .btn-danger-text,.comfort .btn-ghost{min-height:48px}.comfort .filter-pill,.comfort .member-pill,.comfort .store-pill{padding:10px 16px;font-size:.82rem;min-height:40px}.comfort .tab{padding:12px 16px;font-size:.88rem;min-height:44px}.comfort .toggle-row{min-height:48px;padding:12px 0}.comfort .household-member-row{min-height:48px}.comfort .shop-store-name{font-size:.92rem}.comfort .shop-store-icon{font-size:1.6rem}.comfort .shop-store-count{font-size:.8rem}.comfort .shop-item{padding:10px 12px;gap:8px}.comfort .shop-item-name{font-size:.95rem}.comfort .shop-check{width:34px;height:34px;min-width:34px;font-size:1.1rem}.comfort .shop-qty-input{width:44px;min-height:34px;font-size:.84rem}.comfort .shop-unit-select{min-height:34px;font-size:.8rem}.comfort .shop-category-label{font-size:.82rem}.comfort .ing-item-name{font-size:.95rem}.comfort .ing-source-badge{font-size:.72rem;padding:3px 8px}.comfort .ing-cat-group-name{font-size:.92rem}.comfort .fab{width:62px;height:62px;font-size:1.5rem}.comfort #toast-container{bottom:calc(90px + env(safe-area-inset-bottom,0))}.comfort .bulk-bar .btn-bulk{min-height:40px;font-size:.85rem}}@media (max-width:480px){.planner-meal.meal-expanded .planner-meal-actions-row{opacity:1;height:auto;overflow:visible}.ing-suggestion-actions .btn-xs{min-height:34px;min-width:34px;padding:6px 10px}.recipe-card-footer .btn-cook,.recipe-card-footer .btn-edit-recipe{padding:10px 12px;font-size:.8rem}.recipe-card-footer .btn-recipe-collect,.recipe-card-footer .btn-share-recipe{padding:10px;font-size:.95rem}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;font-size:.88rem}.btn-outline,.btn-primary{padding:8px 12px;font-size:.82rem}.comfort .page-container{padding:12px 14px 28px}.comfort .page-title{font-size:1.2rem}.comfort .action-card{padding:14px 10px;font-size:.85rem;min-height:46px}.comfort .ic-name{font-size:.95rem}.comfort .qty-step{width:36px;height:36px;min-width:36px;min-height:36px}.comfort .item-card{padding:12px 14px;min-height:48px}.comfort .recipe-card-title{font-size:.98rem}.comfort .filter-pill,.comfort .member-pill,.comfort .store-pill{padding:8px 12px;font-size:.78rem;min-height:36px}.comfort .recipe-filter-pill{font-size:.8rem;padding:8px 14px;min-height:36px}.comfort .tab{padding:10px 14px;font-size:.84rem;min-height:40px}.comfort .form-group input,.comfort .form-group select,.comfort .form-group textarea{font-size:.95rem;padding:12px 14px;min-height:46px;box-sizing:border-box;max-width:100%}.comfort .modal form,.comfort .modal-body,.comfort .settings-body{padding:16px 16px 24px}.comfort .planner-day,.comfort .planner-meal{padding:12px 14px}.comfort .planner-meal-name{font-size:.9rem}.comfort .planner-add-meal{min-height:46px;font-size:.85rem}.comfort .shop-item-name{font-size:.92rem}.comfort .shop-check{width:24px;height:24px;min-width:24px}.comfort .ing-item-name{font-size:.9rem}}@media (max-width:768px){input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{min-height:44px}.comfort .qty-step{min-width:38px;min-height:38px;font-size:var(--text-md)}.comfort .ic-select{min-width:24px;min-height:24px}.comfort .shop-check{min-width:38px;min-height:38px;font-size:var(--text-xl)}.comfort .fab{width:62px;height:62px;font-size:var(--text-2xl)}.comfort .modal-close{min-width:40px;min-height:40px}.comfort input[type=email],.comfort input[type=number],.comfort input[type=password],.comfort input[type=text],.comfort select,.comfort textarea{min-height:48px;box-sizing:border-box;max-width:100%}}@media (min-width:769px){.notif-panel.notif-panel-sidebar{right:auto;left:72px}}.notif-panel-header h3{font-size:var(--text-base);font-weight:700;margin:0}.notif-item.unread .notif-item-msg{font-weight:600}.activity-item .notif-item-msg strong{color:var(--primary);font-weight:700}.ach-unlock-modal.tier-bronze{background:linear-gradient(145deg,#fdf2e6,wheat);border:2px solid #cd7f32;box-shadow:0 0 60px rgba(205,127,50,.4)}.ach-unlock-modal.tier-silver{background:linear-gradient(145deg,#f8f8f8,#d8d8d8);border:2px solid #a8a8a8;box-shadow:0 0 60px rgba(168,168,168,.4)}.ach-unlock-modal.tier-gold{background:linear-gradient(145deg,#fffbe6,gold);border:2px solid #daa520;box-shadow:0 0 80px rgba(255,215,0,.5)}html.dark .ach-unlock-modal.tier-bronze{background:linear-gradient(145deg,#3a2c1a,#4d3a22);color:wheat}html.dark .ach-unlock-modal.tier-silver{background:linear-gradient(145deg,#2a2a2a,#3a3a3a);color:#d8d8d8}html.dark .ach-unlock-modal.tier-gold{background:linear-gradient(145deg,#3a3520,#4d4428);color:gold}.ach-unlock-tier.tier-bronze{background:rgba(205,127,50,.2);color:#a0642a}.ach-unlock-tier.tier-silver{background:rgba(168,168,168,.2);color:#666}.ach-unlock-tier.tier-gold{background:rgba(255,215,0,.2);color:#b8860b}.dark .ach-unlock-tier.tier-silver{color:#ccc}.dark .ach-unlock-tier.tier-gold{color:gold}.dark .ach-unlock-tier.tier-special{color:#d1c4e9}.ach-unlock-actions button{padding:10px 20px;border-radius:12px;font-weight:600;font-size:.9rem;cursor:pointer;border:0;transition:transform .15s}.ach-unlock-actions button:active{transform:scale(.95)}html.dark .ach-unlock-close{background:rgba(255,255,255,.1)}@media (max-width:600px){.onboarding-day-picker{justify-content:center}}@media (prefers-color-scheme:dark){html:not(.dark):not(.light){--bg:#1a1a2e;--bg-card:#212740;--bg-hover:#1f2b47;--text:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#2d3748;--border-light:#1e293b;--primary-light:#1a3a2e;--accent-light:#2e1a10;--success-bg:#0a2e1a;--warning-bg:#2e2a0a;--danger-bg:#2e0a0a;--info-bg:#0a1a2e}}html.dark .use-it-banner{background:linear-gradient(135deg,#2e2a0a 0,rgba(217,119,6,.08) 100%);border-color:rgba(217,119,6,.3)}html.dark .use-it-header{color:#fbbf24}html.dark .expiring-pill{background:var(--bg);border-color:#92400e;color:#fbbf24}@media (min-width:601px) and (max-width:1024px){.page-header .btn-scan{flex-shrink:0}}.chip-instock.chip-instock{background:var(--success-bg);color:var(--success)}.recipe-pantry-pill.recipe-pantry-pill{border-color:var(--success)}.recipe-pantry-pill.recipe-pantry-pill.active{background:var(--success);color:#fff}.cm-ing-highlight.cm-ing-used{text-decoration:line-through;opacity:.45;color:#999;border-bottom-color:transparent}.cm-summary-title{font-size:1.5rem;font-weight:700;color:#fff;margin:0 0 20px}@media (max-width:768px) and (orientation:landscape){#toast-container,.undo-toast{bottom:calc(60px + env(safe-area-inset-bottom,0))}}@media (max-width:768px){.form-group input:focus,.form-group select:focus,.form-group textarea:focus{scroll-margin-bottom:120px}.planner-drawer-item[draggable],.planner-meal[draggable]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.planner-meal[draggable]:active{background:var(--primary-light);transition:background .3s}.planner-drawer-item.touch-selected{border-color:var(--primary)!important;background:var(--primary-light);box-shadow:0 0 0 2px var(--primary)}}@media (max-width:360px){.ic-action.delete-btn{width:28px;height:28px;min-width:28px;min-height:28px}.form-group input,.form-group select,.form-group textarea{padding:10px;font-size:.86rem}.btn-outline,.btn-primary{padding:8px 10px;font-size:.8rem}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (hover:hover) and (min-width:769px){.action-card,.recipe-card,.stat-card,.suggestion-card{perspective:800px;transform-style:preserve-3d}}@supports (-webkit-overflow-scrolling:touch){.items-grid,.modal form,.modal-body,.recipe-grid,.settings-body,.view.active{-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}}@media (max-width:768px){.modal-body,.settings-body,.view.active{overscroll-behavior-y:auto}.sidebar-search-bar{display:none!important}#insights-view .page-actions{width:auto;margin-left:auto}}@media (prefers-reduced-motion:reduce){.fab-voice-active,.ptr-indicator.refreshing .ptr-icon,.skeleton::after,.spinner,.stagger-in,body.syncing::after{animation:none!important}.stagger-in{opacity:1!important}.micro-burst-particle{display:none!important}}.stagger-in{opacity:0;animation:staggerFadeIn .3s ease forwards;animation-delay:calc(var(--stagger-i, 0)*30ms)}.modal-overlay.open .modal{animation:modalSpringIn .35s cubic-bezier(.34,1.56,.64,1) forwards}.shop-item.checked .shop-item-label{background:linear-gradient(to right,currentColor 100%,transparent 0) no-repeat left center;background-size:100% 1.5px;animation:strikeThrough .3s ease forwards}.micro-burst-particle{position:fixed;width:6px;height:6px;border-radius:50%;pointer-events:none;z-index:9999;animation:burstParticle .6s cubic-bezier(.22,1,.36,1) forwards}.section-title,h2,h3{letter-spacing:.3px}.admin-stat-value,.ch-progress,.cm-timer-display,.ing-stat-value,.insight-activity-num,.macro-item,.shop-pct,.shop-progress-text,.stat-value,.tc-stat-value,.ws-stat-value{font-variant-numeric:tabular-nums}.admin-recipe-desc,.notif-item-msg,.page-subtitle,.plan-card-desc,.recipe-card-desc,.settings-desc,.sug-desc{font-weight:400;color:var(--text-muted)}.ing-qty,.promo-code-input,.shop-price-input,.shop-qty-input,.tc-stat-value,.trip-items-table td:nth-child(3){font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn-cook,.btn-edit-recipe,.btn-lg,.btn-outline,.btn-primary,.btn-recipe-collect,.btn-share-recipe,.btn-sm{font-weight:500}.card-grid,.recipe-group-header,.section{margin-bottom:24px}html.dark .fab,html.dark .toast{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(30,41,59,.85)}html.dark .gs-item.selected,html.dark .gs-item:hover{background:rgba(255,255,255,.08)}.gs-item-label mark{background:rgba(var(--primary-rgb),.2);color:var(--primary);border-radius:2px;padding:0 1px}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.gs-empty p{margin:4px 0;font-size:.88rem}.mobile-search-btn{display:none}.ai-thinking-overlay.open{opacity:1}.ai-think-step.done{color:var(--success);opacity:.7}.ch-header .section-title{margin:0;font-size:.95rem}.ch-done .ch-bar{background:linear-gradient(90deg,#10b981,#34d399)}.ch-done .ch-progress{color:#10b981}.mi-check-svg{width:22px;height:22px;flex-shrink:0;display:block}.toggle-input:active+.toggle-slider::after{width:22px}@media (prefers-reduced-motion:reduce){.mi-added,.mi-check-svg .mi-check-mark,.mi-counter-inner,.mi-drag-lift,.mi-drop-bounce,.mi-press,.mi-removed,.mi-tilt,.tab-bar .tab-indicator,.toggle-slider::after{animation:none!important;transition:none!important}}.gs-recent-remove:focus,.gs-recent-remove:hover{opacity:1;color:var(--danger)}.account-public-profile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg, 16px);padding:20px;margin-bottom:16px}.account-public-profile .section-title{margin-bottom:4px}.account-public-profile .settings-desc{margin-bottom:0}.acct-avatar,.acct-profile{display:flex;align-items:center}.acct-profile{gap:16px;padding:20px;background:var(--card-bg);border-radius:var(--radius-lg, 16px);border:1px solid var(--border);margin-bottom:16px}.acct-avatar{font-size:3rem;width:64px;height:64px;justify-content:center;background:var(--bg-secondary, #f0f0f0);border-radius:50%;flex-shrink:0}.acct-info{min-width:0}.acct-name{font-size:1.25rem;font-weight:700;color:var(--text);line-height:1.3}.acct-email{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.acct-joined{font-size:.78rem;color:var(--text-tertiary, var(--text-secondary));margin-top:4px}.acct-sub{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--radius-lg, 16px);margin-bottom:16px;flex-wrap:wrap}.acct-sub-free{background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border)}.acct-sub-pro{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b}.acct-sub-badge{font-weight:700;font-size:.9rem;white-space:nowrap}.acct-sub-label{font-size:.82rem;color:var(--text-secondary);flex:1;min-width:120px}.acct-upgrade-btn{margin-left:auto}.acct-streak-card{display:flex;align-items:center;gap:10px;padding:14px 18px;background:linear-gradient(135deg,#fef3c7,#fed7aa);border-radius:var(--radius-lg, 16px);margin-bottom:16px;font-weight:600}.acct-action-btn:hover,.acct-streak-empty{background:var(--bg-secondary, #f5f5f5)}.acct-streak-fire{font-size:1.5rem}.acct-streak-count{font-size:.95rem;color:var(--text)}.acct-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px;margin-bottom:16px}.acct-stat{display:flex;flex-direction:column;align-items:center;padding:16px 12px;background:var(--card-bg);border-radius:var(--radius-lg, 16px);border:1px solid var(--border);text-align:center}.acct-stat-num{font-size:1.5rem;font-weight:800;color:var(--primary);line-height:1.2}.acct-stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.acct-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.acct-action-btn{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg, 16px);font-size:.9rem;font-weight:500;color:var(--text);cursor:pointer;transition:background .15s;width:100%;text-align:left}.acct-action-btn:active{transform:scale(.98)}.acct-action-logout{color:var(--danger, #ef4444)}.sidebar-user{cursor:pointer;transition:background .15s;border-radius:10px}.sidebar-user:hover{background:var(--bg-secondary, rgba(0,0,0,0.05))}[data-theme=dark] .acct-streak-card,html.dark .acct-streak-card{background:linear-gradient(135deg,#78350f,#92400e)}[data-theme=dark] .acct-streak-empty,html.dark .acct-streak-empty{background:var(--bg-card)}[data-theme=dark] .acct-sub-pro,html.dark .acct-sub-pro{background:linear-gradient(135deg,#78350f,#92400e);border-color:#b45309}[data-theme=dark] .acct-action-btn:hover,html.dark .acct-action-btn:hover{background:var(--bg-tertiary, rgba(255,255,255,0.05))}