:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--page-bg:#f5f6fa;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--page-bg:#0d0e14;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:100%;max-width:1200px;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app{flex-direction:column;min-height:100svh;display:flex}.app-header{background:linear-gradient(135deg,#1a0533 0%,#3b0764 55%,#5a1da0 100%);padding:28px 40px}@media (width<=768px){.app-header{padding:20px}}.app-header__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.app-header__brand{align-items:center;gap:16px;display:flex}.app-header__icon{filter:drop-shadow(0 2px 10px #0006);flex-shrink:0;font-size:44px;line-height:1}.app-header__title{letter-spacing:-.5px;color:#fff;margin:0 0 4px;font-size:28px;font-weight:700}@media (width<=480px){.app-header__title{font-size:22px}}.app-header__subtitle{color:#ffffff9e;margin:0;font-size:14px}.profile-toggle-btn{color:#ffffffe6;cursor:pointer;font-size:14px;font-weight:500;font-family:var(--sans);white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff38;border-radius:22px;flex-shrink:0;align-items:center;gap:8px;padding:6px 14px 6px 8px;transition:background .2s,border-color .2s;display:flex}.profile-toggle-btn:hover{background:#fff3;border-color:#ffffff61}--active.profile-toggle-btn{background:#ffffff40;border-color:#ffffff80}.app-main{background:var(--page-bg);flex-direction:column;flex:1;gap:48px;padding:40px 32px 64px;display:flex}@media (width<=768px){.app-main{gap:36px;padding:24px 16px 48px}}.profile-panel{background:var(--bg);border:1px solid var(--border);width:100%;max-width:560px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:18px;margin:0 auto;padding:28px 32px;animation:.2s slideDown;display:flex}@media (width<=768px){.profile-panel{padding:20px}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.profile-panel__header{justify-content:space-between;align-items:center;display:flex}.profile-panel__title{color:var(--text-h);margin:0;font-size:17px;font-weight:600}.profile-panel__desc{color:var(--text);margin:-6px 0 0;font-size:13px}.profile-close-btn{color:var(--text);cursor:pointer;font-size:16px;line-height:1;font-family:var(--sans);background:0 0;border:none;border-radius:6px;padding:4px 8px;transition:background .15s}.profile-close-btn:hover{background:var(--border)}.profile-panel__actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.save-profile-btn{background:var(--accent);color:#fff;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:10px;padding:10px 20px;transition:opacity .2s}.save-profile-btn:hover{opacity:.85}.save-profile-btn:active{opacity:.75}.profile-signout-btn{color:var(--text);font-size:13px;font-family:var(--sans);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px 0;text-decoration:underline;transition:color .15s}.profile-signout-btn:hover{color:#dc2626}.form-section{width:100%;max-width:560px;margin:0 auto}.form-card{background:var(--bg);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:20px;padding:32px;display:flex;box-shadow:0 2px 16px #0000000f}@media (width<=768px){.form-card{border-radius:12px;padding:20px}}.form-group{text-align:left;flex-direction:column;gap:8px;display:flex}label{color:var(--text-h);letter-spacing:.01em;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.label-icon{font-size:15px}.label-optional{color:var(--text);margin-left:2px;font-size:13px;font-weight:400}.pantry-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.pantry-label-row label{flex:1;min-width:0}.scan-btn{background:var(--accent-bg);border:1.5px solid var(--accent-border);color:var(--accent);font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:8px;flex-shrink:0;align-items:center;gap:5px;padding:7px 12px;transition:background .2s,opacity .2s;display:inline-flex}.scan-btn:hover:not(:disabled){background:#aa3bff26}.scan-btn:disabled{opacity:.55;cursor:not-allowed}.scan-spinner{border:2px solid var(--accent-border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.7s linear infinite spin}.scan-success{color:#16a34a;margin:0;font-size:13px}@media (prefers-color-scheme:dark){.scan-success{color:#4ade80}}.scan-error{color:#dc2626;margin:0;font-size:13px}@media (prefers-color-scheme:dark){.scan-error{color:#fca5a5}}.input-wrap--prefix{background:var(--bg);border:1.5px solid var(--border);border-radius:9px;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.input-wrap--prefix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-border)}.input-wrap--prefix .input-prefix{color:var(--text);-webkit-user-select:none;user-select:none;padding:0 10px 0 14px;font-size:16px}.input-wrap--prefix input{color:var(--text-h);font-size:15px;font-family:var(--sans);background:0 0;border:none;outline:none;flex:1;padding:11px 12px 11px 0}input[type=text],input[type=number],textarea{font-family:var(--sans);color:var(--text-h);background:var(--bg);border:1.5px solid var(--border);box-sizing:border-box;resize:vertical;border-radius:9px;width:100%;padding:11px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}:is(input[type=text],input[type=number],textarea)::placeholder{color:var(--text);opacity:.65}:is(input[type=text],input[type=number],textarea):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-border);outline:none}:is(input[type=text],input[type=number],textarea):disabled{opacity:.5;cursor:not-allowed}.input-wrap--prefix input{box-shadow:none;border:none;padding:11px 12px 11px 0}.input-wrap--prefix input:focus{box-shadow:none}.error-banner{color:#dc2626;text-align:left;background:#ef444414;border:1px solid #ef44444d;border-radius:9px;margin:0;padding:11px 14px;font-size:14px}@media (prefers-color-scheme:dark){.error-banner{color:#fca5a5;background:#ef444426}}.generate-btn{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;font-size:16px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:11px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:14px 24px;transition:opacity .2s,transform .15s,box-shadow .2s;display:flex;box-shadow:0 4px 14px #aa3bff59}.generate-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #aa3bff73}.generate-btn:active:not(:disabled){transform:scale(.98)translateY(0);box-shadow:0 2px 8px #aa3bff4d}.generate-btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none;transform:none}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.step-flow{overflow:hidden}@keyframes stepSlideInRight{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:translate(0)}}@keyframes stepSlideInLeft{0%{opacity:0;transform:translate(-48px)}to{opacity:1;transform:translate(0)}}.step-card{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:28px;box-shadow:0 1px 4px #0000000f,0 4px 16px #0000000f}@media (width<=768px){.step-card{border-radius:12px;padding:20px}}--forward.step-card{animation:.28s cubic-bezier(.25,.46,.45,.94) both stepSlideInRight}--backward.step-card{animation:.28s cubic-bezier(.25,.46,.45,.94) both stepSlideInLeft}.step-progress{align-items:center;gap:12px;margin-bottom:22px;display:flex}.step-track{flex:1;gap:5px;display:flex}.step-seg{background:var(--border);border-radius:2px;flex:1;height:4px;transition:background .35s}--active.step-seg{background:var(--accent)}--done.step-seg{background:var(--accent);opacity:.45}.step-label{color:var(--text);white-space:nowrap;letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:600}.step-heading{color:var(--text-h);letter-spacing:-.01em;margin:0 0 6px;font-size:20px;font-weight:700}.step-subheading{color:var(--text);margin:0 0 22px;font-size:14px;line-height:1.5}.step-card--budget{flex-direction:column;min-height:520px;display:flex}.budget-hero{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:36px;padding:8px 0 4px;display:flex}.budget-heading{text-align:center;margin:0}.budget-display{flex-direction:column;align-items:center;gap:4px;line-height:1;display:flex}.budget-amount{letter-spacing:-4px;color:var(--accent);font-size:96px;font-weight:300;font-family:var(--heading);line-height:1;transition:color .15s}@media (width<=480px){.budget-amount{font-size:72px}}.budget-per-week{color:var(--text);letter-spacing:.05em;text-transform:uppercase;opacity:.7;font-size:14px;font-weight:500}.budget-slider-wrap{flex-direction:column;gap:12px;width:100%;display:flex}.budget-slider{appearance:none;background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--pct,20%), var(--border) var(--pct,20%), var(--border) 100%);cursor:pointer;border-radius:4px;outline:none;width:100%;height:8px;transition:opacity .15s}.budget-slider:disabled{opacity:.45;cursor:not-allowed}.budget-slider::-webkit-slider-thumb{appearance:none;border:3px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:28px;height:28px;transition:box-shadow .15s,transform .1s;box-shadow:0 2px 8px #7c3aed59}.budget-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 3px 12px #7c3aed80}.budget-slider::-moz-range-thumb{border:3px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 8px #7c3aed59}.budget-labels{color:var(--text);opacity:.65;letter-spacing:.03em;justify-content:space-between;font-size:11px;font-weight:500;display:flex}.budget-helper{color:var(--text);opacity:.65;text-align:center;margin:0;font-size:13px}.step-nav{gap:10px;margin-top:24px;display:flex}.step-back-btn{border:1.5px solid var(--border);color:var(--text);font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;padding:12px 18px;transition:background .15s,color .15s,border-color .15s}.step-back-btn:hover:not(:disabled){background:var(--code-bg);color:var(--text-h);border-color:var(--accent-border)}.step-back-btn:disabled{opacity:.4;cursor:not-allowed}.step-next-btn{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;font-size:15px;font-weight:700;font-family:var(--sans);cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:13px 24px;transition:opacity .2s,transform .15s,box-shadow .2s;display:flex;box-shadow:0 4px 14px #aa3bff4d}.step-next-btn:hover:not(:disabled){opacity:.91;transform:translateY(-1px);box-shadow:0 6px 18px #aa3bff66}.step-next-btn:active:not(:disabled){transform:scale(.98)translateY(0)}.step-next-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.step-goals-input{box-sizing:border-box;width:100%;margin-top:14px;display:block}.step-or-divider{color:var(--text);align-items:center;gap:12px;margin:18px 0 14px;font-size:13px;font-weight:500;display:flex}.step-or-divider:before,.step-or-divider:after{content:"";background:var(--border);flex:1;height:1px}.step4-options{border:1px solid var(--border);background:var(--code-bg);border-radius:12px;flex-direction:column;gap:20px;margin-bottom:4px;padding:18px;display:flex;position:relative}.step4-options--locked .step4-body{filter:blur(3px);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.55}.step4-lock-overlay{z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-align:center;background:#0a0519b8;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px 20px;display:flex;position:absolute;inset:0}.step4-lock-icon{font-size:22px}.step4-lock-msg{color:#fff;max-width:220px;margin:0;font-size:13px;font-weight:600;line-height:1.45}.step4-lock-btn{color:#fff;font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:8px;margin-top:2px;padding:8px 18px;transition:opacity .2s,transform .15s}.step4-lock-btn:hover{opacity:.9;transform:translateY(-1px)}.step4-body{flex-direction:column;gap:18px;display:flex}.step-option-group{flex-direction:column;gap:9px;display:flex}.step-option-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text);margin:0;font-size:11px;font-weight:700}.option-grid{flex-wrap:wrap;gap:6px;display:flex}.option-grid--days .option-pill{flex:1;min-width:60px}.option-grid--week .option-pill{flex:1;min-width:44px;padding:8px 6px;font-size:12px}.option-pill{background:var(--bg);border:1.5px solid var(--border);color:var(--text-h);font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;text-align:center;border-radius:8px;padding:8px 14px;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s}.option-pill:hover:not(:disabled):not(.option-pill--selected){background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.option-pill--selected{color:#fff;background:#7c3aed;border-color:#7c3aed;font-weight:700;transform:scale(1.05);box-shadow:0 2px 10px #7c3aed59}.option-pill:disabled{cursor:not-allowed}.custom-meals-row{flex-wrap:wrap;gap:7px;margin-top:6px;display:flex}.custom-meal-check{background:var(--bg);border:1.5px solid var(--border);color:var(--text-h);font-size:13px;font-weight:500;font-family:var(--sans);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s;display:flex}.custom-meal-check input[type=checkbox]{width:auto;box-shadow:none;accent-color:var(--accent);cursor:pointer;background:0 0;border:none;margin:0;padding:0}.custom-meal-check--on{color:#fff;background:#7c3aed;border-color:#7c3aed;font-weight:700;transform:scale(1.05);box-shadow:0 2px 10px #7c3aed59}.custom-meal-check--on input[type=checkbox]{accent-color:#fff}.results-section{width:100%}.results-title{text-align:center;color:var(--text-h);margin:0 0 24px;font-size:22px;font-weight:600}@media (width<=768px){.results-title{margin-bottom:16px;font-size:18px}}.cards-grid{grid-template-columns:repeat(5,1fr);align-items:start;gap:14px;display:grid}@media (width<=1100px){.cards-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=700px){.cards-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.cards-grid{grid-template-columns:1fr}}.meal-card{border:1px solid var(--border);background:var(--bg);border-radius:14px;flex-direction:column;transition:box-shadow .25s,transform .25s,border-color .3s;display:flex;position:relative;box-shadow:0 2px 8px #0000000f}.meal-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}--loading.meal-card .meal-card__header{opacity:.6}--swapped.meal-card{border-color:#22c55e59}.meal-card__header{background:linear-gradient(135deg, var(--accent-bg) 0%, #aa3bff0a 100%);border-bottom:1px solid var(--border);border-radius:13px 13px 0 0;justify-content:space-between;align-items:center;gap:6px;padding:12px 14px;display:flex}.meal-card__header-left{align-items:center;gap:8px;min-width:0;display:flex}.meal-card__header-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.day-name{color:var(--text-h);letter-spacing:-.1px;font-size:14px;font-weight:700}.swapped-badge{color:#16a34a;letter-spacing:.06em;text-transform:uppercase;background:#22c55e1a;border:1px solid #22c55e47;border-radius:4px;align-items:center;padding:2px 5px;font-size:9px;font-weight:700;display:inline-flex}@media (prefers-color-scheme:dark){.swapped-badge{color:#4ade80;background:#4ade801a;border-color:#4ade8038}}.undo-btn{color:var(--text);cursor:pointer;font-size:11px;font-family:var(--sans);white-space:nowrap;background:0 0;border:none;border-radius:5px;padding:3px 6px;font-weight:500;transition:background .15s,color .15s}.undo-btn:hover{background:var(--border);color:var(--text-h)}.swap-btn{background:var(--accent-bg);border:1px solid var(--accent-border);width:26px;height:26px;color:var(--accent);cursor:pointer;font-size:13px;font-family:var(--sans);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:flex}.swap-btn:hover:not(:disabled){background:#aa3bff33}.swap-btn:disabled{opacity:.45;cursor:not-allowed}--locked.swap-btn{background:var(--code-bg);border-color:var(--border);color:var(--text);font-size:11px}--locked.swap-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.swap-spinner{border:1.5px solid var(--accent-border);border-top-color:var(--accent);border-radius:50%;width:11px;height:11px;animation:.7s linear infinite spin}.meal-card__body{flex-direction:column;padding:0;display:flex}.skeleton{flex-direction:column;gap:8px;padding:16px;display:flex}.skeleton__line{background:linear-gradient(90deg, var(--border) 25%, var(--code-bg) 50%, var(--border) 75%);background-size:200% 100%;border-radius:6px;height:13px;animation:1.4s infinite shimmer}--short.skeleton__line{width:65%}--xs.skeleton__line{width:40%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.meal-sections{flex-direction:column;display:flex}@keyframes swapIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.meal-sections--new{animation:.35s swapIn}.meal-section{flex-direction:column;gap:6px;padding:14px 16px;display:flex}.meal-section+.meal-section{border-top:1px solid var(--border)}.meal-section__type{align-items:center;gap:5px;display:flex}.meal-section__icon{font-size:13px;line-height:1}.meal-section__label{text-transform:uppercase;letter-spacing:.09em;color:var(--text);font-size:10px;font-weight:700}.meal-section--breakfast .meal-section__label{color:#d97706}.meal-section--lunch .meal-section__label{color:#16a34a}.meal-section--dinner .meal-section__label{color:#7c3aed}@media (prefers-color-scheme:dark){.meal-section--breakfast .meal-section__label{color:#fbbf24}.meal-section--lunch .meal-section__label{color:#4ade80}.meal-section--dinner .meal-section__label{color:#a78bfa}}.meal-section__name{color:var(--text-h);text-align:left;margin:0;font-size:13px;font-weight:600;line-height:1.4}.meal-section__actions{align-items:center;gap:6px;margin-top:2px;display:flex}.recipe-btn{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);font-size:11px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:5px;min-width:0;padding:6px 10px;transition:background .15s;display:inline-flex}.recipe-btn:hover{background:#aa3bff29}.yt-btn{border:1px solid var(--border);color:red;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.yt-btn:hover{background:#ff000014;border-color:#ff000059}.swap-icon-btn{border:1px solid var(--border);width:30px;height:30px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex}.swap-icon-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.swap-icon-btn:disabled{opacity:.38;cursor:not-allowed}.meal-cost{border-top:1px solid var(--border);color:var(--accent);text-align:left;background:var(--accent-bg);border-radius:0 0 13px 13px;padding:10px 16px;font-size:13px;font-weight:600}.grocery-section{width:100%;max-width:1100px;margin:0 auto}.grocery-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.grocery-title{color:var(--text-h);text-align:left;margin:0;font-size:22px;font-weight:600}.day-wrapper{position:relative}.day-wrapper--locked .meal-card{filter:blur(5px);pointer-events:none;-webkit-user-select:none;user-select:none}.day-lock-overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0519b3;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px 16px;display:flex;position:absolute;inset:0}.day-lock-overlay__icon{font-size:26px}.day-lock-overlay__msg{color:#fff;text-align:center;margin:0;font-size:13px;font-weight:600;line-height:1.4}.day-lock-overlay__btn{color:#fff;font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:8px;margin-top:2px;padding:8px 18px;transition:opacity .2s,transform .15s}.day-lock-overlay__btn:hover{opacity:.9;transform:translateY(-1px)}.day-lock-overlay__btn:active{transform:scale(.97)}.grocery-progress{margin-bottom:14px}.grocery-progress__bar{background:var(--border);border-radius:3px;height:6px;margin-bottom:7px;overflow:hidden}.grocery-progress__fill{background:linear-gradient(90deg, var(--accent) 0%, #7c3aed 100%);border-radius:3px;height:100%;transition:width .35s}.grocery-progress__label{color:var(--accent);font-size:13px;font-weight:600}.grocery-controls{gap:8px;margin-bottom:16px;display:flex}.grocery-ctrl-btn{background:var(--code-bg);border:1px solid var(--border);color:var(--text-h);font-size:13px;font-weight:500;font-family:var(--sans);cursor:pointer;border-radius:7px;padding:6px 12px;transition:background .15s}.grocery-ctrl-btn:hover:not(:disabled){background:var(--border)}.grocery-ctrl-btn:disabled{opacity:.35;cursor:not-allowed}.grocery-days{border:1px solid var(--border);border-radius:12px;flex-direction:column;margin-bottom:4px;display:flex;overflow:hidden}.grocery-day{border-bottom:1px solid var(--border);align-items:flex-start;display:flex}.grocery-day:last-child{border-bottom:none}.grocery-day__label{text-transform:uppercase;letter-spacing:.09em;width:88px;min-width:88px;color:var(--accent);background:var(--accent-bg);border-right:1px solid var(--border);align-self:stretch;align-items:center;padding:12px 10px 12px 14px;font-size:10px;font-weight:700;display:flex}@media (width<=480px){.grocery-day__label{width:68px;min-width:68px;font-size:9px}}.grocery-day__items{flex-wrap:wrap;flex:1;gap:6px;padding:10px 12px;display:flex}@media (width<=600px){.grocery-day__items{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.grocery-day__items::-webkit-scrollbar{display:none}}.grocery-day--locked{opacity:.85;border-bottom-color:#aa3bff26}.grocery-day-lock{flex-wrap:wrap;flex:1;align-items:center;gap:10px;padding:11px 14px;display:flex}.grocery-day-lock__text{color:var(--text);flex:1;min-width:0;font-size:12px;font-weight:500}.grocery-day-lock__btn{color:#fff;font-size:12px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:7px;padding:5px 13px;transition:opacity .2s,transform .15s}.grocery-day-lock__btn:hover{opacity:.9;transform:translateY(-1px)}.grocery-chip{background:var(--bg);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:5px;padding:5px 7px;font-size:13px;transition:background .15s,border-color .15s;display:inline-flex}.grocery-chip:hover{border-color:var(--accent-border);background:var(--accent-bg)}--checked.grocery-chip{opacity:.45;background:var(--code-bg)}--checked.grocery-chip .grocery-chip__name{text-decoration:line-through}--pantry.grocery-chip{opacity:.75;background:#22c55e0a;border-color:#22c55e4d}--new.grocery-chip{border-color:#f9731652}.grocery-chip__cb{cursor:pointer;width:13px;height:13px;accent-color:var(--accent);flex-shrink:0}.grocery-chip__name{color:var(--text-h);font-size:13px;font-weight:500}.grocery-chip__owned{color:#16a34a;flex-shrink:0;font-size:11px;font-weight:700}@media (prefers-color-scheme:dark){.grocery-chip__owned{color:#4ade80}}.grocery-chip__links{flex-shrink:0;gap:2px;margin-left:2px;display:flex}.chip-shop-btn{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;text-decoration:none;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.chip-shop-btn svg{flex-shrink:0;display:block}.chip-shop-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);opacity:.85}.grocery-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (width<=480px){.grocery-list{grid-template-columns:1fr}}.grocery-item{background:var(--bg);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:10px 12px;transition:box-shadow .2s,border-color .2s,opacity .2s;display:flex}.grocery-item:hover{border-color:var(--accent-border);box-shadow:0 3px 10px #0000000f}--new.grocery-item{background:#f9731608;border-color:#f9731652}--new.grocery-item:hover{border-color:#f9731680}--checked.grocery-item{background:var(--code-bg);border-color:var(--border)}--checked.grocery-item:hover{box-shadow:none;border-color:var(--border)}--checked.grocery-item .grocery-item__name{color:var(--text);opacity:.5;text-decoration:line-through}--checked.grocery-item .new-badge{opacity:.4}.grocery-item__label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.grocery-item__checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.new-badge{color:#ea580c;letter-spacing:.06em;text-transform:uppercase;background:#f973161a;border:1px solid #f9731647;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 5px;font-size:9px;font-weight:700;display:inline-flex}@media (prefers-color-scheme:dark){.new-badge{color:#fb923c;background:#fb923c1a;border-color:#fb923c40}}.grocery-item__name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.grocery-item__links{flex-shrink:0;gap:6px;display:flex}.shop-link{letter-spacing:.01em;border-radius:5px;padding:4px 9px;font-size:11px;font-weight:700;text-decoration:none;transition:opacity .15s,transform .1s}.shop-link:hover{opacity:.82;transform:scale(1.04)}.shop-link--walmart{color:#fff;background:#0071dc}.shop-link--amazon{color:#111;background:#f90}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000085;justify-content:center;align-items:center;padding:16px;animation:.18s backdropIn;display:flex;position:fixed;inset:0}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg);border-radius:20px;width:100%;max-width:560px;max-height:88vh;animation:.2s modalIn;overflow-y:auto;box-shadow:0 24px 64px #00000047}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal__header{border-bottom:1px solid var(--border);background:var(--bg);z-index:1;border-radius:20px 20px 0 0;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 18px;display:flex;position:sticky;top:0}.modal__eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:4px;font-size:11px;font-weight:700;display:block}.modal__title{color:var(--text-h);letter-spacing:-.3px;margin:0;font-size:20px;font-weight:700;line-height:1.25}.modal__close{background:var(--code-bg);cursor:pointer;width:32px;height:32px;color:var(--text-h);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:14px;transition:background .15s;display:flex}.modal__close:hover{background:var(--accent);color:#fff}.modal__body{flex-direction:column;gap:22px;padding:20px 24px 28px;display:flex}.modal__loading{color:var(--text);align-items:center;gap:12px;padding:20px 0;font-size:15px;display:flex}.modal__meta{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:12px;flex-wrap:wrap;gap:20px;padding:14px 18px;display:flex}.modal__meta-item{flex-direction:column;gap:2px;display:flex}.modal__meta-label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:10px;font-weight:700}.modal__meta-value{color:var(--text-h);font-size:16px;font-weight:700}.modal__section-title{color:var(--text-h);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:14px;font-weight:700}.modal__ingredient-list{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.modal__ingredient{color:var(--text);text-align:left;align-items:center;gap:8px;font-size:14px;line-height:1.45;display:flex}.modal__ingredient:before{content:"•";color:var(--border);flex-shrink:0;align-self:flex-start;margin-top:3px;font-weight:700}--pantry.modal__ingredient{color:var(--text-h);font-weight:500}--pantry.modal__ingredient:before{color:#16a34a}@media (prefers-color-scheme:dark){--pantry.modal__ingredient:before{color:#4ade80}}.modal__ingredient-text{flex:1}.ing-shop-btns{flex-shrink:0;gap:4px;display:flex}.ing-shop-btn{background:var(--code-bg);border:1px solid var(--border);border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;text-decoration:none;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.ing-shop-btn svg{flex-shrink:0;display:block}.ing-shop-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.modal__shop-all{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:16px;display:flex}.modal__shop-all__label{color:var(--text-h);margin:0;font-size:14px;font-weight:600}.modal-link--walmart{color:#fff;background:#0071dc}.modal-link--amazon{color:#111;background:#f90}.modal__instruction-list{counter-reset:steps;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.modal__instruction-list li{color:var(--text);text-align:left;counter-increment:steps;gap:12px;font-size:14px;line-height:1.55;display:flex}.modal__instruction-list li:before{content:counter(steps);background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;margin-top:1px;font-size:12px;font-weight:700;display:flex}.modal__links{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.modal-link{border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;min-width:140px;padding:11px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .15s,transform .12s;display:inline-flex}.modal-link:hover{opacity:.86;transform:translateY(-1px)}.modal-link:active{transform:scale(.97)}.modal-link--google{color:#fff;background:#4285f4}.modal-link--youtube{color:#fff;background:red}.landing{background:linear-gradient(150deg,#0f0220 0%,#2d0554 45%,#4a1490 75%,#1a0533 100%);justify-content:center;align-items:center;min-height:100svh;padding:40px 24px;display:flex}.landing__content{text-align:center;flex-direction:column;align-items:center;gap:0;width:100%;max-width:480px;display:flex}.landing__logo{filter:drop-shadow(0 4px 24px #aa3bff99);margin-bottom:20px;font-size:72px;line-height:1}.landing__name{color:#fff;letter-spacing:-2px;margin:0 0 16px;font-size:56px;font-weight:800;line-height:1}@media (width<=480px){.landing__name{font-size:42px}}.landing__tagline{color:#ffffffa6;margin:0 0 36px;font-size:18px;line-height:1.5}@media (width<=480px){.landing__tagline{font-size:16px}}.landing__cta{color:#fff;font-size:18px;font-weight:700;font-family:var(--sans);cursor:pointer;letter-spacing:-.2px;background:linear-gradient(135deg,#aa3bff 0%,#7c3aed 100%);border:none;border-radius:14px;margin-bottom:44px;padding:16px 40px;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 6px 28px #aa3bff80}.landing__cta:hover{opacity:.92;transform:translateY(-2px);box-shadow:0 10px 36px #aa3bff99}.landing__cta:active{transform:scale(.97)}.landing__email-section{border-top:1px solid #ffffff1a;flex-direction:column;align-items:center;gap:12px;width:100%;padding-top:32px;display:flex}.landing__email-label{color:#ffffffbf;text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:14px;font-weight:600}.landing__email-form{gap:8px;width:100%;display:flex}@media (width<=400px){.landing__email-form{flex-direction:column}}.landing__email-input{font-size:15px;font-family:var(--sans);color:#fff;box-sizing:border-box;background:#ffffff1a;border:1.5px solid #fff3;border-radius:10px;outline:none;flex:1;width:100%;padding:12px 16px;transition:border-color .2s,background .2s}.landing__email-input::placeholder{color:#fff6}.landing__email-input:focus{background:#ffffff24;border-color:#aa3bffb3}.landing__email-btn{font-size:14px;font-weight:600;font-family:var(--sans);color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:10px;padding:12px 20px;transition:background .2s,border-color .2s}.landing__email-btn:hover{background:#ffffff3d;border-color:#ffffff80}.app-header__right{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;display:flex}.header-auth{align-items:center;gap:8px;display:flex}.header-auth__email{color:#ffffffbf;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;overflow:hidden}@media (width<=600px){.header-auth__email{display:none}}.header-auth__tier{text-transform:uppercase;letter-spacing:.06em;color:#fff;background:#aa3bff80;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}@media (width<=600px){.header-auth__tier{display:none}}.header-auth__signout{color:#ffffffd9;font-size:13px;font-family:var(--sans);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;padding:6px 12px;transition:background .2s}.header-auth__signout:hover{background:#ffffff2e}.header-auth__signin{color:#fff;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;background:#ffffff26;border:1.5px solid #ffffff59;border-radius:9px;padding:8px 16px;transition:background .2s,border-color .2s}.header-auth__signin:hover{background:#ffffff40;border-color:#ffffff8c}.auth-modal{max-width:420px}.auth-gate-banner{border:1px solid var(--accent-border);color:var(--accent);text-align:left;background:#aa3bff1a;border-radius:9px;margin:0;padding:11px 14px;font-size:14px;line-height:1.5}.auth-notice{color:#16a34a;text-align:left;background:#22c55e14;border:1px solid #22c55e4d;border-radius:9px;margin:0;padding:11px 14px;font-size:14px}@media (prefers-color-scheme:dark){.auth-notice{color:#4ade80}}.auth-toggle{text-align:center;color:var(--text);margin:0;padding-top:4px;font-size:14px}.auth-toggle__btn{color:var(--accent);font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.auth-toggle__btn:hover{opacity:.8}.landing__email-success{color:#4ade80;margin:0;font-size:15px;font-weight:600}.landing__no-spam{color:#ffffff59;margin:0;font-size:12px}.pricing-backdrop{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:center;padding:16px;animation:.2s backdropIn;display:flex;position:fixed;inset:0}.pricing-modal{background:var(--bg);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:380px;padding:32px 28px 28px;animation:.22s modalIn;display:flex;position:relative;box-shadow:0 24px 64px #0000004d}.pricing-modal__close{background:var(--code-bg);cursor:pointer;width:30px;height:30px;color:var(--text);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;transition:background .15s;display:flex;position:absolute;top:14px;right:14px}.pricing-modal__close:hover{background:var(--border)}.pricing-modal__emoji{margin-bottom:4px;font-size:40px;line-height:1}.pricing-modal__title{color:var(--text-h);letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.pricing-modal__subtitle{color:var(--text);margin:0 0 16px;font-size:14px;line-height:1.5}.pricing-options{flex-direction:column;gap:8px;width:100%;display:flex}.pricing-option{background:var(--bg);border:1.5px solid var(--border);cursor:pointer;font-family:var(--sans);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;transition:border-color .15s,background .15s,transform .1s;display:flex;position:relative}.pricing-option:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg);transform:translate(2px)}.pricing-option:disabled{cursor:default}--popular.pricing-option{border-color:var(--accent);background:var(--accent-bg)}--skip.pricing-option{opacity:.7;border-style:dashed}--skip.pricing-option:hover:not(:disabled){opacity:1}--chosen.pricing-option{background:#22c55e0f;border-color:#16a34a;transform:none}.pricing-option__badge{background:var(--accent);color:#fff;letter-spacing:.05em;text-transform:uppercase;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700;position:absolute;top:-9px;left:14px}.pricing-option__price{color:var(--text-h);font-size:16px;font-weight:700}.pricing-option__tier{color:var(--text);background:var(--code-bg);border-radius:5px;margin-left:auto;padding:3px 8px;font-size:12px;font-weight:600}.pricing-option__skip-label{color:var(--text);font-size:14px;font-weight:500}.pricing-option__check{color:#16a34a;flex-shrink:0;margin-left:auto;font-size:16px;font-weight:700}.pricing-feedback{flex-direction:column;gap:8px;width:100%;margin-top:4px;display:flex}.pricing-feedback__label{color:var(--text-h);text-align:left;font-size:13px;font-weight:600}.pricing-feedback__input{box-sizing:border-box;background:var(--code-bg);border:1.5px solid var(--border);width:100%;font-size:13px;font-family:var(--sans);color:var(--text-h);resize:vertical;border-radius:10px;padding:10px 13px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.pricing-feedback__input::placeholder{color:var(--text);opacity:.6}.pricing-feedback__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-border);outline:none}.pricing-submit-btn{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;width:100%;font-size:15px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:11px;margin-top:4px;padding:13px 20px;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 14px #aa3bff59}.pricing-submit-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #aa3bff73}.pricing-submit-btn:active:not(:disabled){transform:scale(.98)}.pricing-submit-btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none;transform:none}.presets-group{flex-direction:column;gap:10px;display:flex}.presets-label{color:var(--text);text-transform:uppercase;letter-spacing:.07em;text-align:left;margin:0;font-size:12px;font-weight:700}.presets-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.preset-card{background:var(--bg);border:1.5px solid var(--border);cursor:pointer;font-family:var(--sans);border-radius:11px;flex-direction:column;align-items:center;gap:5px;padding:11px 6px 10px;transition:background .15s,border-color .15s,transform .1s;display:flex}.preset-card:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg);transform:translateY(-1px)}--selected.preset-card{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent)}.preset-card:disabled{opacity:.5;cursor:not-allowed}__icon.preset-card{font-size:20px;line-height:1}__label.preset-card{color:var(--text-h);text-align:center;font-size:11px;font-weight:600;line-height:1.2}--selected.preset-card .preset-card__label{color:var(--accent)}.scan-btn-full{background:var(--accent-bg);border:2px dashed var(--accent-border);width:100%;color:var(--accent);font-size:15px;font-weight:600;font-family:var(--sans);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:14px 20px;transition:background .2s,border-color .2s;display:flex}.scan-btn-full:hover:not(:disabled){border-color:var(--accent);background:#aa3bff24}.scan-btn-full:disabled{opacity:.55;cursor:not-allowed}--locked.scan-btn-full{background:var(--code-bg);border-color:var(--border);color:var(--text)}--locked.scan-btn-full:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}__icon.scan-btn-full{font-size:20px;line-height:1}.pantry-list{background:var(--code-bg);border:1.5px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;margin:0;padding:10px 12px;list-style:none;display:flex}.pantry-item{align-items:center;gap:8px;display:flex}.pantry-item__check{color:#16a34a;flex-shrink:0;font-size:13px;font-weight:700}@media (prefers-color-scheme:dark){.pantry-item__check{color:#4ade80}}.pantry-item__name{color:var(--text-h);text-align:left;flex:1;font-size:14px}.pantry-item__remove{color:var(--text);cursor:pointer;font-size:12px;font-family:var(--sans);background:0 0;border:none;border-radius:5px;flex-shrink:0;padding:2px 6px;line-height:1;transition:background .15s,color .15s}.pantry-item__remove:hover{color:#dc2626;background:#ef44441a}.pantry-add-row{gap:6px;display:flex}.pantry-add-input{font-family:var(--sans);color:var(--text-h);background:var(--bg);border:1.5px solid var(--border);box-sizing:border-box;border-radius:9px;flex:1;padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.pantry-add-input::placeholder{color:var(--text);opacity:.65}.pantry-add-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-border);outline:none}.pantry-add-input:disabled{opacity:.5;cursor:not-allowed}.pantry-add-btn{background:var(--accent-bg);border:1.5px solid var(--accent-border);color:var(--accent);font-size:22px;font-weight:400;font-family:var(--sans);cursor:pointer;border-radius:9px;padding:0 14px;line-height:1;transition:background .15s}.pantry-add-btn:hover:not(:disabled){background:#aa3bff29}.pantry-add-btn:disabled{opacity:.38;cursor:not-allowed}.pantry-generate-btn{color:#15803d;width:100%;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;background:#22c55e14;border:1.5px solid #22c55e52;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;transition:background .2s,border-color .2s;display:flex}.pantry-generate-btn:hover:not(:disabled){background:#22c55e24;border-color:#22c55e80}.pantry-generate-btn:disabled{opacity:.6;cursor:not-allowed}@media (prefers-color-scheme:dark){.pantry-generate-btn{color:#4ade80;background:#4ade8012;border-color:#4ade8038}}.grocery-cart{flex-shrink:0;position:relative}.grocery-cart__btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:7px;padding:4px 8px;font-size:14px;line-height:1;transition:background .15s,border-color .15s}.grocery-cart__btn:hover{background:var(--code-bg);border-color:var(--accent-border)}.grocery-cart__dropdown{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);z-index:200;border-radius:10px;min-width:158px;padding:4px;animation:.13s dropIn;position:absolute;top:calc(100% + 4px);right:0}.grocery-cart__option{width:100%;font-size:13px;font-family:var(--sans);color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:9px 12px;text-decoration:none;transition:background .12s;display:flex}.grocery-cart__option:hover{background:var(--accent-bg);color:var(--accent)}.auth-scarcity{text-align:center;background:linear-gradient(135deg,#fb923c1a 0%,#ef444412 100%);border:1px solid #fb923c47;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px 14px 12px;display:flex}.auth-scarcity__badge{color:#fff;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(135deg,#f97316,#ef4444);border-radius:20px;align-items:center;gap:4px;padding:3px 11px;font-size:11px;font-weight:700;display:inline-flex}.auth-scarcity__text{color:var(--text-h);margin:0;font-size:12px;font-weight:600;line-height:1.35}.auth-countdown{justify-content:center;align-items:center;gap:5px;margin-top:0;display:flex}.countdown-unit{background:var(--bg);border:1px solid var(--border);border-radius:7px;flex-direction:column;align-items:center;gap:1px;min-width:38px;padding:4px 8px;display:flex}.countdown-unit__num{color:var(--text-h);font-variant-numeric:tabular-nums;letter-spacing:-.3px;font-size:16px;font-weight:800;line-height:1}.countdown-unit__label{text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-size:8px;font-weight:700}.countdown-sep{color:var(--text);margin-bottom:10px;font-size:13px;font-weight:700}@keyframes testimonialIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.auth-testimonial{background:var(--code-bg);border:1px solid var(--border);text-align:center;border-radius:10px;padding:10px 12px;animation:.35s cubic-bezier(.25,.46,.45,.94) both testimonialIn}.auth-testimonial__stars{letter-spacing:1px;margin-bottom:4px;font-size:11px}.auth-testimonial__text{color:var(--text-h);text-align:center;margin:0 0 6px;font-size:12px;font-style:italic;font-weight:500;line-height:1.4}.auth-testimonial__author{color:var(--text);justify-content:flex-end;align-items:center;gap:5px;font-size:11px;display:flex}.auth-testimonial__verified{color:#16a34a;background:#22c55e1a;border:1px solid #22c55e38;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600}@media (prefers-color-scheme:dark){.auth-testimonial__verified{color:#4ade80;background:#22c55e1f}}.auth-card{background:var(--bg);border-radius:20px;flex-direction:column;gap:12px;width:100%;max-width:420px;max-height:calc(100vh - 48px);padding:20px 28px;animation:.2s modalIn;display:flex;overflow-y:auto;box-shadow:0 24px 64px #00000038}@media (width<=480px){.auth-card{padding:16px 18px 18px}}.auth-card__brand{justify-content:center;align-items:center;gap:7px;margin-bottom:0;display:flex}.auth-card__logo{font-size:22px;line-height:1}.auth-card__name{color:var(--text-h);letter-spacing:-.5px;font-size:18px;font-weight:800}.auth-card__heading{color:var(--text-h);text-align:center;letter-spacing:-.3px;margin:0;font-size:19px;font-weight:700}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field__label-row{justify-content:space-between;align-items:center;display:flex}.auth-field__label{color:var(--text-h);letter-spacing:.01em;font-size:13px;font-weight:600}.auth-field__input{font-family:var(--sans);color:var(--text-h);background:var(--bg);border:1.5px solid var(--border);box-sizing:border-box;border-radius:9px;width:100%;padding:11px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.auth-field__input::placeholder{color:var(--text);opacity:.6}.auth-field__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-border);outline:none}.auth-pw-wrap{position:relative}.auth-pw-wrap .auth-field__input{padding-right:42px}.auth-pw-eye{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.auth-pw-eye:hover{color:var(--text-h)}.auth-forgot{color:var(--accent);cursor:pointer;font-size:12px;font-family:var(--sans);text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.auth-forgot:hover{opacity:.75}.auth-forgot:disabled{opacity:.5;cursor:not-allowed}.pw-reqs{background:var(--code-bg);border-radius:8px;flex-direction:column;gap:5px;margin:0;padding:10px 12px;list-style:none;display:flex}.pw-req{color:var(--text);align-items:center;gap:7px;font-size:12px;transition:color .2s;display:flex}.pw-req__icon{text-align:center;flex-shrink:0;width:14px;font-size:11px;font-weight:700}.pw-req--met{color:#16a34a}@media (prefers-color-scheme:dark){.pw-req--met{color:#4ade80}}.auth-error{color:#dc2626;margin:0;font-size:13px;font-weight:500}@media (prefers-color-scheme:dark){.auth-error{color:#fca5a5}}.auth-primary-btn{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;width:100%;font-size:15px;font-weight:700;font-family:var(--sans);cursor:pointer;border:none;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:13px 20px;transition:opacity .2s,transform .15s,box-shadow .2s;display:flex;box-shadow:0 4px 14px #aa3bff59}.auth-primary-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #aa3bff73}.auth-primary-btn:active:not(:disabled){transform:scale(.98)}.auth-primary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.auth-trust-line{color:var(--text);text-align:center;margin:0;font-size:12px}.auth-divider{color:var(--text);align-items:center;gap:12px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-divider span{flex-shrink:0}.auth-google-btn{background:var(--bg);border:1.5px solid var(--border);width:100%;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;color:var(--text-h);border-radius:11px;justify-content:center;align-items:center;gap:10px;padding:11px 20px;transition:border-color .2s,background .2s;display:flex;position:relative}.auth-google-btn:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.auth-google-btn:disabled{opacity:.55;cursor:not-allowed}.auth-google-soon{background:var(--code-bg);color:var(--text);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.auth-switch{text-align:center;color:var(--text);margin:0;font-size:14px}.auth-switch__btn{color:var(--accent);font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.auth-switch__btn:hover{opacity:.8}.auth-card__footer{color:var(--text);text-align:center;opacity:.7;margin:0;font-size:11px}.auth-footer-link{color:var(--text);text-underline-offset:2px;text-decoration:underline}.auth-footer-link:hover{color:var(--accent)}.auth-verify{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:8px 0;display:flex}.auth-verify__icon{font-size:44px;line-height:1}.auth-verify__title{color:var(--text-h);margin:0;font-size:20px;font-weight:700}.auth-verify__body{color:var(--text);margin:0;font-size:14px;line-height:1.6}.auth-verify__hint{color:var(--text);opacity:.7;margin:0;font-size:13px}.auth-resend-btn{background:var(--accent-bg);border:1.5px solid var(--accent-border);color:var(--accent);font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;border-radius:9px;padding:9px 20px;transition:background .15s}.auth-resend-btn:hover:not(:disabled){background:#aa3bff26}.auth-resend-btn:disabled{opacity:.5;cursor:not-allowed}.auth-back-btn{color:var(--text);font-size:13px;font-family:var(--sans);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;text-decoration:underline}.auth-back-btn:hover{color:var(--accent)}.profile-btn__avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.profile-dropdown{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);z-index:300;border-radius:14px;width:240px;animation:.15s dropIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.profile-dropdown__user{align-items:center;gap:12px;padding:16px 16px 12px;display:flex}.profile-dropdown__avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex}.profile-dropdown__user-info{min-width:0}.profile-dropdown__display{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;font-size:14px;font-weight:600;overflow:hidden}.profile-dropdown__email{color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;margin:0;font-size:11px;display:flex;overflow:hidden}.profile-dropdown__verified{color:#16a34a;flex-shrink:0;font-size:10px;font-weight:700}@media (prefers-color-scheme:dark){.profile-dropdown__verified{color:#4ade80}}.profile-dropdown__plan-row{justify-content:space-between;align-items:center;gap:8px;padding:0 16px 12px;display:flex}.plan-badge{letter-spacing:.04em;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.plan-badge--free{background:var(--code-bg);color:var(--text);border:1px solid var(--border)}.plan-badge--pro{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7)}.profile-dropdown__version{color:var(--text);opacity:.5;letter-spacing:.02em;font-size:11px}.profile-dropdown__sep{background:var(--border);height:1px;margin:0}.profile-dropdown__item{width:100%;font-size:14px;font-family:var(--sans);color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;transition:background .12s;display:flex}.profile-dropdown__item:hover{background:var(--accent-bg);color:var(--accent)}--signout.profile-dropdown__item{color:#dc2626}--signout.profile-dropdown__item:hover{color:#dc2626;background:#ef44440f}@media (prefers-color-scheme:dark){--signout.profile-dropdown__item{color:#fca5a5}--signout.profile-dropdown__item:hover{background:#ef44441a}}.profile-dropdown__upgrade{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);width:calc(100% - 24px);font-size:13px;font-weight:700;font-family:var(--sans);color:#fff;cursor:pointer;border:none;border-radius:9px;justify-content:center;align-items:center;gap:6px;margin:4px 12px 8px;padding:10px 16px;transition:opacity .2s,transform .1s;display:flex;box-shadow:0 3px 10px #aa3bff4d}.profile-dropdown__upgrade:hover{opacity:.9;transform:scale(1.01)}.profile-dropdown__upgrade:active{transform:scale(.98)}.success-page{min-height:100svh;font-family:var(--sans);background:linear-gradient(150deg,#0f0220 0%,#2d0554 45%,#4a1490 75%,#1a0533 100%);justify-content:center;align-items:center;padding:40px 24px;display:flex}.success-card{background:var(--bg);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:0;width:100%;max-width:480px;padding:48px 40px;display:flex;box-shadow:0 24px 64px #00000059}@media (width<=480px){.success-card{padding:36px 24px}}.success-card__icon{margin-bottom:16px;font-size:56px;line-height:1}.success-card__title{color:var(--text-h);letter-spacing:-.5px;margin:0 0 12px;font-size:30px;font-weight:800}.success-card__subtitle{color:var(--text);margin:0 0 32px;font-size:15px;line-height:1.55}.success-features{text-align:left;background:var(--code-bg);border-radius:12px;width:100%;margin-bottom:28px;padding:20px}.success-features__heading{color:var(--text-h);text-transform:uppercase;letter-spacing:.07em;margin:0 0 14px;font-size:12px;font-weight:700}.success-features__list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.success-features__item{color:var(--text-h);align-items:center;gap:10px;font-size:14px;display:flex}.success-features__check{color:#16a34a;flex-shrink:0;font-size:13px;font-weight:700}.success-back-btn{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;font-size:16px;font-weight:600;font-family:var(--sans);border-radius:11px;justify-content:center;align-items:center;padding:14px 32px;text-decoration:none;transition:opacity .2s,transform .15s;display:inline-flex;box-shadow:0 4px 14px #aa3bff59}.success-back-btn:hover{opacity:.92;transform:translateY(-1px)}.success-back-btn:active{transform:scale(.97)}.app-header__title-row{align-items:center;gap:8px;display:flex}.beta-badge{background:linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);color:#fff;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;border-radius:20px;flex-shrink:0;align-items:center;margin-top:2px;padding:2px 7px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.beta-modal{text-align:center;max-width:420px;padding:40px 32px}.beta-modal__icon{margin-bottom:12px;font-size:44px}.beta-modal__title{color:var(--text-h);margin:0 0 12px;font-size:22px;font-weight:700}.beta-modal__body{color:var(--text);margin:0 0 24px;font-size:15px;line-height:1.6}.beta-modal__cta{background:var(--accent);color:#fff;font-size:15px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:12px 28px;transition:opacity .2s;display:inline-flex}.beta-modal__cta:hover{opacity:.88}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.signin-toast{z-index:850;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;width:calc(100% - 48px);max-width:380px;padding:16px 20px;animation:.3s toast-slide-up;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.signin-toast__msg{color:var(--text-h);margin:0;font-size:14px;line-height:1.5}.signin-toast__actions{gap:8px;display:flex}.signin-toast__cta{background:var(--accent);color:#fff;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:8px;flex:1;padding:9px 14px;transition:opacity .15s}.signin-toast__cta:hover{opacity:.88}.signin-toast__dismiss{color:var(--text);border:1px solid var(--border);font-size:14px;font-weight:500;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:9px 14px;transition:background .15s}.signin-toast__dismiss:hover{background:var(--page-bg)}
