:root{--bg:#fff;--surface:#fff;--soft-surface:#f3f1ed;--subtle-surface:#f7f5f1;--text:#111;--text-secondary:#6f6b64;--text-muted:#a5a19a;--border:#e8e4dd;--action:var(--color-action);--action-text:var(--color-action-text);--taupe:#8f7b68;--soft-taupe:#d8cfc3;--success:var(--color-food);--warning-soft:#f4e8d8;--error:#b84a3a;--error-bg:#fdf5f3;--radius:16px;--radius-lg:16px;--hero-radius:12px;--app-max:430px;--pad-x:24px;--tab-h:84px;--font:"MiSans", "MiSansLatin", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:var(--font-jetbrains), ui-monospace, monospace;--recipe-gray-bg:#efeded;--recipe-border:#cfc4c5;--recipe-black:#1b1c1c;--recipe-secondary:#5e5e5e;--recipe-tag-bg:#e9e8e7;--recipe-divider:#7e7576;--color-action:#253f2b;--color-action-text:#fff;--color-food:#4a654f;--color-food-text:#fff;--color-ai:#ff8c00;--color-ai-text:#fff;--color-metadata:#737972;--color-metadata-bg:#efeded;--color-metadata-border:#cfc4c5;--color-metadata-muted:#a5a19a;--accent-brown:var(--color-metadata);--accent-green:var(--color-food);--accent-orange:var(--color-ai);--tomorrow-green:#253f2b;--chip-muted:#eae8e7;--chip-text:#424842;--font-display:var(--font-jakarta), "MiSans", "MiSansLatin", var(--font-hanken), sans-serif;--fs-micro:10px;--lh-micro:14px;--fs-caption:11px;--lh-caption:16px;--fs-small:12px;--lh-small:16px;--fs-body-sm:13px;--lh-body-sm:18px;--fs-body:14px;--lh-body:20px;--fs-body-relaxed:14px;--lh-body-relaxed:22px;--fs-body-lg:15px;--lh-body-lg:22px;--fs-title-sm:16px;--lh-title-sm:24px;--fs-title:17px;--lh-title:24px;--fs-title-lg:18px;--lh-title-lg:26px;--fs-heading:20px;--lh-heading:28px;--fs-heading-lg:22px;--lh-heading-lg:28px;--fs-display-sm:24px;--lh-display-sm:32px;--fs-display:26px;--lh-display:34px;--fs-display-lg:30px;--lh-display-lg:38px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-48:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-input:12px;--radius-xl:20px;--radius-sheet:24px;--radius-pill:999px;--shadow-hairline:0 1px 2px #0000000d;--shadow-raised:0 2px 12px #0000000f;--shadow-float:0 2px 16px #00000014;--shadow-lifted:0 10px 30px -5px #0000000a;--shadow-overlay:0 12px 40px #11111129;--shadow-tab-bar:0 -4px 20px #0000000f;--shadow-action:0 2px 8px #253f2b1f;--shadow-action-lg:0 8px 28px #253f2b29;--scrim:#1116;--scrim-light:#11111159;--scrim-heavy:#11111180;--scrim-image:#1111119e;--z-base:1;--z-sticky:20;--z-tab-bar:100;--z-picker:200;--z-sheet:250;--z-modal:260;--z-takeover:300;--z-toast:350;--dur-fast:.15s;--dur-base:.2s;--dur-slow:.28s;--dur-slower:.35s;--ease:ease;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--tap-min:44px}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;line-height:22px}a{color:var(--taupe);text-decoration:none}.app-shell{background:var(--bg);flex-direction:column;align-items:center;min-height:100dvh;display:flex}.app{width:100%;max-width:var(--app-max);padding:16px var(--pad-x) calc(var(--tab-h) + 24px);flex:1}@keyframes tab-slide-left{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes tab-slide-right{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}.app.tab-slide-left{animation:.28s cubic-bezier(.22,1,.36,1) both tab-slide-left}.app.tab-slide-right{animation:.28s cubic-bezier(.22,1,.36,1) both tab-slide-right}.screen-header{margin-bottom:20px}.screen-title{color:var(--text);letter-spacing:-.02em;font-size:26px;font-weight:500;line-height:34px}.screen-subtitle{color:var(--text-muted);margin-top:4px;font-size:11px;line-height:16px}.section-label{color:var(--text);margin-bottom:8px;font-size:17px;font-weight:500;line-height:24px}.hint,.caption{color:var(--text-muted);font-size:11px;line-height:16px}.hint{margin-bottom:12px}.empty-state{color:var(--text-secondary);padding:16px 0;font-size:14px;line-height:22px}.empty-state-desc{color:var(--text-muted);margin-bottom:16px;font-size:11px;line-height:16px}.empty-hint{color:var(--text-muted);font-size:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:16px}.btn{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:opacity .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--tomorrow-green);color:var(--action-text);width:100%}.btn.primary:hover:not(:disabled){opacity:.88}.btn.btn-ai{background:var(--color-ai);color:var(--color-ai-text);width:100%}.btn.btn-ai:hover:not(:disabled){opacity:.9}.badge-metadata{border:1px solid var(--color-metadata-border);min-height:21px;font-family:var(--font-hanken), var(--font);letter-spacing:.06em;color:var(--color-metadata);background:var(--color-metadata-bg);border-radius:8px;align-items:center;padding:2px 10px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.text-metadata{color:var(--color-metadata)}.link-ai{color:var(--color-ai);text-underline-offset:2px;text-decoration:underline}.btn.secondary{background:var(--soft-surface);color:var(--text);border:1px solid var(--border)}.btn.ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn.outline{color:var(--recipe-black);border:1px solid var(--recipe-black);background:0 0}.btn.small{padding:6px 10px;font-size:11px}.btn.icon{color:var(--text-muted);background:0 0;border:none;padding:4px 8px;font-size:18px}.btn.text-link{color:var(--taupe);background:0 0;border:none;width:auto;padding:8px 0;font-size:14px}.alert{border-radius:var(--radius);border:1px solid var(--border);margin-bottom:12px;padding:12px 14px;font-size:13px;line-height:20px}.alert.error{background:var(--error-bg);color:var(--error);border-color:#f0d4ce}.alert.info{background:var(--subtle-surface);color:var(--text-secondary)}textarea,input,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--subtle-surface);width:100%;color:var(--text);padding:12px;font-family:inherit;font-size:14px}textarea:focus,input:focus,select:focus{outline:1px solid var(--text);outline-offset:0}.link-input-label{margin-bottom:4px;font-size:14px;font-weight:500}.manual-recipe-input textarea,.link-input textarea{resize:vertical;min-height:100px;margin-bottom:12px}.import-mode-control{margin-bottom:12px}.library-card-source{color:var(--text-muted);margin-bottom:2px;font-size:10px}.badge.source{background:var(--subtle-surface);color:var(--text-secondary)}.recipe-cover-upload{border:1px dashed var(--border);border-radius:var(--radius);background:var(--subtle-surface);margin-bottom:16px;padding:14px}.recipe-cover-upload-header{margin-bottom:10px}.recipe-cover-upload-title{margin-bottom:2px;font-size:13px;font-weight:500;display:block}.recipe-cover-upload-hint{color:var(--text-muted);font-size:11px;display:block}.recipe-cover-placeholder{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:96px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:13px}.recipe-cover-preview{position:relative}.recipe-cover-preview img{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);width:100%;max-height:180px}.recipe-cover-actions{gap:8px;margin-top:8px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.segmented-control{background:var(--soft-surface);border-radius:var(--radius);gap:0;margin-bottom:16px;padding:3px;display:flex}.segment{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.segment.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000a}.segment-badge{background:var(--action);color:var(--action-text);border-radius:999px;padding:1px 5px;font-size:10px}.filter-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.filter-chip{border:1px solid var(--border);background:var(--soft-surface);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:6px 12px;font-family:inherit;font-size:11px}.filter-chip.active{background:var(--text);color:var(--action-text);border-color:var(--text)}.bottom-tab-bar{width:100%;max-width:var(--app-max);height:var(--tab-h);padding:10px var(--pad-x) max(10px, env(safe-area-inset-bottom));background:var(--surface);z-index:100;border-top:none;border-radius:24px 24px 0 0;justify-content:space-around;align-items:flex-start;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #0000000f}.bottom-tab-indicator{background:var(--tomorrow-green);pointer-events:none;z-index:0;border-radius:50%;height:42px;position:absolute;top:10px;left:0}.bottom-tab-indicator.is-ready{transition:transform .35s cubic-bezier(.4,0,.2,1)}.bottom-tab{z-index:1;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;min-width:48px;padding:2px 10px;font-family:inherit;font-size:10px;transition:color .25s;display:flex;position:relative}.bottom-tab-icon-wrap{width:42px;height:42px;color:inherit;border-radius:50%;justify-content:center;align-items:center;transition:color .25s;display:inline-flex}.bottom-tab.active{color:var(--recipe-black);background:0 0;font-weight:600}.bottom-tab.active .bottom-tab-icon-wrap{color:#fff}.bottom-tab span{letter-spacing:.04em;font-size:11px;line-height:16px;font-family:var(--font-hanken), var(--font)}.today-screen{flex-direction:column;gap:20px;display:flex}.today-header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:0;display:flex}.today-meals-section{flex-direction:column;gap:12px;display:flex}.today-header-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--tomorrow-green);font-size:30px;font-weight:700;line-height:1.1}.today-header-date{font-family:var(--font-display);letter-spacing:.01em;color:var(--color-metadata);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600;line-height:20px}.today-empty-panel{text-align:center;padding:8px 0 4px}.today-empty-panel .empty-state{color:var(--text-secondary);padding:0 0 12px;font-size:14px;line-height:22px}.today-empty-cta{border-radius:12px;width:100%;min-height:48px;margin-top:0;font-size:14px}.today-empty-card{background:var(--surface);border-radius:20px;flex-direction:column;display:flex;overflow:visible;box-shadow:0 2px 16px #00000014}.today-empty-card-media{aspect-ratio:16/11;background:#f3f1ec;border-radius:20px 20px 0 0;width:100%;position:relative;overflow:hidden}.today-empty-card-image{object-fit:cover;object-position:center}.today-empty-card-body{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:36px 24px 24px;display:flex;position:relative}.today-empty-card-badge{width:52px;height:52px;color:var(--tomorrow-green);background:#e8eee9;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #253f2b1f}.today-empty-card-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-size:22px;font-weight:700;line-height:28px}.today-empty-card-desc{max-width:280px;color:var(--color-metadata);margin:0;font-size:14px;font-weight:400;line-height:22px}.today-empty-card-actions{flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:280px;margin-top:8px;display:flex}.today-empty-card-cta{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:12px 20px;font-family:inherit;font-size:16px;font-weight:500;line-height:24px;transition:opacity .15s;display:flex}.today-empty-card-cta.is-secondary{background:var(--surface);border:1.5px solid var(--tomorrow-green);color:var(--tomorrow-green)}.today-empty-card-cta:active{opacity:.88}.today-meals-carousel{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:calc(-1 * var(--pad-x));gap:14px;padding:4px 0 8px;display:flex;overflow:auto hidden}.today-meals-carousel.is-stacked{touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-template-columns:1fr;align-items:start;gap:0;margin-left:0;margin-right:0;padding:12px 18px 16px;display:grid;position:relative;overflow:visible}.today-meals-carousel.is-stacked .today-meal-card{scroll-snap-align:unset;scroll-snap-stop:unset;width:100%;max-width:340px;transform:translateX(calc(var(--stack-offset,0) * 56px)) scale(.92);opacity:.75;filter:blur(4px);cursor:pointer;background:var(--surface);flex:none;grid-area:1/1;justify-self:center;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .35s,filter .35s,box-shadow .35s;box-shadow:0 2px 12px #0000000f}.today-meals-carousel.is-stacked .today-meal-card:not(.is-focused) *{pointer-events:none}.today-meals-carousel.is-stacked .today-meal-card.is-focused{opacity:1;filter:none;cursor:default;transform:translate(0)scale(1);box-shadow:0 8px 28px #253f2b29}.today-meals-carousel.is-stacked .today-meal-card.is-far{opacity:0;transform:translateX(calc(var(--stack-offset,0) * 72px)) scale(.86);pointer-events:none}.today-meals-carousel::-webkit-scrollbar{display:none}.today-meals-carousel-hint{flex-direction:column;align-items:center;gap:6px;padding-top:2px;display:flex}.today-meals-carousel-dots{justify-content:center;align-items:center;gap:6px;display:flex}.today-meals-carousel-dots button{cursor:pointer;background:#d4d0cb;border:none;border-radius:999px;width:6px;height:6px;padding:0;transition:width .2s,background .2s}.today-meals-carousel-dots button.is-active{background:var(--tomorrow-green);width:18px}.today-meals-carousel-swipe{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-metadata);font-size:11px;font-weight:500;line-height:16px}.today-meal-card{scroll-snap-align:start;scroll-snap-stop:always;background:var(--surface);border:none;border-radius:24px;flex-direction:column;flex:0 0 min(320px,100vw - 52px);gap:0;padding:0;transition:box-shadow .2s,opacity .2s;display:flex;overflow:hidden;box-shadow:0 4px 20px #00000014}.today-meal-card.is-focused{box-shadow:0 6px 24px #253f2b24}.today-meal-card.is-done .today-meal-card-media:after,.today-meal-card.is-swapped .today-meal-card-media:after{content:"";pointer-events:none;background:#fbf9f86b;position:absolute;inset:0}.today-meal-card.is-done .today-meal-card-media img,.today-meal-card.is-swapped .today-meal-card-media img{filter:saturate(.55)}.today-meal-card.is-skipped,.today-meal-card.is-swapped{opacity:.78}.today-meals-carousel.is-stacked .today-meal-card.is-skipped:not(.is-focused),.today-meals-carousel.is-stacked .today-meal-card.is-swapped:not(.is-focused){opacity:.72}.today-meals-carousel.is-stacked .today-meal-card.is-focused.is-skipped,.today-meals-carousel.is-stacked .today-meal-card.is-focused.is-swapped{opacity:.9}.today-meal-card-media{background:var(--soft-surface);border-radius:0;flex-shrink:0;height:188px;position:relative;overflow:hidden}.today-meal-card-media img,.today-meal-card-media-placeholder{object-fit:cover;width:100%;height:100%;display:block}.today-meal-card-media-placeholder{justify-content:center;align-items:center;font-size:28px;display:flex}.today-meal-card-body{flex-direction:column;gap:10px;min-height:0;padding:18px 18px 16px;display:flex}.today-meal-card-mealtype{align-items:center;gap:8px;display:flex}.today-meal-card-mealtype-icon{width:28px;height:28px;color:var(--color-food);background:#e8eee9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.today-meal-card-label{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-metadata);font-size:13px;font-weight:500;line-height:18px}.today-meal-card-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--tomorrow-green);margin:0;font-size:24px;font-weight:700;line-height:30px}.today-meal-card-badges{flex-wrap:wrap;gap:6px;display:flex}.today-meal-badge{border:1px solid var(--color-metadata-border);min-height:24px;font-family:var(--font-hanken), var(--font);letter-spacing:.02em;color:var(--color-metadata);background:0 0;border-radius:999px;align-items:center;padding:3px 10px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.today-meal-card.is-done .today-meal-card-label,.today-meal-card.is-swapped .today-meal-card-label{color:var(--color-metadata-muted)}.today-meal-card.is-done .today-meal-card-title,.today-meal-card.is-swapped .today-meal-card-title{color:var(--color-metadata)}.today-meal-card.is-done .today-meal-badge,.today-meal-card.is-swapped .today-meal-badge{color:var(--color-metadata);background:#e4e2e2;border-color:#e4e2e2}.today-meal-card.is-done .today-meal-card-creator,.today-meal-card.is-swapped .today-meal-card-creator{color:var(--color-metadata-muted)}.today-meal-card.is-done .today-meal-recipe-btn,.today-meal-card.is-swapped .today-meal-recipe-btn{background:var(--color-metadata-bg);color:var(--color-metadata)}.today-meal-card.is-done .today-meal-recipe-btn:active,.today-meal-card.is-swapped .today-meal-recipe-btn:active{opacity:.92}.today-meal-card-creator{font-family:var(--font-hanken), var(--font);color:var(--color-metadata);margin:0;font-size:12px;line-height:18px}.today-meal-recipe-btn{background:var(--tomorrow-green);width:100%;min-height:46px;color:var(--color-action-text);font-family:var(--font-display);letter-spacing:.01em;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;margin-top:4px;padding:12px 16px;font-size:15px;font-weight:600;line-height:20px;display:flex}.today-meal-recipe-btn:active{opacity:.88}.today-meal-actions{border-top:1px solid #ebe7e4;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;padding-top:14px;display:grid}.today-meal-action{border:1px solid var(--tomorrow-green);background:var(--surface);min-height:40px;color:var(--tomorrow-green);font-family:var(--font-display);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:8px 6px;font-size:12px;font-weight:500;line-height:16px;transition:background .18s,color .18s,border-color .18s;display:inline-flex}@media (hover:hover){.today-meal-action:hover{background:var(--tomorrow-green);border-color:var(--tomorrow-green);color:#fff}}.today-meal-action.is-active{background:var(--tomorrow-green);border-color:var(--tomorrow-green);color:#fff}.today-meal-action:active{opacity:.88}.today-meal-card.is-multi .today-meal-card-media{height:148px}.today-meal-card-count{color:var(--color-food);margin-left:6px;font-size:12px;font-weight:600}.today-meal-card-recipes{flex-direction:column;gap:0;margin:2px 0 4px;display:flex}.today-meal-recipe-row{align-items:center;gap:10px;padding:10px 0;display:flex}.today-meal-recipe-row+.today-meal-recipe-row{border-top:1px solid #eae8e7}.today-meal-recipe-row-thumb{background:var(--soft-surface);border-radius:10px;flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.today-meal-recipe-row-thumb img{object-fit:cover;width:100%;height:100%;display:block}.today-meal-recipe-row-thumb-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:18px;display:flex}.today-meal-recipe-row-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.today-meal-recipe-row-name{font-family:var(--font-hanken), var(--font);color:var(--recipe-black);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:600;line-height:20px;overflow:hidden}.today-meal-recipe-row-badges{flex-wrap:wrap;gap:4px;display:flex}.today-meal-recipe-row-badges .today-meal-badge{min-height:18px;padding:1px 7px;font-size:10px}.today-meal-recipe-row-action{background:var(--tomorrow-green);color:var(--color-action-text);font-family:var(--font-hanken), var(--font);letter-spacing:.04em;cursor:pointer;white-space:nowrap;border:none;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:11px;font-weight:700;line-height:16px}.today-meal-recipe-row-action:active{opacity:.88}.today-meal-card.is-done .today-meal-recipe-row-name,.today-meal-card.is-swapped .today-meal-recipe-row-name{color:var(--color-metadata)}.today-meal-card.is-done .today-meal-recipe-row-action,.today-meal-card.is-swapped .today-meal-recipe-row-action{background:var(--color-metadata-bg);color:var(--color-metadata)}.today-meal-card.is-done .today-meal-recipe-row-thumb img,.today-meal-card.is-swapped .today-meal-recipe-row-thumb img{filter:saturate(.55)}.today-week-link{border:1px solid var(--border);background:var(--surface);width:100%;min-height:52px;font-family:var(--font-display);color:var(--tomorrow-green);cursor:pointer;text-align:left;border-radius:16px;align-items:center;gap:10px;margin-top:4px;padding:12px 16px;font-size:15px;font-weight:500;line-height:20px;display:flex;box-shadow:0 1px 4px #0000000a}.today-week-link>span{flex:1}.today-week-link:active{opacity:.8}.today-prep-card{background:var(--surface);border:1px solid #efeded;border-radius:24px;padding:24px;box-shadow:0 10px 40px -10px #4a654f14}.today-prep-card-head{align-items:center;gap:16px;margin-bottom:12px;display:flex}.today-prep-card-icon{width:48px;height:48px;color:var(--recipe-black);background:#00000014;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.today-prep-card-title{font-family:var(--font-display);color:var(--recipe-black);font-size:16px;font-weight:400;line-height:24px}.today-prep-checklist{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.today-prep-check-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:22px;width:100%;padding:16px 14px 16px 16px;font-family:inherit;transition:background .15s;display:flex}.today-prep-check-item:active{background:var(--subtle-surface)}.today-prep-check-item.is-checked .today-prep-check-title{color:#737972;text-decoration:line-through}.today-prep-check-item.is-checked .today-prep-check-subtext{color:#737f6f}.today-prep-check-box{background:var(--surface);color:#fff;border:2px solid #737972;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.today-prep-check-box.is-checked{background:var(--color-food);border-color:var(--color-food)}.today-prep-check-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.today-prep-check-title{font-family:var(--font-display);color:var(--recipe-black);font-size:16px;font-weight:400;line-height:24px}.today-prep-check-subtext{font-family:var(--font-display);letter-spacing:.02em;color:#737f6f;font-size:12px;font-weight:500;line-height:16px}.today-prep-empty-hint{font-family:var(--font-display);color:var(--text-secondary);font-size:14px;line-height:22px}.today-tomorrow-section{flex-direction:column;gap:16px;display:flex}.today-tomorrow-heading{font-family:var(--font-display);color:var(--recipe-black);font-size:16px;font-weight:400;line-height:24px}.today-tomorrow-feature{background:var(--tomorrow-green);border-radius:16px;align-items:center;gap:24px;padding:24px;display:flex;overflow:hidden;box-shadow:0 10px 40px -10px #4a654f14}.today-tomorrow-feature-action{text-align:left;cursor:pointer;border:none;width:100%;font-family:inherit;transition:opacity .15s}.today-tomorrow-feature-action:active{opacity:.92}.today-tomorrow-feature-arrow{color:#fff;flex-shrink:0;margin-left:auto}.today-tomorrow-feature-icon{color:#fff;border:1px solid #ffffff1a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;box-shadow:0 2px 3px -2px #0000001a,0 6px 8px -2px #0000001a}.today-tomorrow-feature-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.today-tomorrow-feature-eyebrow{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:#cceacf;font-size:12px;font-weight:500;line-height:16px}.today-tomorrow-feature-title{font-family:var(--font-display);color:#fff;font-size:16px;font-weight:400;line-height:20px}.today-tomorrow-preview{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.today-tomorrow-preview li{color:var(--text-secondary);padding-left:14px;font-size:13px;line-height:20px;position:relative}.today-tomorrow-preview li:before{content:"";background:var(--text-muted);border-radius:50%;width:4px;height:4px;position:absolute;top:8px;left:0}.today-tomorrow-preview li.is-checked{color:var(--text-muted);text-decoration:line-through}.today-tomorrow-preview li.is-checked:before{background:var(--border)}.prep-reminders-card{background:var(--surface);border:1px solid #efeded;border-radius:24px;padding:24px;box-shadow:0 10px 40px -10px #4a654f14}.prep-reminders-head{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.prep-reminders-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.prep-reminders-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-size:18px;font-weight:700;line-height:26px}.prep-reminders-badge{font-family:var(--font-display);color:#6b6b6b;background:#f0f0f0;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.prep-reminders-groups{flex-direction:column;gap:20px;display:flex}.prep-reminders-group-label{font-family:var(--font-display);color:#737972;margin:0 0 4px;font-size:13px;font-weight:600;line-height:18px}.prep-reminders-list{margin:0;padding:0;list-style:none}.prep-reminders-row{border-top:1px solid #efeded;flex-direction:column;align-items:stretch;gap:0;display:flex}.prep-reminders-group .prep-reminders-row:first-child{border-top:none}.prep-reminders-row-main{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;align-items:flex-start;gap:14px;padding:14px 0;font-family:inherit;display:flex}.prep-reminders-row-main:active{opacity:.85}.prep-reminders-check{background:var(--surface);color:#fff;border:2px solid #b0b0b0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-top:2px;display:inline-flex}.prep-reminders-check.is-checked{background:var(--color-food);border-color:var(--color-food)}.prep-reminders-row-icon{color:#4a4a4a;flex-shrink:0;margin-top:4px;display:inline-flex}.prep-reminders-row-copy{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:2px;display:flex}.prep-reminders-row-title{font-family:var(--font-display);color:var(--recipe-black);font-size:15px;font-weight:400;line-height:22px}.prep-reminders-row-reason{font-family:var(--font-display);color:#9a9a9a;font-size:12px;font-weight:400;line-height:16px}.prep-reminders-row.is-checked{opacity:.55}.prep-reminders-row.is-checked .prep-reminders-row-title{color:#737972;text-decoration:line-through}.prep-reminders-row.is-checked .prep-reminders-row-icon{color:#9a9a9a}.prep-reminders-more{font-family:var(--font-display);color:var(--tomorrow-green);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:13px;font-weight:500;line-height:18px}.today-workflow-section{background:#fff;border:1px solid #f0f0f0;border-radius:20px;overflow:hidden;box-shadow:0 4px 18px #1111110d}.today-workflow-header{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 16px;font-family:inherit;display:flex}.today-workflow-header-left{align-items:center;gap:12px;min-width:0;display:flex}.today-workflow-icon{background:color-mix(in srgb, var(--color-action) 10%, white);width:40px;height:40px;color:var(--color-action);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.today-workflow-header-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.today-workflow-title-row{align-items:center;gap:8px;min-width:0;display:flex}.today-workflow-title{color:var(--color-action);margin:0;font-family:inherit;font-size:16px;font-weight:600;line-height:22px}.today-workflow-badge{background:color-mix(in srgb, var(--color-action) 16%, white);color:var(--color-action);border-radius:999px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.today-workflow-subtitle{color:#666;margin:0;font-size:12px;line-height:16px}.today-workflow-chevron{color:var(--color-action);flex-shrink:0}.today-workflow-body{flex-direction:column;gap:12px;padding:0 20px 20px;display:flex}.today-workflow-panel{background:#fafafa;border:1px solid #eee;border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:28px 20px;display:flex}.today-workflow-generate{align-items:center}.today-workflow-generate-btn{border-radius:999px;width:auto;min-width:168px;min-height:48px;padding:0 28px;font-size:15px;font-weight:600}.today-workflow-loading{color:#5e5e5e;text-align:center;margin:0;font-size:13px;line-height:18px}.today-workflow-error{color:#c45a20;align-items:stretch;font-size:13px}.today-workflow-error p{text-align:center;margin:0}.today-workflow-result{flex-direction:column;gap:12px;width:100%;display:flex}.today-workflow-summary{background:color-mix(in srgb, var(--color-action) 8%, white);width:100%;color:var(--color-action);border-radius:12px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;line-height:18px;display:flex}.today-workflow-summary svg{color:var(--color-action);flex-shrink:0}.today-workflow-steps{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.today-workflow-step{width:100%;color:inherit;border-bottom:1px dashed #e5e5e5;grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:10px;padding:14px 0;display:grid}.today-workflow-steps>li:last-child{border-bottom:none}.today-workflow-step.is-passive{opacity:.72}.today-workflow-step-time{font-size:12px;font-family:var(--font-mono);color:#5e5e5e;white-space:nowrap;line-height:20px}.today-workflow-step-title{color:var(--text);min-width:0;font-size:14px;line-height:20px}.today-workflow-step-passive-tag{color:#5e5e5e;vertical-align:middle;background:#0000000f;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px;display:inline-block}.today-workflow-step-recipe{color:#5e5e5e;white-space:nowrap;text-overflow:ellipsis;background:#f0f0f0;border-radius:999px;justify-self:end;max-width:88px;padding:2px 8px;font-size:11px;font-weight:500;line-height:16px;overflow:hidden}.today-workflow-step-recipe-spacer{width:0;height:0}.today-workflow-serve-note{width:100%;color:var(--color-action);margin:0;padding-top:4px;font-size:13px;font-weight:500}.today-workflow-warn{width:100%;color:var(--color-metadata);margin:0;padding-top:4px;font-size:12px;font-style:italic;font-weight:500}.today-workflow-empty{color:#5e5e5e;text-align:center;margin:0;font-size:13px}.today-prep-batch-links{flex-direction:column;gap:8px;display:flex}.today-batch-prep-link{border:1px solid var(--border);background:var(--subtle-surface);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.today-batch-prep-link:active{opacity:.75}.today-grocery-banner{text-align:left;cursor:pointer;color:#fff;background:linear-gradient(#1111119e,#1111119e),url(/grocery_image.png) 50%/cover no-repeat;border:none;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:108px;padding:20px 18px 20px 20px;font-family:inherit;display:flex;position:relative;overflow:hidden}.today-grocery-banner:active{opacity:.94}.today-grocery-banner-muted{background:linear-gradient(#111111b8,#111111b8),url(/grocery_image.png) 50%/cover no-repeat}.today-grocery-banner-copy{z-index:1;flex-direction:column;gap:4px;display:flex;position:relative}.today-grocery-banner-title{letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:32px}.today-grocery-banner-desc{color:#ffffffe0;font-size:13px;font-weight:400;line-height:18px}.today-grocery-banner-arrow{z-index:1;background:#ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:relative}.next-actions{flex-direction:column;gap:10px;display:flex}.next-action-card{border-radius:var(--radius);text-align:left;cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;width:100%;min-height:72px;padding:16px 18px;font-family:inherit;transition:opacity .15s;display:flex}.next-action-card:active{opacity:.92}.next-action-card.primary{background:var(--action);color:var(--action-text)}.next-action-card.primary .next-action-desc{color:#ffffffb8}.next-action-card.secondary{background:var(--soft-surface);border:1px solid var(--border);color:var(--text)}.next-action-card.secondary .next-action-desc{color:var(--text-muted)}.next-action-title{font-size:15px;font-weight:500;line-height:22px}.next-action-desc{color:var(--text-muted);font-size:11px;line-height:16px}.meal-status-controls{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.meal-status-controls.compact{flex-wrap:nowrap;margin-bottom:0}.meal-slot .meal-status-controls.compact{margin:4px 0 8px}.meal-status-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:11px;line-height:16px;display:inline-flex}.meal-status-btn.active{border-color:var(--text);color:var(--text);background:var(--soft-surface)}.meal-status-more{flex-shrink:0;position:relative}.meal-status-more-btn{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:14px;line-height:1;display:inline-flex}.meal-status-more-btn.active{border-color:var(--text);color:var(--text);background:var(--soft-surface)}.meal-status-menu{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:88px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #1111110f}.meal-status-menu button{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:12px;display:block}.meal-status-menu button:hover,.meal-status-menu button.active{background:var(--soft-surface);color:var(--text)}.checklist-group-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.checklist-group-head h4{margin-bottom:0}.check-all-btn{flex-shrink:0;min-height:auto;padding:0;font-size:11px}.manual-recipe-input{margin-top:12px}.skip-reason-overlay{background:var(--scrim);z-index:var(--z-sheet);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.skip-reason-sheet{background:var(--surface,#fff);width:100%;max-width:380px;box-shadow:var(--shadow-overlay);border-radius:20px;flex-direction:column;display:flex;position:relative;overflow:hidden}.skip-reason-sheet-header{text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:12px;padding:28px 24px 8px;display:flex}.skip-reason-sheet-icon{background:color-mix(in srgb, var(--color-action) 12%, white);width:44px;height:44px;color:var(--color-action);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.skip-reason-sheet-heading{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.skip-reason-sheet-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:20px;font-weight:500;line-height:28px}.skip-reason-sheet-dish{color:var(--color-action);margin:0;font-size:13px;font-weight:500;line-height:18px}.skip-reason-sheet-close{background:var(--soft-surface);border-radius:var(--radius-pill);flex-shrink:0;width:32px;height:32px;position:absolute;top:14px;right:14px}.skip-reason-sheet-body{padding:16px 24px 24px}.skip-reason-options{flex-direction:column;gap:10px;display:flex}.skip-reason-option{border:1px solid var(--border);background:var(--surface,#fff);min-height:52px;color:var(--text);text-align:left;cursor:pointer;border-radius:16px;justify-content:flex-start;align-items:center;padding:14px 18px;font-family:inherit;font-size:15px;font-weight:500;line-height:22px;transition:background .15s,color .15s,border-color .15s;display:flex}@media (hover:hover){.skip-reason-option:hover{border-color:var(--color-action)}}.skip-reason-option.is-active{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action)}.skip-reason-option:active{opacity:.88}.today-meal-skip-note{border:1px solid color-mix(in srgb, var(--color-action) 22%, white);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-action) 8%, white);min-height:32px;color:var(--color-action);font-family:inherit;font-size:var(--fs-small);line-height:var(--lh-small);cursor:pointer;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:0 12px;font-weight:500;display:flex}.today-meal-skip-note:active{opacity:.8}.library-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.library-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.library-card-thumb{aspect-ratio:1;background:var(--soft-surface);overflow:hidden}.library-card-thumb img{object-fit:cover;width:100%;height:100%}.library-card-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:28px;display:flex}.library-card-body{flex-direction:column;flex:1;gap:4px;padding:10px;display:flex}.library-card-name{font-size:13px;font-weight:500;line-height:18px}.library-card-creator{color:var(--text-muted);font-size:11px}.library-card-actions{gap:4px;margin-top:auto;padding-top:6px;display:flex}.recipe-grid,.recipe-display-group{flex-direction:column;gap:20px;display:flex}.recipe-card{margin-bottom:0}.recipe-card.needs-review{border-color:var(--soft-taupe)}.recipe-card.review-mode{border-color:var(--recipe-border);background:var(--surface);border-radius:12px;padding:0;overflow:hidden}.recipe-card.review-mode.needs-review{background:var(--surface);border-color:var(--soft-taupe)}.recipe-card.review-mode .recipe-detail-hero{aspect-ratio:1;width:calc(100% - 32px);height:auto;max-height:none;margin:16px auto 0;box-shadow:0 1px 2px #0000000d}.recipe-card-review-body{padding:20px 16px 8px}.recipe-review-cover{margin-bottom:16px}.recipe-card-review-body:has(.recipe-review-cover){padding-top:12px}.recipe-review-cover-label{color:#5e5e5e;margin:0 0 8px;font-size:13px;font-weight:500;line-height:18px}.recipe-review-cover.is-asking{border:1px solid var(--soft-taupe);background:var(--subtle-surface);border-radius:12px;padding:12px}.recipe-review-cover-label.is-question{color:var(--text);font-weight:600}.recipe-review-cover-hint{color:var(--text-secondary);margin:-4px 0 8px;font-size:12px;line-height:17px}.recipe-review-cover-strip{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.recipe-review-cover-thumb{cursor:pointer;background:#fff;border:2px solid #eee;border-radius:12px;flex-shrink:0;width:64px;height:64px;padding:0;overflow:hidden}.recipe-review-cover-thumb.is-selected{border-color:var(--color-action)}.recipe-review-cover-thumb img,.recipe-review-cover-thumb .recipe-image-fallback{object-fit:cover;width:100%;height:100%;display:block}.recipe-card-review-status{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.recipe-card-review-status-tag{font-family:var(--font-display);letter-spacing:.4px;background:var(--recipe-gray-bg);color:var(--recipe-secondary);border:1px solid var(--recipe-border);border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600;line-height:14px;display:inline-block}.recipe-card-review-status-tag.confirmed{background:var(--success);color:#fff;border-color:#0000}.recipe-card-review-status-tag.warning{color:#5e5e5e;background:#f0f0f0;border-color:#d8d8d8}.recipe-card-review-status-tag.chef{color:#3d5a45;background:#eef3ef;border-color:#c5d4c8}.recipe-chef-summary{border-radius:var(--radius);color:#3d5a45;background:#f3f6f4;border:1px solid #d7e0da;margin:0 0 12px;padding:10px 12px;font-size:13px;line-height:1.45}.recipe-chef-banner{background:#f6faf6;border:1px solid #e1ede2;border-radius:12px;flex-shrink:0;align-items:flex-start;gap:12px;margin:0 20px 12px;padding:12px 14px;display:flex}.recipe-chef-banner-icon{color:#3e5c43;background:#eef3ef;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.recipe-chef-banner-copy{flex:1;min-width:0}.recipe-chef-banner-title{color:#3d5a45;margin:0 0 4px;font-size:13px;font-weight:600;line-height:18px}.recipe-chef-banner-text{color:#6b6b6b;margin:0;font-size:12px;line-height:1.45}.recipe-ai-qty-badge{color:#3d5a45;letter-spacing:.04em;vertical-align:middle;background:#eef3ef;border:1px solid #c5d4c8;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-flex}.recipe-detail-ingredient-card.is-ai-estimated{background:#f7faf8;border-color:#c5d4c8}.recipe-edit-ingredient-row.is-ai-estimated{outline-offset:2px;background:#f7faf8;border-radius:8px;outline:1px solid #c5d4c8}.recipe-card.review-mode .recipe-detail-title{font-size:24px;line-height:32px}.recipe-card.review-mode .recipe-detail-section:first-of-type{margin-top:8px}.recipe-card.review-mode .recipe-card-footer{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffe6;border-top:none;justify-content:center;gap:12px;margin-top:0}.recipe-card.review-mode .recipe-card-footer .btn{font-family:var(--font-display);letter-spacing:.6px;text-transform:uppercase;flex:1;padding:16px;font-size:12px;font-weight:700}.recipe-card-remove-btn{color:var(--error);border-color:color-mix(in srgb, var(--error) 35%, transparent)}.recipe-card-remove-btn:hover{background:color-mix(in srgb, var(--error) 6%, var(--surface))}.recipe-card.confirmed{border-color:var(--border)}.recipe-name{font-size:17px;font-weight:500;line-height:24px}.recipe-creator,.recipe-original-title{color:var(--text-muted);font-size:11px}.recipe-top{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.recipe-badges{flex-wrap:wrap;gap:4px;display:flex}.badge{border-radius:4px;padding:2px 6px;font-size:10px;display:inline-block}.badge.confirmed{background:var(--success);color:#fff}.badge.collection{background:var(--subtle-surface);color:var(--taupe);border:1px solid var(--border)}.badge.warning{background:var(--warning-soft);color:var(--taupe)}.badge.type{background:var(--soft-surface);color:var(--text-muted);border:1px solid var(--border)}.btn-view-source{background:var(--action);width:100%;color:var(--action-text);border-radius:var(--radius);text-align:center;padding:10px;font-size:14px;text-decoration:none}.review-section{margin-bottom:12px}.review-section h3{color:var(--text-muted);letter-spacing:.03em;margin-bottom:6px;font-size:11px;font-weight:500}.ingredient-summary,.step-summary-list{color:var(--text-secondary);font-size:13px;line-height:20px}.step-summary-list{padding-left:16px}.summary-label{color:var(--text);font-weight:500}.recipe-card-footer.recipe-detail-footer{border-top:none}.recipe-card-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;display:flex}.image-strip{gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.image-strip img{object-fit:cover;border-radius:6px;flex-shrink:0;width:72px;height:72px}.recipe-card-hero{aspect-ratio:1;border:1px solid var(--recipe-border);background:var(--soft-surface);border-radius:8px;width:100%;max-height:280px;margin-bottom:12px;overflow:hidden}.recipe-card-hero img{object-fit:cover;width:100%;height:100%;display:block}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field span{color:var(--text-muted);font-size:11px;font-weight:500}.meta-badges{flex-wrap:wrap;gap:4px;display:flex}.meta-badge{border:1px solid var(--border);color:var(--text-secondary);background:#fff;border-radius:999px;padding:2px 6px;font-size:10px}.metadata-edit h3{margin-bottom:8px;font-size:13px}.check-chip{cursor:pointer;align-items:center;gap:4px;font-size:13px;display:inline-flex}.meta-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ingredient-row{grid-template-columns:1.5fr .7fr .7fr 1fr auto;gap:4px;margin-bottom:6px;display:grid}.plans-action-row{margin-bottom:16px}.week-slot-toggle{background:var(--subtle-surface);border:1px solid var(--border);border-radius:var(--radius);gap:4px;margin-bottom:20px;padding:4px;display:flex}.week-slot-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;font-family:inherit;display:flex}.week-slot-tab.selected{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.week-slot-tab-label{font-size:14px;font-weight:500}.week-slot-tab-dates{color:var(--text-muted);font-size:11px}.week-slot-tab.selected .week-slot-tab-dates{color:var(--text-secondary)}.selected-week-panel{margin-bottom:24px}.week-context-empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--subtle-surface);padding:28px 20px}.week-context-empty-title{margin-bottom:6px;font-size:15px;font-weight:500}.week-context-empty-desc{color:var(--text-muted);margin-bottom:16px;font-size:12px}.week-context-empty .btn+.btn{margin-top:8px}.week-context-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px}.week-context-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.week-context-card h3{margin-bottom:2px;font-size:16px;font-weight:500}.week-context-card .btn.primary{margin-top:14px}.week-actions-menu{flex-shrink:0;position:relative}.week-actions-trigger{color:var(--text-muted)}.week-actions-dropdown{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;margin-top:4px;padding:4px 0;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #1111110f}.week-actions-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;padding:10px 14px;font-family:inherit;font-size:13px;display:block}.week-actions-item:hover{background:var(--subtle-surface)}.week-actions-item.danger{color:var(--error)}.plans-quiet-entry{margin-bottom:12px}.plans-quiet-link{border:none;border-top:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;padding:12px 0;font-family:inherit;display:flex}.plans-quiet-label{color:var(--text-secondary);font-size:13px}.plans-quiet-action{color:var(--text-muted);font-size:12px}.new-plan-overlay{z-index:260;background:#1116;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.new-plan-sheet{width:100%;max-width:var(--app-max);background:var(--bg);max-height:min(85dvh,640px);font-family:var(--font-display);border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 40px #11111129}.new-plan-sheet-header{padding:18px var(--pad-x) 12px;border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.new-plan-sheet-heading{flex-direction:column;gap:4px;min-width:0;display:flex}.new-plan-sheet-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--tomorrow-green);margin:0;font-size:20px;font-weight:700;line-height:28px}.new-plan-sheet-close{background:var(--soft-surface);width:32px;height:32px;color:var(--text-secondary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.new-plan-sheet-body{-webkit-overflow-scrolling:touch;padding:16px var(--pad-x) 24px;flex:1;overflow-y:auto}.new-plan-options{flex-direction:column;gap:10px;display:flex}.new-plan-option{text-align:left;border:1px solid var(--recipe-border);background:var(--surface);cursor:pointer;border-radius:16px;align-items:center;gap:14px;width:100%;padding:14px 16px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.new-plan-option:active:not(:disabled){background:var(--subtle-surface)}.new-plan-option:disabled{opacity:.45;cursor:not-allowed}.new-plan-option-icon{color:#4c4546;background:#efeded;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.new-plan-option-icon.is-history,.new-plan-option-icon.is-template,.new-plan-option-icon.is-blank{color:#4c4546;background:#efeded}.new-plan-option-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.new-plan-option-title{color:var(--recipe-black);font-size:15px;font-weight:700;line-height:22px;display:block}.new-plan-option-desc{color:var(--text-secondary);font-size:12px;font-weight:500;line-height:18px;display:block}.new-plan-option-chevron{color:var(--text-muted);flex-shrink:0}.week-plan-card-list{flex-direction:column;gap:8px;display:flex}.plans-screen{font-family:var(--font-display);color:var(--recipe-black);flex-direction:column;gap:24px;display:flex}.plans-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.plans-header-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.plans-title{font-family:var(--font-display);color:var(--tomorrow-green);letter-spacing:-.02em;margin:0;font-size:30px;font-weight:700;line-height:1.1}.plans-add-btn{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-top:2px;transition:opacity .15s;display:inline-flex}.plans-add-btn:active{opacity:.9}.plans-add-btn:focus-visible{outline:2px solid var(--tomorrow-green);outline-offset:3px}.plans-section{flex-direction:column;gap:12px;display:flex}.plans-section-heading{color:var(--recipe-black);align-items:center;gap:8px;display:flex}.plans-section-label{letter-spacing:.04em;color:var(--color-metadata);margin:0;font-size:13px;font-weight:700;line-height:18px}.plans-section-heading .plans-section-label{letter-spacing:0;color:var(--recipe-black);font-size:16px;line-height:22px}.plans-empty-card{border:1px solid var(--recipe-border);background:var(--surface);border-radius:20px;flex-direction:column;align-items:stretch;display:flex;overflow:hidden;box-shadow:0 10px 30px -5px #0000000a}.plans-empty-body{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 24px 24px;display:flex}.plans-empty-title{color:var(--text);margin:0;font-size:18px;font-weight:700;line-height:26px}.plans-empty-desc{color:#6b6b6b;max-width:28em;margin:0;font-size:13px;font-weight:400;line-height:20px}.plans-empty-cta{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:48px;margin-top:12px;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:600;line-height:20px;display:inline-flex}.week-plan-card{border:1px solid var(--recipe-border);background:var(--surface);border-radius:20px;flex-direction:column;display:flex;overflow:visible;box-shadow:0 10px 30px -5px #0000000a}.week-plan-card-featured{box-shadow:0 10px 30px -5px #253f2b14}.week-plan-card-compact{box-shadow:0 10px 30px -5px #0000000a}.week-plan-card-compact .week-plan-card-open{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:16px;width:100%;padding:20px;font-family:inherit;display:flex}.week-plan-card-top{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.week-plan-card-featured .week-plan-card-open:focus-visible,.week-plan-card-compact .week-plan-card-open:focus-visible{outline:2px solid var(--tomorrow-green);outline-offset:2px;border-radius:8px}.week-plan-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.week-plan-card-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.week-plan-card-featured .week-actions-trigger{width:32px;height:32px;color:var(--text-muted);background:#f3f1ed;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.week-plan-draft-badge{letter-spacing:.06em;text-transform:uppercase;color:#424842;background:#efeded;border-radius:4px;align-items:center;padding:4px 8px;font-size:10px;font-weight:600;line-height:15px;display:inline-flex}.week-plan-card-heading{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.week-plan-card-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-weight:700}.week-plan-card-featured .week-plan-card-title{letter-spacing:-.01em;font-size:20px;line-height:28px}.week-plan-card-compact .week-plan-card-title{color:var(--recipe-black);font-size:16px;line-height:24px}.week-plan-card-dates{color:var(--text-secondary);align-items:center;gap:5px;margin:0;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.week-plan-card-body{flex-direction:column;gap:20px;padding:16px 20px 20px;display:flex}.plan-week-summary{flex-direction:column;gap:20px;display:flex}.week-plan-card-compact .week-plan-card-body{gap:16px;padding:0}.week-plan-card-progress{flex-direction:column;gap:8px;display:flex}.week-plan-progress-inline{align-items:center;gap:12px;display:flex}.week-plan-progress-inline .week-plan-progress-track{flex:1;min-width:0}.week-plan-progress-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-plan-progress-label{color:var(--text-secondary);margin:0;font-size:13px;font-weight:500;line-height:18px}.week-plan-card-compact .week-plan-progress-label{color:var(--text-secondary);font-size:13px}.week-plan-progress-percent{color:var(--tomorrow-green);flex-shrink:0;font-size:14px;font-weight:700;line-height:20px}.week-plan-progress-percent.is-highlight{color:var(--tomorrow-green);font-weight:700}.week-plan-progress-track{background:#e8f0ea;border-radius:999px;height:10px;overflow:hidden}.week-plan-card-compact .week-plan-progress-track{background:#efeded;height:6px}.week-plan-progress-fill{background:var(--tomorrow-green);border-radius:999px;height:100%;transition:width .2s}.week-plan-stats-grid{grid-template-columns:repeat(4,1fr);gap:4px;padding:0;display:grid}.week-plan-stat-cell{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:4px 2px;display:flex}.week-plan-stat-icon{border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.week-plan-stat-icon.is-completed{color:var(--tomorrow-green);background:#e8f0ea}.week-plan-stat-icon.is-skipped{color:#e07a3a;background:#fff1e8}.week-plan-stat-icon.is-swapped{color:#4a7fad;background:#eaf3fb}.week-plan-stat-icon.is-grocery{color:var(--color-food);background:#e8f0ea}.week-plan-stat-value{color:var(--recipe-black);font-size:18px;font-weight:700;line-height:24px}.week-plan-stat-pill{background:var(--chip-muted);min-height:24px;color:var(--chip-text);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;line-height:16px;display:inline-flex}.week-plan-stat-pill.is-ready{background:var(--tomorrow-green);color:#fff}.week-plan-stat-label{color:var(--text-secondary);font-size:11px;font-weight:500;line-height:14px}.week-plan-card-status-list{flex-direction:column;gap:12px;display:flex}.week-plan-status-line{align-items:center;gap:8px;display:flex}.week-plan-status-dot{background:0 0;border:2px solid #737972;border-radius:999px;flex-shrink:0;width:15px;height:15px}.week-plan-status-dot.is-ready{border-color:var(--color-food);background:var(--color-food)}.week-plan-status-text{color:#424842;font-size:16px;font-weight:400;line-height:24px}.week-plan-card-cta{background:var(--tomorrow-green);width:100%;min-height:48px;color:var(--color-action-text);font-family:var(--font-display);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:14px 44px;font-size:15px;font-weight:700;line-height:20px;transition:opacity .15s;display:flex;position:relative}.week-plan-card-cta svg{position:absolute;top:50%;right:18px;transform:translateY(-50%)}.week-plan-card-cta.btn-ai{background:var(--color-ai);color:var(--color-ai-text);box-shadow:0 2px 4px -2px #ff8c0033,0 4px 6px -1px #ff8c0033}.week-plan-card-cta:active{opacity:.88}.plans-more-btn{border:1px solid color-mix(in srgb, var(--color-action) 22%, white);background:color-mix(in srgb, var(--color-action) 8%, white);width:100%;min-height:48px;color:var(--color-action);text-align:left;cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:500;line-height:20px;transition:opacity .15s,background .15s;display:flex}.plans-more-btn:active{opacity:.88}.plans-history-entry{border:1px solid var(--recipe-border);background:var(--surface);cursor:pointer;text-align:left;border-radius:16px;justify-content:space-between;align-items:center;width:100%;padding:18px 20px;font-family:inherit;transition:background .15s;display:flex;box-shadow:0 10px 30px -5px #0000000a}.plans-history-entry:active{background:var(--subtle-surface)}.plans-history-leading{min-width:0;color:var(--tomorrow-green);align-items:center;gap:12px;display:inline-flex}.plans-history-title{color:var(--recipe-black);font-size:15px;font-weight:700;line-height:20px}.plans-history-chevron{color:var(--text-muted);flex-shrink:0}.plans-library-entry{border:1px solid var(--color-metadata-border);background:var(--color-metadata-bg);cursor:pointer;text-align:left;border-radius:16px;justify-content:space-between;align-items:center;width:100%;padding:24px;font-family:inherit;display:flex;box-shadow:0 2px 12px #0000000f}.plans-library-leading{align-items:center;gap:16px;min-width:0;display:flex}.plans-library-icon{color:#4c4546;flex-shrink:0;justify-content:center;align-items:center;display:flex}.plans-library-text{flex-direction:column;gap:2px;min-width:0;display:flex}.plans-library-title{color:var(--recipe-black);font-size:16px;font-weight:600;line-height:24px}.plans-library-desc{color:#4c4546;font-size:10px;font-weight:400;line-height:15px}.plans-library-chevron{color:#4c4546;flex-shrink:0}.plans-new-btn{border:1px solid var(--tomorrow-green);background:var(--surface);width:100%;font-family:var(--font-hanken), var(--font);color:var(--tomorrow-green);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:14px;font-weight:700;line-height:28px;transition:background .15s;display:flex}.plans-new-btn:active{background:var(--recipe-gray-bg)}.week-plan-card-stats{gap:16px;margin-bottom:12px;display:flex}.week-plan-stat{color:var(--text-secondary);font-size:12px}.week-plan-card-badges{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.week-plan-badge{color:var(--text-secondary);background:var(--subtle-surface);border-radius:999px;padding:4px 8px;font-size:10px;line-height:14px}.week-plan-badge.muted{color:var(--text-muted)}.week-plan-card-meta,.week-plan-card-status{color:var(--text-muted);font-size:11px;line-height:16px}.plan-library-page{font-family:var(--font-display);flex-direction:column;gap:24px;padding-bottom:8px;display:flex}.plan-library-hero{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.plan-library-hero-eyebrow-row{align-items:center;gap:8px;display:flex}.plan-library-hero-copy{flex-direction:column;gap:8px;min-width:0;display:flex}.plan-library-new-btn{border:1px solid var(--recipe-border);border-radius:var(--radius);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;margin-top:0;padding:0;display:inline-flex}.plan-library-new-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.plan-library-tabs{background:var(--surface);border:1px solid var(--recipe-border);border-radius:999px;gap:2px;margin-bottom:0;padding:4px}.plan-library-tabs .segment{color:#8e8e8e;box-shadow:none;border-radius:999px;padding:10px 8px;font-size:13px;font-weight:600}.plan-library-tabs .segment.active{color:var(--tomorrow-green);box-shadow:none;background:#e8f0ea}.plan-library-panel{flex-direction:column;gap:14px;min-height:120px;display:flex}.plan-library-panel-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.plan-library-panel-title{color:var(--text);align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700;line-height:1.2;display:inline-flex}.plan-library-panel-count{min-width:22px;height:22px;color:var(--tomorrow-green);background:#e8f0ea;border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.plan-library-empty{text-align:center;color:#8e8e8e;background:#f7f7f7;border:1px dashed #c8c8c8;border-radius:18px;margin:0;padding:28px 20px}.plan-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.plan-library-list{flex-direction:column;gap:12px;display:flex}.plan-list-card{border:1px solid var(--recipe-border);background:var(--surface);border-radius:18px;align-items:stretch;display:flex;position:relative;overflow:visible}.plan-list-card:has(.week-actions-dropdown){z-index:20}.plan-list-card-main{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:none;flex:1;align-items:flex-start;gap:12px;padding:14px;font-family:inherit;display:flex}.plan-list-card-main:focus-visible{outline:2px solid var(--text);outline-offset:-2px;border-radius:18px}.plan-list-card-icon{width:44px;height:44px;color:var(--tomorrow-green);background:#e8f0ea;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.plan-list-card-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.plan-list-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.plan-list-card-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:700;line-height:22px;overflow:hidden}.plan-list-card-top-actions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex;position:relative}.plan-list-card-top-actions .week-actions-dropdown{margin-top:4px;position:absolute;top:100%;left:auto;right:0}.plan-list-card-top-actions .week-actions-trigger{width:28px;height:28px;color:var(--text-muted)}.plan-list-status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;line-height:14px;display:inline-flex}.plan-list-status-badge.tone-active,.plan-list-status-badge.tone-done{color:var(--tomorrow-green);background:#e8f0ea}.plan-list-status-badge.tone-muted{background:var(--soft-surface);color:var(--text-muted)}.plan-list-card-dates{color:var(--text-muted);align-items:center;gap:5px;margin:0;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.plan-list-card-dates svg{color:var(--text-muted);flex-shrink:0}.plan-list-card-meta{align-items:center;gap:8px;min-width:0;margin-top:2px;display:flex}.plan-list-card-meta-template{justify-content:space-between}.plan-list-card-meals{color:var(--text-muted);flex-shrink:0;align-items:center;gap:4px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.plan-list-card-divider{background:var(--recipe-border);flex-shrink:0;width:1px;height:12px}.plan-list-progress-track{background:#e8e8e8;border-radius:999px;flex:1;min-width:36px;height:4px;overflow:hidden}.plan-list-progress-fill{border-radius:inherit;background:var(--tomorrow-green);height:100%}.plan-list-progress-percent{color:var(--tomorrow-green);flex-shrink:0;font-size:12px;font-weight:600;line-height:16px}.plan-list-card-use-label{color:var(--tomorrow-green);font-size:13px;font-weight:600}.plan-library-list-row{border-bottom:1px solid var(--recipe-border);background:0 0;align-items:stretch;display:flex;position:relative}.plan-library-list-row:has(.week-actions-dropdown){z-index:20}.plan-library-list-row-main{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:14px 8px 14px 0;font-family:inherit;display:flex}.plan-library-list-row-main:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.plan-library-list-row-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.plan-library-list-row-title-line{align-items:center;gap:6px;min-width:0;display:flex}.plan-library-list-row-heart{color:#1f1f1f;flex-shrink:0}.plan-library-list-row-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;line-height:22px;overflow:hidden}.plan-library-list-row-dates{font-family:var(--font-mono);color:#4c4546;margin:0;font-size:12px;font-weight:500;line-height:16px}.plan-library-list-row-status{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.plan-library-list-status-pill{background:var(--soft-surface);color:var(--text-muted);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;line-height:14px;display:inline-flex}.plan-library-list-status-pill.is-ready{color:#3d5a45;background:#eef3ef}.plan-library-list-row-progress{color:var(--text-muted);margin:2px 0 0;font-size:11px;line-height:14px}.plan-library-list-row-chevron{color:var(--text-muted);flex-shrink:0}.plan-library-list-row-action{color:var(--text);flex-shrink:0;align-items:center;gap:2px;font-size:13px;font-weight:600;display:inline-flex}.plan-library-list-row-menu{flex-shrink:0;align-self:center;align-items:center;padding:0 0 0 4px;display:flex;position:relative}.plan-library-list-row-menu .week-actions-dropdown{margin-top:4px;position:absolute;top:100%;left:auto;right:0}.current-plan-card{border:1px solid var(--recipe-border);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:0 10px 30px -5px #0000000a}.current-plan-card-open{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:17px;width:100%;padding:18px 24px 24px;font-family:inherit;display:flex}.current-plan-card-open:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.current-plan-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.current-plan-card-heading{flex-direction:column;gap:4px;min-width:0;display:flex}.current-plan-card-title{color:var(--text);font-size:20px;font-weight:600;line-height:28px}.current-plan-card-dates{font-family:var(--font-mono);color:#4c4546;font-size:14px;font-weight:500;line-height:20px}.current-plan-card-menu{flex-shrink:0}.current-plan-card-body{flex-direction:column;gap:24px;padding-bottom:8px;display:flex}.current-plan-card-progress{flex-direction:column;gap:8px;display:flex}.current-plan-progress-label{color:var(--recipe-black);font-size:12px;font-weight:400;line-height:24px}.current-plan-card-status-row{align-items:flex-start;gap:16px;display:flex}.current-plan-status-item{flex-direction:column;flex:1;gap:2px;min-width:0;padding:8px 0;display:flex}.current-plan-status-label{letter-spacing:.05em;color:#4c4546;font-size:12px;font-weight:700;line-height:16px}.current-plan-status-value{font-family:var(--font-mono);color:var(--text);font-size:10px;font-weight:500;line-height:20px}.plan-library-grid-card{background:var(--surface);border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:visible;box-shadow:0 4px 4px #0000001f}.plan-library-grid-card:has(.week-actions-dropdown){z-index:20}.plan-library-grid-card-media{border-radius:8px 8px 0 0;position:relative;overflow:visible}.plan-library-grid-card-media .plan-cover-mosaic-grid{aspect-ratio:4/3}.plan-library-grid-card-favorite{z-index:2;color:#1f1f1f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f9f9f9e6;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;top:10px;right:10px}.plan-library-meal-badge{letter-spacing:.05em;color:#5e5e5e;background:#f3f3f3;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:700;line-height:14px;box-shadow:0 1px 2px #0000000d}.plan-library-grid-card-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.plan-library-grid-card-title-row .plan-library-grid-card-title{flex:1;min-width:0;padding-right:0}.plan-library-grid-card-menu{z-index:3;position:absolute;top:6px;left:6px}.plan-library-grid-card-menu .week-actions-dropdown{margin-top:0;margin-left:4px;top:0;left:100%;right:auto}.plan-library-grid-card-body{flex-direction:column;gap:6px;padding:10px;display:flex}.plan-library-grid-card-title{color:#1a1c1c;padding-right:8px;font-size:13px;font-weight:600;line-height:18px}.plan-library-grid-card-dates{font-family:var(--font-mono);color:#4c4546;font-size:10px;font-weight:500;line-height:16px}.plan-library-grid-card-status{align-items:flex-start;gap:8px;margin-top:2px;display:flex}.plan-library-grid-status-item{color:#4c4546;flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.plan-library-grid-status-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.plan-library-grid-status-label{letter-spacing:.04em;color:#4c4546;font-size:10px;font-weight:700;line-height:13px}.plan-library-grid-status-value{font-family:var(--font-mono);color:var(--text);font-size:10px;font-weight:500;line-height:14px}.plan-library-grid-card-cta{background:var(--action);width:100%;color:var(--action-text);letter-spacing:.04em;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;margin-top:6px;padding:8px 12px;font-family:inherit;font-size:11px;font-weight:700;line-height:14px;display:flex}.plan-library-grid-card-cta:active{opacity:.85}.plan-library-grid-card-progress{color:var(--text-secondary);text-align:center;font-size:10px;line-height:14px}.plan-template-grid-card .plan-library-grid-card-body{gap:8px}.current-plan-card-status,.plan-grid-card-status{flex-wrap:wrap;gap:6px;display:flex}.plan-grid-card-menu{z-index:2;position:absolute;top:8px;right:4px}.plan-grid-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;position:relative;overflow:hidden}.plan-grid-card-open{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;width:100%;padding:0 0 10px;font-family:inherit;display:flex}.plan-grid-card-open:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.plan-grid-card-visual{pointer-events:none}.plan-grid-card-body{flex-direction:column;flex:1;gap:3px;padding:8px 10px 0;display:flex}.plan-template-card .plan-grid-card-body{padding-bottom:4px}.plan-grid-card-title{padding-right:24px;font-size:13px;font-weight:500;line-height:18px}.plan-grid-card-dates,.plan-grid-card-meta{color:var(--text-secondary);font-size:11px;line-height:16px}.plan-template-use{align-self:flex-start;margin-top:6px}.plan-status-chip{color:var(--text-secondary);background:var(--subtle-surface);border-radius:999px;padding:2px 6px;font-size:10px;line-height:14px}.plan-status-chip.muted{color:var(--text-muted)}.plan-cover-mosaic{background:var(--soft-surface);overflow:hidden}.plan-cover-mosaic-grid{aspect-ratio:4/3;border-radius:8px 8px 0 0;width:100%}.plan-cover-mosaic-side{border-radius:8px;flex-shrink:0;width:56px;height:56px}.plan-cover-single{grid-template-columns:1fr;height:100%;display:grid}.plan-cover-duo{grid-template-columns:1fr 1fr;height:100%;display:grid}.plan-cover-trio{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;height:100%;display:grid}.plan-cover-trio img:first-child{grid-row:span 2}.plan-cover-mosaic img{object-fit:cover;width:100%;height:100%;display:block}.plan-cover-fallback{color:var(--taupe);background:var(--subtle-surface);justify-content:center;align-items:center;display:flex}.plan-cover-fallback-grid{aspect-ratio:4/3;border-radius:8px 8px 0 0;width:100%;overflow:hidden}.plan-cover-fallback-side{border-radius:8px;flex-shrink:0;width:56px;height:56px}.plan-library-section-header{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;padding:0;font-family:inherit;display:flex}.plan-library-section-header:disabled{cursor:default}.plan-library-section-title{align-items:center;gap:8px;margin-bottom:0;display:flex}.plan-library-section-count{color:var(--text-muted);font-size:12px;font-weight:400}.plan-library-section-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s}.plan-library-section-chevron.collapsed{transform:rotate(-90deg)}.template-plan-card{border:1px dashed var(--border);border-radius:var(--radius);background:var(--subtle-surface);padding:14px 16px}.template-plan-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.template-plan-card-title{margin-bottom:2px;font-size:15px;font-weight:500}.template-plan-card-desc{color:var(--text-muted);font-size:12px}.template-plan-card-stats{gap:16px;margin-bottom:12px;display:flex}.template-plan-stat{color:var(--text-secondary);font-size:12px}.template-plan-use{font-size:13px}.new-plan-cta{margin-top:8px;margin-bottom:24px}.week-picker-body{padding:12px 16px 24px}.week-picker-hint{color:#111;margin-bottom:12px;font-size:13px;font-weight:500;line-height:20px}.week-picker-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.week-picker-nav .btn.ghost{color:#5e5e5e;border-color:#e5e5e5}.week-picker-month{color:#111;font-size:14px;font-weight:500}.week-picker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.week-picker-weekday{color:#111;text-align:center;padding:4px 0;font-size:12px;font-weight:600}.week-picker-day{aspect-ratio:1;color:#111;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:13px;display:flex}.week-picker-day.empty{cursor:default}.week-picker-day.disabled{color:#6b6b6b;opacity:.35;cursor:not-allowed}.week-picker-day.in-range{background:#f0f0f0;font-weight:500}.week-picker-day.range-start,.week-picker-day.range-end{background:var(--action);color:var(--action-text);font-weight:600}.week-picker-day.in-range:not(.range-start):not(.range-end){border-radius:0}.week-picker-day.range-start:not(.range-end){border-top-right-radius:0;border-bottom-right-radius:0}.week-picker-day.range-end:not(.range-start){border-top-left-radius:0;border-bottom-left-radius:0}.week-range-picker-body{padding-left:0;padding-right:0}.week-range-picker-summary{color:#6b6b6b;text-align:center;margin:0 0 12px;font-size:13px;line-height:20px}.week-range-picker-confirm{margin-top:4px}.week-detail-dates{color:var(--text);white-space:nowrap;cursor:pointer;text-align:right;background:0 0;border:none;flex-shrink:0;padding-bottom:6px;font-family:inherit;font-size:24px;font-weight:700;line-height:32px;transition:opacity .15s}.week-detail-dates:hover{opacity:.72}.week-detail-dates:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:4px}.week-picker-day.is-today{box-shadow:inset 0 0 0 1px var(--text)}.future-confirm-text{text-align:center;margin-bottom:4px;font-size:15px;font-weight:500}.repeat-plan-target-label{color:#6b6b6b;font-size:12px}.history-plan-main{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;margin-bottom:10px;padding:0;font-family:inherit}.danger-text{color:var(--error)}.week-date-strip{margin-bottom:16px}.week-date-strip-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding:4px 0 8px;display:flex;overflow-x:auto}.week-date-strip-scroll::-webkit-scrollbar{display:none}.week-date-item{border-radius:var(--radius);cursor:pointer;min-width:44px;color:var(--text-muted);background:0 0;border:1px solid #0000;flex-direction:column;flex:1 0 44px;align-items:center;gap:2px;padding:8px 4px 6px;font-family:inherit;display:flex}.week-date-weekday{font-size:11px;line-height:14px}.week-date-number{border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:500;line-height:20px;display:flex}.week-date-dot{background:0 0;border-radius:50%;width:4px;height:4px;margin-top:2px}.week-date-dot.active{background:var(--text)}.week-date-item.is-today .week-date-number{border:1px solid var(--text);color:var(--text)}.week-date-item.is-selected{color:var(--text)}.week-date-item.is-selected .week-date-number,.week-date-item.is-today.is-selected .week-date-number{background:var(--text);color:var(--action-text);border-color:var(--text)}.week-dashboard-section{margin-bottom:20px}.week-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;margin-bottom:8px}.week-card-main{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:14px 16px;font-family:inherit}.week-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.week-card h3{font-size:15px;font-weight:500}.week-card-rename{color:var(--text-muted);flex-shrink:0}.week-card-dates{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.week-card-meta,.week-card-status{color:var(--text-muted);font-size:11px;line-height:16px}.week-range-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:20px;padding:12px 14px;display:flex}.week-range-item{flex-direction:column;flex:1;gap:2px;display:flex}.week-range-label{color:var(--text-muted);font-size:11px}.week-range-dates{color:var(--text);font-size:13px;font-weight:500}.week-range-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}.week-slot-empty{border:1px dashed var(--border);border-radius:var(--radius);background:var(--subtle-surface);text-align:center;padding:16px}.week-slot-empty .empty-state{margin-bottom:8px}.quick-actions{flex-direction:column;gap:8px;display:flex}.quick-action-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);cursor:pointer;text-align:left;padding:14px 16px;font-family:inherit;font-size:14px;font-weight:500}.quick-action-btn:disabled{opacity:.45;cursor:not-allowed}.quick-action-btn.primary{background:var(--action);color:var(--action-text);border-color:var(--action)}.history-entry-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.history-entry-row .section-label{margin-bottom:0}.history-plan-list{flex-direction:column;gap:8px;display:flex}.history-plan-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.history-plan-info h3{margin-bottom:4px;font-size:15px;font-weight:500}.history-plan-meta{color:var(--text-muted);margin-bottom:10px;font-size:11px}.history-plan-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.repeat-plan-list{padding:16px var(--pad-x) 24px;flex-direction:column;gap:10px;max-height:60vh;display:flex;overflow-y:auto}.repeat-plan-item{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;box-sizing:border-box;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:52px;padding:14px 18px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.repeat-plan-item:active{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white)}.repeat-plan-name{color:var(--text);font-size:15px;font-weight:500;line-height:22px;display:block}.repeat-plan-meta{color:var(--text-secondary);font-size:12px;line-height:16px;display:block}.copy-plan-confirm{padding:16px var(--pad-x) 24px;flex-direction:column;gap:20px;display:flex}.copy-plan-summary{border:1px solid var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:6px;min-height:52px;padding:14px 18px;display:flex}.copy-plan-summary-row{flex-direction:row;align-items:baseline;gap:8px;min-width:0;display:flex}.copy-plan-summary-label{color:var(--text-secondary);flex-shrink:0;font-size:13px;font-weight:500;line-height:22px}.copy-plan-summary-value{min-width:0;color:var(--color-action);flex-flow:wrap;align-items:baseline;gap:6px;font-size:15px;font-weight:500;line-height:22px;display:flex}.copy-plan-summary-slot{display:inline}.copy-plan-summary-dates{color:var(--text-secondary);font-size:13px;font-weight:500;line-height:22px;display:inline}.copy-plan-confirm .onboarding-actions{margin-top:4px}.repeat-plan-target{flex-direction:column;gap:12px;padding:16px;display:flex}.repeat-plan-source{color:#5e5e5e;font-size:13px}.repeat-plan-target .field-label{color:#5e5e5e}.repeat-plan-target input{box-sizing:border-box;color:#111;background:#fff;border:1px solid #e5e5e5;border-radius:12px;width:100%;min-height:48px;padding:12px 14px;font-family:inherit;font-size:15px;line-height:22px}.repeat-plan-target input::placeholder{color:#6b6b6b}.repeat-plan-target input:focus{border-color:var(--color-action);outline:none}.slot-picker{flex-direction:column;gap:8px;display:flex}.slot-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.slot-option.selected{border-color:var(--text);background:var(--subtle-surface)}.slot-option-dates{color:var(--text-muted);font-size:11px;font-weight:400}.field-label{color:var(--text-secondary);font-size:12px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.confirm-dialog{background:var(--surface);border-radius:12px;width:min(100%,340px);padding:24px;box-shadow:0 16px 48px #00000029}.confirm-dialog-title{color:var(--text);margin:0 0 8px;font-size:18px;font-weight:600;line-height:26px}.confirm-dialog-message{color:var(--text-secondary);margin:0;font-size:14px;line-height:22px}.confirm-dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.confirm-dialog-danger-btn{background:var(--error);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.confirm-dialog-danger-btn:active{opacity:.92}.btn.full-width{justify-content:center;width:100%}.plans-back-row{margin-bottom:8px}.plans-back-row .page-back{margin-left:0}.week-detail-header{align-items:flex-start;gap:8px;margin-bottom:16px;display:flex}.week-detail-header h2{font-size:20px;font-weight:500}.week-detail-screen{font-family:var(--font-display);flex-direction:column;gap:20px;display:flex}.week-detail-topbar{grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;display:grid}.week-detail-icon-btn{width:40px;height:40px;color:var(--recipe-black);cursor:pointer;background:#fff;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 2px 10px #00000014}.week-detail-icon-btn:active{transform:scale(.96)}.week-detail-icon-btn.is-active{background:var(--tomorrow-green);border-color:var(--tomorrow-green);color:#fff}.week-detail-icon-btn.is-spacer{visibility:hidden;pointer-events:none;box-shadow:none;background:0 0;border-color:#0000}.week-detail-topbar-title{text-align:center;color:var(--recipe-black);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;font-weight:700;line-height:24px;overflow:hidden}.week-detail-topbar-edit{grid-template-columns:40px 1fr auto}.week-detail-done-btn{background:var(--color-food);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;min-height:36px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:700;line-height:20px;display:inline-flex}.week-detail-done-btn:active{opacity:.92}.week-detail-icon-btn.is-compact{width:36px;height:36px}.week-detail-edit-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.week-detail-plan-name-btn{min-width:0;color:var(--recipe-black);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-family:inherit;display:inline-flex}.week-detail-plan-name{text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700;line-height:28px;overflow:hidden}.week-detail-plan-name-btn svg{color:#888;flex-shrink:0}.week-detail-edit-title-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.week-detail-calendar-btn{min-height:36px;color:var(--color-food);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #0000001a;border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.week-detail-segmented{background:#f5f3f3;border-radius:12px;gap:0;padding:4px;display:flex}.week-detail-segment{color:#737972;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:12px 16px;font-family:inherit;font-size:16px;font-weight:400;line-height:24px}.week-detail-segment.is-active{color:var(--recipe-black);background:#fff;box-shadow:0 1px 2px #0000000d}.week-detail-tabs{margin-bottom:4px}.week-detail-history-summary{border:1px solid var(--recipe-border);background:var(--surface);border-radius:18px;padding:16px 18px}.week-detail-plan-panel,.week-detail-prep-panel{flex-direction:column;gap:20px;display:flex}.week-detail-prep-empty{border:1px solid var(--recipe-border);border-radius:var(--radius);background:var(--surface);text-align:center;flex-direction:column;align-items:stretch;gap:8px;padding:32px 24px;display:flex}.week-detail-prep-empty h3{color:var(--text);font-size:18px;font-weight:600}.week-detail-prep-empty p{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:20px}.week-detail-prep-actions{justify-content:flex-end;display:flex}.plan-detail-grocery-banner{text-align:left;cursor:pointer;color:#fff;background:linear-gradient(#00000078,#00000078),url(/grocery_image.png) 50%/cover no-repeat;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:110px;padding:20px 24px;font-family:inherit;display:flex;position:relative;overflow:hidden}.plan-detail-grocery-banner:active{opacity:.94}.plan-detail-grocery-banner.is-stale{outline-offset:-2px;outline:2px solid #f5a623}.grocery-stale-banner{background:#fff8eb;border:1px solid #f0d59b;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.grocery-stale-banner.is-compact{margin-bottom:12px}.grocery-stale-banner-icon{color:#c98712;flex-shrink:0;margin-top:1px}.grocery-stale-banner-copy{flex:1;min-width:0}.grocery-stale-banner-title{color:#8a5a00;margin:0;font-size:13px;font-weight:600;line-height:18px}.grocery-stale-banner-desc{color:#9a6b12;margin:2px 0 0;font-size:12px;line-height:17px}.grocery-stale-banner-action{color:#8a5a00;cursor:pointer;background:#fff;border:1px solid #c98712;border-radius:8px;flex-shrink:0;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:600}.plan-detail-grocery-copy{z-index:1;flex-direction:column;gap:2px;display:flex;position:relative}.plan-detail-grocery-title{letter-spacing:.06em;font-size:20px;font-weight:700;line-height:24px}.plan-detail-grocery-desc{color:#ffffffeb;font-size:16px;font-weight:600;line-height:24px}.plan-detail-grocery-arrow{width:44px;height:44px;color:var(--text);z-index:1;background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.empty-panel{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 16px}.panel-actions{justify-content:flex-end;margin-bottom:8px;display:flex}.generate-panel{text-align:center;padding:32px 16px}.generate-panel h3{margin-bottom:6px;font-size:17px;font-weight:500}.plan-setup-flow{padding-top:8px}.plan-setup-page{font-family:var(--font-display);color:var(--recipe-black);flex-direction:column;display:flex}.plan-setup-top{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.plan-setup-title{min-width:0;color:var(--recipe-black);letter-spacing:-.02em;align-items:center;gap:8px;margin:0;font-size:28px;font-weight:600;line-height:32px;display:flex}.plan-setup-title-icon{color:var(--color-action);flex-shrink:0}.plan-setup-form{flex-direction:column;gap:24px;display:flex}.plan-setup-section{flex-direction:column;gap:16px;display:flex}.plan-setup-question{color:var(--color-action);margin:0;font-size:14px;font-weight:700;line-height:20px}.plan-setup-hint{color:var(--recipe-black);margin:-8px 0 0;font-size:12px;line-height:18px}.plan-setup-range-summary{background:var(--surface-muted,#f5f5f4);color:var(--recipe-black);border-radius:12px;margin:0;padding:12px 14px;font-size:14px;line-height:20px}.plan-setup-notes-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:112px;color:var(--recipe-black);resize:vertical;background:#fff;padding:14px 16px;font-family:inherit;font-size:14px;line-height:22px}.plan-setup-notes-input::placeholder{color:#1b1c1c73}.plan-setup-page .serving-size-label,.plan-setup-page .serving-size-current,.plan-setup-page .serving-size-hint{color:var(--recipe-black)}.plan-setup-notes-input:focus{outline:1px solid var(--text);outline-offset:0}.plan-setup-days-control{background:var(--recipe-gray-bg);border-radius:var(--radius);border:1px solid #7e75761a;gap:4px;padding:4px;display:flex}.plan-setup-days-option{color:var(--recipe-black);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:10px 12px;font-family:inherit;font-size:12px;font-weight:500;line-height:16px;transition:background .15s,color .15s}.plan-setup-days-option.selected{background:var(--action);color:var(--action-text);box-shadow:0 10px 30px -10px #0000000a}.serving-size-field{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.serving-size-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.serving-size-label{color:var(--text);font-size:13px;font-weight:500}.serving-size-current{color:var(--recipe-black);font-size:12px}.serving-size-hint{color:var(--recipe-black);margin:0;font-size:12px;line-height:18px}.serving-size-options{flex-wrap:wrap;gap:8px;display:flex}.serving-size-option{border:1px solid var(--border);background:var(--surface);min-width:64px;color:var(--recipe-black);cursor:pointer;border-radius:8px;flex:1;padding:10px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:background .15s,border-color .15s,color .15s}.serving-size-option.selected{border-color:var(--action);color:var(--recipe-black);background:#fff}.recipe-time-field{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.recipe-time-label{color:var(--text);font-size:13px;font-weight:500}.recipe-time-custom{align-items:center;gap:6px;display:flex}.recipe-time-custom-input{flex:1;min-width:0;padding:8px 12px;font-size:14px;line-height:20px}.recipe-time-custom-unit{color:#5e5e5e;flex-shrink:0;font-size:12px;line-height:16px}.recipe-detail-servings,.grocery-servings-warning{color:var(--text-muted);margin:0 0 12px;font-size:12px;line-height:18px}.plan-setup-meal-list,.plan-setup-frequency-list{flex-direction:column;gap:12px;display:flex}.plan-setup-meal-row,.plan-setup-frequency-option{border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:left;border:1px solid #7e757633;justify-content:space-between;align-items:center;width:100%;min-height:47px;padding:12px 18px 12px 20px;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}.plan-setup-meal-label{color:var(--recipe-black);font-size:13px;font-weight:500;line-height:20px}.plan-setup-checkbox{background:var(--surface);border:1px solid #7e757633;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.plan-setup-meal-row.selected .plan-setup-checkbox{background:var(--action);border-color:var(--action)}.plan-setup-frequency-option{color:var(--recipe-black);justify-content:flex-start;font-size:13px;font-weight:500;line-height:20px}.plan-setup-frequency-option.selected{background:var(--action);border-color:var(--action);color:var(--action-text)}.plan-setup-prep-list{flex-direction:column;gap:12px;display:flex}.plan-setup-prep-card{border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:left;border:1px solid #7e757633;align-items:flex-start;gap:16px;width:100%;padding:20px;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}.plan-setup-prep-card.selected{background:var(--action);border-color:var(--action);box-shadow:0 10px 30px -10px #0000000a}.plan-setup-prep-icon{border-radius:var(--radius);background:var(--recipe-tag-bg);width:48px;height:48px;color:var(--recipe-black);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.plan-setup-prep-card.selected .plan-setup-prep-icon{color:var(--action-text);background:#ffffff1a}.plan-setup-prep-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.plan-setup-prep-title{color:var(--recipe-black);font-size:14px;font-weight:700;line-height:22px}.plan-setup-prep-card.selected .plan-setup-prep-title{color:var(--action-text)}.plan-setup-prep-desc{color:var(--text-secondary);font-size:12px;font-weight:400;line-height:20px}.plan-setup-prep-card.selected .plan-setup-prep-desc{color:#fffc}.plan-setup-footer{margin-top:32px;padding-top:0}.plan-setup-submit{background:var(--color-action);width:100%;color:var(--color-action-text);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:16px 20px;font-family:inherit;font-size:14px;font-weight:700;line-height:20px;transition:opacity .15s;display:inline-flex;box-shadow:0 2px 4px -2px #253f2b33,0 4px 6px -1px #253f2b33}.plan-setup-submit:disabled{opacity:.45;cursor:not-allowed}.week-planner{flex-direction:column;gap:20px;display:flex}.week-planner.is-editing{gap:16px}.week-plan-date-strip{margin:0 -4px}.week-plan-date-strip-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:2px 4px 6px;display:flex;overflow-x:auto}.week-plan-date-strip-scroll::-webkit-scrollbar{display:none}.week-plan-date-pill{min-width:48px;color:var(--recipe-black);cursor:pointer;background:#fff;border:1px solid #00000014;border-radius:999px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:10px 12px;font-family:inherit;display:flex}.week-plan-date-pill.is-selected{background:var(--color-food);border-color:var(--color-food);color:#fff}.week-plan-date-number{font-size:15px;font-weight:700;line-height:20px}.week-plan-date-weekday{opacity:.85;font-size:11px;font-weight:500;line-height:14px}.week-planner-edit-hint{color:#737972;text-align:center;background:#f5f3f3;border-radius:8px;margin:0;padding:10px 14px;font-size:13px;line-height:20px}.week-planner-section,.week-planner-days{flex-direction:column;gap:14px;display:flex}.week-planner-day-card{background:#fff;border:1px solid #0000000a;border-radius:16px;flex-direction:column;gap:16px;padding:16px;scroll-margin-top:16px;display:flex;box-shadow:0 1px 3px #0000000f}.week-planner-day-card.is-edit-mode{box-shadow:none;border:1px solid #00000014}.week-planner-day-card.is-muted{opacity:.88}.week-planner-day-card.is-selected{box-shadow:0 0 0 1px #4a654f38,0 2px 8px #0000000f}.week-planner-day-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-planner-day-card-heading{align-items:center;gap:8px;min-width:0;display:flex}.week-planner-day-grip{color:#b0b0b0;flex-shrink:0;display:inline-flex}.week-planner-day-card-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.week-planner-day-chevron-btn{color:#888;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.week-planner-section-title{color:var(--recipe-black);margin:0 0 4px;font-size:20px;font-weight:700;line-height:28px}.week-planner-meals.is-edit-list{gap:0}.week-planner-edit-meal-group{flex-direction:column;display:flex}.week-planner-edit-meal-group .plan-meal-recipe-card.is-edit-row{border-bottom:1px solid #0000000f;padding:12px 0}.week-planner-edit-meal-group .plan-meal-recipe-card.is-edit-row:last-child{border-bottom:none}.week-planner-dine-out-note{color:var(--color-food);margin:0;padding:8px 0 4px;font-size:13px;line-height:18px}.week-planner-day-footer{border-top:1px solid #0000000f;justify-content:flex-start;align-items:center;gap:12px;padding-top:4px;display:flex}.week-planner-day-footer-actions{flex-wrap:wrap;align-items:center;gap:12px 16px;width:100%;display:flex}.week-planner-day-copy-btn{color:#5e5e5e;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:14px;font-weight:600;line-height:20px;display:inline-flex}.week-planner-add-meal-btn{color:var(--color-food);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:14px;font-weight:600;line-height:20px;display:inline-flex}.week-planner-add-meal-btn:disabled{opacity:.4;cursor:not-allowed}.week-planner-dine-out-btn{border:1px solid var(--color-food);min-height:34px;color:var(--color-food);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.week-planner-add-meal-btn:disabled,.week-planner-add-meal-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}.week-planner-dine-out-btn.is-active{background:#4a654f1a}.week-planner-dine-out-btn:disabled{opacity:.45;cursor:not-allowed}.week-planner-edit-meal-group.is-locked,.plan-meal-recipe-card.is-locked{opacity:.55;pointer-events:none}.plan-meal-recipe-cta:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.week-planner-add-meal-picker{flex-direction:column;gap:8px;width:100%;display:flex}.week-planner-add-meal-label{color:#888;font-size:12px}.week-planner-add-meal-actions{flex-wrap:wrap;gap:8px;display:flex}.week-planner-day-date{color:#888;font-size:14px;font-weight:500;line-height:20px}.week-planner-day-badge{color:#737972;background:#f2f2f2;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.week-planner-day-badge.is-planned{color:var(--color-food);background:#4a654f1f}.week-planner-day-badge-dot{background:currentColor;border-radius:999px;width:6px;height:6px}.week-planner-summary-chips{flex-wrap:wrap;gap:8px;display:flex}.week-planner-chip{background:var(--subtle-surface);color:var(--recipe-black);border-radius:999px;align-items:center;padding:5px 12px;font-size:13px;line-height:18px;display:inline-flex}.week-planner-controls{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.week-planner-control{border:1px solid var(--color-metadata-border);min-height:44px;color:var(--recipe-black);cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:500;line-height:20px;transition:background .15s,opacity .15s;display:inline-flex}.week-planner-control:active{opacity:.9}.week-planner-control:disabled{opacity:.5;cursor:not-allowed}.week-planner-control.is-primary{background:var(--recipe-black);color:#fff;border-color:#0000;flex:160px}.week-planner-control.is-compact{flex:none;min-height:36px;padding:0 20px}.week-planner-edit-bar{border:1px solid var(--color-metadata-border);background:var(--subtle-surface);border-radius:16px;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;display:flex}.week-planner-edit-bar-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-planner-edit-bar-title{color:var(--recipe-black);font-size:15px;font-weight:600}.week-planner-edit-bar-actions{flex-wrap:wrap;gap:8px;display:flex}.week-planner-edit-bar-actions .week-planner-control.is-ghost{background:#fff;flex:auto;min-height:40px}.week-planner-edit-bar .week-planner-edit-hint{text-align:left;background:0 0;margin:0;padding:0}.week-planner-day-summary{flex-direction:column;gap:10px;padding-top:4px;display:flex}.week-planner-summary-meal{grid-template-columns:48px minmax(0,1fr);align-items:start;gap:8px 12px;display:grid}.week-planner-summary-meal-label{color:var(--taupe);padding-top:2px;font-size:12px;line-height:20px}.week-planner-summary-recipes{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.week-planner-summary-recipe{align-items:center;gap:4px;max-width:100%;display:inline-flex}.week-planner-summary-recipe-name{background:var(--subtle-surface);color:var(--recipe-black);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:none;border-radius:999px;max-width:100%;padding:4px 10px;font-family:inherit;font-size:13px;line-height:18px;overflow:hidden}.week-planner-summary-recipe-remove{background:var(--soft-surface);width:20px;height:20px;color:var(--taupe);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.week-planner-summary-empty{color:var(--taupe);font-size:13px}.week-planner-summary-add{border:1px dashed var(--border);color:var(--taupe);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:12px;display:inline-flex}.week-planner-summary-empty-day{color:#888;margin:0;font-size:13px}.week-planner-meal-header-main{flex-direction:column;gap:8px;min-width:0;display:flex}.week-planner-meal-servings-tag{background:var(--subtle-surface);color:var(--taupe);border-radius:999px;width:fit-content;padding:2px 8px;font-size:11px;line-height:16px}.serving-size-compact{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.serving-size-compact-label{color:var(--taupe);flex-shrink:0;font-size:11px}.serving-size-compact-options{flex-wrap:wrap;gap:4px;display:flex}.serving-size-compact-option{border:1px solid var(--border);color:var(--taupe);cursor:pointer;background:#fff;border-radius:999px;padding:2px 8px;font-family:inherit;font-size:11px;line-height:16px}.serving-size-compact-option.selected{border-color:var(--recipe-black);background:var(--recipe-black);color:#fff}.plan-setup-page.is-embedded{min-height:0}.plan-setup-page.is-embedded .plan-setup-form{padding-bottom:0}.plan-setup-footer.is-embedded{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;padding-top:16px;padding-bottom:8px;display:grid}.plan-setup-submit-secondary{color:var(--recipe-black);border:1px solid var(--border);background:#fff}.plan-settings-overlay{z-index:260;background:#1116;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.plan-settings-sheet{width:100%;max-width:var(--app-max);background:var(--bg);border-radius:12px 12px 0 0;flex-direction:column;max-height:92dvh;display:flex;overflow:hidden}.plan-settings-sheet-header{padding:18px var(--pad-x) 12px;border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.plan-settings-sheet-heading{align-items:flex-start;gap:12px;display:flex}.plan-settings-sheet-title{margin:0;font-size:16px;font-weight:600;line-height:22px}.plan-settings-sheet-desc{color:var(--taupe);margin:4px 0 0;font-size:12px;line-height:18px}.plan-settings-sheet-close{background:var(--soft-surface);border-radius:999px;flex-shrink:0;width:32px;height:32px}.plan-settings-sheet-body{-webkit-overflow-scrolling:touch;padding:0 var(--pad-x) max(24px, env(safe-area-inset-bottom));flex:1;overflow-y:auto}.week-planner-day-title{color:var(--recipe-black);margin:0;font-size:16px;font-weight:700;line-height:24px}.week-planner-day-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.week-planner-copy-btn{background:var(--color-action);color:var(--color-action-text);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:6px 15px;font-family:inherit;font-size:12px;font-weight:400;line-height:16px}.week-planner-copy-banner{border:1px solid var(--recipe-border);border-radius:var(--radius);background:var(--recipe-gray-bg);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.week-planner-copy-banner p{color:var(--text);font-size:13px;line-height:20px}.week-planner-copy-days,.week-planner-meal-picker-actions{flex-wrap:wrap;gap:8px;display:flex}.week-planner-meal-picker{flex-direction:column;gap:8px;margin-top:-8px;display:flex}.week-planner-meal-picker-label{color:var(--recipe-secondary);font-size:12px}.week-planner-copy-day-btn,.week-planner-copy-cancel{border:1px solid var(--recipe-border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600}.week-planner-copy-cancel{color:var(--recipe-secondary);background:0 0}.week-planner-meals{flex-direction:column;gap:16px;display:flex}.week-planner-meal{flex-direction:column;gap:10px;display:flex}.week-planner-meal-header{flex-direction:column;gap:8px;display:flex}.week-planner-meal-header-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-planner-meal-label{color:#3f463f;align-items:center;margin:0;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.week-planner-add-btn{background:var(--color-action);color:var(--color-action-text);letter-spacing:.04em;cursor:pointer;border:1px solid #fff;border-radius:6px;flex-shrink:0;padding:6px 15px;font-family:inherit;font-size:12px;font-weight:700;line-height:16px}.week-planner-recipes{flex-direction:column;gap:10px;display:flex}.week-planner-empty-day{flex-direction:column;gap:12px;display:flex}.week-planner-empty-slot{cursor:pointer;background:#fafafa;border:1px dashed #c2c8c0;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:72px;padding:16px;font-family:inherit;display:flex}.week-planner-empty-icon{width:20px;height:20px;color:var(--color-food);justify-content:center;align-items:center;display:flex}.week-planner-empty-title{color:var(--color-metadata);font-size:16px;font-weight:400;line-height:24px}.week-planner-empty-subtitle{color:var(--recipe-secondary);font-size:12px;line-height:16px}.week-planner-empty-readonly{flex-direction:column;gap:8px;padding:16px 0 4px;display:flex}.week-planner-empty-readonly-text{color:#737972;font-size:14px;line-height:24px}.week-planner-regenerate{color:var(--color-ai);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:center;padding:0;font-family:inherit;font-size:12px;line-height:16px;text-decoration:underline}.week-planner-regenerate:disabled{opacity:.5;cursor:not-allowed}.plan-meal-recipe-card{box-shadow:none;background:0 0;border-radius:0;align-items:flex-start;gap:12px;padding:0;display:flex;position:relative}.plan-meal-recipe-card.is-edit-row{align-items:center;gap:10px}.plan-meal-recipe-media{background:var(--recipe-gray-bg);border-radius:12px;flex-shrink:0;width:64px;height:64px;overflow:hidden}.plan-meal-recipe-card.is-edit-row .plan-meal-recipe-media{border-radius:10px;width:52px;height:52px}.plan-meal-recipe-media img,.plan-meal-recipe-media-placeholder{object-fit:cover;width:100%;height:100%}.plan-meal-recipe-media-placeholder{justify-content:center;align-items:center;font-size:22px;display:flex}.plan-meal-recipe-body{flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-width:0;padding-top:2px;display:flex}.plan-meal-recipe-card.is-edit-row .plan-meal-recipe-body{gap:2px;padding-top:0}.plan-meal-recipe-mealtype{color:#888;font-size:12px;font-weight:500;line-height:16px}.plan-meal-recipe-title{font-family:var(--font-hanken), var(--font);color:var(--recipe-black);margin:0;font-size:15px;font-weight:700;line-height:22px}.plan-meal-recipe-card.is-edit-row .plan-meal-recipe-title{font-size:14px;line-height:20px}.plan-meal-recipe-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.plan-meal-recipe-cta{background:var(--color-action);width:auto;min-height:32px;color:var(--color-action-text);font-family:var(--font-hanken), var(--font);letter-spacing:.04em;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;line-height:16px;display:inline-flex}.plan-meal-recipe-cta.is-compact{min-height:30px;color:var(--recipe-black);letter-spacing:0;background:#fff;border:1px solid #0000001a;border-radius:999px;padding:5px 10px;font-weight:600}.plan-meal-recipe-cta:active{opacity:.9}.plan-meal-recipe-more{position:relative}.plan-meal-recipe-more-btn{width:30px;height:30px;color:var(--recipe-black);cursor:pointer;background:#fff;border:1px solid #0000001a;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.plan-meal-recipe-menu{z-index:20;background:#fff;border:1px solid #00000014;border-radius:12px;flex-direction:column;min-width:132px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000001f}.plan-meal-recipe-menu button{width:100%;color:var(--recipe-black);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:18px;display:inline-flex}.plan-meal-recipe-menu button:hover,.plan-meal-recipe-menu button:active{background:#f5f5f4}.plan-meal-recipe-menu button.is-danger{color:#b42318}.plan-meal-recipe-menu button.is-active{color:var(--color-food);background:#4a654f14}.plan-meal-recipe-card.is-dine-out .plan-meal-recipe-media img{opacity:.55;filter:grayscale(.35)}.plan-meal-recipe-card.is-dine-out .plan-meal-recipe-title{color:#6b7268}.plan-meal-recipe-card.is-dine-out .plan-meal-recipe-mealtype{color:var(--color-food);font-weight:600}.plan-meal-recipe-dine-out-badge{color:var(--color-food);background:#4a654f1a;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex}.week-planner-meal-dine-out-tag{color:var(--color-food);vertical-align:middle;background:#4a654f1a;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px}.weekly-planner{margin-top:0}.planner-board{flex-direction:column;gap:12px;margin:12px 0;display:flex}.day-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.day-title{color:var(--text);margin-bottom:10px;font-size:15px;font-weight:500}.meal-slot{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:10px}.meal-slot:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.meal-slot-head{color:var(--text-muted);letter-spacing:.03em;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;font-weight:500;display:flex}.meal-slot-actions{gap:4px;display:flex}.meal-recipes{flex-direction:column;gap:6px;display:flex}.empty-meal-slot{border:1px dashed var(--border);border-radius:var(--radius);background:var(--subtle-surface);width:100%;color:var(--text-muted);cursor:pointer;padding:12px;font-family:inherit;font-size:13px}.recipe-mini-card{border:1px solid var(--recipe-border);background:var(--surface);font-family:var(--font-display);border-radius:16px;gap:10px;padding:10px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:flex;position:relative}.recipe-mini-card.clickable{cursor:pointer}.recipe-mini-card.clickable:hover{border-color:#b7c4ba}.recipe-mini-card.is-selected{border-color:var(--tomorrow-green);box-shadow:0 0 0 1px var(--tomorrow-green);background:#f3f7f4}.mini-thumb{background:var(--soft-surface);border-radius:12px;flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.mini-thumb img{object-fit:cover;width:100%;height:100%}.mini-thumb-placeholder{width:100%;height:100%;color:var(--tomorrow-green);background:#eef3ef;justify-content:center;align-items:center;font-size:18px;display:flex}.mini-selected-check{background:var(--tomorrow-green);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex;position:absolute;bottom:4px;right:4px}.mini-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mini-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;font-weight:600;line-height:18px;overflow:hidden}.mini-creator{color:#8e8e8e;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:11px;line-height:14px;overflow:hidden}.mini-source-link{color:var(--taupe);font-size:11px}.mini-remove{position:absolute;top:4px;right:4px}.copy-banner{background:var(--subtle-surface);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:12px;padding:12px;font-size:13px}.copy-day-buttons{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.planner-actions{margin-top:12px}.plan-support-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:16px}.plan-support-caption{letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px;font-size:10px;line-height:14px}.plan-support-title{color:var(--text);margin-bottom:6px;font-size:17px;font-weight:500;line-height:24px}.plan-support-hint{color:var(--text-muted);margin-bottom:12px;font-size:11px;line-height:16px}.plan-support-btn{width:100%}.grocery-tab-screen{font-family:var(--font-display);flex-direction:column;gap:24px;display:flex}.grocery-page-header{justify-content:space-between;align-items:baseline;gap:16px;padding-top:8px;display:flex}.grocery-page-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--tomorrow-green);margin:0;font-size:30px;font-weight:700;line-height:1.1}.grocery-page-date{font-family:var(--font-display);letter-spacing:.01em;color:var(--color-metadata);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600;line-height:20px}.grocery-tab-body{flex-direction:column;gap:20px;display:flex}.grocery-hero{aspect-ratio:16/7;background:#f2f2f2;border-radius:24px;width:100%;position:relative;overflow:hidden}.grocery-hero-image{object-fit:cover;object-position:center}.grocery-plan-picker{width:100%;position:relative}.grocery-plan-card{border:1px solid var(--recipe-border);background:var(--surface);width:100%;min-height:52px;box-shadow:none;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;font-family:inherit;display:flex}.grocery-plan-card:disabled{cursor:default}.grocery-plan-card-icon{color:var(--tomorrow-green);flex-shrink:0}.grocery-plan-card-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.grocery-plan-card-name{letter-spacing:.01em;color:#1a1a1a;font-size:15px;font-weight:500;line-height:20px}.grocery-plan-card.is-placeholder .grocery-plan-card-name{color:var(--color-metadata);font-weight:400}.grocery-plan-card-dates{font-family:var(--font-mono);color:#5a5a5a;font-size:12px;font-weight:500;line-height:16px}.grocery-plan-card-chevron{color:#b0b0b0;flex-shrink:0;transition:transform .15s}.grocery-plan-card.is-open .grocery-plan-card-chevron{transform:rotate(180deg)}.grocery-plan-dropdown{z-index:60;background:var(--surface,#fff);border:1px solid color-mix(in srgb, var(--color-action) 14%, white);border-radius:14px;flex-direction:column;gap:2px;max-height:280px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 28px #1111111f}.grocery-empty-card{background:var(--surface);border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 16px #00000014}.grocery-empty-card-media{aspect-ratio:16/10;background:#f3f1ec;width:100%;position:relative}.grocery-empty-card-image{object-fit:cover;object-position:center}.grocery-empty-card-body{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 24px 24px;display:flex}.grocery-empty-card-title{color:var(--tomorrow-green);margin:0;font-size:22px;font-weight:700;line-height:28px}.grocery-empty-card-desc{max-width:280px;color:var(--color-metadata);margin:0;font-size:14px;font-weight:400;line-height:22px}.grocery-empty-card-cta{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:100%;max-width:280px;margin-top:8px;padding:14px 20px;font-family:inherit;font-size:16px;font-weight:500;line-height:24px;transition:opacity .15s;display:flex}.grocery-empty-card-cta:active{opacity:.88}.grocery-empty-card-cta:disabled{opacity:.55;cursor:default}.grocery-empty-panel{flex-direction:column;align-items:stretch;gap:8px;padding:20px 0;display:flex}.grocery-regenerate-row{width:100%;padding-top:12px}.grocery-regenerate-btn{min-height:48px;font-size:15px}.grocery-regenerate-btn.is-emphasis{font-weight:600}.grocery-week-picker-option{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit}.grocery-week-picker-option:hover{background:color-mix(in srgb, var(--color-action) 6%, white)}.grocery-week-picker-option.selected{background:color-mix(in srgb, var(--color-action) 10%, white)}.grocery-week-picker-option.selected .grocery-week-picker-option-name{color:var(--color-action);font-weight:600}.grocery-week-picker-option-name{color:var(--text);margin-bottom:2px;font-size:14px;display:block}.grocery-week-picker-option-meta{color:color-mix(in srgb, var(--color-action) 55%, #888);font-size:12px;display:block}.grocery-week-picker-option.selected .grocery-week-picker-option-meta{color:color-mix(in srgb, var(--color-action) 72%, white)}.grocery-list.embedded{background:0 0;border:none;flex-direction:column;gap:20px;margin-bottom:0;padding:0;display:flex}.grocery-list-title{margin-bottom:12px;font-size:48px;font-weight:700;line-height:60px}.grocery-trips-row{border:1px solid color-mix(in srgb, var(--color-action) 14%, white);background:var(--surface,#fff);cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:16px;padding:12px 14px;font-family:inherit;display:flex}.grocery-trips-row-state,.grocery-trips-row-action{color:var(--color-action);align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.grocery-trip-strip{align-items:stretch;gap:8px;margin-bottom:16px;display:flex}.grocery-trip-tabs{background:var(--surface,#fff);border:1px solid color-mix(in srgb, var(--color-action) 14%, white);border-radius:16px;flex:1;gap:6px;padding:4px;display:flex}.grocery-trip-tab{cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;font-family:inherit;display:flex}.grocery-trip-tab.is-active{background:color-mix(in srgb, var(--color-action) 8%, white);border-color:var(--color-action);color:var(--color-action);box-shadow:none}.grocery-trip-tab-title{font-size:13px;font-weight:600;line-height:18px}.grocery-trip-tab-range,.grocery-trip-tab-count{color:#5c6b60;font-size:11px;line-height:15px}.grocery-trip-tab.is-active .grocery-trip-tab-range,.grocery-trip-tab.is-active .grocery-trip-tab-count{color:color-mix(in srgb, var(--color-action) 72%, white)}.grocery-trip-edit{border:1px solid color-mix(in srgb, var(--color-action) 14%, white);background:var(--surface,#fff);width:40px;height:40px;color:var(--color-action);border-radius:12px;flex:none;align-self:center}.shopping-days-overlay{z-index:var(--z-sheet);background:var(--scrim);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.shopping-days-sheet{background:var(--surface,#fff);width:100%;max-width:380px;max-height:82vh;box-shadow:var(--shadow-overlay);border-radius:20px;padding:28px 24px 24px;position:relative;overflow-y:auto}.shopping-days-close{background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action);border-radius:var(--radius-pill);position:absolute;top:14px;right:14px}.shopping-days-header{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:18px;padding-right:0;display:flex}.shopping-days-icon{background:color-mix(in srgb, var(--color-action) 12%, white);width:44px;height:44px;color:var(--color-action);border-radius:14px;flex:none;justify-content:center;align-items:center;display:flex}.shopping-days-heading{flex-direction:column;align-items:center;gap:6px;display:flex}.shopping-days-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:20px;font-weight:500;line-height:28px}.shopping-days-subtitle{color:var(--text-secondary);margin:0;font-size:13px;line-height:18px}.shopping-days-body{flex-direction:column;gap:14px;display:flex}.shopping-days-rhythms{flex-direction:column;gap:10px;display:flex}.shopping-days-rhythm{border:1px solid var(--border);background:var(--surface,#fff);text-align:left;cursor:pointer;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:12px 16px;font-family:inherit;transition:border-color .15s,background .15s,color .15s;display:flex}.shopping-days-rhythm.is-active{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white)}.shopping-days-rhythm-label{color:var(--text);font-size:15px;font-weight:500;line-height:22px}.shopping-days-rhythm.is-active .shopping-days-rhythm-label{color:var(--color-action)}.shopping-days-rhythm-hint{color:var(--text-secondary);font-size:12px;line-height:16px}.shopping-days-options-label{color:var(--text-secondary);margin:0 0 8px;font-size:12px;font-weight:500;line-height:16px}.shopping-days-options{flex-direction:column;gap:8px;display:flex}.shopping-days-option{border:1px solid var(--border);background:var(--surface,#fff);min-height:52px;color:var(--text);cursor:pointer;text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:14px;transition:border-color .15s,background .15s,color .15s;display:flex}.shopping-days-option.is-active{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action);font-weight:500}.shopping-days-option.is-locked{cursor:default}.shopping-days-option-note{color:var(--color-action);opacity:.75;font-size:11px;font-weight:500}.shopping-days-summary{text-align:center;color:var(--text-secondary);margin:0;font-size:12px}.grocery-progress-block{flex-direction:column;gap:8px;display:flex}.grocery-progress-label{letter-spacing:.05em;text-transform:uppercase;color:#4a654f;font-size:12px;font-weight:700;line-height:16px}.grocery-progress-track{background:#eee;border-radius:999px;height:4px;overflow:hidden}.grocery-progress-fill{background:#4a654f;border-radius:999px;height:100%;transition:width .2s}.grocery-categories{flex-direction:column;gap:48px;padding-top:4px;display:flex}.grocery-category-block{flex-direction:column;gap:16px;display:flex}.grocery-category-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.grocery-category-head-left{align-items:center;gap:8px;min-width:0;display:flex}.grocery-category-icon{color:#4a654f;flex-shrink:0}.grocery-category-title{letter-spacing:.01em;color:#4a654f;font-size:14px;font-weight:600;line-height:20px}.grocery-check-all-btn{letter-spacing:.02em;color:#5e5e5e;cursor:pointer;background:#fff;border:1px solid #d8d8d8;border-radius:999px;flex-shrink:0;padding:2px 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:16px}.grocery-item-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.grocery-item-card{background:var(--surface);border-radius:16px;align-items:flex-start;gap:16px;padding:16px;display:flex;box-shadow:0 2px 12px #0000000f}.grocery-item-card.is-checked .grocery-item-name{color:#737972;text-decoration:line-through}.grocery-check{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 0 0}.grocery-check-box{background:var(--surface);color:#fff;border:1px solid #c2c8c0;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.grocery-item-card.is-checked .grocery-check-box{background:var(--color-food);border-color:var(--color-food)}.grocery-item-content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.grocery-item-name{color:#1b1c1c;font-size:16px;font-weight:400;line-height:24px}.grocery-item-name-row{align-items:center;gap:6px;min-width:0;display:flex}.grocery-item-manual-tag{color:#5e5e5e;background:#eee;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:11px;font-weight:500;line-height:16px}.grocery-item-remove{color:#5e5e5e;cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin:-4px -4px 0 0;padding:0;display:inline-flex}.grocery-add-block{margin-top:8px}.grocery-add-open{width:100%;min-height:44px;color:var(--color-action);cursor:pointer;background:#fff;border:1px dashed #eee;border-radius:16px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;display:inline-flex}.grocery-add-form{background:#fff;border:1px solid #eee;border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.grocery-add-input{width:100%;min-height:44px;color:var(--text);box-sizing:border-box;background:#fff;border:1px solid #eee;border-radius:12px;padding:10px 14px;font-family:inherit;font-size:14px}.grocery-add-input:focus{border-color:var(--color-action);outline:none}.grocery-add-qty-row{grid-template-columns:1fr 1fr 1.2fr;gap:8px;display:grid}.grocery-add-select{appearance:none}.grocery-add-actions{gap:8px;display:flex}.grocery-add-cancel{color:#5e5e5e;cursor:pointer;background:#eee;border:none;border-radius:999px;flex:none;min-width:80px;min-height:44px;font-family:inherit;font-size:14px;font-weight:500}.grocery-add-submit{flex:1;min-height:44px}.grocery-item-recipes{color:var(--color-metadata);font-size:12px;font-weight:400;line-height:16px}.grocery-qty-badge{letter-spacing:.02em;max-width:50%;color:var(--color-food);text-align:center;white-space:nowrap;background:#eef3ef;border:1px solid #c5d4c8;border-radius:999px;flex-shrink:0;align-self:flex-start;padding:4px 10px;font-size:12px;font-weight:600;line-height:16px}.grocery-pantry-card{border:1px solid var(--recipe-border);background:var(--surface);border-radius:16px;padding:24px 22px}.grocery-pantry-title{letter-spacing:.08em;text-transform:uppercase;color:#4c4546;margin-bottom:16px;font-size:14px;font-weight:700;line-height:16px}.grocery-pantry-chips{flex-wrap:wrap;gap:8px;display:flex}.grocery-pantry-chip{background:var(--surface);letter-spacing:.05em;min-height:32px;color:var(--text);border:1px solid #c3c3c3;border-radius:8px;justify-content:center;align-items:center;padding:6px 16px;font-size:11px;font-weight:700;line-height:16px;display:inline-flex}.meal-prep-guide{padding:0}.batch-prep-section+.batch-prep-section{border-top:1px solid var(--border);margin-top:28px;padding-top:24px}.batch-prep-section-title{color:var(--text);margin-bottom:14px;font-size:17px;font-weight:500;line-height:24px}.batch-prep-progress{margin-bottom:20px}.batch-prep-progress-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.batch-prep-progress-label{color:var(--text-secondary);font-size:13px;font-weight:500;line-height:20px}.batch-prep-progress-percent{color:var(--text-muted);font-size:13px;font-weight:500;line-height:20px}.batch-prep-category{margin-bottom:18px}.batch-prep-category:last-child{margin-bottom:0}.batch-prep-category-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.batch-prep-category-title{color:var(--text);font-size:13px;font-weight:500;line-height:20px}.batch-prep-check-all{min-height:32px;padding:4px 0;font-size:12px}.batch-prep-task-list .prep-task-row{border:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:8px;padding:10px 12px}.batch-prep-task-list .prep-task-row:last-child{margin-bottom:0}.prep-guide-header{margin-bottom:20px}.meal-prep-guide h2{margin-bottom:4px;font-size:17px;font-weight:500}.prep-guide-summary{color:var(--text-muted);font-size:13px;line-height:20px}.prep-guide-all-complete,.prep-timeline-empty{color:var(--text-muted);padding:8px 0 16px;font-size:14px;line-height:22px}.prep-timeline-section{margin-bottom:24px}.prep-timeline-section-label{color:var(--text-muted);letter-spacing:.04em;margin-bottom:10px;font-size:11px;font-weight:500}.prep-session-list{flex-direction:column;gap:0;display:flex}.prep-session-row{border-bottom:1px solid var(--border)}.prep-session-row.is-complete .prep-session-trigger-label{color:var(--text-muted)}.prep-session-trigger{cursor:pointer;text-align:left;width:100%;min-height:44px;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.prep-session-trigger:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:4px}.prep-session-trigger-label{min-width:0;color:var(--text);flex:1;font-size:14px;line-height:22px}.prep-session-trigger-meta{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:inline-flex}.prep-session-chevron{color:var(--text-muted);font-size:16px;line-height:1}.prep-session-card{border-bottom:1px solid var(--border);padding:12px 0 16px}.prep-session-card.is-featured{padding-top:0}.prep-session-card.is-complete .prep-session-title{color:var(--text-muted)}.prep-session-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.prep-session-title{min-width:0;color:var(--text);flex:1;font-size:15px;font-weight:500;line-height:22px}.prep-session-title-btn{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:0;font-size:15px;font-weight:500;line-height:22px}.prep-session-title-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:4px}.prep-session-count{color:var(--text-muted);flex-shrink:0;font-size:13px;font-weight:500}.prep-session-panel{padding-top:2px}.prep-session-progress{margin-bottom:14px}.prep-session-progress-head{justify-content:flex-end;margin-bottom:4px;display:flex}.prep-session-progress-count{color:var(--text-muted);font-size:12px;font-weight:500}.prep-session-duration{color:var(--text-muted);margin-bottom:8px;font-size:12px}.prep-session-timing-label{color:var(--text-muted);letter-spacing:.03em;margin:12px 0 6px;font-size:11px;font-weight:500}.prep-session-content-group:first-child .prep-session-timing-label{margin-top:0}.prep-session-actions{padding-top:8px}.prep-complete-all-btn{min-height:44px;padding:10px 0}.prep-session-complete-message{padding:8px 0 4px}.prep-session-complete-message p{color:var(--text);font-size:14px;line-height:22px}.prep-session-complete-sub{color:var(--text-muted);margin-top:2px;font-size:13px}.prep-undo-bar{background:var(--subtle-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);justify-content:space-between;align-items:center;gap:12px;margin:8px 0 16px;padding:10px 12px;font-size:13px;display:flex}.prep-guide-secondary{border-top:1px solid var(--border);margin-top:28px;padding-top:20px}.prep-guide-secondary .guide-section h3{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-weight:500}.guide-subtitle{color:var(--text-muted);margin-bottom:16px;font-size:11px}.prep-batch{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.prep-batch h3{margin-bottom:4px;font-size:15px;font-weight:500}.supported-meals{color:var(--text-muted);margin-bottom:12px;font-size:11px}.prep-method-group{margin-top:12px}.prep-method-group h4{color:var(--text-muted);letter-spacing:.03em;margin-bottom:6px;font-size:11px;font-weight:500}.prep-timeline-group{margin-top:16px;padding-top:4px}.prep-timeline-group h4{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:500}.prep-method-subgroup{margin-top:10px}.prep-method-subgroup:first-of-type{margin-top:4px}.prep-method-subhead{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.prep-method-subgroup h5{color:var(--text-muted);letter-spacing:.03em;font-size:11px;font-weight:500}.prep-method-subgroup .prep-task-list{margin-bottom:4px}.prep-method-subgroup .prep-task-row:last-child{border-bottom:none}.prep-task-content{flex-direction:column;gap:2px;min-width:0;display:flex}.prep-task-meta{color:var(--text-muted);font-size:11px;line-height:16px}.prep-task-label.is-urgent{color:var(--text)}.prep-task-label.is-urgent:before{content:"";vertical-align:middle;background:#c45c5c;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block;transform:translateY(-1px)}.prep-task-list{margin:0;padding:0;list-style:none}.prep-task-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.prep-task-row.is-checked{opacity:.55}.prep-task-row.is-checked .prep-task-label{opacity:.5;color:var(--text-muted);text-decoration:line-through}.prep-task-check{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-10px 0 -10px -8px;padding:0;display:flex}.prep-check-box{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:16px;height:16px;display:block;position:relative}.prep-task-row.is-checked .prep-check-box{background:var(--text);border-color:var(--text);position:relative}.prep-task-row.is-checked .prep-check-box:after{content:"";border:solid var(--action-text);border-width:0 1.5px 1.5px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.prep-task-label{color:var(--text);font-size:14px;line-height:22px}.prep-task-meal{color:#4c4546;font-size:12px;line-height:18px;display:block}.prep-task-amount{color:var(--text-muted);font-size:12px;line-height:18px;display:block}.prep-task-note{color:var(--text-muted);font-size:11px;line-height:16px;display:block}.prep-task-instructions{margin-top:4px}.prep-task-instructions-label{color:var(--text-muted);margin-bottom:2px;font-size:11px;font-weight:500;line-height:16px;display:block}.prep-task-instructions ul{color:#4c4546;margin:0;padding-left:16px;font-size:12px;line-height:18px}.prep-task-instructions li{margin-bottom:2px}.prep-progress-block{margin-bottom:14px}.prep-progress-track{background:var(--subtle-surface);border-radius:999px;height:3px;overflow:hidden}.prep-progress-fill{background:var(--text);border-radius:999px;height:100%;transition:width .2s}.prep-checklist{padding:0;list-style:none}.prep-checklist li{border-bottom:1px solid var(--border);padding:6px 0 6px 20px;font-size:14px;line-height:22px;position:relative}.prep-checklist li:before{content:"☐";color:var(--text-muted);font-size:13px;position:absolute;left:0}.reminder-list li:before{content:"·"}.next-batch{background:var(--subtle-surface);border-radius:var(--radius);border:1px solid var(--border);margin-top:12px;padding:12px;font-size:13px}.profile-screen{flex-direction:column;gap:24px;display:flex}.profile-header{flex-direction:column;gap:8px;padding-top:4px;display:flex}.profile-greeting{letter-spacing:-.02em;color:var(--text);margin:0;font-size:24px;font-weight:500;line-height:32px}.profile-hint{color:#5e5e5e;margin:0;font-size:13px;line-height:18px}.profile-section{flex-direction:column;gap:10px;display:flex}.profile-section-label{color:#5e5e5e;margin:0;font-size:13px;font-weight:500;line-height:18px}.profile-icon-tile{background:color-mix(in srgb, var(--color-action) 10%, white);width:40px;height:40px;color:var(--color-action);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.profile-icon-tile--accent{background:var(--color-action);color:#fff}.profile-icon-tile--danger{background:var(--error-bg,#fdf5f3);color:var(--error)}.profile-progress-card{background:var(--surface);border:1px solid #f0f0f0;border-radius:20px;flex-direction:column;gap:12px;padding:20px;display:flex}.profile-progress-card-head{align-items:flex-start;gap:12px;display:flex}.profile-progress-card-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.profile-progress-card-title{color:var(--color-action);margin:0;font-size:16px;font-weight:600;line-height:22px}.profile-progress-card-caption{color:#666;margin:0;font-size:13px;line-height:18px}.profile-progress-gauge-wrap{background:#fff;border-radius:16px;padding:8px 0 4px}.profile-progress-gauge{width:100%;max-width:280px;margin:0 auto;position:relative}.profile-progress-gauge-svg{width:100%;height:auto;display:block}.profile-progress-gauge-track,.profile-progress-gauge-fill{stroke-width:14px}.profile-progress-gauge-track{stroke:#eee;stroke-linecap:butt}.profile-progress-gauge-fill{stroke:var(--color-action);stroke-linecap:round;transition:stroke-dasharray .35s}.profile-progress-gauge-center{pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.profile-progress-gauge-icon{color:var(--color-action);margin-bottom:2px}.profile-progress-gauge-pct{font-family:var(--font-hanken), var(--font);color:var(--color-action);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1}.profile-progress-gauge-label{color:#5e5e5e;font-size:13px;font-weight:500;line-height:18px}.profile-stat-cards{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.profile-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-items:flex-start;gap:12px;min-height:120px;padding:16px;display:flex}.profile-stat-copy{flex-direction:column;gap:4px;margin-top:auto;display:flex}.profile-stat-title{color:#5e5e5e;margin:0;font-size:13px;font-weight:500;line-height:18px}.profile-stat-num{color:var(--color-action);margin:0;font-size:32px;font-weight:700;line-height:38px}.profile-stat-label{color:#5e5e5e;margin:0;font-size:12px;font-weight:400;line-height:16px}.profile-list-cards{flex-direction:column;gap:10px;display:flex}.profile-list-row{border:1px solid var(--border);background:var(--surface);text-align:left;box-sizing:border-box;border-radius:16px;align-items:center;gap:12px;width:100%;min-height:52px;padding:14px 18px;font-family:inherit;display:flex}.profile-list-row-action{cursor:pointer;transition:border-color .15s,background .15s}.profile-list-row-action:hover{background:color-mix(in srgb, var(--color-action) 4%, white)}.profile-list-row-action:disabled{opacity:.6;cursor:not-allowed}.profile-list-row-danger{border:1px solid color-mix(in srgb, var(--error) 22%, transparent);cursor:pointer;background:#fff7f6;transition:background .15s}.profile-list-row-danger:hover{background:#ffefed}.profile-list-row-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profile-list-row-title{color:var(--text);margin:0;font-size:15px;font-weight:500;line-height:22px}.profile-list-row-sub{color:#5e5e5e;margin:0;font-size:12px;line-height:16px}.profile-list-row-danger .profile-list-row-title{color:var(--error)}.profile-list-row-danger .profile-list-row-sub{color:color-mix(in srgb, var(--error) 70%, #5e5e5e)}.profile-list-row-chevron{color:#5e5e5e;flex-shrink:0}.profile-list-row-danger .profile-list-row-chevron{color:var(--error)}.profile-rename-modal{width:100%;max-width:var(--app-max);background:var(--surface);box-sizing:border-box;border-radius:20px;padding:24px 20px 20px;box-shadow:0 12px 40px #11111129}.profile-rename-modal-title{letter-spacing:-.02em;color:var(--text);margin:0 0 20px;font-size:24px;font-weight:500;line-height:32px}.profile-rename-modal .auth-field{margin-bottom:0}.profile-rename-modal .onboarding-actions{margin-top:24px}.picker-overlay{z-index:200;background:#11111159;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.picker-panel,.edit-modal{width:100%;max-width:var(--app-max);background:var(--surface);border-radius:18px;flex-direction:column;max-height:min(85vh,640px);display:flex;overflow:hidden;box-shadow:0 12px 40px #11111129}.edit-modal{border-radius:var(--radius);flex-direction:column;max-height:90vh;margin:16px;padding:16px;display:flex;overflow:hidden}.picker-header{background:var(--surface);border-bottom:1px solid #e5e5e5;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;min-height:52px;padding:14px 16px;display:flex;position:relative}.picker-header .btn.text-link{color:#5e5e5e}.picker-header .btn.icon{color:#6b6b6b}.picker-header .btn.text-link,.picker-header .page-back,.picker-header>.picker-header-spacer:first-child{margin-right:auto}.picker-header-spacer{flex:1;min-width:0}.picker-panel>:not(.picker-header):not(.recipe-picker-footer){overflow-y:auto}.picker-header h3{text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;max-width:calc(100% - 120px);font-size:15px;font-weight:500;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.recipe-picker-panel{background:#fff;border-radius:16px;box-shadow:0 12px 40px #1111111f}.recipe-picker-header{background:#fff;border-bottom:1px solid #eee;justify-content:space-between;gap:12px;padding:16px 16px 14px}.recipe-picker-header h3{text-align:left;pointer-events:auto;max-width:none;color:var(--text);letter-spacing:-.02em;margin:0;font-family:inherit;font-size:20px;font-weight:500;line-height:28px;position:static;left:auto;transform:none}.recipe-picker-header-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.picker-context{color:#5e5e5e;margin:0;font-size:13px;line-height:18px}.recipe-picker-close{color:#5e5e5e;cursor:pointer;background:#fff;border:1px solid #eee;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin:0;padding:0;display:inline-flex}.recipe-picker-close:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.picker-filters{flex-shrink:0;gap:6px;padding:10px 16px;display:flex;overflow-x:auto}.recipe-picker-filters{scrollbar-width:none;background:#fff;gap:8px;padding:12px 16px 4px}.recipe-picker-filters::-webkit-scrollbar{display:none}.recipe-picker-filters .filter-chip{color:#5e5e5e;background:#fff;border:1px solid #eee;border-radius:999px;flex-shrink:0;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;line-height:18px}.recipe-picker-filters .filter-chip.active{background:var(--color-action);color:#fff;border-color:var(--color-action)}.picker-grid{background:#f7f7f7;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px 16px 16px;display:grid;overflow-y:auto}.recipe-picker-panel .picker-grid{background:#fff;gap:10px}.recipe-picker-panel .recipe-mini-card{background:#fff;border-color:#eee}.recipe-picker-panel .recipe-mini-card.clickable:hover{border-color:color-mix(in srgb, var(--color-action) 35%, #eee)}.recipe-picker-panel .recipe-mini-card.is-selected{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);box-shadow:none}.recipe-picker-panel .mini-thumb{background:#f5f5f5}.recipe-picker-panel .mini-thumb-placeholder{background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action)}.recipe-picker-panel .meta-badge{color:#5e5e5e;border-color:#eee}.recipe-picker-panel .mini-creator,.recipe-picker-panel .empty-hint{color:#5e5e5e}.recipe-picker-footer{padding:12px 16px max(12px, env(safe-area-inset-bottom));background:#fff;border-top:1px solid #eee;flex-shrink:0;align-items:center;gap:10px;display:flex}.recipe-picker-footer .btn{flex:1;min-height:48px}.recipe-picker-footer .btn.secondary{color:#5e5e5e;background:#eee;border:none}.recipe-picker-confirm{justify-content:center;align-items:center;gap:6px;display:inline-flex}.recipe-picker-confirm:disabled{opacity:.45;cursor:not-allowed}.edit-modal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.edit-modal input,.edit-modal .input{background:#fff}.edit-modal .modal-actions{flex-direction:row;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.edit-modal .modal-actions .btn{flex:none;width:auto}.edit-modal .modal-actions .btn.primary{min-width:88px}.library-card-clickable{cursor:pointer}.library-card-clickable:focus-visible{outline:2px solid var(--text);outline-offset:2px}.recipe-detail-overlay{z-index:250;background:#1116;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.recipe-detail-sheet{width:100%;max-width:var(--app-max);background:var(--bg);border-radius:12px 12px 0 0;flex-direction:column;max-height:92dvh;display:flex;overflow:hidden}.recipe-detail{flex-direction:column;max-height:92dvh;display:flex;position:relative;overflow:hidden}.recipe-detail-scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.recipe-detail-header{z-index:2;padding:8px;position:absolute;top:0;right:0}.recipe-detail-close{background:#ffffffe6;border-radius:999px;width:32px;height:32px}.recipe-detail-hero{border:1px solid var(--recipe-border);background:var(--soft-surface);border-radius:8px;flex-shrink:0;width:min(358px,100% - 48px);height:min(358px,100vw - 48px);margin:16px auto 0;overflow:hidden}.recipe-detail-hero img{object-fit:cover;width:100%;height:100%;display:block}.recipe-detail-hero-placeholder{justify-content:center;align-items:center;font-size:48px;display:flex}.recipe-detail-body{padding:20px 24px 24px}.recipe-detail-title-row{margin-bottom:12px}.recipe-detail-title{font-family:var(--font-display);color:var(--recipe-black);min-width:0;font-size:32px;font-weight:600;line-height:40px}.recipe-detail-author{font-family:var(--font-display);letter-spacing:.6px;text-transform:uppercase;color:var(--recipe-secondary);margin-bottom:16px;font-size:12px;font-weight:700;line-height:16px}.recipe-meta-pills{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.recipe-meta-pill{font-family:var(--font-display);letter-spacing:.6px;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;line-height:16px;display:inline-flex}.recipe-meta-pill-gray{color:var(--recipe-secondary);border:1px solid var(--recipe-border);background:0 0}.recipe-meta-pill-dark{color:var(--recipe-black);border:1px solid var(--recipe-border);background:0 0}.recipe-detail-source-btn{font-family:var(--font-display);margin-bottom:24px;font-weight:600;text-decoration:none}.recipe-detail-section{margin-top:24px}.recipe-detail-section-head{border-bottom:1px solid var(--recipe-divider);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;padding-bottom:8px;display:flex}.recipe-detail-section-title{font-family:var(--font-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--recipe-black);font-size:16px;font-weight:700;line-height:22px}.recipe-detail-section-count{font-family:var(--font-mono);color:var(--recipe-secondary);font-size:14px;line-height:20px}.recipe-detail-ingredient-cards{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.recipe-detail-ingredient-card{background:var(--surface);border:1px solid var(--recipe-border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.recipe-detail-ingredient-main{flex-direction:column;gap:2px;min-width:0;display:flex}.recipe-detail-ingredient-name{font-family:var(--font-display);color:var(--recipe-black);font-size:16px;font-weight:600;line-height:24px}.recipe-detail-ingredient-qty{font-family:var(--font-mono);color:var(--recipe-secondary);font-size:12px;line-height:16px}.recipe-detail-ingredient-tag{border:1px solid var(--recipe-border);font-family:var(--font-mono);color:var(--recipe-black);background:0 0;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:10px;line-height:20px}.recipe-detail-steps{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.recipe-detail-steps li{align-items:flex-start;gap:12px;display:flex}.recipe-detail-step-num{font-family:var(--font-mono);color:var(--recipe-secondary);flex-shrink:0;font-size:14px;line-height:24px}.recipe-detail-step-text{font-family:var(--font-display);color:var(--recipe-black);font-size:16px;line-height:24px}.recipe-detail-notes-label{letter-spacing:.6px;text-transform:uppercase;color:var(--recipe-secondary);margin-bottom:8px;font-size:16px;font-weight:700;line-height:16px}.recipe-detail-notes-box{border:1px solid var(--recipe-border);min-height:72px;font-family:var(--font-display);color:var(--recipe-secondary);white-space:pre-wrap;border-radius:8px;padding:12px 14px;font-size:16px;line-height:24px}.recipe-detail-footer{padding:12px 24px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:var(--surface);border-top:none;flex-shrink:0;gap:8px;display:flex}.recipe-detail-action{font-family:var(--font-display);flex:1;font-weight:600}.recipe-detail-action.btn.outline,.recipe-detail-action.btn.primary{width:auto}.recipe-detail-delete{color:#b42318;border-color:#f3c4c0}.recipe-detail-delete:hover{background:#fff5f5}.recipe-edit-modal.card{background:0 0;border:none;flex-direction:column;flex:1;min-height:0;margin:0;padding:0;display:flex;overflow-y:auto}.recipe-edit-form{flex-direction:column;gap:20px;display:flex}.recipe-edit-readonly-meta{flex-direction:column;gap:8px;display:flex}.recipe-edit-readonly-meta .recipe-detail-author{margin-bottom:0}.recipe-edit-field{flex-direction:column;gap:8px;display:flex}.recipe-dish-tag-editor{flex-wrap:wrap;gap:8px;display:flex}.recipe-dish-tag-chip{min-height:32px;color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #0000001f;border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.recipe-dish-tag-chip.is-selected{border-color:var(--tomorrow-green);color:var(--tomorrow-green);background:#253f2b14;font-weight:600}.recipe-dish-tag-chip.is-custom{border-style:dashed}.recipe-dish-tag-custom-row{align-items:center;gap:8px;display:flex}.recipe-dish-tag-custom-row .recipe-edit-input{flex:1;min-width:0}.recipe-edit-label{font-family:var(--font-display);letter-spacing:.6px;text-transform:uppercase;color:var(--recipe-secondary);font-size:12px;font-weight:700;line-height:16px}.recipe-edit-input{border:1px solid var(--recipe-border);width:100%;font-family:var(--font-display);color:var(--recipe-black);background:var(--surface);border-radius:8px;padding:12px 14px;font-size:16px;line-height:24px}.recipe-edit-input:focus{outline:2px solid var(--recipe-black);outline-offset:0}.recipe-edit-notes{resize:vertical;min-height:96px}.recipe-edit-section{flex-direction:column;gap:10px;display:flex}.recipe-edit-section-head{border-bottom:1px solid var(--recipe-divider);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.recipe-edit-section-title{font-family:var(--font-display);letter-spacing:2.4px;text-transform:uppercase;color:var(--recipe-black);font-size:20px;font-weight:700;line-height:28px}.recipe-edit-add-btn{font-family:var(--font-display);background:var(--recipe-gray-bg);color:var(--recipe-black);border:none}.recipe-edit-ingredient-row,.recipe-edit-step-row{align-items:start;gap:8px;display:grid}.recipe-edit-ingredient-row{grid-template-columns:1.4fr .7fr .7fr 1fr auto auto}.recipe-edit-ingredient-row .recipe-ai-qty-badge{align-self:center;margin-left:0}.recipe-ai-qty-badge-spacer{width:22px;height:1px}.recipe-edit-step-row{grid-template-columns:36px 1fr auto}.recipe-edit-step-num{font-family:var(--font-mono);color:var(--recipe-secondary);padding-top:12px;font-size:14px;line-height:24px}.recipe-edit-delete-btn{margin-top:4px}.recipe-edit-footer{background:var(--surface);border-top:none;margin-top:0;padding-top:16px;position:sticky;bottom:0}.recipe-edit-footer .btn{font-family:var(--font-display);flex:1;font-weight:600}.recipe-hero-edit{flex-direction:column;gap:12px;display:flex}.recipe-hero-frame{aspect-ratio:1;border:1px solid var(--recipe-border);background:var(--soft-surface);border-radius:8px;width:min(358px,100%);height:auto;margin:0 auto;position:relative;overflow:hidden}.recipe-hero-frame img,.recipe-hero-placeholder{object-fit:cover;width:100%;height:100%;display:block}.recipe-hero-placeholder{justify-content:center;align-items:center;font-size:48px;display:flex}.recipe-hero-edit-btn{font-family:var(--font-display);color:var(--recipe-black);cursor:pointer;background:#ffffffeb;border:none;border-radius:9999px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 8px #0000001f}.recipe-hero-picker-label{font-family:var(--font-display);color:var(--recipe-secondary);font-size:12px;font-weight:600;line-height:16px}.recipe-hero-picker-strip{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.recipe-hero-picker-thumb{cursor:pointer;background:var(--soft-surface);border:2px solid #0000;border-radius:8px;flex-shrink:0;width:64px;height:64px;padding:0;overflow:hidden}.recipe-hero-picker-thumb.selected{border-color:var(--recipe-black)}.recipe-hero-picker-thumb img{object-fit:cover;width:100%;height:100%;display:block}.edit-modal .edit-modal-header h3{font-family:var(--font-display);letter-spacing:.4px;font-size:20px;font-weight:700;line-height:28px}.recipe-page{flex-direction:column;gap:20px;display:flex}.recipe-page-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.recipe-page-title{font-family:var(--font-display);color:var(--tomorrow-green);letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1.1}.recipe-add-btn{background:var(--tomorrow-green);color:#fff;font-family:var(--font-display);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;margin-top:4px;padding:8px 16px;font-size:13px;font-weight:600;line-height:16px}.recipe-add-btn:active{opacity:.9}.recipe-page-panel{flex-direction:column;gap:24px;display:flex}.recipe-import-section{flex-direction:column;gap:16px;display:flex}.recipe-import-section-sheet{gap:12px}.recipe-section-title{letter-spacing:.9px;color:var(--text);font-size:16px;font-weight:700;line-height:24px}.recipe-section-desc{letter-spacing:.6px;color:#5e5e5e;margin:-8px 0 0;font-size:12px;font-weight:700;line-height:16px}.recipe-import-card{background:#fff;border-radius:24px;flex-direction:column;gap:16px;padding:20px 24px 24px;display:flex;box-shadow:0 20px 40px -10px #4a654f14}.recipe-import-card-desc{font-family:var(--font-display);color:var(--chip-text);font-size:16px;font-weight:400;line-height:26px}.recipe-import-field{position:relative}.recipe-import-field-icon{color:#737972;pointer-events:none;position:absolute;top:16px;left:16px}.recipe-import-field textarea{width:100%;min-height:124px;font-family:var(--font-display);color:var(--recipe-black);resize:vertical;background:#fff;border:1px solid #c2c8c0;border-radius:16px;padding:16px;font-size:16px;line-height:24px}.recipe-import-section textarea{margin-bottom:0}.recipe-import-btn{min-width:192px;font-family:var(--font-display);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-self:center;align-items:center;gap:12px;padding:8px 20px;font-size:14px;font-weight:700;line-height:24px;display:inline-flex}.recipe-import-btn-orange{background:var(--color-ai);color:var(--color-ai-text);box-shadow:0 2px 4px -2px #ff8c0033,0 4px 6px -1px #ff8c0033}.recipe-import-btn-orange:disabled{opacity:.55;cursor:not-allowed}.recipe-library-toolbar{flex-direction:column;gap:12px;display:flex}.recipe-library-search{border:1px solid var(--border);width:100%;min-height:32px;color:var(--text-muted);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;display:flex}.recipe-library-search input{min-width:0;font-family:var(--font-display);color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:18px}.recipe-library-search input[type=search]{appearance:none}.recipe-library-search input::placeholder{color:#8e8e8e}.recipe-saved-filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;margin:0 -4px;padding:0 4px 4px;display:flex;overflow-x:auto}.recipe-saved-filters::-webkit-scrollbar{display:none}.recipe-saved-filters .filter-chip{font-family:var(--font-display);border:1px solid var(--border);color:var(--chip-text);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;padding:10px 20px;font-size:13px;font-weight:500;line-height:20px}.recipe-saved-filters .filter-chip.active{background:var(--tomorrow-green);color:#fff;border-color:var(--tomorrow-green)}.recipe-saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.recipe-empty-state{text-align:center;flex-direction:column;grid-column:1/-1;align-items:center;gap:8px;padding:48px 24px;display:flex}.recipe-empty-title{color:var(--text);margin:0;font-size:16px;font-weight:500;line-height:24px}.recipe-empty-desc{color:var(--text-secondary);margin:0;font-size:13px;line-height:20px}.recipe-empty-cta{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;margin-top:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600}.recipe-empty-card{background:var(--surface);border-radius:20px;flex-direction:column;display:flex;overflow:visible;box-shadow:0 2px 16px #00000014}.recipe-empty-card-media{aspect-ratio:16/11;background:#f3f1ec;border-radius:20px 20px 0 0;width:100%;position:relative;overflow:hidden}.recipe-empty-card-image{object-fit:cover;object-position:center}.recipe-empty-card-body{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:36px 24px 24px;display:flex;position:relative}.recipe-empty-card-badge{width:52px;height:52px;color:var(--tomorrow-green);background:#e8eee9;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #253f2b1f}.recipe-empty-card-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-size:22px;font-weight:700;line-height:28px}.recipe-empty-card-desc{max-width:280px;color:var(--color-metadata);margin:0;font-size:14px;font-weight:400;line-height:22px}.recipe-empty-card-cta{background:var(--tomorrow-green);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:100%;max-width:280px;min-height:48px;margin-top:8px;padding:12px 20px;font-family:inherit;font-size:16px;font-weight:500;line-height:24px;transition:opacity .15s;display:inline-flex}.recipe-empty-card-cta:active{opacity:.88}.add-recipe-flow{gap:20px;padding-top:8px;position:relative}.page-back,.add-recipe-back{width:40px;height:40px;color:var(--recipe-black);cursor:pointer;background:#fff;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 2px 10px #00000014}.page-back:active,.add-recipe-back:active{transform:scale(.96)}.page-back:focus-visible,.add-recipe-back:focus-visible{outline:2px solid var(--text);outline-offset:2px}.add-recipe-page-header{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:-8px 0 4px;padding:0 40px;display:flex}.add-recipe-page-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-size:28px;font-weight:700;line-height:36px}.add-recipe-page-subtitle{color:var(--text);margin:0;font-size:14px;font-weight:500;line-height:20px}.add-recipe-method-card{background:#fafaf8;border-radius:28px;flex-direction:column;gap:16px;padding:20px 18px;display:flex;position:relative;overflow:hidden}.add-recipe-method-head{z-index:1;align-items:flex-start;gap:12px;display:flex;position:relative}.add-recipe-method-badge{text-align:center;letter-spacing:-.02em;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:9px;font-weight:700;line-height:1.1;display:inline-flex}.add-recipe-method-badge.is-link,.add-recipe-method-badge.is-manual{color:var(--tomorrow-green);background:#fff;box-shadow:0 2px 8px #00000014}.add-recipe-method-copy{flex-direction:column;gap:4px;min-width:0;padding-top:2px;display:flex}.add-recipe-method-title{font-family:var(--font-display);color:var(--tomorrow-green);margin:0;font-size:18px;font-weight:700;line-height:24px}.add-recipe-method-desc{color:var(--text);margin:0;font-size:13px;line-height:18px}.add-recipe-method-body{z-index:1;position:relative}.add-recipe-method-form{min-width:0}.add-recipe-method-form .recipe-import-section-sheet{gap:14px}.add-recipe-method-form .recipe-import-btn{align-self:stretch;width:100%;min-width:0}.add-recipe-method-btn{background:var(--tomorrow-green);color:#fff;box-shadow:none;border-radius:999px;padding:12px 20px;font-size:15px;line-height:20px}.add-recipe-method-btn:disabled{opacity:.45;cursor:not-allowed}.add-recipe-flow .recipe-import-section-sheet .recipe-import-field textarea{resize:none;min-height:48px;color:var(--text);border-color:#e4e4e2;border-radius:999px;padding:12px 18px;font-family:inherit;font-size:13px;font-weight:400;line-height:18px}.add-recipe-flow .recipe-import-section-sheet .recipe-import-field textarea::placeholder{color:var(--text-muted);opacity:1}.add-recipe-flow .recipe-import-section-sheet .recipe-import-field textarea:focus{color:var(--text)}.add-recipe-method-card.is-manual .recipe-import-section-sheet .recipe-import-field textarea{resize:vertical;border-radius:16px;min-height:120px;padding:14px 16px}.add-recipe-page-status{margin-top:4px}.recipe-grid-card{background:var(--surface);text-align:left;border:none;border-radius:16px;flex-direction:column;font-family:inherit;display:flex;overflow:hidden;box-shadow:0 2px 12px #00000014}.recipe-grid-card-clickable{cursor:pointer}.recipe-grid-card-clickable:focus-visible{outline:2px solid var(--tomorrow-green);outline-offset:2px}.recipe-grid-card-media{aspect-ratio:4/3;background:var(--soft-surface);border-radius:16px 16px 0 0;position:relative;overflow:hidden}.recipe-grid-card-media img,.recipe-grid-card-media .recipe-image-fallback{object-fit:cover;width:100%;height:100%}.recipe-image-fallback{background:var(--recipe-gray-bg);color:var(--text-muted);justify-content:center;align-items:center;font-size:28px;display:flex}.recipe-detail-hero img,.recipe-detail-hero .recipe-image-fallback,.recipe-hero-frame img,.recipe-hero-frame .recipe-image-fallback,.recipe-hero-picker-thumb img,.recipe-hero-picker-thumb .recipe-image-fallback{object-fit:cover;width:100%;height:100%}.recipe-grid-card-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:28px;display:flex}.recipe-grid-card-body{flex-direction:column;flex:1;gap:8px;padding:12px 12px 14px;display:flex}.recipe-grid-card-title{color:var(--tomorrow-green);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:20px;display:-webkit-box;overflow:hidden}.recipe-grid-card-meta{color:#6b6b6b;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;line-height:16px;display:flex}.recipe-grid-card-meta-item{white-space:nowrap;align-items:center;gap:4px;font-weight:500;display:inline-flex}.recipe-grid-card-meta-item svg{color:var(--color-metadata)}.recipe-grid-card-meta-item:first-child{padding-left:0}.recipe-grid-card-edit{z-index:2;width:28px;height:28px;color:var(--text);cursor:pointer;background:#fffffff2;border:none;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;font-family:inherit;display:inline-flex;position:absolute;top:8px;right:8px;box-shadow:0 1px 3px #0000001f}.recipe-grid-card-edit:hover{background:#fff}.recipe-grid-card-source-btn{border:1px solid var(--tomorrow-green);width:100%;color:var(--tomorrow-green);font-family:var(--font-hanken), var(--font);background:0 0;border-radius:999px;justify-content:center;align-items:center;margin-top:auto;padding:8px 10px;font-size:12px;font-weight:600;line-height:16px;text-decoration:none;display:flex}.recipe-grid-card-source-btn:hover{opacity:1;background:#253f2b0f}.recipe-pending-section{flex-direction:column;gap:12px;padding-top:8px;display:flex}.recipe-pending-overlay{z-index:240;background:#1116;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.recipe-pending-sheet{width:100%;max-width:var(--app-max);background:#fff;border-radius:24px;flex-direction:column;max-height:min(92dvh,720px);display:flex;overflow:hidden;box-shadow:0 16px 48px #11111129}.recipe-pending-sheet-header{flex-shrink:0;justify-content:center;align-items:center;padding:20px 48px 12px;display:flex;position:relative}.recipe-pending-sheet-heading{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.recipe-pending-sheet-title{color:var(--text);margin:0;font-size:18px;font-weight:500;line-height:24px}.recipe-pending-sheet-subtitle{color:var(--recipe-secondary);margin:0;font-size:13px;line-height:18px}.recipe-pending-sheet-close{background:#eee;border-radius:999px;flex-shrink:0;width:32px;height:32px;position:absolute;top:16px;right:16px}.recipe-pending-sheet-scroll{-webkit-overflow-scrolling:touch;flex:1;padding:4px 20px 12px;overflow-y:auto}.recipe-pending-list-header{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.recipe-pending-list-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recipe-pending-list-title{color:var(--text);margin:0;font-size:15px;font-weight:500;line-height:20px}.recipe-pending-status-pill{background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex}.recipe-pending-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recipe-pending-toolbar-btn{min-height:36px;color:var(--text);cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.recipe-pending-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.recipe-pending-select-all{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin-left:auto;font-size:13px;font-weight:500;display:inline-flex}.recipe-pending-select-all input,.recipe-pending-row-check input{width:18px;height:18px;accent-color:var(--color-action);cursor:pointer}.recipe-pending-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.recipe-pending-item{flex-direction:column;gap:8px;display:flex}.recipe-pending-row{background:#fff;border:1px solid #e0e0e0;border-radius:12px;grid-template-columns:auto 72px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.recipe-pending-row.is-expanded{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white)}.recipe-pending-row-check{align-items:center;display:flex}.recipe-pending-row-thumb{background:#eee;border:1px solid #e0e0e0;border-radius:8px;flex-shrink:0;width:72px;height:72px;overflow:hidden}.recipe-pending-row-thumb img,.recipe-pending-row-thumb .recipe-image-fallback{object-fit:cover;width:100%;height:100%}.recipe-pending-row-thumb-empty{justify-content:center;align-items:center;width:100%;height:100%;font-size:22px;display:flex}.recipe-pending-row-body{flex-direction:column;gap:6px;min-width:0;display:flex}.recipe-pending-row-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:500;line-height:20px;overflow:hidden}.recipe-pending-row-meta{flex-wrap:wrap;gap:8px 10px;display:flex}.recipe-pending-row-meta-item{color:var(--recipe-secondary);align-items:center;gap:4px;font-size:12px;line-height:16px;display:inline-flex}.recipe-pending-row-view{min-height:32px;color:var(--text);cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.recipe-pending-expanded{padding:0 2px 4px}.recipe-pending-sheet-footer{padding:12px 20px max(16px, env(safe-area-inset-bottom));border-top:1px solid #e0e0e0;flex-shrink:0;grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.recipe-pending-footer-secondary,.recipe-pending-footer-primary{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:500;display:inline-flex}.recipe-pending-footer-secondary{border:1px solid var(--recipe-black);color:var(--recipe-black);background:#fff}.recipe-pending-footer-secondary:disabled{opacity:.45;cursor:not-allowed}.recipe-pending-footer-primary{background:var(--color-action);color:var(--color-action-text);border:none}.recipe-pending-entry{border-radius:var(--radius);cursor:pointer;width:100%;color:var(--text);text-align:left;background:#fff;border:1px solid #e0e0e0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;display:flex}.recipe-pending-entry-text{font-size:14px;font-weight:500;line-height:20px}.recipe-pending-entry-count{font-family:var(--font-mono);margin-right:4px;font-weight:600}.recipe-enrich-state{align-items:center;gap:var(--space-6);margin:var(--space-10) 0 0;padding:var(--space-8) var(--space-12);border-radius:var(--radius-input);font-size:var(--fs-small);line-height:var(--lh-small);display:flex}.recipe-enrich-state.is-pending{background:var(--subtle-surface);color:var(--text-secondary)}.recipe-enrich-state.is-failed{background:var(--error-bg);color:var(--error)}.recipe-enrich-dot{border-radius:var(--radius-pill);background:var(--color-ai);width:6px;height:6px;animation:recipe-enrich-pulse 1.4s var(--ease-in-out) infinite;flex-shrink:0}@keyframes recipe-enrich-pulse{0%,to{opacity:.35;scale:.8}50%{opacity:1;scale:1.2}}@media (prefers-reduced-motion:reduce){.recipe-enrich-dot{opacity:1;animation:none}}.ai-loader-overlay{z-index:var(--z-takeover);padding:var(--space-24) var(--space-16);background:var(--scrim);-webkit-backdrop-filter:blur(3px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ai-loader-card{width:100%;max-width:320px;padding:var(--space-24) var(--space-24) var(--space-20);background:var(--surface);border-radius:var(--radius-sheet);box-shadow:var(--shadow-overlay);text-align:center;flex-direction:column;align-items:center;display:flex}.parse-bowl{width:176px;height:auto;overflow:visible}.parse-bowl-hollow{fill:var(--subtle-surface)}.parse-bowl-body{fill:var(--color-action)}.parse-bowl-rim{stroke:var(--surface);stroke-width:5px;stroke-linecap:round}.parse-bowl-foot{fill:var(--color-action)}.parse-bowl-sticks path{stroke:var(--color-action);stroke-width:9px;stroke-linecap:round;fill:none}.parse-bowl-wave-back{fill:var(--color-food);opacity:.42}.parse-bowl-wave-front{fill:var(--color-food)}.ai-loader-percent{margin:var(--space-12) 0 0;font-family:var(--font-hanken), var(--font);color:var(--color-action);justify-content:center;align-items:baseline;gap:2px;display:flex}.ai-loader-percent-num{font-size:var(--fs-display-lg);line-height:var(--lh-display-lg);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.ai-loader-percent-sign{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-semibold)}.ai-loader-stage{margin:var(--space-4) 0 0;font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-medium);color:var(--text)}.ai-loader-steps{justify-content:center;align-items:center;gap:var(--space-6) var(--space-10);margin:var(--space-16) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.ai-loader-step{align-items:center;gap:var(--space-6);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-muted);white-space:nowrap;transition:color var(--dur-fast) ease;display:flex}.ai-loader-step-dot{border-radius:var(--radius-pill);background:var(--border);width:6px;height:6px;transition:background var(--dur-fast) ease, transform var(--dur-fast) ease}.ai-loader-step.is-done{color:var(--text-secondary)}.ai-loader-step.is-done .ai-loader-step-dot{background:var(--color-food)}.ai-loader-step.is-active{color:var(--color-action);font-weight:var(--fw-medium)}.ai-loader-step.is-active .ai-loader-step-dot{background:var(--color-action);animation:parse-step-pulse 1.4s var(--ease-in-out) infinite}@keyframes parse-step-pulse{0%,to{opacity:.4;scale:.8}50%{opacity:1;scale:1.25}}.ai-loader-hint{margin:var(--space-12) 0 0;font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){.ai-loader-step.is-active .ai-loader-step-dot{animation:none}}.batch-image-panel{flex-direction:column;gap:16px;min-height:100%;display:flex}.batch-image-nav{align-items:flex-start;gap:12px;display:flex}.batch-image-back{box-shadow:none;background:#eee;margin-top:-2px}.batch-image-nav-copy{flex:1;min-width:0}.batch-image-title{color:var(--text);margin:0;font-size:16px;font-weight:500;line-height:22px}.batch-image-desc{color:var(--recipe-secondary);margin:4px 0 0;font-size:12px;line-height:16px}.batch-image-gallery{border-bottom:1px solid #e0e0e0;flex-shrink:0;padding:0 0 14px}.batch-image-gallery-label{color:var(--recipe-secondary);margin:0 0 8px;font-size:13px;font-weight:500;line-height:18px}.batch-image-gallery-strip{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.batch-image-gallery-thumb{cursor:pointer;background:#eee;border:2px solid #0000;border-radius:10px;flex-shrink:0;width:72px;height:72px;padding:0;transition:border-color .15s,transform .15s;overflow:hidden}.batch-image-gallery-thumb.selected{border-color:var(--color-action);transform:scale(1.04)}.batch-image-gallery-thumb img,.batch-image-gallery-thumb .recipe-image-fallback{object-fit:cover;width:100%;height:100%}.batch-image-recipe-list{flex-direction:column;flex:1;gap:6px;display:flex}.batch-image-recipe-row{border-radius:var(--radius);background:var(--bg);text-align:left;cursor:pointer;width:100%;color:var(--text);border:1px solid #e0e0e0;align-items:center;gap:12px;padding:10px 12px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.batch-image-recipe-row.active{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action)}.batch-image-recipe-thumb{background:#eee;border:1px solid #e0e0e0;border-radius:8px;flex-shrink:0;width:44px;height:44px;overflow:hidden}.batch-image-recipe-thumb img,.batch-image-recipe-thumb .recipe-image-fallback{object-fit:cover;width:100%;height:100%}.batch-image-recipe-thumb-empty{width:100%;height:100%;color:var(--recipe-secondary);justify-content:center;align-items:center;font-size:18px;display:flex}.batch-image-recipe-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.batch-image-recipe-hint{color:var(--recipe-secondary);flex-shrink:0;font-size:11px}.batch-image-footer{flex-shrink:0;gap:10px;padding:8px 0 4px;display:flex}.batch-image-footer .btn{flex:1;min-height:48px}.recipe-success-toast{left:50%;bottom:calc(72px + env(safe-area-inset-bottom));z-index:350;background:var(--text);max-width:calc(100% - 32px);color:var(--bg);pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:500;line-height:20px;animation:.28s ease-out recipe-success-toast-in;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #1111112e}.recipe-success-toast svg{color:var(--success);flex-shrink:0}@keyframes recipe-success-toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.welcome-screen{width:100%;max-width:var(--app-max);min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) var(--pad-x) calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;background:#f7f6f4;flex-direction:column;display:flex;position:relative;overflow:hidden}.welcome-photo{z-index:0;pointer-events:none;-webkit-mask-composite:source-in;background-image:url(/first-image.png);background-position:50% 38%;background-repeat:no-repeat;background-size:cover;width:min(108%,460px);height:min(62dvh,480px);position:absolute;bottom:10%;left:50%;transform:translate(-50%);-webkit-mask-image:radial-gradient(72% 68% at 50% 48%,#000 28%,#000000b8 48%,#00000047 62%,#0000 76%),linear-gradient(#0000 0%,#000 16% 82%,#0000 100%);mask-image:radial-gradient(72% 68% at 50% 48%,#000 28%,#000000b8 48%,#00000047 62%,#0000 76%),linear-gradient(#0000 0%,#000 16% 82%,#0000 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}.welcome-brand{z-index:1;object-fit:contain;object-position:left center;flex-shrink:0;align-self:flex-start;width:auto;height:38px;margin:8px 0 0;position:relative}.welcome-copy{z-index:1;flex-shrink:0;position:relative}.welcome-title{font-family:var(--font-display), var(--font), sans-serif;color:var(--color-action);letter-spacing:-.03em;margin:0;font-size:36px;font-weight:700;line-height:44px}.welcome-subtitle{color:var(--color-metadata);margin:14px 0 0;font-size:16px;font-weight:400;line-height:24px}.welcome-spacer{flex:1;min-height:24px}.welcome-spacer-top{flex:.28;min-height:20px}.welcome-spacer-bottom{flex:1.5;min-height:100px}.welcome-cta-wrap{z-index:1;flex-shrink:0;margin-bottom:28px;position:relative}.welcome-cta{background:linear-gradient(90deg, #3d5c45 0%, var(--color-action) 55%, #1a2f23 100%);width:100%;min-height:56px;color:var(--action-text,#fff);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:16px 22px;font-family:inherit;font-size:18px;font-weight:500;transition:opacity .15s;display:inline-flex}.welcome-cta:active{opacity:.88}@media (hover:hover){.welcome-cta:hover{opacity:.92}}.auth-screen{width:100%;max-width:var(--app-max);min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) var(--pad-x) calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;background:#fff;flex-direction:column;display:flex}.auth-header{align-items:center;gap:12px;margin-bottom:28px;display:flex}.auth-back{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;margin-left:-8px;display:inline-flex}.auth-brand{color:var(--color-action);margin:0;font-size:16px;font-weight:500}.auth-mode-toggle{background:#eee;border-radius:999px;gap:4px;margin-bottom:24px;padding:4px;display:flex;position:relative}.auth-mode-thumb{z-index:0;will-change:transform;pointer-events:none;background:#fff;border-radius:999px;width:calc(50% - 6px);height:calc(100% - 8px);transition:transform .28s cubic-bezier(.32,.72,0,1);position:absolute;top:4px;left:4px;box-shadow:0 1px 2px #0000000f}.auth-mode-thumb.is-signup{transform:translate(calc(100% + 4px))}.auth-mode-btn{z-index:1;color:#5e5e5e;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;min-height:40px;font-family:inherit;font-size:14px;font-weight:500;transition:color .2s;position:relative}.auth-mode-btn.is-active{color:var(--color-action);box-shadow:none;background:0 0}.auth-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:24px;font-weight:500;line-height:32px}.auth-subtitle{color:#5e5e5e;margin:8px 0 0;font-size:13px;line-height:18px}.auth-banner{background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action);border:1px solid #eee;border-radius:16px;margin:16px 0 0;padding:12px 14px;font-size:13px;line-height:18px}.auth-form{flex-direction:column;gap:16px;margin-top:28px;display:flex}.auth-field{flex-direction:column;gap:8px;display:flex}.auth-field-label{color:#5e5e5e;font-size:13px;font-weight:500}.auth-field input{width:100%;min-height:52px;color:var(--text);box-sizing:border-box;background:#fff;border:1px solid #eee;border-radius:16px;padding:14px 18px;font-family:inherit;font-size:15px;line-height:22px}.auth-field input::placeholder{color:#5e5e5e}.auth-field input:focus{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);outline:none}.auth-password-row{align-items:center;display:flex;position:relative}.auth-password-row input{padding-right:48px}.auth-password-toggle{color:#5e5e5e;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:absolute;right:8px}.auth-consent{flex-direction:column;gap:10px;display:flex}.auth-consent-note{color:#5e5e5e;margin:0;font-size:13px;line-height:18px}.auth-consent-row{color:#5e5e5e;cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;line-height:18px;display:flex}.auth-consent-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-action);cursor:pointer;flex-shrink:0;margin-top:1px}.auth-error{color:var(--error,#b42318);margin:0;font-size:13px;line-height:18px}.auth-info{color:var(--color-action);margin:0;font-size:13px;line-height:18px}.auth-submit{min-height:48px;margin-top:8px;font-size:15px}.signup-email-dialog{background:var(--surface);border-radius:16px;width:min(100%,420px);max-height:min(88vh,720px);padding:24px;overflow-y:auto;box-shadow:0 16px 48px #00000029}.signup-email-title{color:var(--text);margin:0 0 8px;font-size:18px;font-weight:600;line-height:26px}.signup-email-lead{color:var(--text-secondary);margin:0;font-size:14px;line-height:22px}.signup-email-address{color:var(--text);word-break:break-all;font-weight:600}.signup-email-steps{color:var(--text-secondary);margin:16px 0 0;padding-left:20px;font-size:14px;line-height:22px}.signup-email-steps li+li{margin-top:6px}.signup-email-steps strong{color:var(--text);font-weight:600}.signup-email-figure{border:1px solid var(--border);background:var(--subtle-surface);border-radius:10px;margin:16px 0 0;overflow:hidden}.signup-email-image{width:100%;height:auto;display:block}.signup-email-note{color:var(--text-muted);margin:12px 0 20px;font-size:13px;line-height:20px}.onboarding-screen{width:100%;max-width:var(--app-max);min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) var(--pad-x) calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;display:flex}.onboarding-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.onboarding-brand{color:var(--color-action);margin:0;font-size:16px;font-weight:500}.onboarding-progress{color:var(--color-metadata);margin:0;font-size:13px;font-weight:500}.onboarding-progress-bar{background:var(--soft-surface);border-radius:999px;height:4px;margin-top:16px;overflow:hidden}.onboarding-progress-fill{border-radius:inherit;background:var(--color-action);height:100%;transition:width .2s;display:block}.onboarding-step{flex:1;margin-top:32px}.onboarding-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:24px;font-weight:500;line-height:32px}.onboarding-hint{color:var(--text-secondary);margin:8px 0 0;font-size:13px;line-height:18px}.onboarding-options{flex-direction:column;gap:10px;margin-top:24px;display:flex}.onboarding-option{border:1px solid var(--border);background:var(--surface,#fff);min-height:52px;color:var(--text);text-align:left;cursor:pointer;border-radius:16px;align-items:center;gap:12px;padding:14px 18px;font-family:inherit;font-size:15px;font-weight:500;line-height:22px;transition:border-color .15s,background .15s,color .15s;display:flex}.onboarding-option.is-selected{border-color:var(--color-action);background:color-mix(in srgb, var(--color-action) 8%, white);color:var(--color-action)}.onboarding-option-label{flex:1;min-width:0}.onboarding-checkbox{border:1.5px solid var(--border);background:var(--surface,#fff);border-radius:6px;flex-shrink:0;width:20px;height:20px;transition:border-color .15s,background .15s}.onboarding-option--checkbox.is-selected .onboarding-checkbox{border-color:var(--color-action);background-color:var(--color-action);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.2 6.4 11l6.1-6.5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px 12px}.onboarding-error{color:var(--error,#b42318);margin:16px 0 0;font-size:13px;line-height:18px}.onboarding-actions{flex-shrink:0;gap:10px;margin-top:24px;display:flex}.onboarding-back-btn{color:#5e5e5e;background:#eee;flex:none;min-width:96px;min-height:48px}.onboarding-next-btn{flex:1;min-height:48px;font-size:15px}.auth-gate-loading{min-height:100dvh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}@media (min-width:560px){.plan-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:380px){.quick-actions,.library-grid,.plan-library-grid,.picker-grid{grid-template-columns:1fr}}.plan-request-summary{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.plan-request-understood{flex-direction:column;gap:6px;display:flex}.plan-request-label{color:#6b7280;font-size:12px;font-weight:600;line-height:16px}.plan-request-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.plan-request-chip{color:#2f6b3d;background:#eef6ef;border:1px solid #cfe4d2;border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:12px;line-height:16px;display:inline-flex}.plan-request-chip.is-unenforced{color:#6b7280;background:#f4f4f5;border-color:#e0e0e3}.plan-request-chip.is-unenforced svg{opacity:.5}.plan-library-gaps{background:#f2f6fb;border:1px solid #d3e0ef;border-radius:10px;padding:10px 12px}.plan-library-gaps-headline{color:#1f4a75;margin:0 0 4px;font-size:13px;font-weight:600;line-height:18px}.plan-library-gaps-list{color:#40506b;flex-direction:column;gap:2px;margin:0;padding:0;font-size:12px;line-height:17px;list-style:none;display:flex}.plan-library-gaps-search{color:#1f4a75;flex-wrap:wrap;align-items:baseline;gap:4px;margin:8px 0 0;font-size:12px;line-height:17px;display:flex}.plan-library-gaps-search span{font-weight:600}.plan-library-gaps-search svg{flex-shrink:0;align-self:center}.plan-request-issues{background:#fff8eb;border:1px solid #f0d59b;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.plan-request-issues-icon{color:#c98712;flex-shrink:0;margin-top:1px}.plan-request-issues-copy{flex:1;min-width:0}.plan-request-issue-list{color:#8a5a00;flex-direction:column;gap:3px;margin:0;padding:0;font-size:12px;line-height:17px;list-style:none;display:flex}.plan-request-issues-more{color:#9a6b12;cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-family:inherit;font-size:12px;font-weight:600;text-decoration:underline}.data-unavailable{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.data-unavailable h2{color:var(--text);font-size:18px;font-weight:600}.data-unavailable p{max-width:30em;color:var(--text-secondary);font-size:14px;line-height:1.6}.data-unavailable-hint{font-size:13px}.data-unavailable-detail{color:var(--text-muted);word-break:break-word;font-size:12px}.alert .alert-detail{opacity:.8;word-break:break-word;margin-top:4px;font-size:12px;display:block}
